Modeling ECE 417/617: Elements of Software Engineering Stan Birchfield Clemson University.

Slides:



Advertisements
Similar presentations
Introduction to Software Engineering 7. Modeling Behaviour.
Advertisements

Use Case Modeling SJTU. Unified Modeling Language (UML) l Standardized notation for object-oriented development l Needs to be used with an analysis and.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
CS3773 Software Engineering Lecture 03 UML Use Cases.
SE 555 Software Requirements & Specification1 Use-Case Modeling: Overview and Context.
Unified Modeling Language (UML) Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Requirements Analysis Classes & Associations b510.ppt © Copyright De Montfort University 2000 All Rights Reserved INFO2005 Requirements Analysis.
COMP1007 Intro to Systems Requirements © Copyright De Montfort University 2002 All Rights Reserved COMP1007 Intro to System Requirements Lecture 2 Use-Cases.
COMP1007 Intro to Systems Requirements © Copyright De Montfort University 2002 All Rights Reserved COMP1007 Intro to Systems Requirements Lecture 4 Identifying.
Analysis Concepts and Principles
Requirements Analysis 4. 1 Use Case I b504.ppt © Copyright De Montfort University 2000 All Rights Reserved INFO2005 Requirements Analysis Use-Cases.
UML Sequence Diagrams Eileen Kraemer CSE 335 Michigan State University.
Chapter 7: The Object-Oriented Approach to Requirements
Building The Analysis Model. Object-Oriented Analysis The object oriented analysis define all classes, the relationships and behavior associated with.
Chapter 4 Requirements Engineering
Chapter 2: Approaches to System Development
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 4 - System modelling Dr Richard Clayton.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 06. Requirements.
Chapter 7 Structuring System Process Requirements
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
Prepared by Afra`a Sayah. Introduction. Weekly Tasks. Plane Phase. Analysis Phase. Design Phase. Report Rules. Conclusion. 2.
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
Requirement Engineering. Review of Last Lecture Problems with requirement Requirement Engineering –Inception (Set of Questions) –Elicitation (Collaborative.
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
Chapter 9 요구사항 모델링: 시나리오 기반 방법론 Requirements Modeling: Scenario-Based Methods 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 Object-oriented and Structured System Models.
Analysis Modeling. Function Modeling & Information Flow  Information is transformed as it flows through a computer-based system. The system accepts input.
Systems Analysis and Design in a Changing World, 3rd Edition
1 Introduction to Software Engineering Lecture 1.
Developed by Reneta Barneva, SUNY Fredonia for CSIT 425 Requirements Modeling.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Difference between project and other assignments  real customer  before programming: negotiations with client to clarify requirements  often.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
Modeling ECE 417/617: Elements of Software Engineering Stan Birchfield
By Germaine Cheung Hong Kong Computer Institute
CS212: Object Oriented Analysis and Design Lecture 32: Use case and Class diagrams.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Brief Overview of UML Diagrams with a Simple Example
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall Object-Oriented Systems Analysis and Design Using UML Systems Analysis and Design,
UML (Unified Modeling Language)
Requirement Engineering
UML Review of Use case diagrams. 2 Unified Modeling Language The Unified Modeling Language™ (UML) was developed jointly by Grady Booch, Ivar Jacobson,
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
Capturing Requirements. Questions to Ask about Requirements 1)Are the requirements correct? 2)Consistent? 3)Unambiguous? 4)Complete? 5)Feasible? 6)Relevant?
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
CS 160 and CMPE/SE 131 Software Engineering February 18 Class Meeting Department of Computer Science Department of Computer Engineering San José State.
Requirements Engineering Determining and Defining the Requirements for the Project.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
1 Object-Oriented Static Modeling of the Banking System - III Lecture # 33.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
1 8.1 Requirements Analysis Rules of Thumb Rules of Thumb Models should focus on requirements that are visible within the problem or business domain. The.
CompSci 280 S Introduction to Software Development
Object-oriented and Structured System Models
CMPE 280 Web UI Design and Development August 29 Class Meeting
Storyboarding and Game Design SBG, MBG620 Full Sail University
Dynamic Modeling of Banking System Case Study - I
Object-Oriented Static Modeling of the Banking System - I
Dynamic Modeling of Banking System Case Study - II
Rumbaugh’s Objectmodeling Technique
UML: Unified modeling language
Object-Oriented Analysis
Concepts, Specifications, and Diagrams
Unified Modeling Language
CRC Modeling (class-relationship-collaborator)
Modeling ECE 417/617: Elements of Software Engineering Stan Birchfield
Modeling ECE 417/617: Elements of Software Engineering Stan Birchfield
Dynamic Modeling Lecture # 37.
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Presentation transcript:

Modeling ECE 417/617: Elements of Software Engineering Stan Birchfield Clemson University

Overview Modeling provides abstraction to bridge the gap between –High-level (world) –Low-level (code) Types of modeling: –Analysis modeling Models problem domain (users, world) –System modeling Models solution domain (software)

Analysis modeling Let us first look at modeling the problem domain

Requirements elicitation It is important to define what the software is supposed to do before –defining how to do it, or –before actually doing it “The hardest single part of building a software system is deciding what to build.” – Fred Brooks Requirements elicitation – gathering requirements from users and other stakeholders

Difficulties in specifying requirements Customers often do not know what they want... until they see it Customers often have a poor understanding of the ease or difficulty of implementing different capabilities The requirements change over time

Steps in gathering requirements Inception – establish basic understanding of problem Elicitation – Ask the users what is needed Elaboration – Refine the model of the S/W functions, features, and constraints Negotiation – Reconcile conflicts by ranking requirements and discussing priorities Specification – Final work product describing the function and performance of the S/W Validation – Examine the specification to ensure that all requirements have been stated unambiguously, inconsistencies have been corrected, etc.

Specifying requirements Requirements can be specified in a number of ways: –user scenarios –functions and feature lists –analysis models –specification

Traceability table Captures the relationships between –features and requirements –interfaces and requirements –requirements themselves (dependencies) –etc. A01A02A03... R01√ R02√√ R03√... aspects requirements

User scenarios Usage scenarios –identify a thread of usage for the system –enable the S/W team to see how the functions and features will be used by different classes of end users –often called use cases

Use cases Use case tells a stylized story about how an end- user interacts with the system under a specific set of circumstances Can be either –narrative text –outline of tasks or interactions –template-based description, or –diagrammatic representation “A use-case captures a contract...” -- Alistair Cockburn, Writing Effective Use Cases. Addison- Wesley

Use case example Use case: Withdraw money Level: User goal(Three levels: Summary, User goal, and Sub-function level) Primary actor: Client Goal in context: To withdraw money from the client’s account Preconditions: User has an account, ATM has power and connectivity Main scenario: 1.Client inserts card 2.Client types PIN 3.Client specifies which account 4.Client enters amount to withdraw 5.Money is dispensed 6.Card is ejected 7.Client removes card Extensions: 1a. Card is invalid; card is ejected and client notified. 2a. Pin is incorrect; client notified and given no more than two more attempts. 4a. Amount exceeds limit; client notified, repeat step. 7a. Client does not remove card within time limit; card is retracted.

System modeling Now let us look at modeling the solution domain

Data flow diagram (DFD) Data flow diagram (DFD) developed in late 1970s –part of Structured Design (one of the earliest methodologies for software development); aka Structured Systems Analysis and Design Method (SSADM), a waterfall method –invented by Larry Constantine, who also developed concepts of coupling and cohesion DFD is a forerunner of UML and may complement it Arcs are data; boxes are processes/actions execute unit tests review test results test results review decision test plan source code

Gane and Sarson notation for DFDs squares – external entities round rectangles – processes arrows – data flow open-ended rectangles – data stores

Data flow diagram (DFD) DFDs are refined iteratively –Level 0 is context-level DFD; represents s/w as a single bubble with input and output –Level 1 is achieved by expanding the bubble into additional bubbles; perform grammatical parse on narrative describing bubble –Continue refining until each bubble performs specific function; high cohesion –Components: bubbles are processes, boxes are external entities, arrows are data or control objects, and double lines are data stores Process specification (PSPEC) describes all flow model processes that appear at the final level of refinement. It is a minispec for each transform at the lowest level of a DFD Program design language description (PDL) is basically pseudocode. One way to represent PSPEC

CRC modeling Class Responsibility Collaborator (CRC) is a lightweight model Write on 3”x5” index cards Used in extreme programming Can be used for –detailed object-oriented design –conceptual modeling

CRC example class is collection of objects responsibility is anything a class knows or does two types of collaboration: request for information request to do something

Creating CRC cards Iteratively Find classes Find responsibilities Define collaborators Move the cards around

Unified modeling language (UML) Several competing object-oriented notations developed in 1980s and 1990s Rumbaugh and Booch began working together in 1994 at IBM Rational to standardize their notations (OMT and Booch) Result was Unified Modeling Language (UML) Rights owned by Object Management Group (OMG), Good reference: M. Blaha and J. Rumbaugh, Object-Oriented Modeling and Design with UML, 2 nd ed.

UML Unified modeling language (UML) includes three models: class model – structural aspects of system (class diagrams) state model – temporal, behavioral aspects of system (state diagrams) interaction model – collaboration of individual objects (use cases, sequence diagrams, and activity diagrams)

A simple problem to provide brief overview of UML 1  5 V light switch

1. Use Case Diagram SimpleCircuit FlipOn FlipOff ViewLight User Functionality from user’s point of view

2. Class Diagram Battery 5V Switch ResistorLight Structure of system (objects, attributes, associations, operations)

3. Sequence Diagram ResistorSwitchBatteryLight Messages between objects User FlipOn() HeatUp() Drain() Shine()

3. Collaboration Diagram Resistor More compact, but harder to interpret User 1. FlipOn() 1.1 HeatUp() 1.3 Drain() 1.2 Shine() Battery Switch Light

4. Statechart Diagram Transitions between states of one object (Extension of Finite State Machine (FSM) model) Light Off Light On flipSwitchOn flipSwitchOff

4. Statechart Diagram (different objects) ColdHot flipSwitchOn flipSwitchOff Not Draining flipSwitchOn flipSwitchOff (Resistor)(Battery)

5. Activity Diagram Actions are states Flip Switch On Flip Switch Off With swimlanes: Actor1Actor2 Flip Switch On Read Book

Summary We have looked at five UML diagrams: 1.Use case diagrams [Interaction Model] -- models functionality from user’s point of view 2.Class diagrams [Class Model] -- models structure of system using objects 3.Interaction diagrams [Interaction Model] (sequence and collaboration) -- models messages passed between objects 4.Statechart diagrams [State Model] -- models transitions between states 5.Activity diagrams [Interaction Model] -- models flow control as transitions between activities The actual UML spec has 12 diagrams, but these five will be sufficient for us.