Modeling with UML eerin gin n are E oftw S ted rien ject-o b O

Size: px
Start display at page:

Download "Modeling with UML eerin gin n are E oftw S ted rien ject-o b O"

Transcription

1 Object-Oriented Software Engineering Modeling with UML

2 What is modeling? Modeling consists of building an abstraction of reality. Abstractions are simplifications because: They ignore irrelevant details and They only represent the relevant details. What is relevant or irrelevant depends on the purpose of the model.

3 Example: street map

4 What is a good model? Relationships, which are valid in reality R, are also valid in model M. I : Mapping of real things in reality R to abstractions in the model M abbildet (Interpretation) f M : relationship between abstractions in M f R : relationship between real things inr In a good model the following diagram is commutative: I M R f M f R M R I

5 Systems, Models and Views A model is an abstraction describing a subset of a system A view depicts selected aspects of a model A notation is a set of graphical or textual rules for depicting views Views and models of a single system may overlap each other Examples: System: Aircraft Models: Flight simulator, scale model Views: All blueprints, electrical wiring, fuel system

6 Systems, Models and Views System Aircraft Blueprints Model 1 View 1 Flightsimulator Model 2 View 2 View 3 Scale Model Electrical Wiring

7 Why model software? Why model software? Software is getting increasingly more complex Windows XP > 40 mio lines of code A single programmer cannot manage this amount of code in its entirety. Code is not easily understandable by developers who did not write it We need simpler representations for complex systems Modeling is a mean for dealing with complexity

8 Dealing with Complexity 1. Abstraction 2. Decomposition 3. Hierarchy

9 1. Abstraction Inherent human limitation to deal with complexity The phenomena Chunking: Group collection of objects Ignore unessential details: => Models

10 Model-based software Engineering: Code is a derivation of object model Problem Statement : A stock exchange lists many companies. Each company is identified by a ticker symbol Analysis phase results in cbject model (UML Class Diagram): StockExchange Implementation phase results in code public class StockExchange { public Vector m_company = new Vector(); }; * Lists * Company tickersymbol public class Company { public int m_tickersymbol public Vector m_stockexchange = new Vector(); }; A good software engineer writes as little code as possible

11 Concepts and Phenomena Phenomenon An object in the world of a domain as you perceive it Example: The lecture you are attending Example: My black watch Concept Describes the properties of phenomena that are common. Example: Lectures on software engineering Example: Black watches Concept is a 3-tuple: Name (To distinguish it from other concepts) Purpose (Properties that determine if a phenomenon is a member of a concept) Members (The set of phenomena which are part of the concept)

12 Concepts and phenomena Name Purpose Members Clock A device that measures time. Abstraction Classification of phenomena into concepts Modeling Development of abstractions to answer specific questions about a set of phenomena while ignoring irrelevant details.

13 Models are used to provide abstractions System Model: Object Model: What is the structure of the system? What are the objects and how are they related? ====>(class d.) Functional model: What are the functions of the system? How is data flowing through the system? ===>(use case d.) Dynamic model: How does the system react to external events? How is the event flow in the system? ==>(Interaction/activity/state d.)

14 2. Decomposition A technique used to master complexity ( divide and conquer ) Functional decomposition The system is decomposed into modules Each module is a major processing step (function) in the application domain Modules can be decomposed into smaller modules Object-oriented decomposition The system is decomposed into classes ( objects ) Each class is a major abstraction in the application domain Classes can be decomposed into smaller classes Which decomposition is the right one?

15 Functional Decomposition System Function Top Level functions Read Input Transform Produce Output Level 1 functions Read Input Transform Produce Output Level 2 functions Load R10 Add R1, R10 Machine Instructions

16 Functional Decomposition Functionality is spread all over the system Maintainer must understand the whole system to make a single change to the system Consequence: Codes are hard to understand Code that is complex and impossible to maintain User interface is often awkward and non-intuitive Example: Microsoft Powerpoint s Autoshapes

17 Functional Decomposition: Autoshape Autoshape Mouse click Change Draw Change Rectangle Change Oval Change Circle Draw Rectangle Draw Oval Draw Circle

18 What is This?

19 Possible Object Model: Eskimo Cave lighting entrance enter() leave() livesin * Shoe Size Color Type Wear() Eskimo Size Dress() Smile() Sleep() Coat Size Color Type Wear()

20 Alternative Model: The Head of an Indian Indian Hair Dress() Smile() Sleep() Ear Size listen() * Face Nose smile() close_eye() Mouth NrOfTeeths Size open() speak()

21 Class Identification Class identification is crucial to object-oriented modeling Basic assumption: 1. We can find the classes for a new software system: We call this Greenfield Engineering 2. We can identify the classes in an existing system: We call this Reengineering 3. We can create a class-based interface to any system: We call this Interface Engineering Why can we do this? Philosophy, science, experimental evidence What are the limitations? Depending on the purpose of the system different objects might be found How can we identify the purpose of a system?

22 What is this Thing?

23 Modeling a Briefcase BriefCase Capacity: Integer Weight: Integer Open() Close() Carry()

24 A new Use for a Briefcase BriefCase Capacity: Integer Weight: Integer Open() Close() Carry() SitOnIt()

25 Questions Why did we model the thing as Briefcase? Why did we not model it as a chair? What do we do if the SitOnIt() operation is the most frequently used operation? The briefcase is only used for sitting on it. It is never opened nor closed. Is it a Chair or a Briefcase? How long shall we live with our modeling mistake?

26 3. Hierarchy We got abstractions and decomposition This leads us to chunks (classes, objects) which we view with object model Another way to deal with complexity is to provide simple relationships between the chunks One of the most important relationships is hierarchy 2 important hierarchies "Part of" hierarchy "Is-kind-of" hierarchy

27 Part of Hierarchy Computer I/O Devices CPU Memory Cache ALU Program Counter

28 Is-Kind-of Hierarchy (Taxonomy) Cell Muscle Cell Blood Cell Nerve Cell Striate Smooth Red White Cortical Pyramidal

29 Where are we right now? Three ways to deal with complexity: Abstraction Decomposition (Technique: Divide and conquer) Hierarchy (Technique: Layering) Two ways to deal with decomposition: Object-orientation and functional decomposition Functional decomposition leads to unmaintainable code Depending on the purpose of the system, different objects can be found What is the right way? Start with a description of the functionality (Use case model). Then proceed by finding objects (object model). What activities and models are needed? This leads us to the software lifecycle we use in this class

30 Software Lifecycle Activities...and their models Requirements Elicitation Analysis System Design Object Design Implementation Testing Expressed in Terms Of Structured By Realized By Implemented By Verified By Use Case Model Application Domain Objects Subsystems Solution Domain Objects class... class... class... Source Code Test Cases? class...?

31 Object-Oriented Software Engineering Requirements Elicitation

32 First Step in Establishing the Requirements: System Identification The development of a system is not just done by taking a snapshot of a scene (domain) Two questions need to be answered: How can we identify the purpose of a system? Crucial is the definition of the system boundary: What is inside, what is outside the system? These two questions are answered in the requirements process The requirements process consists of two activities: Requirements Elicitation: Definition of the system in terms understood by the customer ( Problem Description ) Requirements Analysis: Technical specification of the system in terms understood by the developer ( Problem Specification )

33 Requirements Elicitation Very challenging activity Requires collaboration of people with different backgrounds Users with application domain knowledge Developer with solution domain knowledge (design knowledge, implementation knowledge) Bridging the gap between user and developer: Scenarios: Example of the use of the system in terms of a series of interactions with between the user and the system Use cases: Abstraction that describes a class of scenarios

34 System Specification vs Analysis Model Both models focus on the requirements from the user s view of the system. System specification uses natural language (derived from the problem statement): an analytical description of required features. The analysis model uses formal or semi-formal notation (for example, a graphical language like UML) The RASD (req. analisys and spec. document) is the living document produced in req. analisys activity. System specs. and UML model are both part of the RASD (see end of notes for a RASD template).

35 Ingredients of a Problem Statement Current situation: The Problem to be solved Description of one or more scenarios Requirements Functional and Nonfunctional requirements Constraints ( pseudo requirements ) Project Schedule Major milestones that involve interaction with the client including deadline for delivery of the system Target environment The environment in which the delivered system has to perform a specified set of system tests Client Acceptance Criteria Criteria for the system tests

36 Types of Requirements Functional requirements: Describe the interactions between the system and its environment independently from implementation Examples: An operator should be able to define a new order. Nonfunctional requirements: User visible aspects of the system not directly related to functional behavior. Examples: The response time must be less than 1 second The server must be available 24 hours a day Constraints ( Pseudo requirements ): Imposed by the client or the environment in which the system operates The implementation language must be Java The system must be able to dynamically interface to existing data bases.

37 What is usually not in the requirements? System structure Development methodology Development environment Implementation language Reusability It is desirable that none of these above are constrained by the client. Fight for it!

38 Prioritizing requirements High priority ( Core requirements ) Must be addressed during analysis, design, and implementation. A high-priority feature must be demonstrated successfully during client acceptance. Medium priority ( Optional requirements ) Must be addressed during analysis and design. Usually implemented and demonstrated in the second iteration of the system development. Low priority ( Fancy requirements ) Must be addressed during analysis ( very visionary scenarios ). Illustrates how the system is going to be used in the future if not yet available technology enablers are available

39 Requirements Validation Requirements validation is a critical step in the development process, usually after requirements engineering or requirements analysis. Also at delivery (client acceptance test). Requirements validation criteria: Correctness: The requirements represent the client s view. Completeness: All possible scenarios, in which the system can be used, are described, including exceptional behavior by the user or the system Consistency: There are functional or nonfunctional requirements that contradict each other Realism: Requirements can be implemented and delivered Traceability: Each system function can be traced to a corresponding set of functional requirements

40 Requirements Validation Problem with requirements validation: Requirements change very fast during requirements elicitation. Tool support for managing requirements: Store requirements in a shared repository Provide multi-user access Automatically create a system specification document from the repository Allow change management Provide traceability throughout the project lifecycle RequisitPro from Rational

41 Verification and Validation of models R Analysis M Analysis System Design M System Object Design M Object Implementation M Impl f R f MA f MS f MD f Impl R M Analysis M System M Object M Impl Validation Verification Verification Verification I M R f M f R M R I

42 What is This?

43 System and Object identification Development of a system is not just done by taking a picture of a scene or domain Two important problems during requirements engineering and requirements analysis: Identification of objects Definition of the system purpose Depending on the purpose of the system, different objects might be found What object is inside, what object is outside? How can we identify the purpose of a system? Scenarios Use cases: Abstractions of scenarios

44 How do we find scenarios? Don t expect the client to be verbal if the system does not exist (greenfield engineering) Don t wait for information even if the system exists Engage in a dialectic approach (evolutionary, incremental) You help the client to formulate the requirements The client helps you to understand the requirements The requirements evolve while the scenarios are being developed

45 Example: Accident Management System What needs to be done to report a Cat in a Tree incident? What do you need to do if a person reports Warehouse on Fire? Who is involved in reporting an incident? What does the system do if no police cars are available? If the police car has an accident on the way to the cat in a tree incident? What do you need to do if the Cat in the Tree turns into a Grandma has fallen from the Ladder? Can the system cope with a simultaneous incident report Warehouse on Fire?

46 Scenario Example: Warehouse on Fire Bob, driving down main street in his patrol car notices smoke coming out of a warehouse. His partner, Alice, reports the emergency from her car. Alice enters the address of the building, a brief description of its location (i.e., north west corner), and an emergency level. In addition to a fire unit, she requests several paramedic units on the scene given that area appear to be relatively busy. She confirms her input and waits for an acknowledgment. John, the Dispatcher, is alerted to the emergency by a beep of his workstation. He reviews the information submitted by Alice and acknowledges the report. He allocates a fire unit and two paramedic units to the Incident site and sends their estimated arrival time (ETA) to Alice. Alice received the acknowledgment and the ETA.

47 Observations about Warehouse on Fire Scenario Concrete scenario Describes a single instance of reporting a fire incident. Does not describe all possible situations in which a fire can be reported. Participating actors Bob, Alice and John

48 Next goal, after the scenarios are formulated: Find a use case in the scenario that specifies all possible instances of how to report a fire Example: Report Emergency in the first paragraph of the scenario is a candidate for a use case Describe this use case in more detail Describe the entry condition Describe the flow of events Describe the exit condition Describe exceptions Describe special requirements (constraints, nonfunctional requirements)

49 Example of steps in formulating a use case First name the use case Use case name: ReportEmergency Then find the actors Generalize the concrete names ( Bob ) to participating actors ( Field officer ) Participating Actors: Field Officer (Bob and Alice in the Scenario) Dispatcher (John in the Scenario)? Then concentrate on the flow of events Use informal natural language

50 Example of steps in formulating a use case Formulate the Flow of Events: The FieldOfficer activates the Report Emergency function on her terminal. FRIEND responds by presenting a form to the officer. The FieldOfficer fills the form, by selecting the emergency level, type, location, and brief description of the situation. The FieldOfficer also describes possible responses to the emergency situation. Once the form is completed, the FieldOfficer submits the form, at which point, the Dispatcher is notified. The Dispatcher reviews the submitted information and creates an Incident in the database by invoking the OpenIncident use case. The Dispatcher selects a response and acknowledges the emergency report. The FieldOfficer receives the acknowledgment and the selected response. Start using Abbot s technique for object identification in parallel to the use case modeling!

51 Example of steps in formulating a use case Write down the exceptions: The FieldOfficer is notified immediately if the connection between her terminal and the central is lost. The Dispatcher is notified immediately if the connection between any logged in FieldOfficer and the central is lost. Identify and write down any special requirements: The FieldOfficer s report is acknowledged within 30 seconds. The selected response arrives no later than 30 seconds after it is sent by the Dispatcher.

52 How to Specify a Use Case (Summary) Name of Use Case Actors Description of actors involved in use case Entry condition Use a syntactic phrase such as This use case starts when Flow of Events Free form, informal natural language Exit condition Star with This use cases terminates when Exceptions Describe what happens if things go wrong Special Requirements List nonfunctional requirements and constraints

53 Use Case Diagrams Used during requirements elicitation to represent external behavior Passenger Actors represent roles, that is, a type of user of the system Use cases represent a sequence of interaction for a type of functionality The use case model is the set of all use cases. It is a complete description of the functionality of the system and its environment PurchaseTicket

54 Actors Passenger An actor models an external entity which communicates with the system: User External system Physical environment An actor has a unique name and an optional description. Examples: Passenger: A person in the train GPS satellite: Provides the system with GPS coordinates

55 Use Case A use case represents a class of functionality provided by the system as an event flow. PurchaseTicket A use case consists of: Unique name Participating actors Entry conditions Flow of events Exit conditions Special requirements

56 Use Case Diagram: Example Name: Purchase ticket Participating actor: Passenger Entry condition: Passenger standing in front of ticket distributor. Passenger has sufficient money to purchase ticket. Event flow: 1. Passenger selects the number of zones to be traveled. 2. Distributor displays the amount due. 3. Passenger inserts money, of at least the amount due. 4. Distributor returns change. 5. Distributor issues ticket. Exit condition: Passenger has ticket. Anything missing? Exceptional cases!

57 The <<extends>> Relationship Passenger PurchaseTicket <<extends>> relationships represent exceptional or seldom invoked cases. The exceptional event flows are factored out of the main event flow for clarity. Use cases representing exceptional flows can extend more than one use case. The direction of a <<extends>> relationship is to the extended use case <<extends>> <<extends>> <<extends>> OutOfOrder <<extends>> TimeOut Cancel NoChange

58 The <<includes>> Relationship Passenger PurchaseMultiCard PurchaseSingleTicket <<includes>> <<includes>> <<includes>> relationship represents behavior that is factored out of the use case. <<includes>> behavior is factored out for reuse, not because it is an exception. The direction of a <<includes>> relationship is to the using use case (unlike <<extends>> relationships). <<extends>> CollectMoney <<extends>> NoChange Cancel

59 Use Case Diagrams: Summary Use case diagrams represent external behavior Use case diagrams are useful as an index into the use cases Use case descriptions provide meat of model, not the use case diagrams. All use cases need to be described for the model to be useful.

60 Use Case Model for Incident Management FieldOficer Dispatcher OpenIncident ReportEmergency AllocateResources

61 Use Case Associations Use case association = relationship between use cases Important types: Extends A use case extends another use case Include A use case uses another use case ( functional decomposition ) Generalization An abstract use case has different specializations

62 <<Include>>: Functional Decomposition Problem: A function in the original problem statement is too complex to be solvable immediately Solution: Describe the function as the aggregation of a set of simpler functions. The associated use case is decomposed into smaller use cases CreateDocument <<include>> <<include>> <<include>> Scan OCR Check

63 <<Include>>: Reuse of Existing Functionality Problem: There are already existing functions. How can we reuse them? Solution: The include association from a use case A to a use case B indicates that an instance of the use case A performs all the behavior described in the use case B ( A delegates to B ) Example: The use case ViewMap describes behavior that can be used by the use case OpenIncident ( ViewMap is factored out) Note: The base case cannot exist alone. It is always called with the supplier use case <<include>> Base Use Case OpenIncident ViewMap <<include>> AllocateResources Supplier Use Case

64 <Extend>> Association for Use Cases Problem: The functionality in the original problem statement needs to be extended. Solution: An extend association from a use case A to a use case B indicates that use case B is an extension of use case A. Example: The use case ReportEmergency is complete by itself, but can be extended by the use case Help for a specific scenario in which the user requires help Note: In an extend assocation, the base use case can be executed without the use case extension FieldOfficer <<extend>> Help ReportEmergency

65 Generalization association in use cases Problem: You have common behavior among use cases and want to factor this out. Solution: The generalization association among use cases factors out common behavior. The child use cases inherit the behavior and meaning of the parent use case and add or override some behavior. Example: Consider the use case ValidateUser, responsible for verifying the identity of the user. The customer might require two realizations: CheckPassword and CheckFingerprint CheckPassword Parent Case ValidateUser CheckFingerprint Child Use Case

66 How do I find use cases? Select a narrow vertical slice of the system (i.e. one scenario) Discuss it in detail with the user to understand the user s preferred style of interaction Select a horizontal slice (i.e. many scenarios) to define the scope of the system. Discuss the scope with the user Use mock-ups as visual support Find out what the user does Task observation (Good) Questionnaires (Bad)

67 From Use Cases to Objects Le vel 1 Top Level Use Case Le vel 2 Level 2 Level 2 Use Cases Level 3 Level 3 Level 3 Level 3 Use Cases Level 4 Level 4 Operations A B Participating Objects

68 Finding Participating Objects in Use Cases For any use case do the following Find terms that developers or users need to clarify in order to understand the flow of events Always start with the user s terms, then negotiate: FieldOfficerStationBoundary or FieldOfficerStation? IncidentBoundary or IncidentForm? EOPControl or EOP? Identify real world entities that the system needs to keep track of. Examples: FieldOfficer, Dispatcher, Resource Identify real world procedures that the system needs to keep track of. Example: EmergencyOperationsPlan Identify data sources or sinks. Example: Printer Identify interface artifacts. Example: PoliceStation Do textual analysis to find additional objects (Use Abott s technique) Model the flow of events with a sequence diagram

69 Summary In this lecture, we reviewed the requirements elicitation activities aimed at defining the boundary of the system: Scenario identification Use case identification and refinement Identification of participating objects Requirements elicitation is to build a functional model of the system which will then be used during analysis to build an object model and a dynamic model.

70 Object-Oriented Software Engineering Analysis: Object Modeling

71 Outline From use cases to class diagrams Model and reality A little discourse into philosophy Activities during object modeling Object identification Object types entity, boundary and control objects Object naming Abbott s technique helps in object identification Users of class diagrams

72 From Use Cases to Objects Level 1 Level 1 Use Case Le vel 2 Level 2 Level 2 Use Cases Le vel 3 Level 3 Level 3 Level 3 Use Cases Level 4 Level 4 Operations A B Participating Objects

73 From Use Cases to Objects: Why Functional Decomposition is not Enough Level 1 Scenarios Le vel 2 Level 2 Level 1 Use Cases Le vel 3 Level 3 Level 3 Level 2 Use Cases Level 4 Level 4 Operations A B Participating Objects

74 Finding Participating Objects in Use Cases Pick a use case and look at its flow of events Find terms that developers or users need to clarify in order to understand the flow of events Look for recurring nouns (e.g., Incident), Identify real world entities that the system needs to keep track of (e.g., FieldOfficer, Dispatcher, Resource), Identify real world procedures that the system needs to keep track of (e.g., EmergencyOperationsPlan), Identify data sources or sinks (e.g., Printer) Identify interface artifacts (e.g., PoliceStation) Be prepared that some objects are still missing and need to be found: Model the flow of events with a sequence diagram Always use the user s terms

75 Object Types Entity Objects Represent the persistent information tracked by the system (Application domain objects, Business objects ) Boundary Objects Represent the interaction between the user and the system Control Objects: Represent the control tasks performed by the system Having three types of objects leads to models that are more resilient to change. The interface of a system changes more likely than the control The control of the system change more likely than the application domain Object types originated in Smalltalk: Model, View, Controller (MVC)

76 Example: 2BWatch Objects Year ChangeDate Button Month LCDDisplay Day Entity Objects Control Objects Interface Objects

77 Naming of Object Types in UML UML provides several mechanisms to extend the language UML provides the stereotype mechanism to present new modeling elements <<Entity>> Year <<Entitity>> Month <<Entity>> Day <<Control>> ChangeDate <<Boundary>> Button <<Boundary>> LCDDisplay Entity Objects Control Objects Boundary Objects

78 Example: Flow of events The customer enters a store with the intention of buying a toy for his child with the age of n. Help must be available within less than one minute. The store owner gives advice to the customer. The advice depends on the age range of the child and the attributes of the toy. The customer selects a dangerous toy which is kind of unsuitable for the child. The store owner recommends a more yellow doll.

79 Mapping parts of speech to object model components [Abbott, 1983] Part of speech Model component Example Proper noun object Jim Smith Improper noun class Toy, doll Doing verb method Buy, recommend being verb inheritance is-a (kind-of) having verb aggregation has an modal verb constraint must be adjective attribute 3 years old transitive verb method enter intransitive verb method (event) depends on

80 Another Example Flow of events: The customer enters the store to buy a toy. It has to be a toy that his daughter likes and it must cost less than 50 Euro. He tries a videogame, which uses a data glove and a head-mounted display. He likes it. Is this a good use Case? Not quite! An assistant helps him. The suitability of the game depends on the age of the child. His daughter is only 3 years old. The assistant recommends another type of toy, namely the boardgame Monopoly". Monopoly is probably a left over from the scenario The use case should terminate with the customer leaving the store

81 Textual Analysis using Abbot s technique Example Monopoly" toy" "3 years old" enters" depends on." is a", either..or", kind of " "Has a ", consists of" must be", less than " Grammatical construct Concrete Person, Thing noun Adjective verb Intransitive verb Classifying verb Possessive Verb modal Verb UML Component Object class Attribute Operation Operation (Event) Inheritance Aggregation Constraint

82 Generation of a class diagram from flow of events Customer store? enter() daughter age Flow of events: The customer enters the store to buy a toy. It has to be a toy that his daughter likes and it must cost less than 50 Euro. He tries a videogame, which uses a data glove and a head-mounted display. He likes it. videogame suitable * Toy price buy() like() boardgame An assistant helps him. The suitability of the game depends on the age of the child. His daughter is only 3 years old. The assistant recommends another type of toy, namely a boardgame. The customer buy the game and leaves the store

83 Order of activities in modeling 1. Formulate a few scenarios with help from the end user and/or application domain expert. 2. Extract the use cases from the scenarios, with the help of application domain expert. 3. Analyse the flow of events, for example with Abbot's textual analysis. 4. Generate the class diagrams, which includes the following steps: 1. Class identification (textual analysis, domain experts). 2. Identification of attributes and operations (sometimes before the classes are found!) 3. Identification of associations between classes 4. Identification of multiplicities 5. Identification of roles 6. Identification of constraints

84 Avoid Ravioli Models Bank Name * Account Amount CustomerId AccountId AccountId * Has Customer Name Deposit() Withdraw() GetBalance() CustomerId Savings Account Checking Account Mortgage Account Don t put too many classes into the same package: 7+-2 (or even 5+-2) Withdraw() Withdraw() Withdraw()

85 Put Taxonomies on a separate Diagram Account Amount CustomerId AccountId AccountId Deposit() Withdraw() GetBalance() Savings Account Checking Account Mortgage Account Withdraw() Withdraw() Withdraw()

86 Object-Oriented Software Engineering Analysis: Dynamic Modeling

87 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 a single object => statechart diagram

88 Start with Flow of Events from Use Case Flow of events from Dial a Number Use case: Caller lifts receiver Dial tone begins Caller dials Phone rings Callee answers phone Ringing stops... From the flow of events in the use case or scenario proceed to the sequence diagram

89 Sequence Diagram A sequence diagram is a graphical description of objects participating in a use case or scenario using a DAG (direct acyclic graph) notation Relation to object identification: Objects/classes have already been identified during object modeling Objects are identified as a result of dynamic modeling Heuristic: A event always has a sender and a receiver. The representation of the event is sometimes called a message Find them for each event => These are the objects participating in the use case

90 An Example Flow of events in a Get SeatPosition use case : 1. Establish connection between smart card and onboard computer 2. Establish connection between onboard computer and sensor for seat 3. Get current seat position and store on smart card Which are the objects?

91 Sequence Diagram for Get SeatPosition 1. Establish connection between smart card and onboard computer Smart Card Onboard Computer Seat Establish Connection Establish Connection 2. Establish connection between onboard computer and sensor for seat 3. Get current seat position and store on smart card Accept Connection Get SeatPosition 500,575,300 Accept Connection time

92 Heuristics for Sequence Diagrams Layout: 1st column: Should correspond to the actor who initiated the use case 2nd column: Should be a boundary object 3rd column: Should be the control object that manages the rest of the use case Creation: Control objects are created at the initiation of a use case Boundary objects are created by control objects Access: Entity objects are accessed by control and boundary objects, Entity objects should never call boundary or control objects: This makes it easier to share entity objects across use cases and makes entity objects resilient against technology-induced changes in boundary objects.

93 Is this a good Sequence Diagram? First column is not the actor It is not clear where the boundary object is It is not clear where the control object is Smart Card Onboard Computer Seat Establish Connection Establish Connection Accept Connection Accept Connection Get SeatPosition 500,575,300

94 What else can we get out of sequence diagrams? Sequence diagrams are derived from the use cases. We therefore see the structure of the use cases. The structure of the sequence diagram helps us to determine how decentralized the system is. We distinguish two structures for sequence diagrams: Fork and Stair Diagrams (Ivar Jacobsen)

95 Fork Diagram Much of the dynamic behavior is placed in a single object, ususally the control object. It knows all the other objects and often uses them for direct questions and commands.

96 Stair Diagram The dynamic behavior is distributed. Each object delegates some responsibility to other objects. Each object knows only a few of the other objects and knows which objects can hel with a specific behavior.

97 Fork or Stair? Which of these diagram types should be chosen? Object-oriented fans claim that the stair structure is better The more the responsibility is spread out, the better However, this is not always true. Better heuristics: Decentralized control structure The operations have a strong connection The operations will always be performed in the same order Centralized control structure (better support of change) The operations can change order New operations can be inserted as a result of new requirements

98 Summary: Requirements Analysis 1. What are the transformations? Create scenarios and use case diagrams Functional Modeling Talk to client, observe, get historical records, do thought experiments 2. What is the structure of the system? Object Modeling Create class diagrams Identify objects. What are the associations between them? What is their multiplicity? What are the attributes of the objects? What operations are defined on the objects? 3. What is its behavior? Dynamic Modeling Create sequence diagrams Identify senders and receivers Show sequence of events exchanged between objects. Identify event dependencies and event concurrency. Create state diagrams Only for the dynamically interesting objects.

99 Let s Do Analysis 1. Analyze the problem statement Identify functional requirements Identify nonfunctional requirements Identify constraints (pseudo requirements) 2. Build the functional model: Develop use cases to illustrate functionality requirements 3. Build the dynamic model: Develop sequence diagrams to illustrate the interaction between objects Develop state diagrams for objects with interesting behavior 4. Build the object model: Develop class diagrams showing the structure of the system

100 Requirements Analysis Document Template 1. Introduction 2. Current system 3. Proposed system 3.1 Overview 3.2 Functional requirements 3.3 Nonfunctional requirements 3.4 Constraints ( Pseudo requirements ) 3.5 System models Scenarios Use case model Object model Data dictionary Class diagrams Dynamic models User interface 4. Glossary

101 Section 3.5 System Model Scenarios - As-is scenarios, visionary scenarios Use case model - Actors and use cases Object model - Data dictionary - Class diagrams (classes, associations, attributes and operations) Dynamic model - State diagrams for classes with significant dynamic behavior - Sequence diagrams for collaborating objects (protocol) User Interface - Navigational Paths, Screen mockups

102 Section 3.3 Nonfunctional Requirements User interface and human factors Documentation Hardware considerations Performance characteristics Error handling and extreme conditions System interfacing Quality issues System modifications Physical environment Security issues Resources and management issues

103 Nonfunctional Requirements: Trigger Questions User interface and human factors What type of user will be using the system? Will more than one type of user be using the system? What sort of training will be required for each type of user? Is it particularly important that the system be easy to learn? Is it particularly important that users be protected from making errors? What sort of input/output devices for the human interface are available, and what are their characteristics? Documentation What kind of documentation is required? What audience is to be addressed by each document? Hardware considerations What hardware is the proposed system to be used on? What are the characteristics of the target hardware, including memory size and auxiliary storage space?

104 Nonfunctional Requirements, ctd Performance characteristics Are there any speed, throughput, or response time constraints on the system? Are there size or capacity constraints on the data to be processed by the system? Error handling and extreme conditions How should the system respond to input errors? How should the system respond to extreme conditions? System interfacing Is input coming from systems outside the proposed system? Is output going to systems outside the proposed system? Are there restrictions on the format or medium that must be used for input or output?

105 Nonfunctional Requirements, ctd Quality issues What are the requirements for reliability? Must the system trap faults? What is the maximum time for restarting the system after a failure? What is the acceptable system downtime per 24-hour period? Is it important that the system be portable (able to move to different hardware or operating system environments)? System Modifications What parts of the system are likely candidates for later modification? What sorts of modifications are expected? Physical Environment Where will the target equipment operate? Will the target equipment be in one or several locations? Will the environmental conditions in any way be out of the ordinary (for example, unusual temperatures, vibrations, magnetic fields,...)?

106 Nonfunctional Requirements, ctd Security Issues Must access to any data or the system itself be controlled? Is physical security an issue? Resources and Management Issues How often will the system be backed up? Who will be responsible for the back up? Who is responsible for system installation? Who will be responsible for system maintenance?

107 Constraints (Pseudo Requirements) Constraint: Any client restriction on the solution domain Examples: The target platform must be an IBM/360 The implementation language must be COBOL The documentation standard X must be used A dataglove must be used ActiveX must be used The system must interface to a papertape reader

108 Project Agreement The project agreement represents the acceptance of (parts of) the analysis model (as documented by the requirements analysis document) by the client. The client and the developers converge on a single idea and agree about the functions and features that the system will have. In addition, they agree on: a list of prioritized requirements a revision process a list of criteria that will be used to accept or reject the system a schedule, and a budget

Use Case Modeling. Bernd Bruegge Carnegie Mellon University School of Computer Science. 8 September Bernd Brügge Software Engineering 1

Use Case Modeling. Bernd Bruegge Carnegie Mellon University School of Computer Science. 8 September Bernd Brügge Software Engineering 1 15-413 Use Case Modeling 2 Bernd Bruegge Carnegie Mellon University School of Computer Science 8 September 1998 Bernd Brügge Software Engineering 1 Outline of Today s Class Use Case Model Actors Use cases

More information

Chapter 5, Object Modeling

Chapter 5, Object Modeling Chapter 5, Object Modeling Using UML, Patterns, and Java Object-Oriented Software Engineering Where we are, where we are going problem statement Requirements elicitation Requirements Specification nonfunctional

More information

Chapter 4 Requirements Elicitation

Chapter 4 Requirements Elicitation Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 4 Requirements Elicitation Outline Today: Motivation: Software Lifecycle Requirements elicitation challenges Problem statement

More information

Chapter 5, Analysis: Object Modeling

Chapter 5, Analysis: Object Modeling Chapter 5, Analysis: Object Modeling Résumé Maintenant: Modélisation des objets du domaine La partie statique (diagramme de classe) Les activités durant la modélisation des objets L identification des

More information

Software Engineering

Software Engineering Software Engineering Object-Oriented Analysis and Design and Modeling with UML Assoc. Prof. Marenglen Biba MSc in Computer Science, UoG-UNYT Foundation Programme 3-1 Material Get the material from http://www.marenglenbiba.net/foundprog/

More information

Chapter 4 Requirements Elicitation (Recueil des éxigences)

Chapter 4 Requirements Elicitation (Recueil des éxigences) Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 4 Requirements Elicitation (Recueil des éxigences) Outline Today: Motivation: Software Lifecycle Requirements elicitation challenges

More information

Chapter 5, Analysis: Dynamic Modeling

Chapter 5, Analysis: Dynamic Modeling Chapter 5, Analysis: Dynamic Modeling Using UML, Patterns, and Java Object-Oriented Software Engineering Dynamic Modeling with UML Diagrams for dynamic modeling Interaction diagrams describe the dynamic

More information

Chapter 4 Requirements Elicitation

Chapter 4 Requirements Elicitation Chapter 4 Requirements Elicitation Object-Oriented Using UML, Patterns, and Java Software Engin neering Outline Today: Motivation: Software Lifecycle Requirements elicitation challenges Problem statement

More information

Requirements Elicitation

Requirements Elicitation Requirements Elicitation Introduction into Software Engineering Lecture 4 25. April 2007 Bernd Bruegge Applied Software Engineering Technische Universitaet Muenchen 1 Outline Motivation: Software Lifecycle

More information

Chapter 2, Modeling with UML, Part 2

Chapter 2, Modeling with UML, Part 2 Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML, Part 2 Outline of this Class What is UML? A more detailed view on Use case diagrams Class diagrams Sequence

More information

Progress Report. Object-Oriented Software Development: Requirements elicitation and analysis. Object-oriented analysis, design, implementation

Progress Report. Object-Oriented Software Development: Requirements elicitation and analysis. Object-oriented analysis, design, implementation Progress Report Object-Oriented Software Development: Requirements elicitation and analysis CS 4354 Fall 2012 Jill Seaman So far we have learned about the tools used in object-oriented design and implementation

More information

Chapter 2, Modeling with UML, Part 2

Chapter 2, Modeling with UML, Part 2 Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 2, Modeling with UML, Part 2 Outline of this Class What is UML? A more detailed view on ü Use case diagrams ü Class diagrams ü

More information

Chapter 5, Analysis: Dynamic Modeling

Chapter 5, Analysis: Dynamic Modeling Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5, Analysis: Dynamic Modeling An overview of OOSE development activities and their products Problem Statement Requirements Elicitation

More information

Page 1. Dynamic Modeling. How do you find classes? Dynamic Modeling with UML. UML Interaction Diagrams. UML State Chart Diagram.

Page 1. Dynamic Modeling. How do you find classes? Dynamic Modeling with UML. UML Interaction Diagrams. UML State Chart Diagram. Dynamic Modeling How do you find classes? We have already established several sources for class identification: Application domain analysis: We find classes by talking to the client and identify abstractions

More information

Chapter 2, lecture 2 Modeling with UML

Chapter 2, lecture 2 Modeling with UML Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 2, lecture 2 Modeling with UML Overview: More detail on modeling with UML Use case diagrams Class diagrams Sequence diagrams Activity

More information

Chapter 5, Analysis: Dynamic Modeling

Chapter 5, Analysis: Dynamic Modeling Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 5, Analysis: Dynamic Modeling ü Requirements Elicitation (Ch.4) ü Introduction (Ch 1-3) OOSE- Galaxy ü Nonfunctional Requirements

More information

MSc programme (induction week) Department of Informatics INTRODUCTION TO UML

MSc programme (induction week) Department of Informatics INTRODUCTION TO UML MSc programme (induction week) Department of Informatics INTRODUCTION TO UML Some of this material is based on Bernd Bruegge and Allen H. Dutoit (2009) Object-Oriented Software Engineering: Using UML,

More information

Course "Softwaretechnik" Book Chapter 5 Analysis: Dynamic Modeling

Course Softwaretechnik Book Chapter 5 Analysis: Dynamic Modeling Course "Softwaretechnik" Book Chapter 5 Analysis: Dynamic Modeling Lutz Prechelt, Bernd Bruegge, Allen H. Dutoit Freie Universität Berlin, Institut für Informatik http://www.inf.fu-berlin.de/inst/ag-se/

More information

Chapter 5, Analysis: Dynamic Modeling

Chapter 5, Analysis: Dynamic Modeling Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 5, Analysis: Dynamic Modeling ü Requirements Elicitation (Ch.4) ü Introduction (Ch 1-3) OOSE- Galaxy ü Nonfunctional Requirements

More information

Chapter 2, Modeling with UML

Chapter 2, Modeling with UML Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML Overview: modeling with UML What is modeling? What is UML? Use case diagrams Class diagrams Sequence diagrams

More information

Modeling with UML. (1) Use Case Diagram. (2) Class Diagram. (3) Interaction Diagram. (4) State Diagram

Modeling with UML. (1) Use Case Diagram. (2) Class Diagram. (3) Interaction Diagram. (4) State Diagram Modeling with UML A language or notation intended for analyzing, describing and documenting all aspects of the object-oriented software system. UML uses graphical notations to express the design of software

More information

Progress Report. Object-Oriented Software Development: Requirements elicitation (ch. 4) and analysis (ch. 5) Object-oriented software development

Progress Report. Object-Oriented Software Development: Requirements elicitation (ch. 4) and analysis (ch. 5) Object-oriented software development Progress Report Object-Oriented Software Development: Requirements elicitation (ch. 4) and analysis (ch. 5) CS 4354 Summer II 2014 Jill Seaman So far we have learned about the tools used in object-oriented

More information

Software Engineering I: Software Technology WS 2008/09. Analysis

Software Engineering I: Software Technology WS 2008/09. Analysis Software Engineering I: Software Technology WS 2008/09 Analysis Bernd Bruegge Applied Software Engineering Technische Universitaet Muenchen 1 Outline Recall: System modeling = Functional modeling + Object

More information

Introduction to Software Engineering: Analysis

Introduction to Software Engineering: Analysis Introduction to Software Engineering: Analysis John T. Bell Department of Computer Science University of Illinois, Chicago Based on materials from of Bruegge & DuToit 3e, Ch 5 and UML Distilled by Martin

More information

Chapter 2, Modeling with UML, Part 2

Chapter 2, Modeling with UML, Part 2 Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 2, Modeling with UML, Part 2 Outline of this Class What is UML? A more detailed view on ü Use case diagrams ü Class diagrams ü

More information

Chapter 2, Modeling with UML

Chapter 2, Modeling with UML Chapter 2, Modeling with UML Using UML, Patterns, and Java Object-Oriented Software Engineering Overview: Modeling with UML What is modeling? What is UML? Use case diagrams Class diagrams Next lecture

More information

Chapter 2, Modeling with UML, Part 2

Chapter 2, Modeling with UML, Part 2 Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 2, Modeling with UML, Part 2 Outline of this Class What is UML? A more detailed view on ü Use case diagrams ü Class diagrams ü

More information

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

Course Softwaretechnik Book Chapter 2 Modeling with UML Course "Softwaretechnik" Book Chapter 2 Modeling with UML Lutz Prechelt, Bernd Bruegge, Allen H. Dutoit Freie Universität Berlin, Institut für Informatik http://www.inf.fu-berlin.de/inst/ag-se/ Modeling,

More information

Design Patterns. Design Patterns

Design Patterns. Design Patterns Design Patterns As software engineers, we commonly have to make decisions about how to create complex objects, how to encapsulate some actions, how to allow for the undoing of certain operations, etc.

More information

Chapter 5, Analysis: Dynamic Modeling

Chapter 5, Analysis: Dynamic Modeling Object-Oriented Software Engineering Conquering Complex and Changing Systems Chapter 5, Analysis: Dynamic Modeling Bernd Brügge Allen H. Dutoit Technische Universität München Applied Software Engineering

More information

System Modeling III: Dynamic Modeling

System Modeling III: Dynamic Modeling System Modeling III: Dynamic Modeling Introduction into Software Engineering Lecture 7 9 May 2007 Bernd Bruegge Applied Software Engineering Technische Universitaet Muenchen 1 Reverse Engineering Challenge

More information

Chapter 2, lecture 1, Modeling with UML

Chapter 2, lecture 1, Modeling with UML Chapter 2, lecture 1, Modeling with UML Using UML, Patterns, and Java Object-Oriented Software Engineering Overview: modeling with UML What is modeling? What is UML? Use case diagrams Class diagrams Sequence

More information

Outline of Lecture 3. Identifying Objects. Requirements Analysis Overview. Actors, Objects and Classes

Outline of Lecture 3. Identifying Objects. Requirements Analysis Overview. Actors, Objects and Classes Identifying Objects Software Requirements and Design CITS 4401 Lecture 3 Outline of Lecture 3 What is an object? Identifying Grammatical Analysis CRC method B&D heuristics for object identification Requirements

More information

Lesson 11. W.C.Udwela Department of Mathematics & Computer Science

Lesson 11. W.C.Udwela Department of Mathematics & Computer Science Lesson 11 INTRODUCING UML W.C.Udwela Department of Mathematics & Computer Science Why we model? Central part of all the activities We build model to Communicate Visualize and control Better understand

More information

Chapter 2, Modeling with UML

Chapter 2, Modeling with UML Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 2, Modeling with UML Overview: modeling with UML What is modeling? What is UML? Use case diagrams Class diagrams Next lecture

More information

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin Chapter 10 Object-Oriented Analysis and Modeling Using the UML McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Objectives 10-2 Define object modeling and explain

More information

Lecture 8 Requirements Engineering

Lecture 8 Requirements Engineering Lecture 8 Requirements Engineering Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte September 18, 2008 Lecture Overview

More information

1: Specifying Requirements with Use Case Diagrams

1: Specifying Requirements with Use Case Diagrams Outline UML Design Supplement 1: Specifying Requirements with Use Case Diagrams Introduction Use Case Diagrams Writing Use Cases Guidelines for Effective Use Cases Slide adapted from Eran Toch s lecture

More information

Basic Structural Modeling. Copyright Joey Paquet,

Basic Structural Modeling. Copyright Joey Paquet, Basic Structural Modeling Copyright Joey Paquet, 2000 1 Part I Classes Copyright Joey Paquet, 2000 2 Classes Description of a set of objects sharing the same attributes, operations and semantics Abstraction

More information

Object Oriented Modeling

Object Oriented Modeling Overview UML Unified Modeling Language What is Modeling? What is UML? A brief history of UML Understanding the basics of UML UML diagrams UML Modeling tools 2 Modeling Object Oriented Modeling Describing

More information

A Rapid Overview of UML

A Rapid Overview of UML A Rapid Overview of UML The Unified dmodeling Language (UML) Emerged in the mid 90s as the de facto standard for softwareengineering engineering design Use case diagram depicts user interaction with system

More information

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

Course Softwaretechnik Book Chapter 2 Modeling with UML Course "Softwaretechnik" Book Chapter 2 Modeling with UML Lutz Prechelt, Bernd Bruegge, Allen H. Dutoit Freie Universität Berlin, Institut für Informatik Modeling, models and UML Static view: Class diagrams

More information

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

Outline of UML and Unified Process. Object Oriented Analysis/Design/Programming UML1.5. Koichiro Ochimizu, JAIST. UML&UP outline 1. Outline of UML and Unified Process Koichiro OCHIMIZU School of Information Science JAIST Schedule Feb. 27th 13:00 Scope and Goal 14:30 Basic Concepts on Representing the World (object, class, association,

More information

VANCOUVER Chapter Study Group. BABOK Chapter 9 Techniques

VANCOUVER Chapter Study Group. BABOK Chapter 9 Techniques VANCOUVER Chapter Study Group BABOK Chapter 9 Techniques May 27, 2015 David Ghotbi, CBAP Agenda Chapter 8 Review Pop Quiz Break Chapter 9 Review Pop Quiz Q & A 2 Chapter 9 Techniques Techniques: Alter

More information

06. Analysis Modeling

06. Analysis Modeling 06. Analysis Modeling Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 Overview of Analysis Modeling 1 Requirement Analysis 2 Analysis Modeling Approaches

More information

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

Components Based Design and Development. Unit 3: Software Design Quick Overview Components Based Design and Development Computer Engineering Studies Universidad Carlos III de Madrid Unit 3: Software Design Quick Overview Juan Llorens Högskolan på Åland Finland / Universidad Carlos

More information

Object Design II: Design Patterns

Object Design II: Design Patterns Object-Oriented Software Engineering Using UML, Patterns, and Java Object Design II: Design Patterns Bernd Bruegge Applied Software Engineering Technische Universitaet Muenchen A Game: Get-15 The game

More information

Outline of Unified Process

Outline of Unified Process Outline of Unified Process Koichiro OCHIMIZU School of Information Science JAIST Schedule(3/3) March 12 13:00 Unified Process and COMET 14:30 Case Study of Elevator Control System (problem definition,

More information

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties Why testing and analysis Software Testing Adapted from FSE 98 Tutorial by Michal Young and Mauro Pezze Software is never correct no matter what developing testing technique is used All software must be

More information

CSE 308. UML Overview Use Case Diagrams. Reference. en.wikipedia.org/wiki/class_diagram. Robert Kelly, B. Bruegge,

CSE 308. UML Overview Use Case Diagrams. Reference. en.wikipedia.org/wiki/class_diagram. Robert Kelly, B. Bruegge, CSE 308 UML Overview Use Case Diagrams Class diagrams Reference en.wikipedia.org/wiki/class_diagram 2 1 What is Modeling? Modeling consists of building an abstraction of reality Abstractions are simplifications

More information

Object Oriented Software Development CIS Today: Object Oriented Analysis

Object Oriented Software Development CIS Today: Object Oriented Analysis Object Oriented Software Development CIS 50-3 Marc Conrad D104 (Park Square Building) Marc.Conrad@luton.ac.uk Today: Object Oriented Analysis The most single important ability in object oriented analysis

More information

Requirement Analysis

Requirement Analysis Requirement Analysis Requirements Analysis & Specification Objective: determine what the system must do to solve the problem (without describing how) Done by Analyst (also called Requirements Analyst)

More information

Course "Softwaretechnik Modeling with UML Stephan Salinger

Course Softwaretechnik Modeling with UML Stephan Salinger Course "Softwaretechnik Modeling with UML Stephan Salinger (Foliensatz/Inhalt: Lutz Prechelt, Bernd Bruegge, Allen H. Dutoit) Freie Universität Berlin, Institut für Informatik http://www.inf.fu-berlin.de/inst/ag-se/

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

ATTENTION TO COME/ISE 491/492 STUDENT

ATTENTION TO COME/ISE 491/492 STUDENT ATTENTION TO COME/ISE 491/492 STUDENT 151 As a part of your requirement analysis section in your final report, you should write a requirement analysis document (RAD). The details of the document, and a

More information

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/17/2015

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/17/2015 Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm Rao Casturi 09/17/2015 http://cs.gsu.edu/~ncasturi1 Requirement Elicitation 2 Requirement Engineering First step for understanding the

More information

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/29/2015

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/29/2015 Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm Rao Casturi 09/29/2015 http://cs.gsu.edu/~ncasturi1 Class Announcements Grading is done for the Deliverable #2 (Requirement Elicitation)

More information

Lecture 16+17: Modeling with UML

Lecture 16+17: Modeling with UML Chair of Software Engineering Software Engineering Spring Semester 2008 Slides: Based on KSE06 With kind permission of Peter Müller Lecture 16+17: Modeling with UML What is modeling? Building an abstraction

More information

CSCU9T4: Managing Information

CSCU9T4: Managing Information CSCU9T4: Managing Information CSCU9T4 Spring 2016 1 The Module Module co-ordinator: Dr Gabriela Ochoa Lectures by: Prof Leslie Smith (l.s.smith@cs.stir.ac.uk) and Dr Nadarajen Veerapen (nve@cs.stir.ac.uk)

More information

Course "Softwaretechnik" Analysis Model: Objects

Course Softwaretechnik Analysis Model: Objects Course "Softwaretechnik" Stephan Salinger (Foliensatz: Lutz Prechelt, Bernd Bruegge & Allen H. Dutoit) Freie Universität Berlin, Institut für Informatik http://www.inf.fu-berlin.de/inst/ag-se/ Use Cases

More information

Software Service Engineering

Software Service Engineering Software Service Engineering Lecture 4: Unified Modeling Language Doctor Guangyu Gao Some contents and notes selected from Fowler, M. UML Distilled, 3rd edition. Addison-Wesley Unified Modeling Language

More information

Software Architectures. Lecture 6 (part 1)

Software Architectures. Lecture 6 (part 1) Software Architectures Lecture 6 (part 1) 2 Roadmap of the course What is software architecture? Designing Software Architecture Requirements: quality attributes or qualities How to achieve requirements

More information

Chapter : Analysis Modeling

Chapter : Analysis Modeling Chapter : Analysis Modeling Requirements Analysis Requirements analysis Specifies software s operational characteristics Indicates software's interface with other system elements Establishes constraints

More information

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview CHAPTER 1 Topic: UML Overview After studying this Chapter, students should be able to: Describe the goals of UML. Analyze the History of UML. Evaluate the use of UML in an area of interest. CHAPTER 1:

More information

Darshan Institute of Engineering & Technology for Diploma Studies

Darshan Institute of Engineering & Technology for Diploma Studies REQUIREMENTS GATHERING AND ANALYSIS The analyst starts requirement gathering activity by collecting all information that could be useful to develop system. In practice it is very difficult to gather all

More information

Use C ases Cases 7/09

Use C ases Cases 7/09 Use Cases 7/09 Groups of 3 Recorder/Timekeeper Participation checker Devil s Advocate Motivation One way to describe a system is to create a story, y, the interaction between a user and the system This

More information

Principles of Software Construction: Objects, Design, and Concurrency

Principles of Software Construction: Objects, Design, and Concurrency Principles of Software Construction: Objects, Design, and Concurrency Designing (sub-) systems A formal design process Charlie Garrod Michael Hilton School of Computer Science 1 Administrivia Optional

More information

IDEF3 Process Modeling

IDEF3 Process Modeling IDEF3 Process Modeling What is a Process Model? Simply pyp put, the Process Model is the way that work is divided in a value delivery system. James B. Swartz A representation of a process and its related

More information

Lecture 15: Modeling with UML

Lecture 15: Modeling with UML Chair of Software Engineering What is modeling? Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Slides: Based on KSE06 With kind permission of Peter Müller Lecture 15: Modeling with

More information

MTAT Software Engineering. Written Exam 17 January Start: 9:15 End: 11:45

MTAT Software Engineering. Written Exam 17 January Start: 9:15 End: 11:45 MTAT.03.094 Software Engineering Written Exam 17 January 2014 Start: 9:15 End: 11:45 Important Notes: The exam is open book and open laptop. Web browsing is allowed, but you are not allowed to use e mail

More information

CSE 308. UML Overview Use Case Diagrams. Reference. Class diagrams. Session 6 UML Intro/Use cases. Robert Kelly, B. Bruegge,

CSE 308. UML Overview Use Case Diagrams. Reference. Class diagrams. Session 6 UML Intro/Use cases. Robert Kelly, B. Bruegge, CSE 308 UML Overview Use Case Diagrams Class diagrams Reference en.wikipedia.org/wiki/use_case 2 1 What is Modeling? Modeling consists of building an abstraction of reality Abstractions are simplifications

More information

Chapter 2: The Object-Oriented Design Process

Chapter 2: The Object-Oriented Design Process Chapter 2: The Object-Oriented Design Process In this chapter, we will learn the development of software based on object-oriented design methodology. Chapter Topics From Problem to Code The Object and

More information

Managing Change and Complexity

Managing Change and Complexity Managing Change and Complexity The reality of software development Overview Some more Philosophy Reality, representations and descriptions Some more history Managing complexity Managing change Some more

More information

Requirements Validation and Negotiation

Requirements Validation and Negotiation REQUIREMENTS ENGINEERING LECTURE 2015/2016 Eddy Groen Requirements Validation and Negotiation AGENDA Fundamentals of Requirements Validation Fundamentals of Requirements Negotiation Quality Aspects of

More information

Software Engineering from a

Software Engineering from a Software Engineering from a modeling perspective Robert B. France Dept. of Computer Science Colorado State University USA france@cs.colostate.edu Softwaredevelopment problems Little or no prior planning

More information

Lecture 5 STRUCTURED ANALYSIS. PB007 So(ware Engineering I Faculty of Informa:cs, Masaryk University Fall Bühnová, Sochor, Ráček

Lecture 5 STRUCTURED ANALYSIS. PB007 So(ware Engineering I Faculty of Informa:cs, Masaryk University Fall Bühnová, Sochor, Ráček Lecture 5 STRUCTURED ANALYSIS PB007 So(ware Engineering I Faculty of Informa:cs, Masaryk University Fall 2015 1 Outline ² Yourdon Modern Structured Analysis (YMSA) Context diagram (CD) Data flow diagram

More information

Best Practices for Model-Based Systems Engineering

Best Practices for Model-Based Systems Engineering Seminar / Workshop Best Practices for Model-Based Systems Engineering Hans-Peter Hoffmann, Ph.D. Chief Systems Methodologist, IBM Rational Software hoffmape@us.ibm.com Overview Successfully delivering

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java

Object-Oriented Software Engineering Practical Software Development using UML and Java Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical

More information

UML 2.0 UML 2.0. Scott Uk-Jin Lee. Division of Computer Science, College of Computing Hanyang University ERICA Campus

UML 2.0 UML 2.0. Scott Uk-Jin Lee. Division of Computer Science, College of Computing Hanyang University ERICA Campus UML 2.0 Division of Computer Science, College of Computing Hanyang University ERICA Campus Introduction to UML 2.0 UML Unified Modeling Language Visual language for specifying, constructing and documenting

More information

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author(s)> <Organization> <Date created>

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author(s)> <Organization> <Date created> Software Requirements Specification for Version 1.0 approved Prepared by Software Requirements Specification for Page 2 Table of Contents Revision

More information

Lecture 9 Requirements Engineering II

Lecture 9 Requirements Engineering II Lecture 9 Requirements Engineering II Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte September 23, 2008 Announcements

More information

Specifying Structural Requirements

Specifying Structural Requirements Specifying Structural Requirements Jörg Kienzle & Alfred Strohmeier COMP-361 Specifying Structural Requirements Structural Requirements Overview Purpose and Process of Requirements Specification / Analysis

More information

An end-user s perspective What system? I haven t seen a new system

An end-user s perspective What system? I haven t seen a new system References 1. Object-Oriented Software Engineering---Practical software development using UML and Java, T.C. Lethbridge and R. Laganiere, McGraw-Hill, 2005. 2. Object-Oriented Systems Analysis and Design

More information

ADD 3.0: Rethinking Drivers and Decisions in the Design Process

ADD 3.0: Rethinking Drivers and Decisions in the Design Process ADD 3.0: Rethinking Drivers and Decisions in the Design Process Rick Kazman Humberto Cervantes SATURN 2015 Outline Presentation Architectural design and types of drivers The Attribute Driven Design Method

More information

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802 UNIT-II Lecture Notes On UML IMPORTANCE OF MODELING, BRIEF OVERVIEW OF OBJECT MODELING TECHNOLOGY (OMT) BY RAMBAUGH, BOOCH METHODOLOGY, USE CASE DRIVE APPROACH (OOSE) BY JACKOBSON. KHALID AMIN AKHOON 1

More information

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

Object-Oriented Design. Module UFC016QM. and Programming. Objects and Classes. O-O Design Unit 2: Faculty of Computing, Engineering Module UFC016QM Object-Oriented Design and Programming O-O Design Unit 2: Objects and Classes Faculty of Computing, Engineering and Mathematical Sciences Schedule Quick recap on Use Case diagrams UWE Flix

More information

About this module. Object-oriented analysis and design. About this module. Analysis

About this module. Object-oriented analysis and design. About this module. Analysis About this module McGill ECE 321 Intro to Software Engineering Radu Negulescu Fall 2001 Object-oriented analysis and design The modules of an object-oriented program preserve state between calls. This

More information

Human Error Taxonomy

Human Error Taxonomy Human Error Taxonomy The Human Error Taxonomy (HET) provides a structure for requirement errors made during the software development process. The HET can be employed during software inspection to help

More information

Architecture and the UML

Architecture and the UML Architecture and the UML Models, Views, and A model is a complete description of a system from a particular perspective Use Case Use Case Sequence Use Case Use Case Use Case State State Class State State

More information

MCQS for Midterm cs504 Combined by Anees Ahmad

MCQS for Midterm cs504 Combined by Anees Ahmad MCQS for Midterm cs504 Combined by Anees Ahmad The best way to conduct a requirements validation review is to examine the system model for errors have the customer look over the requirements send them

More information

SE 1: Software Requirements Specification and Analysis

SE 1: Software Requirements Specification and Analysis SE 1: Software Requirements Specification and Analysis Lecture 9: UML Class (Concept), Object, Communication Diagrams Nancy Day, Davor Svetinović http://www.student.cs.uwaterloo.ca/ cs445/winter2006 uw.cs.cs445

More information

Modeling Requirements

Modeling Requirements Modeling Requirements Critical Embedded Systems Dr. Balázs Polgár Prepared by Budapest University of Technology and Economics Faculty of Electrical Engineering and Informatics Dept. of Measurement and

More information

IBM Software Group. Mastering Requirements Management with Use Cases Module 10: Structure the Use-Case Model

IBM Software Group. Mastering Requirements Management with Use Cases Module 10: Structure the Use-Case Model IBM Software Group Mastering Requirements Management with Use Cases Module 10: Structure the Use-Case Model 1 Objectives Simplify the maintenance of the requirements without sacrificing clarity or comprehension

More information

Object-Oriented Systems Analysis and Design Using UML

Object-Oriented Systems Analysis and Design Using UML 10 Object-Oriented Systems Analysis and Design Using UML Systems Analysis and Design, 8e Kendall & Kendall Copyright 2011 Pearson Education, Inc. Publishing as Prentice Hall Learning Objectives Understand

More information

Introduction to Software Engineering

Introduction to Software Engineering Introduction to Software Engineering Gérald Monard Ecole GDR CORREL - April 16, 2013 www.monard.info Bibliography Software Engineering, 9th ed. (I. Sommerville, 2010, Pearson) Conduite de projets informatiques,

More information

IDERA ER/Studio Software Architect Evaluation Guide. Version 16.5/2016+ Published February 2017

IDERA ER/Studio Software Architect Evaluation Guide. Version 16.5/2016+ Published February 2017 IDERA ER/Studio Software Architect Evaluation Guide Version 16.5/2016+ Published February 2017 2017 IDERA, Inc. All rights reserved. IDERA and the IDERA logo are trademarks or registered trademarks of

More information

7. System Design: Addressing Design Goals

7. System Design: Addressing Design Goals 7. System Design: Addressing Design Goals Outline! Overview! UML Component Diagram and Deployment Diagram! Hardware Software Mapping! Data Management! Global Resource Handling and Access Control! Software

More information

Software Engineering Prof.N.L.Sarda IIT Bombay. Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II)

Software Engineering Prof.N.L.Sarda IIT Bombay. Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II) Software Engineering Prof.N.L.Sarda IIT Bombay Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II) We will continue our discussion on process modeling. In the previous lecture

More information

Sofware Requirements Engineeing

Sofware Requirements Engineeing Sofware Requirements Engineeing Three main tasks in RE: 1 Elicit find out what the customers really want. Identify stakeholders, their goals and viewpoints. 2 Document write it down (Requirements Specification).

More information

Lecture 8: Use Case -Driven Design. Where UML fits in

Lecture 8: Use Case -Driven Design. Where UML fits in Lecture 8: Use Case -Driven Design The Role of UML in the Software Process E.g. ICONIX Domain Models Use Cases 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution

More information