Software Development Process Using UML Recap

Slides:



Advertisements
Similar presentations
Requirements Elicitation and Use Case Diagrams
Advertisements

Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Gerhard Dueck -- CS3013Capturing Requirements as Use Cases 1 Capturing the Requirements as use Cases  Requirements Description  We need to describe –The.
Use-case Modeling.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
Development Processes UML just is a modeling technique, yet for using it we need to know: »what do we model in an analysis model? »what do we model in.
SE 555 Software Requirements & Specification1 Use-Case Modeling: Overview and Context.
Copyright  Larry Dribin, Ph.D. SE470_EngFlows_v1.ppt SE470 EngFlows - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage.
7. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Detailed Object-Oriented Requirements Definitions  System Processes—A Use.
Use Case Analysis – continued
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Object Oriented Analysis and Design Using the UML
Chapter 10 Architectural Design
The Design Discipline.
UML - Development Process 1 Software Development Process Using UML (2)
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
ANALYSIS REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Systems Analysis and Design in a Changing World, 3rd Edition
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
Requirements Capture. Four Steps of requirements capture List candidate requirements Understand system context Capture functional requirements Capture.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
A Use Case Primer 1. The Benefits of Use Cases  Compared to traditional methods, use cases are easy to write and to read.  Use cases force the developers.
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Rational Unified Process Fundamentals Module 7: Process for e-Business Development Rational Unified Process Fundamentals Module 7: Process for e-Business.
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
UML - Development Process 1 Software Development Process Using UML.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Gerhard Dueck -- CS3013Analysis 1. Gerhard Dueck -- CS3013Analysis 2 Why analysis?  Yield a more precise specification of the requirements.  Introduce.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1 Use Case Analysis – Part 4 Analysis Mechanisms.
1 Team Skill 3 Defining the System Part 1: Use Case Modeling Noureddine Abbadeni Al-Ain University of Science and Technology College of Engineering and.
Introduction to UML.
Systems Analysis and Design in a Changing World, Fourth Edition
UML Diagrams By Daniel Damaris Novarianto S..
Chapter 1: Introduction to Systems Analysis and Design
UNIT 1.
Recall The Team Skills Analyzing the Problem (with 5 steps)
Object-Oriented Analysis and Design
UML Diagrams Jung Woo.
UML: Unified modeling language
Unified Modeling Language
Chapter 20 Object-Oriented Analysis and Design
Analysis models and design models
An Introduction to Software Architecture
Copyright 2007 Oxford Consulting, Ltd
Chapter 1: Introduction to Systems Analysis and Design
Rational Rose 2000 Instructor Notes Use Case Realization Structure
Software Analysis.
Design Yaodong Bi.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Use Case Analysis – continued
Chapter 6: Architectural Design
Chapter 1: Introduction to Systems Analysis and Design
Design.
Implementation Plan system integration required for each iteration
Presentation transcript:

Software Development Process Using UML Recap

Software Development Process Bird’s Eye View UML is a Notation/Language Need a Software Development Process using UML concepts Many Development methods available or to come (Fusion, CRC, Catalysis, Rational Unified Process, …) Method are more or less formal and heavy depending of type of project Need to adapt Process Framework to project specific needs Use-Case Driven, Architecture-Centric, Iterative, Incremental

Overall Process Business Model using Activity Diagram Requirements capture using Use Case Diagram Planning by Use Case Prioritization Requirements Analysis using Use Case Details and Class Diagram Initial Design using Sequence Diagram and second version of Class Diagram Requirements Analysis using State Diagram Architecture Design using Packages (with Visibility) and Subsystems Design using next level of details for Class Diagram

Overall Process (cont.) System Architecture using Deployment Diagram Design using Design Patterns Detail Design using Collaboration Diagram Consolidate all information into Class Diagram Detail Design using Component Diagram Refine all models through iterations. Implement the models by translating into code. Deploy software within operational environment.

Requirements List candidate requirements textual feature list Understand system context domain model describing important concepts of the context business modeling specifying what processes have to be supported by the system Capture functional and nonfunctional requirements Use Case Model Supplementary requirements physical, interface, design constraints, implementation constraints

Requirements Capture

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.

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.

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

Use Case Details Name Brief Description Flow of Events 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.

Use Case Details Preconditions Postconditions Extension points 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.

Prioritize Use Cases Goals: Prioritization 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

Requirements Artifacts

Analysis

Analysis Analyze in depth the requirements: Scenario Diagram from Use Cases Structure the Use Cases Start reasoning about the internal of the system Develop Analysis Model: Class Diagram and State Diagram Focus on what is the problem not how to solve it Understand the main concepts of the problem 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.

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.

Find Classes from Use Cases 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 Entity Classes stores of information in the system typically used to represent the key concepts Find Control Classes Control classes provide coordinating behavior in the system

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.

Design

Design Refine the Class Diagram Structure system Subsystems, Interfaces, Classes Define subsystems dependencies Capture major interfaces between subsystems Assign responsibilities to new design classes Describe realization of Use Cases Use Sequence and Collaboration Diagrams Assign visibility to class attributes Define Methods signature Develop State diagram for relevant design classes Use Interaction Diagram to distribute behavior among classes Use Design Patterns for parts of the system

Architectural Design Identify Design Mechanisms Refine Analysis based on constraints imposed by implementation environment Characterize needs for specific mechanisms (inter-process communication, real-time computation, access to legacy system, persistence, …) Assess existing implementation mechanisms Identify Design Classes and Subsystems A Subsystem is a special kind of Package which has behavioral semantics (realizes one or more interfaces) Refine analysis classes Group classes into Packages Identify Subsystems when analysis classes are complex Look for strong interactions between classes in Collaboration Diagrams Try to organize the UI classes into a subsystem Separate functionality used by different actors in different subsystems Separate subsystems based on the distribution needs Identify Interfaces of the subsystems

Implementation

Implementation Purpose Define organization of code, in terms of implementation subsystems Implement classes and objects in terms of components source files, binaries, executables, and others Test the developed components as units. Integrate results produced by individual implementers (or teams), into an executable system

Implementation Process Create the Initial Implementation model structure Adjust Implementation Subsystems Decide where to place Executables Define Imports for each implementation subsystems Decide wher to place test subsystems and components Update the Implementation View Evaluate the Implementation Model

Implementation/Integration Distribute the system by mapping executable components onto nodes in the deployment model Implement Design Classes and subsystems through packaging mechanism: package in Java, Project in VB, files directory in C++ Acquire external components realizing needed interfaces Unit test the components Integrate via builds

Testing

Testing The purposes of testing are: To verify the interaction between objects. To verify the proper integration of all components of the software. To verify that all requirements have been correctly implemented. To identify and ensure defects are addressed prior to the deployment of the software

Testing Develop set of test cases that specify what to test in the system many for each Use Case each test case will verify one scenario of the use case based on Sequence Diagram Develop test procedures specifying how to perform test cases Develop test component that automates test procedures

Deployment Producing the Software Output of implementation is tested executables. Must be associated with other artifacts to constitute a complete product: Installation scripts User documentation Configuration data Additional programs for migration: data conversion. In some cases: different executables needed for different user configurations different sets of artifacts needed for different classes of users: new users versus existing users, variants by country or language For distributed software, different sets may have to be produced for different computing nodes in the network

Deployment Packaging the Software Distributing the Software Installing the Software Migration Providing Help and Assistance to Users Acceptance