Addressing Design Goals

Slides:



Advertisements
Similar presentations
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
Advertisements

System Design Chapters 6-7 Object-Oriented Software Engineering:
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS: Defining access control, example Päivi Ovaska.
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS System Design Lecture 12 Päivi Ovaska.
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS: Defining persistent data stores, example Päivi Ovaska.
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS Design goals and System Decomposition, example Päivi Ovaska.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS: Identifying boundary conditions, example Päivi Ovaska.
Software modeling for embedded systems: static and dynamic behavior.
Addressing Design Goals
Ch 7: Sys. Architecture: Design Decisions to Address Goals
1 System Design: Addressing Design Goals We are starting from an initial design, along with a set of design goals. What is the next step?
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Conquering Complex and Changing Systems Object-Oriented Software Engineering System Design:Hardware/ software mapping, example Päivi Ovaska.
1 A Student Guide to Object- Orientated Development Chapter 9 Design.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Addressing design Goals  We decompose the system to address complexity  Assigning each subsystem to team to work on  But we also need to address system.
UML Development - Overview PROGRAM ACTORS ANALYSIS Domain Objects DESIGN IMPLEMENTATION D A T A D I C T I O N A R Y Time USE CASES ANALYSIS CLASS DIAGRAM(S)
Chapter Five–Part III Object Oriented Design More Design issues.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Chapter 7 System Design 2 Addressing Design Goals.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Overview System Design II (slides Part B)
CEN Advanced Software Engineering
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 7 System Design: Addressing Design Goals.
ניתוח מערכות מידע 1 Unified Modeling Language (UML) § § The Unified Modeling Language (UML) is the industry-standard language for: Specifying, Visualizing,
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
TAL7011 – Lecture 4 UML for Architecture Modeling.
1 CMPT 275 High Level Design Phase Modularization.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
DESIGN OF SOFTWARE ARCHITECTURE
Feb. 9, 2004CS WPI1 CS 509 Design of Software Systems Lecture #4 Monday, Feb. 9, 2004.
System Design cont Review Class 15 Design Goals System Design Activities –Identification of Subsystems –Persistent Data Stores –Access Control –Control.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Dr. Ir. Yeffry Handoko Putra
CS 325: Software Engineering
UML Diagrams By Daniel Damaris Novarianto S..
Chapter 1: Introduction to Systems Analysis and Design
Analyzing UML Descriptions of Architectures Using Information Theory
Review for Final, Fall 2010 Close book, Close notes
Main issues: • What do we want to build • How do we write this down
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Unified Modeling Language
System Design.
OO Methodology OO Architecture.
Part 3 Design What does design mean in different fields?
UML Diagrams Jung Woo.
Online Shopping APP.
The Process of Object Modeling
What is an Architecture?
GEOMATIKA UNIVERSITY COLLEGE CHAPTER 2 OPERATING SYSTEM PRINCIPLES
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Analysis models and design models
An Introduction to Software Architecture
Copyright 2007 Oxford Consulting, Ltd
What is an Architecture?
Decomposing the System
Software Architecture
Design Yaodong Bi.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Use Case Analysis – continued
Uml diagrams In ooad.
Chapter 6: Architectural Design
Chapter 1: Introduction to Systems Analysis and Design
Software Development Process Using UML Recap
Software Re-engineering and Reverse Engineering
Presentation transcript:

Addressing Design Goals System Design: Addressing Design Goals We are starting from an initial design, along with a set of design goals. What is the next step?

* * Design process (figure 6-2): Analysis System design Object design We were here Nonfunctional requirements Analysis *: these include --use cases and scenarios --class (ER) diagrams --sequence diagrams --CRC cards --state diagrams * Dynamic model * Analysis object model System design Design goals— guide trade-offs Now we’re here Subsystem decomposition— teams of developers Object design Object design model

Process: --Examine each design goal, one at a time, keeping desired trade-offs in mind --Determine any resulting **subsystem redefinitions **interface modifications --assign each subsystem to a team for implementation interfaces have already been specified subsystem design can proceed independently

Decomposition into subsystems: For this strategy to work, system-wide issues must be clearly and completely addressed, e.g.: *hardware / software mapping *data management *access control *control flow *boundary conditions This phase is highly interactive and can result in new or modified subsystems, along with system-wide revisions

---functionality of each node *hardware / software mapping: ---functionality of each node ---communication between nodes—may require new subsystem ---what existing software components can be used? ---concurrency, reliability need to be addressed ---off-the-shelf components may be efficient but may cause incompatability problems later on *data management: ----what data is persistent? ----How can it be efficiently accessed, stored, & protected from corruption? -—may require addition of a new subsystem

—who can access what data? ---How can access be changed dynamically? *access control: —who can access what data? ---How can access be changed dynamically? ---How do we keep access rules consistent system- wide? *control flow: —sequential? ---Event-driven? (subsystems need to have event handlers) ---Threads (subsystems need to guarantee mutual exclusion in critical sections, e.g., shared resources, producers/consumers) *boundary conditions --initialization / shutdown --exceptions

UML: Deployment and Component Diagrams (diagrams 7-2,7-3): <<device>> myMac:Mac :Safari <<device>> :UnixHost :Webserver <<http>> Note: no direct connect web-DB <<http>> <<device>> aPc:PC :Firefox <<device>> :UnixHost :Database <<jdbc>> WebServer Deployment: what components go to what (physical) nodes Component: interfaces, classes http jdbc Servlet HttpService DBProxy

Example (Chapter 6): MyTrip Use cases: PlanTrip Execute Trip Analysis Model (6-28): PlanningService RouteAssistant Trip Location Direction Destination Crossing Segment

--Select a hardware configuration and a platform --Allocate objects and subsystems to nodes <<device>> :OnboardComputer :Routingsubsystem <<device>> :WebHost <<http>> <<webserver>> :Apache :PlanningSubsystem :Safari

CommunicationSubsystem RoutingSubsystem RouteAssistant Location TripProxy SegmentProxy PlanningSubsystem PlanningService Trip Destination Direction Crossing Segment CommunicationSubsystem Items in bold: initial objects defined Message Connection

--Identify and store persistent data “persistent data”: does not disappear at the end of a single execution MyTrip: Store current trip on a disk for removal Store Trips in a database in PlanningSubsystem for later use which objects must be persistent? what type of database is most appropriate? flat files:--voluminous data (images), temporary data core dump), low information density (archival files, logs) relational / object-oriented database:--concurrent accesses, difference levels of detail, multiple platforms, aps relational:--complex queries, large data set object-oriented database:--extensive use of associations, medium-sized data set, irregular associations among objects

In general: 3 common approaches Access Control Who gets to access what? MyTrip: each driver should only be able to access the trips they created: create a Driver class which will be used by the Communication Subsystem and the Planning Subsystem to control access In general: 3 common approaches --global access table: store tuples (actor,class,operation)—these define allowable access—uses a lot of memory --access control list—store pairs (actor, operation), each object checks this list when an operation is requested—can easily answer “who has access to this object?) --capability—associate (class,operation) pairs with each actor—can easily answer “which objects can this actor access?”

Global Control Flow 3 standard choices: --procedure-driven good for testing works well if a procedural language is used does not work well for object-oriented systems where operations are distributed over many objects --event-driven uses main loop, with dispensing to appropriate object simple structure, all input goes to main loop well-supported in most current languages --threads concurrent version of procedural control, each thread can respond to a different event can introduce nondeterminism hard to test, tools not mature in general

Identifying Services e.g., often need a communication system Identifying Boundary Conditions input / output / exceptions may generate Boundary Use Cases Reviewing System Design: must be consistent, realistic, readable (to developers) mapping between subsystems / use cases mapping between design goals / nonfunctional requirements making sure every nonfunctional requirement is addressed providing each actor with an access policy consistent with security

Managing the System Design Process --activities must be documented (fig. 7-18) --responsibilities must be assigned architect + liaisons document editor, configuration manager, reviewer --communication must be managed --iteration may be required