SWE © Solomon Seifu 2010 1 ELABORATION. SWE © Solomon Seifu 2010 2 Lesson 10 Use Case Design.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Advertisements

Deliverable #8: Detailed Design - Overview due: Wednesday, 7 March All Deliverable materials are to be posted into Team Concert. Your to.
By Philippe Kruchten Rational Software
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Chapter 6: Using Design Patterns
Use-case Modeling.
Software Testing and Quality Assurance
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
Sharif University of Technology1 Design and Use-case Realization Software Engineering Laboratory Fall 2006.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
Use Case Analysis – continued
Course Instructor: Aisha Azeem
Chapter 10: Architectural Design
The chapter will address the following questions:
Architectural Design.
System Design Chapter 8. Objectives  Understand the verification and validation of the analysis models.  Understand the transition from analysis to.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
UML - Development Process 1 Software Development Process Using UML (2)
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
Slide 1 Wolfram Höpken RMSIG Reference Model Special Interest Group Second RMSIG Workshop Methodology and Process Wolfram Höpken.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
An Introduction to Software Architecture
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 11 Subsystem Design.
Requirement Engineering. Review of Last Lecture Problems with requirement Requirement Engineering –Inception (Set of Questions) –Elicitation (Collaborative.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 7 Use Case Analysis.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Lab 04.
Approaching a Problem Where do we start? How do we proceed?
Systems Analysis and Design in a Changing World, 3rd Edition
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
Introduction to Rational Rose 2000 v6.5 Copyright © 1999 Rational Software, all rights reserved 1 Rational Rose 2000 Class Diagrams.
The Static Analysis Model Class Diagrams Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
Design Analysis builds a logical model that delivers the functionality. Design fully specifies how this functionality will be delivered. Design looks from.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
UML Diagrams: The Static Model Class Diagrams. The Static Model Define the static structure of the logical model Represent classes, class hierarchies.
Object-Oriented Analysis and Design. Lesson 1: Introduction to Software Engineering.
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
What is a Structural Model?
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Software Design: Principles, Process, and Concepts Getting Started with Design.
Introduction to OOAD and the UML
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 6: Using Design Patterns.
1 Chapter 5:Design Patterns. 2 What are design pattern?  Schematic description of design solution to recurring problems in software design and,  Reusable.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented 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.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1 Use Case Analysis – Part 4 Analysis Mechanisms.
Interface Concepts Modeling Core Team
UML Diagrams: The Static Model Class Diagrams
Analysis models and design models
An Introduction to Software Architecture
Copyright 2007 Oxford Consulting, Ltd
Design Yaodong Bi.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Use Case Analysis – continued
Design.
Software Development Process Using UML Recap
Presentation transcript:

SWE © Solomon Seifu ELABORATION

SWE © Solomon Seifu Lesson 10 Use Case Design

SWE © Solomon Seifu Requirements Analyst ArchitectDesigner Requirements Analysis Architecture Analysis Use Case Analysis Architecture Design Use Case Design Subsystem Design Class Design

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Goals) Describe our classes, and their relationships to other classes or subsystems, in a manner that now takes all technology concerns into account Transform each business abstraction in our system (i.e., the analysis classes) into one or more design classes that are implementable representations, taking into account the properties of the target execution environment

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Goals) (Cont.) Use subsystems, interfaces and facades in our design to decouple the subsystems in our system Refine our sequence, communication and VOPC based taking into account subsystems, interfaces and facades Understand reuse considerations, especially the reuse of design patterns in design mechanisms

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Goals) (Cont.) Come up with design classes that are implementable representations In use case design, we want to express, in greater detail, how we will approach the implementation so that the actual programming is a matter only of language and platform issues

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Steps) (Cont.) 1. Refine use case realization Sequence diagrams Communication diagrams, and VOPC 2. Describe interactions between design objects Provide as much detail as possible 3. Simplify sequence diagram using subsystems 4. Use CRC to refine message flows 5. Evaluate your results

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Incorporate Design Classes) (Cont.) Identify design level classes that refine or extend the analysis level classes in the use-case realization (analysis)  Incorporate into the use-case realization refined diagrams: Sequence diagrams Communication VOPC diagram Make use of CRC cards

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Use CRC Cards) (Cont.) CRC Card (Front Side) Class NameClass Type (Abstract, Concrete, etc.) Brief DescriptionAssociated Use Case ResponsibilitiesCollaborators

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Use CRC Cards) (Cont.) CRC Card (Back Side) AttributesRelationship with other classes Generalization (is-a) Operations Aggregation/Composition (has-a) Association

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Create the Subsystems) For each analysis class that has been replaced by a subsystem, replace the class with the subsystem interface in all diagrams. > BookCatalogDatabase > BookCatalogDatabase IBookCatalogDatabase ___________ search()

SWE © Solomon Seifu  Design elements replace their corresponding analysis classes in the use case realizations  This involves refining subsystem responsibilities as well as updating messages on interaction diagrams and relationships on VOPC diagrams SWE: Elaboration - Use Case Design (Refinements) (Cont.)

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Refinements [Before Incorporating Subsystem Interface])

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Refinements [After Incorporating Subsystem Interface])

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Refinements [After Incorporating Subsystem into VOPC])

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Refinements [Distribute Behavior]) Refine the analysis sequence diagram(s) for the use-case by going through the flow one step at a time and deciding which design element/actor interactions are necessary to fulfill the step The Use Case design scenario diagram must incorporate Subsystems and Facades

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Refinements [Distribute Behavior to Design Elements Example]) Interfaces

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Refinements [Describe Processing Resulting from Messages]) Describe what an object does when it receives a message. Attach note or comment to operation The objective is to be as detailed as possible so that we are getting closer to implementation Returns book object corresponding to bookId parameter.

SWE © Solomon Seifu Incorporate architectural design mechanisms into use case realizations This involves adding additional design classes, and updating messages and relationships Architectural design mechanisms represent well established patterns of behavior SWE: Elaboration - Use Case Design (Refinements) (Cont.)

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Refinements [Incorporate Architectural Design Mechanisms]) Use Mechanism maps from architectural analysis and design  For example persistence security distribution Annotate existing interaction diagrams describing where mechanisms come into play

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Refinements [Architectural Design Mechanisms Persistence Example]) Note each class that needs to be persistent Verify message to persistency subsystem interface Verify return object shown and included in sequence diagram interactions

SWE © Solomon Seifu 2010 SWE: Elaboration - Use Case Design: Refinements (Architectural Mechanisms Persistence Example)

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Discovery of New Flows) As sequence diagrams are detailed, other alternate flows may be found Describe such flows with notes or additional sequence diagrams Often, more exceptions are found that were not thought of in analysis  E.g., handling timeouts of nodes or connections which cease to work or erroneous inputs

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Discovering Common Subflows) (Cont.) If new “common subflows” are found, they are candidates for encapsulation into subsystems Abstracting out “common subflows” provides simplification of interaction diagrams. I.e., levels of abstraction--show details in subsystem or in own interaction diagram.

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (When to Encapsulate Sub-Flows) The sub-flow occurs in numerous use-case realizations Sub-flow has potential reuse Sub-flow is complex and requires special domain or technical knowledge There is an existing component that already captures the subflow

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Unify Classes and Subsystems) Merge model elements that are similar  Use inheritance to abstract model elements Always modify use-case realizations when modifying model elements  E.g. If a class gets additional operations be sure to update the appropriate sequence diagrams Model element names should describe their function  “self-documenting”  (30 second rule)

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Capturing Implementation Requirements) Identify and capture non-functional requirements to be handled in implementation E.g., “an object of class PaymentRequestProcessing should be able to handle 10 different buyer clients without a perceivable delay for any individual buyer” Inspect all use case realizations for subflows that should be separated into sub use cases or subsystems. Also, unify design elements across use cases to insure they are consistent and non- redundant

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Identify Reuse Opportunities ) Purpose  To identify where existing subsystems and/or components may be reused based on their interfaces Steps  Look for similar interfaces  Modify new interfaces to improve the fit  Replace candidate interfaces with existing interfaces  Map the candidate subsystem to existing components

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Identify Reuse Opportunities) Internal to the system being developed  Recognized commonality across packages and subsystems  Example: E-Commerce components Customer Management Order Management Shopping Cart External to the system being developed  Commercially available components  Components from a previously developed application

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Identify Reuse Opportunities) (Cont.) Strategy  Begin the software process with an identification of the levels at which you will be creating or re-using assets  Classes are not the only level of granularity  There are higher levels of reuse corresponding to larger-grained design elements  General practice now to start with a higher level of reuse than the class  In the next set of slides, we will be looking at these reuse levels

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Identify Reuse Opportunities) (Cont.) ? Parts not designed to Be reused but are reused anyways Take candidate reusable elements and make them reusable When application is upgraded, the old version can be replaced with reusable ones

SWE © Solomon Seifu SWE: Elaboration - Use Case Design (Identify Reuse Opportunities) Reuse Levels Class Inheritance Hierarchy Aggregation Hierarchy Cluster (Subsystem) Framework Component Pattern Generic Architecture

SWE © Solomon Seifu Use Case Design Document

SWE © Solomon Seifu Use Case Design Exercise

SWE © Solomon Seifu Use Case Design Exercise Answer

SWE © Solomon Seifu 2010 SWE: Elaboration - Use Case Design (Wholeness) During use case design the relationship of classes are described in a manner that takes into account the technology and the implementation platform  Describe in detail the attributes and operations of a class with arguments and return parameters  Identify the cardinality between classes i.e., how one instance of a given class is associated with one or more instances of another class

SWE © Solomon Seifu 2010 Refine the use case realizations i.e.,  Sequence diagrams  Communication diagrams, and  VOPC to ensure that the model is implementable Use interfaces and facades between classes and in sequence & communication diagrams SWE: Elaboration - Use Case Design (Wholeness) (Cont.)