Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 QUIZ 2 SOLUTIONS.

Slides:



Advertisements
Similar presentations
Chapter 4,Use Case and Statechart Diagrams
Advertisements

Slides by Bruegee and Dutoit, Modified by David A. Gaitros COP 3331 Object Oriented Analysis and Design Chapter 2: Object Oriented Modeling using UML Jean.
Chapter 2, Modeling with UML, Part 2
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML.
Using UML, Patterns, and Java Object-Oriented Software Engineering Requirements Analysis (Part 1 – Object Modeling)
Interaction Diagrams Software Engineering BIT8. Interaction Diagrams  A series of diagrams describing the dynamic behavior of an object-oriented system.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5: Analysis, Object Modeling.
Systems Analysis and Design in a Changing World, Fourth Edition
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 UML First Pass: Class Diagrams Battery load()
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 UML Sequence Diagrams  Used during system.
Unified Modeling Language (UML) Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 2, Modeling with UML.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5, Object Modeling.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 2, Modeling with UML.
© Copyright Eliyahu Brutman Programming Techniques Course.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering September 5, 2001 Introduction.
Using UML, Patterns, and Java Object-Oriented Software Engineering Modeling with UML Chapter 2 Object-Oriented Software Engineering: Using UML, Patterns,
Unified Modeling Language (UML)
1 Modeling with UML CMPE 131 Fall Overview What is modeling? What is UML? Use case diagrams Class diagrams Sequence diagrams Activity diagrams.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 7 System Design: Addressing Design Goals.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML.
Course information and deadline reminders
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 2, Modeling with UML.
Introduction to Software Engineering ECSE-321 Unit 5 – Modeling with UML.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Course slides Slightly modified from Uğur Doğrusöz’s.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 2.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 7 Addressing Design Goals.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 7 System Design: Addressing Design Goals.
Modeling with UML Chapter 2 Object-Oriented Software Engineering: Using UML, Patterns, and Java, 2 nd Edition By B. Bruegge and A. Dutoit Prentice Hall,
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 2, Modeling with UML.
Chapter Five–Part III Object Oriented Design More Design issues.
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.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5: Analysis, Object Modeling.
Chapter 2, Modeling with UML, Part 2
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 2.
Chapter 7 System Design 2 Addressing Design Goals.
Chapter 7, System Design: Addressing Design Goals
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)
7 Systems Analysis and Design in a Changing World, Fifth Edition.
UML Review of diagram types. 2 Unified Modeling Language The Unified Modeling Language™ (UML) was developed jointly by Grady Booch, Ivar Jacobson, and.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 2, Modeling with UML.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering September 19, 2001 UML.
Introduction to UML 임현승 강원대학교 Revised from the slides by Bernd Bruegge and Allen H. Dutoit for the book “Object-Oriented Software Engineering: Using UML,
Using UML, Patterns, and Java Object-Oriented Software Engineering More on UML Note: Slides are adapted by Linda Sherrell from the Software Engineering.
Systems Analysis and Design in a Changing World, Fourth Edition
COP 3331 OBJECT-ORIENTED ANALYSIS AND DESIGN Bob Myers Department of Computer Science.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 2, Modeling with UML.
UML Review Overview: modeling with UML  What is modeling?  What is UML?  Use case diagrams  Class diagrams  Sequence diagrams  Activity diagrams.
CEN 5011 Advanced Software Engineering
CEN 4010 Eight Lecture Feb. 27, 2006 Introduction to Software Engineering (CEN- 4010) Spring 2006 Instructor: Masoud Sadjadi
7 Systems Analysis – ITEC 3155 The Object Oriented Approach – Use Cases.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 2, Modeling with UML.
Object Oriented Analysis System modeling = Functional modeling + Object modeling + Dynamic modeling Functional modeling = Use cases Object modeling =class.
1 Object Oriented Analysis System modeling = Functional modeling + Object modeling + Dynamic modeling Functional modeling = Use cases Object modeling =class.
Two New UML Diagram Types Component Diagram Deployment Diagram.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 7, System Design: Addressing Design Goals.
Chapter 7 System Design: Addressing Design Goals
Chapter 2, Modeling with UML
UML Review.
Chapter 7 System Design: Addressing Design Goals
CS410 – Software Engineering Lecture #17: UML I
Chapter 2, Modeling with UML
Chapter 2, Modeling with UML
Chapter 2, Modeling with UML
Advance Software Engineering (CEN-5011)
CS410 – Software Engineering Lecture #9: UML
Chapter 2, Modeling with UML
Presentation transcript:

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 QUIZ 2 SOLUTIONS

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java Consider a file system with a graphical user interface, such as Macintosh’s Finder, Microsoft’sWindows Explorer, or Linux’s KDE. The following objects were identified from a use case describing how to copy a file from a floppy disk to a hard disk: File, Icon, TrashCan, Folder, Disk, Pointer. Specify which are entity objects, which are boundary objects, and which are control objects. Entity objects: File, Folder, Disk, TrashCan (if regarded as folder) Boundary objects: Icon, Pointer, TrashCan (if regarded as icon) Control objects: none in this example.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java From the sequence diagram below, draw the corresponding class diagram for 2BWatch. Hint: Start with the participating objects in the sequence diagram. Warning 1: Actor is not an object! Warning 2: You need to list attributes for some of the objects. blinkHours() blinkMinutes() incrementMinutes() refresh() commitNewTime() stopBlinking() pressButton1() pressButton2() pressButtons1And2() pressButton1() :WatchUser :Time:LCDDisplay:SimpleWatch

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4 SimpleWatch is an instance of 2BWatch LCDdisplay is an instance of 2BWatchDisplay Time is an instance of 2BWatchTime  Boundary object: 2BWatchButtons or 2BWatchInput (ok if you left it as attributes) Messages: pressButton1(), pressButton2(), pressButton1and2()  2BWatchInput blinkHours(), blinkMinutes(), stopBlinking(), refresh()  2BWatchDisplay possible attribute: digitBlanking incrementMinutes(), commitNewTime() possible attribute: time 2BWatch 2BWatchInput pressButton1() pressButton2() pressButton1and2() 2BWatchDisplay 2BWatchTime blinkHours() blinkMinutes() stopBlinking() refresh() digitBlanking incrementMinutes() commitNewTime() time

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5 MIDTERM: CHAPTERS 1-5

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6 You should know… Use case diagrams Describe the functional behavior of the system as seen by the user Used during requirements elicitation Class diagrams Describe the static structure of the system: Objects, attributes, associations Sequence diagrams Describe the dynamic behavior between objects of the system State diagrams Describe the dynamic behavior of an individual object Activity diagrams Describe the dynamic behavior of a system, in particular the workflow.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7 UML Core Conventions All UML Diagrams are composed of graphs of nodes and edges Nodes are entities and drawn as rectangles or ovals Rectangles denote classes or instances Ovals denote functions Names of Classes are not underlined SimpleWatch Firefighter Names of Instances are underlined myWatch:SimpleWatch Joe:Firefighter An edge between two nodes denotes a relationship between the corresponding entities

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8 Use case diagrams Use case diagrams represent the functionality of the system from user’s point of view Actor. Use Case System boundary Classifier

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9 Use case diagrams Use case diagrams represent external behavior Uses should be verbs Actor-use relations are marked with an edge: Which actor is related to which use (what does an actor do?) Relationships between uses: Extends Relationship To represent seldom invoked use cases or exceptional functionality Includes Relationship To represent functional behavior common to more than one use case. Warning: extends/includes relationships are shown ONLY in Use Cases. NOT in Statechart, sequence, class diagrams! Hierarchy between uses: “Kind-of” and “Part-of”: they can be in class diagrams too

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10 The > Relationship > relationships model exceptional or seldom invoked cases The exceptional event flows are factored out of the main event flow for clarity The direction of an > relationship is to the extended use case Use cases representing exceptional flows can extend more than one use case. Passenger PurchaseTicket TimeOut > NoChange > OutOfOrder > Cancel >

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11 The > Relationship > relationship represents common functionality needed in more than one use case > behavior is factored out for reuse, not because it is an exception The direction of a > relationship is to the using use case (unlike the direction of the > relationship). Passenger PurchaseSingleTicket PurchaseMultiCard > CollectMoney > NoChange > Cancel > Cancel >

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12 Class diagrams 1 2 push() release() 1 1 blinkIdx blinkSeconds() blinkMinutes() blinkHours() stopBlinking() referesh() LCDDisplay Battery Load Time Now 1 Watch Operations state PushButton Attribute Class diagrams represent the structure of the system Class Association Multiplicity

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13 Class Diagrams Class diagrams represent the structure of the system Used during requirements analysis to model application domain concepts during system design to model subsystems during object design to specify the detailed behavior and attributes of classes. Table zone2price Enumeration getZones() Price getPrice(Zone) TarifSchedule * * Trip zone:Zone Price: Price

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14 Classes A class represents a concept A class encapsulates state (attributes) and behavior (operations) Table zone2price Enumeration getZones() Price getPrice(Zone) TarifSchedule zone2price getZones() getPrice() TarifSchedule Name Attributes Operations Signature TarifSchedule The class name is the only mandatory information Each attribute has a type Each operation has a signature Type

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15 Actor vs Class vs Object Actor An entity outside the system to be modeled, interacting with the system (“Passenger”) Class An abstraction modeling an entity in the application or solution domain The class is part of the system model (“User”, “Ticket distributor”, “Server”) Object A specific instance of a class (“Joe, the passenger who is purchasing a ticket from the ticket distributor”).

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16 Message Sequence diagrams :Time :Watch :WatchUser Object Activation Sequence diagrams represent the behavior of a system as messages (“interactions”) between different objects Actor pressButton1() Lifeline blinkHours() pressButton2() incrementMinutes() :LCDDisplay pressButton1and2() commitNewTime() stopBlinking() refresh() pressButton1() blinkMinutes()

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17 Sequence Diagrams Used during analysis To refine use case descriptions to find additional objects (“participating objects”) Used during system design to refine subsystem interfaces Instances are represented by rectangles. Actors by sticky figures Lifelines are represented by dashed lines Messages are represented by arrows Activations are represented by narrow rectangles. selectZone() pickupChange() pickUpTicket() insertCoins() TicketMachine Passenger Focus on control flow Messages -> Operations on participating Object zone2price selectZone() insertCoins() pickupChange() pickUpTicket() TicketMachine

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18 Sequence Diagrams can also model the Flow of Data The source of an arrow indicates the activation which sent the message Horizontal dashed arrows indicate data flow, for example return results from a message Passenger selectZone() ZoneButtonTarifScheduleDisplay lookupPrice(selection) displayPrice(price) price Dataflow …continued on next slide...

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19 Sequence Diagrams: Iteration & Condition Iteration is denoted by a * preceding the message name Condition is denoted by boolean expression in [ ] before the message name Passenger ChangeProcessor insertChange(coin) CoinIdentifierDisplayCoinDrop displayPrice(owedAmount) lookupCoin(coin) value [owedAmount<0] returnChange(-owedAmount) Iteration Condition …continued on next slide... …continued from previous slide... *

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20 Creation and destruction Creation is denoted by a message arrow pointing to the object Destruction is denoted by an X mark at the end of the destruction activation In garbage collection environments, destruction can be used to denote the end of the useful life of an object. Passenger ChangeProcessor …continued from previous slide... Ticket createTicket(selection) free() Creation of Ticket Destruction of Ticket print()

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21 Sequence Diagram Properties UML sequence diagram represent behavior in terms of interactions One sequence diagram for one scenario (flow of events) Useful to identify or find missing objects Time consuming to build, but worth the investment Complement the class diagrams (which represent structure). The participating objects are objects (i.e. instances), NOT classes Class of an object implements the messages that object receives

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22 Statechart diagrams State Initial state Final state Transition Event Represent behavior of a single object with interesting dynamic behavior. button1&2Pressed button1Pressed button2Pressed button1Pressed button1&2Pressed Increment Minutes Increment Hours Blink Hours Blink Seconds Blink Minutes Increment Seconds Stop Blinking

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 23 Activity Diagrams An activity diagram is a special case of a state chart diagram The states are activities (“functions”) An activity diagram is useful to depict the workflow in a system

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24 Activity Diagrams allow to model Decisions Decision

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 25 Activity Diagrams can model Concurrency Synchronization of multiple activities Splitting the flow of control into multiple threads Synchronization Splitting

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 26 Activity Diagrams: Grouping of Activities Activities may be grouped into swimlanes to denote the object or subsystem that implements the activities. Open Incident Allocate Resources Coordinate Resources Document Incident Archive Incident Dispatcher FieldOfficer

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 27 Types of Requirements Functional requirements Describe the interactions between the system and its environment independent from the implementation “An operator must be able to define a new game. “ Nonfunctional requirements Aspects not directly related to functional behavior. “The response time must be less than 1 second” Constraints Imposed by the client or the environment “The implementation language must be Java “ Called “Pseudo requirements” in the text book.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 28 Functional vs. Nonfunctional Requirements Functional Requirements Describe user tasks that the system needs to support Phrased as actions “Advertise a new league” “Schedule tournament” “Notify an interest group” Nonfunctional Requirements Describe properties of the system or the domain Phrased as constraints or negative assertions “All user inputs should be acknowledged within 1 second” “A system crash should not result in data loss”.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 29 Types of Nonfunctional Requirements Usability Reliability Robustness Safety Performance Response time Scalability Throughput Availability Supportability Adaptability Maintainability Implementation Interface Operation Packaging Legal Licensing (GPL, LGPL) Certification Regulation Quality requirements Constraints or Pseudo requirements

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 30 Nonfunctional Requirements: Examples “Spectators must be able to watch a match without prior registration and without prior knowledge of the match.”  Usability Requirement “The system must be running 95% of the time”  Reliability Requirement “The system must support 10 parallel tournaments”  Performance Requirement “The operator must be able to add new games without modifications to the existing system.”  Supportability Requirement

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 31 Different types of Objects Entity Objects Represent the persistent information tracked by the system (Application domain objects, also called “Business objects”) Boundary Objects Represent the interaction between the user and the system Control Objects Represent the control tasks performed by the system.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 32 Finding Participating Objects in Use Cases Pick a use case and look at flow of events Do a textual analysis (noun-verb analysis) Nouns are candidates for objects/classes Verbs are candidates for operations This is also called Abbott’s Technique After objects/classes are found, identify their types Identify real world entities that the system needs to keep track of (FieldOfficer  Entity Object) Identify real world procedures that the system needs to keep track of (EmergencyPlan  Control Object) Identify interface artifacts (PoliceStation  Boundary Object).

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 33 Example for using the Technique 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 Euros. He tries a videogame, which uses a data glove and a head-mounted display. He likes it. 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". Flow of Events:

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 34 Mapping parts of speech to model components (Abbott’s Technique) Part of speech Proper noun Improper noun Doing verb being verb having verb modal verb adjective transitive verb intransitive verb UML model component object class operation inheritance aggregation constraint attribute operation constraint, class, association Example “Monopoly” Toy Buy, recommend is-a has an must be dangerous enter depends on

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 35 Grammatical constructUML Component Concrete Person, ThingObject nounclass verbOperation Classifying verbInheritance Possessive VerbAggregation modal VerbConstraint AdjectiveAttribute Intransitive verbOperation (Event) Textual Analysis using Abbott‘s technique Example “Monopoly" “toy" “enters" “is a",“either..or", “kind of…" "Has a ", “consists of" “must be", “less than…" "3 years old" “depends on…."

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 36 videogame 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. Generating a Class Diagram from Flow of Events 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 Customer ? enter() toydaughter suitable * store enter() toy buy() Flow of events: Toy price buy() like() boardgame daughter age

Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 7 System Design: Addressing Design Goals

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 38 System Design 2. Subsystem Decomposition Layers vs Partitions Coherence/Coupling 4. Hardware/ Software Mapping Special Purpose Buy vs Build Allocation of Resources Connectivity 5. Data Management Persistent Objects Filesystem vs Database Access Control List vs Capabilities Security  6. Global Resource Handling 8. Boundary Conditions Initialization Termination Failure 3. Concurrency Identification of Threads 7. Software Control Monolithic Event-Driven Conc. Processes 1. Design Goals Definition Trade-offs

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java Global Resource Handling Discusses access control Describes access rights for different classes of actors Describes how object guard against unauthorized access.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 40 Defining Access Control In multi-user systems different actors usually have different access rights to different functionality and data How do we model these accesses? During analysis we model them by associating different use cases with different actors During system design we model them determining which objects are shared among actors.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 41 Access Matrix We model access on classes with an access matrix: The rows of the matrix represents the actors of the system The column represent classes whose access we want to control Access Right: An entry in the access matrix. It lists the operations that can be executed on instances of the class by the actor.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 42 Access Matrix Example ArenaLeague Operator LeagueOwner Player Spectator Tournament > archive() schedule() view() applyFor() view() view() > createUser() view () view () view() applyForPlayer() view() applyForOwner() > archive() view() subscribe() edit () Match > end() play() forfeit() view() replay() Actors Classes Access Rights

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 43 Global Resource Questions Does the system need authentication? If yes, what is the authentication scheme? User name and password? Access control list Tickets? Capability-based What is the user interface for authentication? Does the system need a network-wide name server? How is a service known to the rest of the system? At runtime? At compile time? By Port? By Name?

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 44 System Design 2. Subsystem Decomposition Layers vs Partitions Coherence/Coupling 4. Hardware/ Software Mapping Special Purpose Buy vs Build Allocation of Resources Connectivity 5. Data Management Persistent Objects Filesystem vs Database Access Control List vs Capabilities Security 6. Global Resource Handling 8. Boundary Conditions Initialization Termination Failure 3. Concurrency Identification of Threads  7. Software Control Monolithic Event-Driven Conc. Processes 1. Design Goals Definition Trade-offs

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java Decide on Software Control Two major design choices: 1. Choose implicit control No control object 2. Choose explicit control Centralized or decentralized Centralized control: Procedure-driven: Control resides within program code. Event-driven: Control resides within a dispatcher calling functions via callbacks. Decentralized control Control resides in several independent objects. Examples: Message based system, RMI Possible speedup by mapping the objects on different processors, increased communication overhead.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 46 Centralized vs. Decentralized Designs Centralized Design One control object or subsystem ("spider") controls everything Pro: Change in the control structure is very easy Con: The single control object is a possible performance bottleneck Decentralized Design Not a single object is in control, control is distributed; That means, there is more than one control object Con: The responsibility is spread out Pro: Fits nicely into object-oriented development

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 47 Centralized vs. Decentralized Designs (2) Should you use a centralized or decentralized design? Take the sequence diagrams and control objects from the analysis model Check the participation of the control objects in the sequence diagrams If the sequence diagram looks like a fork => Centralized design If the sequence diagram looks like a stair => Decentralized design.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 48 System Design 2. Subsystem Decomposition Layers vs Partitions Coherence/Coupling 4. Hardware/ Software Mapping Special Purpose Buy vs Build Allocation of Resources Connectivity 5. Data Management Persistent Objects Filesystem vs Database Access Control List vs Capabilities Security 6. Global Resource Handling  8. Boundary Conditions Initialization Termination Failure 3. Concurrency Identification of Threads 7. Software Control Monolithic Event-Driven Conc. Processes 1. Design Goals Definition Trade-offs

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java Boundary Conditions Initialization The system is brought from a non-initialized state to steady-state Termination Resources are cleaned up and other systems are notified upon termination Failure Possible failures: Bugs, errors, external problems Good system design foresees fatal failures and provides mechanisms to deal with them.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 50 Boundary Condition Questions Initialization What data need to be accessed at startup time? What services have to registered? What does the user interface do at start up time? Termination Are single subsystems allowed to terminate? Are subsystems notified if a single subsystem terminates? How are updates communicated to the database? Failure How does the system behave when a node or communication link fails? How does the system recover from failure?

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 51 Modeling Boundary Conditions Boundary conditions are best modeled as use cases with actors and objects We call them boundary use cases or administrative use cases Actor: the system administrator Interesting use cases: Start up of a subsystem Start up of the full system Termination of a subsystem Error in a subsystem or component, failure of a subsystem or component.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 52 Example: Boundary Use Case for ARENA Let us assume, we identified the subsystem AdvertisementServer during system design This server takes a big load during the holiday season During hardware software mapping we decide to dedicate a special node for this server For this node we define a new boundary use case ManageServer ManageServer includes all the functions necessary to start up and shutdown the AdvertisementServer.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 53 ManageServer Boundary Use Case Server Administrator ManageServer StartServer ShutdownServer ConfigureServer >

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 54 Summary System design activities: Concurrency identification Hardware/Software mapping Persistent data management Global resource handling Software control selection Boundary conditions Each of these activities may affect the subsystem decomposition Two new UML Notations UML Component Diagram: Showing compile time and runtime dependencies between subsystems UML Deployment Diagram: Drawing the runtime configuration of the system.