Model-based Transition from Requirements to High-level Software Design

Similar documents
Architectural Blueprint

Chapter 1: Programming Principles

Modeling Issues Modeling Enterprises. Modeling

Lecture 16: (Architecture IV)

Architectural Blueprint The 4+1 View Model of Software Architecture. Philippe Kruchten

Chapter 1: Principles of Programming and Software Engineering

Object-Oriented Design. Module UFC016QM. and Programming. Objects and Classes. O-O Design Unit 2: Faculty of Computing, Engineering

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : ,

Unit 1 Introduction to Software Engineering

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture

Darshan Institute of Engineering & Technology for Diploma Studies

Responsibilities. Using several specific design principles to guide OO design decisions.

Architectural Design

BDSA08 Advanced Architecture

SOFTWARE MODELING AND DESIGN. UML, Use Cases, Patterns, and. Software Architectures. Ki Cambridge UNIVERSITY PRESS. Hassan Gomaa

Outline of UML and Unified Process. Object Oriented Analysis/Design/Programming UML1.5. Koichiro Ochimizu, JAIST. UML&UP outline 1.

Outline of Unified Process

Software Engineering from a

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

17. GRASP: Designing Objects with Responsibilities

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization

Components Based Design and Development. Unit 3: Software Design Quick Overview

The Analysis and Design of the Object-oriented System Li Xin 1, a

CS504-Softwere Engineering -1 Solved Subjective Midterm Papers For Preparation of Midterm Exam

WHAT IS SOFTWARE ARCHITECTURE?

Appendix A - Glossary(of OO software term s)

System Sequence Diagrams. Based on Craig Larman, Chapter 10 and Anuradha Dharani s notes

Architectural Design

Software Engineering with Objects and Components Open Issues and Course Summary

Designing Component-Based Architectures with Rational Rose RealTime

Requirement Analysis

The Process of Software Architecting

COMP 6471 Software Design Methodologies

Architectural Design. Topics covered. Architectural Design. Software architecture. Recall the design process

Object-Oriented and Classical Software Engineering DESIGN 11/12/2017. CET/CSC490 Software Engineering Design CHAPTER 14. Stephen R. Schach.

Some Important Annoucement

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

Introduction to Unified Modelling Language (UML)

UNIT II Requirements Analysis and Specification & Software Design

Presenter: Dong hyun Park

CS350 Lecture 2 Requirements Engineering. Doo-Hwan Bae

SRI VENKATESWARA COLLEGE OF ENGINERRING AND TECHNOLOGY THIRUPACHUR,THIRUVALLUR UNIT I OOAD PART A

What is Software Architecture

SE 2730 Final Review

Pattern for Structuring UML-Compatible Software Project Repositories

Objectives. Explain the purpose and objectives of objectoriented. Develop design class diagrams

Design of Embedded Systems

Importance of Rational ROSE in Software Development Process Models

Topics in Object-Oriented Design Patterns

Review of Basic Software Design Concepts. Fethi Rabhi SENG 2021

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business.

Object-Oriented Design

Object-oriented development. Object-oriented Design. Objectives. Characteristics of OOD. Interacting objects. Topics covered

Software Architecture and Design I

10조 이호진 이지 호

The ATCP Modeling Framework

Sofware Requirements Engineeing

Topic : Object Oriented Design Principles

Chapter 6 Architectural Design. Chapter 6 Architectural design

Architectural Design

Object-Oriented Design

Announcements. How to build a UML model. Rational Unified Process. How RUP builds a model. UI design. Architect

Part II Black-Box Composition Systems 10. Business Components in a Component-Based Development Process

Lecture Chapter 2 Software Development

Requirements to models: goals and methods

Software Engineering

Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD

CSC 330 Object Oriented Software Design. Software Design Phase

UML for Real-Time Overview

Creating and Analyzing Software Architecture

Agile Model-Driven Development with UML 2.0 SCOTT W. AM BLER. Foreword by Randy Miller UNIFIED 1420 MODELING LANGUAGE. gile 1.

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN. Unit-I. Introduction to OOAD

CS6502-OBJECT ORIENTED ANALYSIS AND DESIGN Two Marks Question with Answers Unit-I Introduction to OOAD

1. Introduction to Object Oriented Software Development

Architectural Design

Principles of Software Construction: Objects, Design and Concurrency. Introduction to Design. toad

Programmazione. Prof. Marco Bertini

Ans 1-j)True, these diagrams show a set of classes, interfaces and collaborations and their relationships.

Architectural Models. Section Outline. What is an architectural design? Architecture Types. Example Logical Architecture. Example Deployment Diagram

Software Architecture

SHRI ANGALAMMAN COLLEGE OF ENGINEERING & TECHNOLOGY (An ISO 9001:2008 Certified Institution) SIRUGANOOR,TRICHY

UML Is Not a Methodology

Component Design. Systems Engineering BSc Course. Budapest University of Technology and Economics Department of Measurement and Information Systems

Week 9 Implementation

CASE TOOLS LAB VIVA QUESTION

Chapter 6 Architectural Design

10.1 Big Objects, Business Objects, and UML Components

Object-Oriented Systems Development: Using the Unified Modeling Language. Chapter 1: An Overview of Object- Oriented Systems Development

index_ qxd 7/18/02 11:48 AM Page 259 Index

OO Analysis and Design with UML 2 and UP

CS 307: Software Engineering. Lecture 10: Software Design and Architecture

Oral Questions. Unit-1 Concepts. Oral Question/Assignment/Gate Question with Answer

How to build a UML model

Collage: A Declarative Programming Model for Compositional Development and Evolution of Cross-Organizational Applications

CSCU9T4: Managing Information

Software Reuse and Component-Based Software Engineering

Software Architectures. Lecture 6 (part 1)

Unit Wise Questions. Unit-1 Concepts

Transcription:

Model-based Transition from Requirements to High-level Software Institut für Computertechnik ICT Institute of Computer Technology Hermann Kaindl Vienna University of Technology, ICT Austria System overview business actor business workers Business System Border SW system to be built Composite system

Background Outline Functional requirements, goals and scenarios / use cases Requirements and UML models Transition to software design Model-based transformation? What are requirements? User wishes / needs IEEE Standard: A condition or capacity needed by a user to solve a problem or achieve an objective. The <system> shall be able to - system to be built - composite system Example: The ATM shall accept a cash card. Requirements modeling

What are requirements? In practice User requirements documents Software/system requirements documents Mostly descriptions in natural language Representation often unstructured Ad hoc process Communication problem Requirements and use cases? Class and generalization Class in UML (Unified Modeling Language) http://www.omg.org Generalization / Specialization (in UML notation) Transaction date-time Object instance Cashier transaction Remote transaction

Inheritance Example: attribute date-time Mechanism for information sharing Structure (variables, attributes) Behavior (methods, procedures) Multiple inheritance various theories Attributes and associations Attribute for representation of property Transaction date-time Association (in UML notation) 0.. Entered on ATM Relation for linking instances Multiplicity: range of allowable cardinalities

Methods and messages Methods are procedures / functions Interface protocol for indirect calls Sending and receiving of messages Actual method to be invoked determined through rules for processing a message, e.g., dynamic binding Use cases particular cases of how the system is to be used Use-Case Report (according to Unified Process): 1. Brief Description 2. Flow of Events 3. Special Requirements 4. Pre-conditions 5. Post-conditions 6. Extension Points 7. Relationships 8. Use-Case Diagrams 9. Other Diagrams

Use-case diagram UML graphical notation Ellipse: use case Stick man: actor Name of use case Name of actor Connecting line: association Background Outline Functional requirements, goals and scenarios / use cases Requirements and UML models Transition to software design Model-based transformation?

Glossary Functions: effects achieved by some entity Goals: partially specified states that the user considers as desirable Scenarios: sequences of actions aimed at accomplishing some task goal Use cases: particular cases of how the system is to be used, classes of scenarios Functional requirements Describe required functionality not yet available Functional user requirements may be high-level statements of what the system should be able to do. Functional software/system requirements should describe the functions of the software/system to be built in detail (but not yet its design or implementation).

Scenarios Stories and narratives For representation of cultural heritage explanations of events everyday knowledge Human understanding in terms of specific situations Human verbal interactions by exchanging stories Scenarios Video Store example Rent Available Video: 1. A member of the video store identifies himself/herself to VSS (Video Store Software). 2. VSS shall check the identification. 3. If the identification is successful, VSS shall start a transaction and present a selection of video titles. 4. The member selects a video title that is available and indicates the intent to rent (a copy of) the video.

Scenario Video Store example (cont.) 5. VSS shall book this rental on the account of the member and ask the clerk to hand out a video copy to the member. 6. The clerk hands out a copy of the video title and acknowledges this to VSS. 7. VSS shall again present a selection of video titles. 8. The member does not select further titles, but initiates the termination of the transaction. 9. VSS shall issue a good-bye message and terminate the transaction. By-Function Video Store example 1. A member of the video store identifies himself/herself to VSS (Video Store Software). 2. VSS shall check the identification. By-Function: Member Identification Check 5. VSS shall book this rental on the account of the member and ask the clerk to hand out a video copy to the member. By-Function: Video Rental Booking Video Handing-out Request

Functional requ. Video Store example Rent Available Video By-Function Video Rental Booking Video Rental Booking: VSS shall book the rental of a copy of a video title on the account of the member, and reduce the number of available copies of the video title by 1. Goal Video Store example Member Has Video for Rent By-Scenario Rent Available Video Member Has Video for Rent: A member of the video store has a copy of a video title from the store for rent.

Systematic process Idea: navigation in the metamodel graph Excerpt: Goals By-Scenario Scenarios By-Function Functional Requirements What is known already? Old system or system to be built?

Use-case diagram Video Store example Rent Video «extends» «extends» Help Member Member Return Video Clerk Maintain Video Data Use-case diagram ATM example Withdraw Cash «includes» «includes» Bank Customer Deposit Cash «includes» Identify Customer Transfer between Accounts

Background Outline Functional requirements, goals and scenarios / use cases Requirements and UML models Transition to software design Model-based transformation? Requirements and object-oriented models Domain Requirements Model Abstraction Real world

Types of requirements «stereotype» Requirement «stereotype» Envisioned Scenario «stereotype» Functional Requirement «stereotype» Quality Requirement «stereotype» Constraint on System «stereotype» Constraint on Process Performance Reliability Security Safety Portability Maintainability Reusability Interface Usability Types of requ. Constraints on system

Types of requ. Constraints on process Specific development process to follow Specific programming language for implementation Specific tools to be used Specific hardware to be used Political issues Time to market Terms of delivery Cost VSS example Conflicts between Quality Requirements VSS shall allow direct access to member data. VSS shall protect member data from illegal access. Usability vs. Security Trade-off Common in complex systems

Types of requ. Which system? Requirements for proposed system to be built Software (and hardware) system Requirements for composite system Including human users and business artifacts OOA model ATM Example Transaction date-time handler Entry Station out of order Cashier transaction Remote transaction Cashier Station ATM Cash notes on hand dispensed provider Cashier name recipient user Customer name address password user owner 1 Cash Card bank code card code serial number

OOA model adapted ATM Example Transaction date-time handler Entry Station out of order Cashier transaction Remote transaction handler handler Cashier Station ATM Cashier user provider name Cash notes on hand dispensed recipient Customer name address password user owner 1 Cash Card bank code card code serial number OOA model UML sequence diagram c1:customer a1:atm insert card request PIN enter PIN request amount enter amount Represents a scenario Interaction of instances Activation System border request confirmation enter confirmation dispense card take card dispense cash

OOA model RUP Analysis Model: An object model describing the realization of use cases, and which serves as an abstraction of the Artifact: Model. The Analysis Model contains the results of use case analysis, instances of the Artifact: Analysis Class. Analysis classes represent an early conceptual model for things in the system which have responsibilities and behavior. OOA model UP Larman The Analysis Model is perhaps not ideally named, as it is actually a kind of design model. In conventional usage,, an analysis model suggested essentially a domain object model an investigation and description of domain concepts. But the UP Analysis Model is an early version of the UP Model it describes collaborating software objects with responsibilities.

OOA model SEM Purpose An OOA model facilitates a better understanding of the application domain as it shall be after the implementation of the product. In this sense, it shall contribute to the specification of the problem and thus of the requirements. Content In an OOA model the to-be situation of the real world is modeled, where the product to be built will be integrated. OOA model Video Store example in stock as Video Title maintained by Clerk works with Video 0.. rent to maintains VSS Customer 0..1 Member

OOA model UML sequence diagram :Member :Clerk :VSS check Member (ID) select title from (List) Unnamed instances Concurrent objects rent (Video Title) hand out! (Video) hand out (Video) acknowledge () select title from (List) terminate () good-bye () Conceptual model

Further development European Union ReDSeeDS project Requirements Driven Software Development System Contract number IST-2006-033596 www.redseeds.eu Scenario-driven development method Reuse and tool support Case-based approach Requirements vs. requirements representation Reuse of requirements representation only Distinction between descriptive and model-based Descriptive: need described Model-based: abstraction of what the system should look like

Background Outline Functional requirements, goals and scenarios / use cases Requirements and UML models Transition to software design Model-based transformation? OOA Model OOD Model Customer-A Customer-A Customer-D Software Customer-P

OOA model (again) in stock as Video Title maintained by Clerk works with Video 0.. VSS maintains Customer rent to 0..1 Member Video Title maintained by VSS works with Clerk Video_Title_D Clerk_D in stock as in stock as Each OOD class needed? Video Video_D 0.. rent to 0..1 Customer_D 0.. Member_D Customer rent to 0..1 maintains Member

Video Title maintained by works with Clerk VSS Video_Title_D Clerk_D in stock as in stock as Video_D rent to Customer_D Video 0.. 0..1 0.. Member_D Customer rent to 0..1 maintains Member Video Title maintained by works with Clerk VSS in stock as Video_Title_D in stock as available Video Additional association needed? Video_D rent to Customer_D Video 0.. 0..1 0.. Member_D Customer rent to 0..1 maintains Member

Video Title maintained by VSS works with Additional OOD class needed? Clerk in stock as Video 0.. Video_Title_D all Titles 0.. in stock as available Video Video_D 0.. rent to 0..1 TitleMngr gettitlelist() getavailablevideo() Member_D Customer_D Customer rent to 0..1 maintains Member Preliminary OOD model Video_Title_D all Titles 0.. in stock as available Video Video_D 0.. rent to 0..1 TitleMngr gettitlelist() getavailablevideo() Member_D Customer_D

OOD model and architecture VSS_UI MainWindow UI_Titles VSS_BO Video_Title_D TitleMngr Video_D Member_D Customer_D VSS_DATA VideoTitlePersMgr DataBase VideoPersMgr MemberPersMgr Overview Domain objects OOA Model Architecture VSS_UI MainWindow UI_Titles VSS_BO Video 0.. TitleMgr Video Mitgl VSS_DATA VideoTitleP CustomerP MemberP Customer DataB OOD Model VSS_UI Layers, Client-Server, Model-View- VSS_BO Controller, VSS_DATA

Sequence diagrams Video Store Example OOA OOD :Member :Clerk :VSS :UI_Titles :Video_Title_D :Video_D :TitleMngr :Member_D :Rental rent (Video Title) rent (Video Title) create () getavailablevideo () : Video rent () rent () hand out (Video) hand out! (Video) hand-outrequest (Video) VSS_BO Refined (part of) OOD model number rent () Video_Title_D description rent () in stock as Video_D 0.. all Titles available Video rent to 0.. 0..1 ID video to be rent TitleMngr gettitlelist() getavailablevideo() Member_D rent (Video Title) date-time create () Rental Customer_D

OOD recommendations Imagine zooming in on the black box representing the proposed system in the OOA model. Develop an architectural vision of the proposed system. Will the proposed program need information about realworld objects (from the OOA model)? Will all of the OOA object s attributes be needed? Will additional attributes be needed? Will additional associations be needed? Define the architecture and additional object classes. Assign responsibilities to OOD objects. Software architecture IEEE Standard Glossary of SW Engineering Terminology The organizational structure of a system or component. UML Specification (Glossary) The organizational structure and associated behavior of a system. An architecture can be recursively decomposed into parts that interact through interfaces, relationships that connect parts, and constraints for assembling parts. Parts that interact through interfaces include classes, components and subsystems.

Granularity of objects too small High-level structure Big picture Strategic design decisions Software architecture Why? Divide-and-conquer: decomposition and modularization System-internal interfaces How to deal with constraints on system (requ.) Selection depending on constraint requirements Performance Large rather than fine-grain components for minimizing communication Security Layered architecture with critical assets in the inner layers Safety Localization of safety-critical features in a small number of sub-systems Availability Redundant components and mechanisms for fault tolerance Maintainability Fine-grain, replaceable components with low coupling

Background Outline Functional requirements, goals and scenarios / use cases Requirements and UML models Transition to software design Model-based transformation? Differences between MD Transformation and Mapping MD transformation: mathematical function that constructively and uniquely maps some input in one or more models to some output in one or more models MD mapping: mathematical relation Transition from requirements to architecture? Magic problem solver? MD transformation possibly in hindsight, but not computable for most practical problems

From Domain Objects to Objects? MD mapping between domain classes and design classes by using the graphical notation of QVT From Domain Objects to Objects? (cont.) Problem of universal quantification How about an MD transformation? Substitution of C at the right through E (for enforcement): Generates an object class in the OOD model for each object class in the OOA model. Manual modifications needed

From Use Cases and Scenarios to Components? MD transformation for generating a controller class for each use case using the graphical notation of MOLA From Use Cases and Scenarios to Components? (cont.) MD transformation for generating a controller class for each use case package, including an interface for each use case and an association to the corresponding component Tacit assumption: decomposition and grouping in the design (solution space) shall be the same as in the requirements (problem space)

From Use Cases and Scenarios to Components? (cont.) Probably results in less than optimal design Use cases in the requirements model should be grouped according to usage and goals. A good software design should group controllers according to low coupling and high cohesion. Refactoring needed after transformation Having an architecture with components and interfaces exactly corresponding to the use cases, their scenarios and contained functions may restrict the use of the system. Functions exposed directly may allow for unanticipated scenarios. Summary and Conclusion OO business and domain modeling is useful. Objects, goals, scenarios / use cases and functional requirements can be combined. OO modeling can be used seamlessly from requirements to software design. Some mapping and transformation rules may be useful for certain systematic correspondences. Major manual adaptations and enhancements through the software architect will be needed.

Selected work of this tutorial presenter Kaindl, H., A Practical Approach to Combining Requirements Definition and Object-Oriented Analysis, Annals of Software Engineering, 3, 1997, pp. 319 343. Kaindl, H., Difficulties in the Transition from OO Analysis to, IEEE Software, Sept./Oct. 1999, pp. 94 102. Kaindl, H., A Process Based on a Model Combining Scenarios with Goals and Functions, IEEE Transactions on Systems, Man, and Cybernetics (SMC) Part A 30(5), 2000, pp. 537 551. Kaindl, H., Is Object-Oriented Requirements Engineering of Interest?, Requirements Engineering, 10, 2005, pp. 81 84. Kaindl, H., A Scenario-Based Approach for Requirements Engineering: Experience in a Telecommunication Software Development Project, Systems Engineering, 8, 2005, pp. 197 210.