Case study in system development - Notes

Lajos Kollár

Debreceni Egyetem
Informatikai Kar

Nóra Sterbinszky

Copyright 2014

2014


Table of Contents

1. Introduction
Software processes
Waterfall model
Incremental development
Reuse-oriented software engineering
Process activities
UML
UML and metamodeling
Classification of UML 2.x diagrams
When to use UML diagrams?
2. Requirements engineering
Classification of requirements
The Software Requirements Specification document
When is an SRS said to be good?
Parts of an SRS
Gathering the requirements of the case study
Analysis
Customer use cases
Administrator use cases
Manager use cases
Non-functional requirements
3. System modeling
Context models
Interaction models
Structural models
Identification of domain classes
Refining the model
Behavioral models
Data-driven modeling
Event-driven modeling
Robustness analysis
4. Architectural design
Architecture of the case study application
Logical architecture
Physical architecture
5. Detailed design
Criteria for modularization
Coupling
Cohesion
Open-Closed principle
Refinement and transformation of analysis-level design
Overview of attributes and methods
Shopping cart issues
What about Catalog?
Decouple OrderManagement from external dependencies
The show must go on
6. Using UML profiles
Profile
Metaclass
Stereotype
Stereotype application
Stereotype relationships
Tag definition
Tagged value
Extension
Reference
Profile application
UML profile diagram example
7. Service-oriented architecture
SoaML UML profile
Applying the SoaML profile using composite structure diagram of UML
References

List of Figures

1.1. Waterfall model [SOMMERVILLE2010]
1.2. Icremental development [SOMMERVILLE2010]
1.3. Reuse-oriented development [SOMMERVILLE2010]
1.4. Requirements engineering process [SOMMERVILLE2010]
1.5. Design process [SOMMERVILLE2010]
1.6. Layered architecture of MOF .
1.7. UML diagram types .
1.8. Framed class diagram with frame heading of long kind
2.1. Readers of different types of requirements specification [SOMMERVILLE2010]
2.2. Types of non-functional requirements [SOMMERVILLE2010]
2.3. Users of a requirements document [SOMMERVILLE2010]
2.4. Recommended structure for SRS documents
2.5. Actor Customer
2.6. Generalization relationship between actors
2.7. Use case example
2.8. An «extend» relationship between use cases.
2.9. Sample usage of extension points.
2.10. Use cases B and C are extracted from larger use case A into separate use cases ([UML-DIAGRAMS.ORG]).
2.11. Use case C is extracted from use cases A and B to be reused by both use cases using UML include relationship ([UML-DIAGRAMS.ORG]).
2.12. A use case including several use cases.
2.13. Overview of use case packages.
2.14. All identified use cases on a single diagram.
2.15. Overview of customer use cases.
2.16. Use case UC001
2.17. Use case UC002
2.18. Use case UC003
2.19. Use case UC004
2.20. Use case UC005
2.21. Use case UC006
2.22. Use case UC007
2.23. Use case UC008
2.24. Overview of administrator use cases.
2.25. Use case UC009
2.26. Use case UC011
2.27. Use case UC012
2.28. Use case UC013
2.29. Use case UC014
2.30. Overview of manager use cases.
2.31. Use case UC015
2.32. Use case UC016
2.33. Use case UC017
2.34. Activity diagram for use cases Browse/Search and Purchase Order
2.35. Activity diagram sample with lot of features ([SPARXSYSTEMS.COM])
2.36. Sequence diagram of the activity Checkout
2.37. Call accept() if balance > 0, call reject() otherwise [UML-DIAGRAMS.ORG]
2.38. Post comments if there were no errors [UML-DIAGRAMS.ORG]
2.39. Potentially infinite loop [UML-DIAGRAMS.ORG]
2.40. Web customer and Bookshop use (reference) interaction Checkout [UML-DIAGRAMS.ORG]
2.41. Communication diagram of the online bookstore's find book and checkout activities
3.1. Context model of the online store.
3.2. Use cases describing interactions to Bank and Shipping system (external systems).
3.3. Use cases describing interactions to Accounting system (external systems).
3.4. Use cases describing interactions to Accounting system (external systems).
3.5. Activity diagram of the use case Place Order and related activities
3.6. Class Customer—details suppressed
3.7. Class Customer—analysis level details.
3.8. Class Product is an abstract class
3.9. Math is utility class having static attributes and operations (underlined)
3.10. Interface Entity
3.11. Interface ProductDetails is realized (implemented) by Product.
3.12. Interface Product is used (required) by Order.
3.13. DateTime data type
3.14. Structured data type Address
3.15. Attributes of the Product contains an attribute of data type Money.
3.16. Primitive data type PersonalName.
3.17. Enumeration CurrencyType.
3.18. Attributes of the Product class are Name, Description and UnitPrice
3.19. Attribute multiplicities
3.20. Association relationship overview diagram [UML-DIAGRAMS.ORG]
3.21. Association between Customer and Order with association ends is placed by and places.
3.22. Both ends of association have unspecified navigability [UML-DIAGRAMS.ORG]
3.23. A2 has unspecified navigability while B2 is navigable from A2 [UML-DIAGRAMS.ORG]
3.24. A3 is not navigable from B3 while B3 has unspecified navigability [UML-DIAGRAMS.ORG]
3.25. A4 is not navigable from B4 while B4 is navigable from A4 [UML-DIAGRAMS.ORG]
3.26. A5 is navigable from B5 and B5 is navigable from A5 [UML-DIAGRAMS.ORG]
3.27. A6 is not navigable from B6 and B6 is not navigable from A6 [UML-DIAGRAMS.ORG]
3.28. Search Service has a Query Builder using shared aggregation
3.29. Composition example: Order is composed of OrderItems
3.30. Association class ProductSelection with details suppressed
3.31. Anonymous instance of the Customer class.
3.32. Instance book of the Book class has slots with values specified.
3.33. An object diagram that shows runtime instances of some classes
3.34. Initial domain classes
3.35. Product is part of ShoppingCart
3.36. Initial domain model
3.37. Revised domain model with supporting data types
3.38. Domain model after introducing Bookshelf
3.39. State machine diagram of the class ShoppingCart
3.40. State machine Order
3.41. Elements of a robustness diagram
3.42. Robustness diagram for Search product
3.43. Robustness diagram for Place order
3.44. Sequence diagram with bookshelf
3.45. Sequence diagram without bookshelf
4.1. Overall MVC-based architecture
4.2. Architecture described using a package diagram
4.3. Architecture described using a package diagram, revised
4.4. Interface ProductDetails is provided by Product.
4.5. Interface Product is used (required) by Order.
4.6. Delegation connector from the delegating port to the simple port of SearchEngine
4.7. Assembly connector between simple ports of Customer and Shipper and Shipper and Scheduler components
4.8. Component UserService realized by both UserServlet and UserDAO
4.9. Deployment diagram
5.1. Domain model
5.2. First version of our design model
5.3. Second version of our design model
5.4. Sequence diagram of order creation
5.5. Data Access Object
5.6. Data Access Object sequence diagram
5.7. DAO with abstract factory
5.8. DAO with abstract factory sequence diagram
5.9. Interface ProductDAO
6.1. Profile EJB [UML-DIAGRAMS.ORG]
6.2. Profile Servers [UML-DIAGRAMS.ORG]
6.3. EJB Profile shown as a package with URI attribute [UML-DIAGRAMS.ORG]
6.4. Metaclass Component [UML-DIAGRAMS.ORG]
6.5. Stereotype Computer extends metaclass Device [UML-DIAGRAMS.ORG]
6.6. Servlet Stereotype extends Component [UML-DIAGRAMS.ORG]
6.7. Stereotype Servlet with attached custom icon [UML-DIAGRAMS.ORG]
6.8. Actor is extended by stereotype Web Client with attached custom icon [UML-DIAGRAMS.ORG]
6.9. Device extended by Server stereotype with tag definitions and custom icon [UML-DIAGRAMS.ORG]
6.10. Stereotype «Servlet» applied to the model element SearchServlet [UML-DIAGRAMS.ORG]
6.11. Servlet stereotype applied to the class SearchServlet [UML-DIAGRAMS.ORG]
6.12. Servlet stereotype applied to the class SearchServlet [UML-DIAGRAMS.ORG]
6.13. «Web Client» stereotype applied to the Geek actor [UML-DIAGRAMS.ORG]
6.14. Computer stereotype with tags applied to class [UML-DIAGRAMS.ORG]
6.15. Abstract stereotype Session EJB is specialized by stereotypes Stateless EJB and Stateful EJB [UML-DIAGRAMS.ORG]
6.16. Stereotype Computer with tag definitions for vendor, CPU, and memory [UML-DIAGRAMS.ORG]
6.17. Stereotype Computer applied using "traditional" tag values notation [UML-DIAGRAMS.ORG]
6.18. Stereotype Computer applied with tag values in compartment [UML-DIAGRAMS.ORG]
6.19. Stereotype Computer applied with tag values in comment note [UML-DIAGRAMS.ORG]
6.20. Metaclass Class is extended by stereotype Customer [UML-DIAGRAMS.ORG]
6.21. Required extension of metaclass Component by stereotype WebService [UML-DIAGRAMS.ORG]
6.22. Stereotype Provider extends either (or both?) Interface or Class metaclasses [UML-DIAGRAMS.ORG]
6.23. Metaclass Component is referenced (imported) by profile Servlets [UML-DIAGRAMS.ORG]
6.24. Profiles Java and Servlets applied to package WebApplication [UML-DIAGRAMS.ORG]
6.25. Simplified example of the unofficial Java EJB 3.0 Profile [UML-DIAGRAMS.ORG]
7.1. SoaML UML Profile - Contracts
7.2. SoaML UML Profile - Services
7.3. SoaML UML Profile - Service Data
7.4. Shipping service with two customers
7.5. ShippingService service interface
7.6. Service interfaces of a compound service
7.7. MessageTypes in purchase order processing

List of Tables

1.1. UML elements that can have frames
3.1. UML interpretations of classes
3.2. Multiplicity examples
3.3. Optional modifiers for properties
3.4. States of a shopping cart
3.5. Stimuli of a shopping cart
5.1. Class Order
5.2. Class Manager

List of Examples

2.1. Non-functional requirements for the case study.