Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XIV. From Requirements to Design in the UP.

Slides:



Advertisements
Similar presentations
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Advertisements

Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
Copyright ©2004 Cezary Z Janikow 1 Domain Model n Visualization of entities and relationships n In UP presented as Class Diagrams – Classes, Relationships,
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.
OO Development Process. UML and Process UML standardizes notation, not process –Increase likelihood of widespread acceptance There is significant variability.
6/8/991 Analysis Tuesday 09/14/99 Revised: September 11, 2000 (APM)
Domain model: visualizing concepts
NJIT 1 Domain Model Visualizing Concepts Chapter 9 Applying UML and Patterns Craig Larman.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
From Inception to Elaboration Chapter 8 Applying UML and Patterns -Craig Larman.
COMP 350: Object Oriented Analysis and Design Lecture 2
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
Chapter 9 Domain Models 1CS6359 Fall 2012 John Cole.
Week 3 Iteration 1 Domain Models System Sequence Diagrams.
חוזים – Contracts 1. Larman – Chapter 10 – SSDs 10.2 What are System Sequence Diagrams? (introduction) Use cases describe how external actors interact.
9/18/011 Software Requirements Analysis and Design (Continued)
Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative Development Part III Elaboration Iteration I – Basic1.
Chapter 9 Domain Models. Domain Model in UML Class Diagram Notation A “visual dictionary”
UML - Development Process 1 Software Development Process Using UML (2)
SOFTWARE ENGINEERING BIT-8 APRIL, 16,2008 Introduction to UML.
Object-Oriented Analysis and Design An Introduction.
TK2023 Object-Oriented Software Engineering CHAPTER 5 DOMAIN MODELLING.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Chapter 7 Applying UML and Patterns Craig Larman
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
DOMAIN MODEL- VISUALIZING CONCEPTS Identify conceptual classes related to the current iteration requirements. Create an initial domain model. Distinguish.
Lecture 13-17, chitkara university.  Gives a conceptual framework of the things in the problem space  Helps you think – focus on semantics  Provides.
Chapter 9 Applying UML and Patterns -Craig Larman
SYS466: Analysis and Design Using OO Models Domain Class Diagram.
Lecture 6: Structural Modeling
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
Chapter 1 Applying UML and Patterns. The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary.
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
Elaboration Iteration 1- Part 1
Repetition af Domæne model. Artifact influence emphasizing the Domain Model.
DOMAIN MODEL: ADDING ATTRIBUTES Identify attributes in a domain model. Distinguish between correct and incorrect attributes.
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Domain Model A representation of real-world conceptual classes in a problem domain. The core of object-oriented analysis They are NOT software objects.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
Larman chapter 101 Domain Model: Visualizing concepts Larman chapter 10.
Chapter 8: Iteration 1 - Basics.  We review here the requirements for first iteration of our case studies. They are a subset of the requirements as described.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
OO DomainModeling With UML Class Diagrams and CRC Cards Chapter 6 Princess Nourah bint Abdulrahman University College of Computer and Information Sciences.
Chapter 8. Iteration 1, Elaboration: book view differs from reality for pedagogical reasons not doing “risk-driven” up front uses many OOA/D skills should.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Object Oriented Analysis & Design By Rashid Mahmood.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVII. Verification and Validation.
Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,
5 Systems Analysis and Design in a Changing World, Fourth Edition.
TK2023 Object-Oriented Software Engineering
Elaboration popo.
Chapter 9 Domain Models.
Domain Model: Visualizing concepts
OO Domain Modeling With UML Class Diagrams and CRC Cards
COMP 350: Object Oriented Analysis and Design Lecture 2
OO Domain Modeling With UML Class Diagrams and CRC Cards
Chapter 20 Object-Oriented Analysis and Design
SYS466 Domain Classes – Part 1.
Analysis models and design models
Software Design Lecture : 15.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Week 3 Iteration 1 Domain Models System Sequence Diagrams.
Week 3 Iteration 1 Domain Models System Sequence Diagrams.
Software Development Process Using UML Recap
Domain Model: Visualizing Concepts
Other System Requirements
Presentation transcript:

Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XIV. From Requirements to Design in the UP

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 2 Outline Elaboration phase Characteristics and principles leading this phase; artifacts to be derived Describe System Sequence Diagram Defining conceptual model Conceptual classes and “techniques” to identify them

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 3 Elaboration activities What is developed during the elaboration phase? Majority of requirements are discovered and stabilized Major risks are mitigated or retired The core architectural elements are implemented and proven It consists of around 2-4 iterations Each iteration should not last longer than six weeks and should be timeboxed The code developed constitutes a prototype (this is not a trow-away prototype development process) Elaboration in one sentence: Build the core architecture, resolve the high risk elements, define most requirements, and estimate the overall schedule and resources (C.Larman)

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 4 Elaboration best practices Do short timeboxed risk-driven iterations Start programming early Adaptively design, implement, and test the core and risky parts of the architecture Test early, often, realistically Adapt based on feedback from tests, users, developers Write most of the use cases and other requirements in detail, through a series of workshops, once per elaboration iteration

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 5 Which functionalities we should implement first? Organize requirements and iterations by risk, coverage, and criticality: Risk: includes both technical complexity and other factors, such as uncertainty of effort or usability Coverage: implies that all major parts of the system are at least touched on in early iterations Criticality: refers to functions of high business value Before the first iteration rank each UC Revise ranking before each iteration Risk is the main factor to consider planning the next iteration

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 6 What artifacts may start in elaboration? Domain model: visualization of the domain concepts; it is similar to a static information model of the domain entities Design model: set of diagrams that describes the logical design. Software Architecture Document: a learning aid that summarizes the key architectural issues and their resolution in the design Data Model: this includes the database schemas Test Model: what will be tested and how Implementation Model: source code, executables, database, and so on UI prototypes: user interface, usability models

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 7 Common mistakes in Elaboration Planning more than few months for the phase Planning a single iteration (possible for stable, well-understood problems) No production of code Consider elaboration a requirement phase carried on before construction Trying to derive a full and careful design before programming There is no early and realistic testing...

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 8 Elaboration – SSD Define System Sequence Diagram (SSD) A SSD is a picture that shows, for a particular scenario or UC, the events that external actors generate, their order, and inter-system events. All systems are treated as black-box. Interest on events that cross the system boundary from actors to systems. Example deriving an SSD from a UC In general SSDs can be used to show only the main success scenario, nevertheless relevant alternative scenarios should be represented

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 9 Domain model A domain mode illustrates meaningful (to the modelers) conceptual classes in a problem domain; it is the most important artifact to create during OO analysis A domain model is a representation of real-world conceptual classes, not of software components. It is not a set of diagrams describing software classes, or software objects with responsibilities

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 10 Domain model and UML Using UML notation, a domain model is illustrated with a set of class diagram in which no operations are defined (sort of E/R diagram). It may show: Conceptual classes Association between conceptual classes Attributes of conceptual classes

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 11 Domain model and UML Lets draw an example together flight booking system

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 12 Conceptual classes The domain model illustrates conceptual classes or vocabulary in the domain. Formally, a conceptual class may be considered in terms of its symbol, intension, and extension: Symbol – words or images representing a conceptual class Intension – the definition of a conceptual class Extension – the set of examples to which the conceptual class applies Flight Code taking-off time landing time “A flight represents a connection operated by an airline company between two airport. It ha a code a departing time and a landing time” :Flight1 AZ :Flight2 AZ :Flight3 AZ

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 13 Domain analysis vs. Structured analysis Software problems can be complex...divide and conques principle is a common strategy to deal with complexity Structured analysis decomposes the problems in terms of functions and processes OO analysis the decomposition is by things or entities in the domain

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 14 How can we identify conceptual classes? It is useful to have “proven” techniques making easier the identification of conceptual classes...We would like to include everything is necessary!!! Rule of thumb: it is better to overspecify a domain model with lots of fine-grained conceptual classes that to underspecify it It is common to forget conceptual classes at the begin...you should it as soon as you discover it It is possible to have conceptual classes with no attributes!! Nevertheless in that case they should have a behavioral role

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 15 How can we identify conceptual classes? We discuss two main strategies to identify conceptual classes have shown their potential: Conceptual Class Category list Identify noun phrases Analysis pattern another possible solution Partial domain models defined by experts for the particular domain

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 16 Conceptual Class Category List Strategy Start the creation of a domain model by making a list of conceptual class reading a cetegory list. Example with the flight reservation system

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 17 Conceptual Class Category List Strategy

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 18 Noun Phrase Identification Strategy Linguistic Analysis on the requirements (Use Cases here) Identify noun and noun phrases in textual descriptions of a domain Mechanical mapping noun-to-class mapping is not possible, words are also ambiguous Weakness of this approach is the imprecision of natural language; different noun phrase may represent the same conceptual class or attribute Lets try with the flight reservation system

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 19 Domain models the case of report objects A report object provide information on other object in the domain model (as for instance a receipt) should we include it in our conceptual model? In general including in the domain model such kind of concept only duplicates information found elsewhere In some case however a report object has a business value (for instance a receipt gives to the client the right to return bought items)

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 20 The case of description conceptual classes A description conceptual class only provides information on instances of other conceptual classes Should we include such kind of classes in the domain model The “item problem” all item instances include information on themselves The item problem can be solved including in the conceptual model a ProductSpecification conceptual class (there will obviously be a relation with the described objects class) When including a description conceptual class: Description is independent from its existence Deleting instances results in a loss of information Reduce redundant or duplicated information

Ingegneria del Software I – A.A. 2006/2007 Andrea Polini 21 Steps in deriving a domain model 1. Apply the discussed strategies to identify relevant conceptual classes 2. Draw them in a domain model 3. Add the associations necessary to record relationship for which there is a need to preserve some memory 4. Add the attributes necessary to fulfill the information requirements