From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.

Slides:



Advertisements
Similar presentations
Object-Oriented Software Engineering Visual OO Analysis and Design
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
By Philippe Kruchten Rational Software
4+1 View Model of Software Architecture “Software architecture” course Presented By: Mazeiar Salehie October 2004.
UML: Use Cases Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
Mastering Object-Oriented Analysis and Design with UML Module 4: Analysis and Design Overview.
Object-Oriented Analysis and Design
Introduction To System Analysis and Design
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
Unified Modeling (Part I) Overview of UML & Modeling
© Copyright Eliyahu Brutman Programming Techniques Course.
Sharif University of Technology1 Design and Use-case Realization Software Engineering Laboratory Fall 2006.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Object Oriented Analysis and Design Using the UML
What is Software Architecture?
Object Oriented Software Development
Design Patterns Discussion of pages: xi-11 Sections: Preface, Forward, Chapter
Why Analysis Process Refer to earlier chapters Models what the system will do makes it easier for understanding no environment considered (hence, system.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Rational Unified Process Fundamentals Module 4: Disciplines II.
An Introduction to Software Architecture
University of Utah SoCCS Lecture 61 Architecture – An Introduction CS Lecture 6 Nathan Dykman.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
RUP Design RUP Artifacts and Deliverables
Architecting Web Services Unit – II – PART - III.
Introduction To System Analysis and Design
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Architectural Blueprints The “4+1” View Model of Software Architecture
1 Introduction to Software Engineering Lecture 1.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Introduction to OOAD & Rational Rose cyt. 2 Outline RUP OOAD Rational Rose.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Requirement Engineering Virtusa Training Group 2004 Trainer: Ojitha Kumanayaka Duration : 1 hour.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
4+1 View Model of Software Architecture
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
Fall 2007 Week 9: UML Overview MSIS 670: Object-Oriented Software Engineering.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Gerhard Dueck -- CS3013Architecture 1 Architecture-Centric Process  There is more to software development then going blindly through the workflows driven.
Chapter – 1. The UML Approach USECASE DRIVEN ARCHITECTURE CENTRIC ITERATIVE & INCREMENTAL.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Introduction to OOAD and UML
Software Architecture
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Architecting Web Services
Unified Modeling Language
Software Architecture
Architecting Web Services
Recall The Team Skills Analyzing the Problem (with 5 steps)
Unified Modeling Language
Chapter 0 : Introduction to Object Oriented Design
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
Applying Use Cases (Chapters 25,26)
Team Skill 6 - Building The Right System Part 1: Applying Use Cases
Applying Use Cases (Chapters 25,26)
Segments Introduction: slides minutes
From Use Cases to Implementation
Software Architecture
Presentation transcript:

From Use Cases to Implementation 1

Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy to follow them into design and then into code. E.g., “Only users with a valid password can access the system.”  For these requirements it is also easy to use the statement of the requirement as a basis for testing.  For some requirements, however, this is not quite so easy. E.g., “The system shall provide ½ second response time for all trivial user requests.” 2

Orthogonality between Requirements and Design  The form of the requirements and the form of the design and implementation are different.  There is no one-to-one mapping that makes implementation and validation easier. 3

The Orthogonality Problem  Requirements speak about real-world items, but code speaks about stacks, queues, and algorithms. These are different languages.  Certain requirements, e.g., performance, have little to do with the logical structure of the code but lots to do with the process structure, or how the various pieces of the code interact, how fast a particular piece of code runs, how often we get interrupted in a given module, etc. 4

The Orthogonality Problem (Cont’d)  Other functional requirements require that a number of system elements interact to achieve the functionality. The implementation might be distributed throughout the code.  Good system design is not driven by the ease of mapping requirements into design but by other factors, such as, optimizing the use of scarce resources, reusing architectural patterns, designs or code, or utilizing purchased components. 5

Object Orientation  Object oriented technology has helped to reduce the magnitude of the orthogonality problem through the use of abstraction, information hiding, inheritance, etc.  OO technology encourages designs which match the real world descriptions of the problem.  However, if carried too far a functionally oriented design might result rather than one that is object oriented. 6

The Use Case as a Requirement  If the granularity of requirements is too small it may be difficult to look at system behavior as a whole to see that it does all the right things in the right order.  Properly written use cases which provide sequences of actions between the system and the user help with this problem.  In this way use cases help with the design process. 7

Modeling Software Systems  Today’s nontrivial software systems are extraordinarily complex undertakings.  To deal with the complexity, a useful technique is to abstract the system into a simple model to allow us to think about the system without having to deal with the details.  Many different aspects of a system can be modeled. Each contributes to our understanding of one aspect and taken together they allow us to consider the system architecture as a whole. 8

The Architecture of Software Systems  According to Shaw and Garlan [1996], software architecture involves the Description of elements from which systems are built, interactions amongst those elements, patterns that guide their composition, and constraints on those patterns.  We use architecture to help us:  Understand what the system does  Understand how the system works  Think and work on pieces of the system  Extend the system  Reuse part(s) of the system to build another one 9

The Architecture of Software Systems (Cont’d)  Architecture is the tool by which decisions are made about what and how the system will be built.  Dominant architectures, used for previous similar problems, can help kick start the process.  Different groups of stakeholders may require different views of the architectural model showing their different perspectives. 10

The “4+1” View of Architecture Logical View Process View End User Functionality System Integrators Performance Scalability Throughput Designers/Testers Behavior Implementation View Deployment View Programmer Software management System Engineering System topology Delivery, installation Communication Use-case View 11

The “4+1” View of Architecture (Cont’d)  The logical view addresses the functionality of the system. It represents the logical structure of the system in terms of subsystems and classes.  The implementation view describes a static view of the bits and pieces that are relevant to the implementation of the system: source code, libraries, object classes, etc. 12

The “4+1” View of Architecture (Cont’d)  The process view(s) describe operations of the system and are particularly useful for systems which have parallel tasks, interfaces with other systems, etc.  The deployment view allocates the implementation elements to the supporting infrastructure, such as operating systems and computing platforms 13

The “4+1” View of Architecture (Cont’d)  The use-case view presents key use cases of the use-case model, drives the design, and ties all the various views of the architecture together 14

Realizing Use Cases in the Design Model  Use cases are realized via collaborations, which are societies of classes, interfaces, subsystems, or other elements that cooperate to achieve some behavior.  It is within the collaborations that you see the systematic and aggregate behavioral aspects of the system. 15

Realizing Use Cases in the Design Model > Use-case Model Use case Design Model Collaboration Participating classes 16

Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static structure of the system (the classes, elements, interfaces, and subsystems) Behavioral – specifies the dynamics of how the elements of the system work together.  Class diagrams can represent the structural aspects and sequence diagrams can model the behavioral aspects. 17

Using Collaborations to Realize Sets of Individual Requirements  Even if the requirements are not expressed as use cases we can use this technique to create a map between sets of requirements and collaborations.  Design elements that support nonfunctional requirements, such as safety or performance, can also be modeled in this way. 18

Model of Requirements Implementation as a Collaboration Sync Clock > Requirements - The clocks shall... - Every 24 hours... - Synchronization occurs... Design Model Collaboration Participating classes 19