UML - Development Process 1 Software Development Process Using UML (2)

Slides:



Advertisements
Similar presentations
Testing Workflow Purpose
Advertisements

Object-Oriented Analysis and Design
Mastering Object-Oriented Analysis and Design with UML Module 4: Analysis and Design Overview.
Rational Unified Process
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.
NJIT From Inception to Elaboration Chapter 8 Applying UML and Patterns Craig Larman.
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.
Rational Worldwide Software Symposium
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
Copyright  Larry Dribin, Ph.D. SE470_EngFlows_v1.ppt SE470 EngFlows - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage.
Iterative development and The Unified process
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Unified Process Review
Object Oriented Analysis and Design Using the UML
Unified Software Practices v 5.0-D Copyright  1998 Rational Software, all rights reserved 1 /26 RUP Architecture.
Principles of Object Technology Module 1: Principles of Modeling.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Unified Software Development Process (UP) Also known as software engineering process SEP describes how requirements are turned into software Defines who,
RUP Fundamentals - Instructor Notes
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Rational Unified Process (Part 1) CS3300 Fall 2015.
RUP Implementation and Testing
Rational Unified Process Fundamentals Module 4: Disciplines II.
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Object Oriented Design and Analysis Rational Unified Process.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Systems Analysis and Design in a Changing World, 3rd Edition
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.
Object Oriented Analysis and Design using the UML CIS 520 Advanced Object-Oriented Design.
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.
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
The principles of an object oriented software development process Week 04 1.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
Rational Unified Process (RUP)
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
UML - Development Process 1 Software Development Process Using UML.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
Unified Software Practices v 5.0-D Copyright  1998 Rational Software, all rights reserved 1 /26 Rational Unified Process – Part 2 Original slides modified.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Object oriented analysis and design 1 Software Development Life Cycle (SDLC)
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
Iterative development and The Unified process
Unified Process Source & Courtesy: Jing Zou.
UNIFIED PROCESS.
UML: Unified modeling language
Introduction to Software Engineering
Object Oriented Analysis and Design
Rational Worldwide Software Symposium
Rational Unified Process
Rational Worldwide Software Symposium
Software engineering -1
Design Yaodong Bi.
Rational Worldwide Software Symposium
Software Development Process Using UML Recap
Presentation transcript:

UML - Development Process 1 Software Development Process Using UML (2)

UML - Development Process 2 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 Unified Process is a framework based mostly on Objectory Use-Case Driven, Architecture-Centric, Iterative, Incremental

UML - Development Process 3 Use-Case Driven Use Case Model describe complete functionality of system Replaces the 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 4 Architecture Centric Embodies the most significant aspects of the system View of the whole design with the important characteristics made more visible Is usually derived from the key Use Cases of the system, the ones that constitutes the core system functions Evolves in parallel with the Use Cases: as use cases mature, more of the architecture is discovered, which in turn leads to the maturation of more use cases Expressed with Subsystems, Classes, Components.

UML - Development Process 5 Iterative and Incremental Way to divide the work Iterations are steps in the process, and increments are growth of the product Each iteration is aimed at:  implementing a set of use cases  addressing the most important risks In each iteration, developers:  identify and specify the relevant use cases  create a design using the defined architecture  implement the design in components

UML - Development Process 6 Lifecycle Phases Inception Elaboration Construction Transition Process Activities Planning Analysis Design Implementation Integration Testing Activities take place in varying degrees in each phase and iteration

UML - Development Process 7 Inception Elaboration Construction Transition Planning Analysis Architecture Design Integration Testing Implementation

UML - Development Process 8 Inception Elaboration Construction Transition Preliminary Iteration Iteration 1 Iteration 2 Iteration n+1 Iteration n+2 Iteration n+3 Iteration n+4 Iteration m+1 Iteration m+2

UML - Development Process 9 Inception Phase Start with an idea Specify the end-product vision Work the business case for the project Obtain funding Analyze the project to assess scope and size of the effort Plan the work  define inital iteration  define evaluation criteria  assess project risks and risk mitigation plan Takes about

UML - Development Process 10 Elaboration Phase Capture and refine Requirements through Use Cases Explore actors usage of the system by decomposing Use Cases using Sequence Diagram Develop Analysis Model using Class Diagram by detailing about 10% of the Use Cases Model Establish baseline architecture using Class Diagram (with Subsystems, Design Classes), Deployment Diagram, Implementation Diagram Mitigate the significant risks Plan the Construction Phase Takes about fifth of the entire project time

UML - Development Process 11 Construction Phase Build the system in a series of iterations Each iteration is a mini project Develop a software product ready for inital operation (beta release) Capture the remaining Requirements Prioritize Use Cases to be implemented Detail the remaining Use Cases, by completing their realization Refine the Architectural Model by adding new subsystems and detailing existing ones DESIGN DESIGN DESIGN Implementation of the architecture, the subsystems, the classes Perform Unit Testing Integrate System Perform System Testing

UML - Development Process 12 Transition Phase Focus on establishing the product in the operational environment Distribute Beta Release Gather user feedback Refine product per user feedback Re test the system Prepare system rollout Completing all project artifacts  All updated models  User, Operator, System Administrator Manuals Postmortem of the project

UML - Development Process 13 Planning Define scope of Project Define scope of next iteration Identify Stakeholders Capture Stakeholders expectation Build team Assess Risks Plan work for the iteration Plan work for Project Develop Criteria for iteration/project closure/success UML concepts used: initial Business Model, using class diagram

UML - Development Process 14 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 using Activity Diagram Capture functional and nonfunctional requirements  Use Case Model Supplementary requirements  physical, interface, design constraints, implementation constraints

UML - Development Process 15 Analysis Analyze in depth the requirements  Develop Sequence 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.

UML - Development Process 16 Design Refine the Class Diagram Structure system with Subsystems, Interfaces, Classes Define subsystems dependencies Capture major interfaces between subsystems Assign responsibilities to new design classes Describe realization of Use Cases 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

UML - Development Process 17 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

UML - Development Process 18 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

UML - Development Process 19 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

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

UML - Development Process 21 Deployment Packaging the Software Distributing the Software Installing the Software Migration Providing Help and Assistance to Users Acceptance

UML - Development Process 22 Summary of Overall Process 1.Business Model using Activity Diagram 2.Requirements Capture using Use Case Diagram 3.Planning by Use Case Prioritization 4.Requirements Analysis using Use Case Details and Class Diagram 5.Initial Design using Sequence Diagrams and second version of Class Diagram 6.Requirements Analysis using State Diagram 7.Architecture Design using Packages (with Visibility) and Subsystems 8.Design using next level of details for Class Diagram

UML - Development Process 23 Summary of Overall Process (cont.) 9.System Architecture using Deployment Diagram 10.Design using Design Patterns 11.Detailed design using Collaboration Diagram 12.Consolidate all information into Class Diagram 13.Detailed design using Component Diagram 14.Refine all models through iterations 15.Implement the models by translating into code 16.Deploy software within operational environment