UML - Development Process 1 Software Development Process Using UML
UML - Development Process 2 Software Development Methods consist of - a set of modeling notations (graphical or textual) a process (technique) for generating models + typically identify analysis and design as major substeps process and models should be tightly integrated should include extensive CASE tool support should provide usage guidelines and heuristics typically defined by one or more books
UML - Development Process 3 Software Development Best Practices Proven approaches to software development Iterative Development Manage Requirements Component Based Architecture Visually Model Software Control Changes to Software
UML - Development Process 4 Iterative and incremental process Continuous discovery, invention and implementation Project Risks identified early Clarify Requirements early Enables user feedback Continuous Testing enables objective assessment of project Team workload spreaded-out evenly Lessons Learned used to improve process in later iterations
UML - Development Process 5 Use-Case Driven Use Case Model describes complete system functionality Replaces traditional functional specification of the system Used not only for requirements capture, but all along the development process: Developers create development and implementation models based on UC Developers review each successive model for conformance to UC Testers test implementation to ensure it correctly implements UC Each iteration is driven by selected use cases through all activities from requirement to design and testing resulting in an increment
UML - Development Process 6 Requirements Capture
UML - Development Process 7 Use Case Model Model of the system's intended functions and its surroundings Serves as contract between customer and developers. Serve as a unifying thread throughout system development. Result of the Requirements workflow Used as input to Analysis & Design and Test workflows.
UML - Development Process 8 Detail Use Cases Start with a short, step-by-step description of the use-case flow of events, and gradually make it more detailed. Describe how the use case start and what is the signal that activates the use case. Describe how the use case terminate Describe what will reside inside the system, and what will reside outside the system.
UML - Development Process 9 Detail Use Cases (cont.) Describe the interaction between use case and actors. Describe how the use case exchange data with an actor. Describe any optional situations in a use case's flow of events
UML - Development Process 10 Use Case Details Name The name of the use case. Brief Description A brief description of the role and purpose of the use case. Flow of Events A textual description of what the system does in regard to the use case. Understandable by the customer. Include the main flow of events as well as the alternate flow of events Special Requirements A textual description that collects all requirements, such as non-functional requirements, on the use case, that are not considered in the use-case model, but that need to be taken care of during design or implementation.
UML - Development Process 11 Use Case Details Preconditions A textual description that defines the state of the system prior to the use case may being performed. Postconditions A textual description that defines a list of possible states the system can be in immediately after a use case has finished. Extension points A list of locations within the flow of events of the use case at which additional behavior can be inserted using the extend- relationship. Relationships The relationships, such as communicates-associations, include-, generalization-, and extend-relationships, in which the use case participates.
UML - Development Process 12 Use Case Details - Example Name : Register for Courses Description: This use case is started by the actor student. It provides the capability for the student to manage his registration to a course for a semester, and to have the billing information sent to the Billing Office. Main Flow of Events: The student enters his Id. The system verifies the student Id, and prompt the student to select the current or a future semester. The student selects the semester. The system prompts the student to select the desired activity (create a registration, review a registration, change a registration). Once completed the student indicates that the activity is completed. The system acknowledge and displays the result of the activity. The system sends the billing information to the billing system for processing. Alternative Flow of Events: 1- If an invalid Id is entered, the system will not allow access to the registration system and displays an error message to the student.
UML - Development Process 13 Use Case Details – Example (cont.) Special Requirements: The student should be able to access the system through the web. It should take less than 30 seconds to display the web page. A student can register to a maximum of 5 courses per semester. Pre-Conditions: The system is operational. Post-Conditions: The student information has been updated. His bill is sent. Extension Points: None Relationships: None
UML - Development Process 14 Prioritize Use Cases Goals: Define the set of scenarios and use cases to be implemented in each iteration. Prioritization Define the set of scenarios and use cases that represent some significant, central functionality. Define the set of scenarios and use cases that have a substantial architectural coverage or that stress or illustrate a specific, delicate point of the architecture. Assess which use cases help mitigate high risk items
UML - Development Process 15 Object Modeling Goals: Identify the key abstractions that the system must handle. Identify the classes which perform a use case’s flow of events. Distribute the use case behavior to those classes, using use-case realizations. Identify the responsibilities, attributes and associations of the classes.
UML - Development Process 16 Find Classes from Use Cases Find Entity Classes stores of information in the system typically used to represent the key concepts Find Boundary Classes User interface classes classes which intermediate communication with human users of the system System interface classes classes which intermediate communication with other system Device interface classes classes which provide the interface to devices (such as sensors), which detect external events Find Control Classes Control classes provide coordinating behavior in the system
UML - Development Process 17 Enforce Consistency For each new class found, make sure that there is no other class with same responsibility As new classes are found, ensure they have consistent and unique responsibility. Otherwise split the object into two A class with only one responsibility is not a problem, per se, but it should raise questions on why it is needed. Be prepared to challenge and justify the existence of all classes.
UML - Development Process 18 Analysis In depth Analyze of requirements: Scenario Diagram from Use Cases Structure the Use Cases Start reasoning about the internal of the system Understand the main concepts of the problem Focus on what is the problem not how to solve it Develop Analysis Model: Class Diagram Three main types of classes stereotypes may be used: Boundary Classes: used to model interaction between system and its actors Entity Classes: used to model information and associated behavior deirectly derived from real-world concept Control Class: used to model business logic, computations transactions or coordination. Use Interaction Diagram to distribute behavior among classes
UML - Development Process 19 Initial Process Planning Overall iteration numbers and iteration time Use Case Model Description of all use cases Prioritization of all use cases Detailing of high priority use cases Nominal path Few alternatives scenarios Object Model Start with Entity Classes Sequence Model Nominal scenario of high priority use cases Identify Boundary and control classes Refine Class Model