UNB CS3013 Software Engineering II lectures adapted from Bernd Bruegge & Allen Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing.

Slides:



Advertisements
Similar presentations
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML, Part 4 UML 2 Metamodel.
Advertisements

Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation - Continued.
Presentation material is based on notes from Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 ECE.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering September 12, 2001 Capturing.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
System Modelling System modelling helps the analyst to understand the functionality of the system and models are used to communicate with customers. Different.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5: Analysis, Object Modeling.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5, Analysis: Dynamic Modeling.
SE 555 Software Requirements & Specification1 Use-Case Modeling: Overview and Context.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Art for Chapter 5, Analysis.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Outline  Dynamic models  Sequence diagrams.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Requirements Elicitation Chapter 4. Establishing Requirements Two questions –What is the purpose of the system –What is inside and what is outside the.
Use Cases Chapter 4. After Scenarios Find all the use cases in the scenario that specifies all possible instances of how to report a fire –Ex: “Report.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Chapter 21 Object-Oriented Analysis
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation: Functional Modeling.
Sharif University of Technology1 Design and Use-case Realization Software Engineering Laboratory Fall 2006.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5, Analysis: Dynamic Modeling.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Requirements Analysis Document Template 1.Introduction.
Chapter 7: The Object-Oriented Approach to Requirements
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Slide 12.1 © The McGraw-Hill Companies, CS 4310: Software Engineering Lecture 7 Systems Analysis Object-Oriented Design.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Art for Chapter 11, Project Management.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Functional Modeling.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering October 3, 2001 Analysis.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation: Functional Modeling.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation: Functional Modeling.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Using UML, Patterns, and Java Object-Oriented Software Engineering Functional Modeling.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Object Modeling.
Chapter 7 System models.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML: Review Session (Optional)
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML: Review Session (Optional)
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation: Functional Modeling.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation: Functional Modeling.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Systems Analysis and Design in a Changing World, Fourth Edition
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 5, Analysis: Dynamic Modeling.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall Object-Oriented Systems Analysis and Design Using UML Systems Analysis and Design,
Fall 2007 Week 9: UML Overview MSIS 670: Object-Oriented Software Engineering.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5, Analysis: Dynamic Modeling.
1 Object Oriented Analysis System modeling = Functional modeling + Object modeling + Dynamic modeling Functional modeling = Use cases Object modeling =class.
Dillon: CSE470: ANALYSIS1 Requirements l Specify functionality »model objects and resources »model behavior l Specify data interfaces »type, quantity,
1 An Overview of UML. 2 The Unified Modeling Language UML is a graphical language used by software engineers to model software systems during development.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
1 Use Cases Object-Oriented Modeling and Design with UML (Second Edition) Blaha & Rumbaugh Sections 7.1, 8.1.
Bernd Bruegge and Allen Dutoit Requirements Process The requirements process consists of two activities: Requirements Elicitation: Definition of the system.
Dynamic Modeling of Banking System Case Study - II
Object-Oriented Analysis
Chapter 4, Requirements Elicitation: Functional Modeling
Chapter 4, Requirements Elicitation: Functional Modeling
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Presentation transcript:

UNB CS3013 Software Engineering II lectures adapted from Bernd Bruegge & Allen Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Object Modeling in Practice: Heuristics  Explicitly schedule meetings for object identification  Try to differentiate between entity, boundary and control objects  Find associations and their multiplicity  Unusual multiplicities usually lead to new objects or categories  Identify Aggregation  Identify Inheritance: Look for a Taxonomy, Categorize  Allow time for brainstorming, Iterate, iterate

UNB CS3013 Software Engineering II lectures adapted from Bernd Bruegge & Allen Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing Systems 2 Software Engineers are not the only System Analysts

UNB CS3013 Software Engineering II lectures adapted from Bernd Bruegge & Allen Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing Systems 3 What is a Software Engineer?  From the point of view of phenomenology, Software Engineers are dialectic monistic idealists:  Idealists:  They accept that ideas (called requirements or “customer’s wishlist”) are different from reality.  They are not realists:  The reality might not yet exist (“Vaporware is always possible ”)  They are monistic:  They are optimistic that their ideas can describe reality (“das Ding an sich”).  Dialectic:  They do this in a dialogue with the customer

UNB CS3013 Software Engineering II lectures adapted from Bernd Bruegge & Allen Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing Systems 4 Summary In this lecture, we reviewed the construction of the object model from use case model. In particular, we described:  Identification of objects  Refinement of objects with attributes and operations  Generalization of concrete classes  Identification of associations  Reduction of multiplicity using qualification. In the next lecture, we describe the construction of the dynamic model from the use case and object models.

UNB CS3013 Software Engineering II lectures adapted from Bernd Bruegge & Allen Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing Systems 5 The Building Access Control System – Part I  Design of a building access control system [ Wrox Press web site ( also ]  The space to be protected is divided over 4 floors of a building with a total area of about 5000M2. The building itself is divided into five areas: two research wings, an experimental wing, an administration wing, and a central section containing classrooms and the two lecture halls.  The site accommodates about 500 people every day: mostly students,. but also teachers, researchers, administrative and technical staff, as well as numerous visitors.  After various items of property started disappearing, it was decided to restrict access to some of the rooms using doors with automatic locking. The opening of each door is controlled by a badge reader, located nearby.  The badges that allow the opening of these doors are only given to the people that need to access restricted areas in order to perform their duties. Access rights are distributed among groups of people and groups of doors. Each person and each door must always belong to a group, even if they are the only member of that group.

UNB CS3013 Software Engineering II lectures adapted from Bernd Bruegge & Allen Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing Systems 6 The Building Access Control System – Part II  A group of doors may consist of doors distributed throughout the building, but from the point of view of controlling access, only the concept of a group of doors is important - routes and movement are not controlled. However, a given door cannot be a member of more than one group of doors. A given person, on the other hand, may be 'a member of several groups, so that his or her access rights correspond to the combined rights of each of the groups he or she belongs to.  Access rights are established by describing, for each group of people, the various groups of doors that are accessible and under what time constraints. These rights are contained in a yearly calendar that describes the schedule a week at a time. Given that there will be a small variation of rights over time, a calendar may be initialized using 'typical' weeks that describe a fixed configuration of rights. The supervisor may create as many 'typical' weeks as she wishes, and any subsequent changes made will automatically be propagated to all the calendars using them. On the other hand, changes made to a calendar directly - to take vacation days into consideration, for example - are not affected by the modification of a 'typical' week.

UNB CS3013 Software Engineering II lectures adapted from Bernd Bruegge & Allen Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing Systems 7 The Building Access Control System – Part III  The following table [not shown] represents a typical week. The grayed areas correspond to time periods during which access is not authorized. [The table shows access allowed from 7 a.m. through 10 p.m. each weekday].  The access control system must operate as autonomously as possible, although a supervisor is responsible for the initial configuration and the updating of the various pieces of information that define the groups of people and doors. A guard has a control screen, and is informed of any unsuccessful entry attempts. Alarms are transmitted with a slight delay: information update on the control screen is performed every minute.  The user interface must help the users to specify their requests correctly. Legal requests and input values are systematically read from lists that define the domain of correct values.

Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 5, Analysis: Dynamic Modeling

UNB CS3013 Software Engineering II lectures adapted from Bernd Bruegge & Allen Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing Systems 9 Outline  Dynamic modeling  Sequence diagrams  State diagrams  Using dynamic modeling for the design of user interfaces  Analysis example  Requirements analysis document template

UNB CS3013 Software Engineering II lectures adapted from Bernd Bruegge & Allen Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing Systems 10 Example of use case format Use case name ReportEmergency Entry condition 1. The FieldOfficer activates the “Report Emergency” function of her terminal. Flow of events 2. FRIEND responds by presenting a form to the officer The FieldOfficer fills the form The Dispatcher reviews the information submitted by the FieldOfficer... Exit condition 5. The FieldOfficer receives the acknowledgment and the selected response.

UNB CS3013 Software Engineering II lectures adapted from Bernd Bruegge & Allen Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing Systems 11 How do you find classes?  From previous lectures  Application domain analysis: Talk to client to identify abstractions  Apply general world knowledge and intuition  Scenarios  Natural language formulation of a concrete usage of the system  Use Cases  Natural language formulation of the functions of the system  Textual analysis of problem statement (Abbot)  From this lecture  Dynamic model  Events: Candiates for operations to be offered by classes  Sequence diagrams as sources for objects  From future lectures  Design Patterns

UNB CS3013 Software Engineering II lectures adapted from Bernd Bruegge & Allen Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing Systems 12 Dynamic Modeling with UML  Diagrams for dynamic modeling  Interaction diagrams describe the dynamic behavior between objects  Statecharts describe the dynamic behavior of a single object  Interaction diagrams  Sequence Diagram:  Dynamic behavior of a set of objects arranged in time sequence.  Good for real-time specifications and complex scenarios  Collaboration Diagram :  Shows the relationship among objects. Does not show time  State Charts:  A state machine that describes the response of an object of a given class to the receipt of outside stimuli (Events).  Activity Diagram:  Special type of statechart where all states are action states

UNB CS3013 Software Engineering II lectures adapted from Bernd Bruegge & Allen Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing Systems 13 Dynamic Modeling  Definition of dynamic model:  A collection of multiple state chart diagrams, one state chart diagram for each class with important dynamic behavior.  Purpose:  Detect and supply methods for the object model  How do we do this?  Start with use case or scenario  Model interaction between objects => sequence diagram  Model dynamic behavior of single objects => statechart diagram