Chapter Five–Part III Object Oriented Design More Design issues.

Slides:



Advertisements
Similar presentations
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 1 Utdrag ur Bruegges OH-bilder för första.
Advertisements

System Design Chapters 6-7 Object-Oriented Software Engineering:
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: Identifying boundary conditions, example Päivi Ovaska.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Design “There are 2 ways of constructing a.
The Architecture Design Process
System Design: Decomposing the System
Addressing Design Goals
Ch 6: Sys. Architecture Design: System Decomposition
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering October 10, 2001 System.
Use Case Analysis – continued
Evaluating Architectures Quality control: rarely fun, but always necessary
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Chapter 6 System Design: Decomposing the System
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 7 System Design: Addressing Design Goals.
Chapter 10 Architectural Design
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
CLEANROOM SOFTWARE ENGINEERING.
Planning and Tracking Software Quality.  What Is Software Quality?  Causes of Software Defects  What is Quality Assurance?  Improving the Software.
An Introduction to Software Architecture
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.
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
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.
CEN 4010 Sixth Lecture February 21, 2005 Introduction to Software Engineering (CEN-4010) System Design: Decomposing the System Spring 2005 Instructor:
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 6 System Design: Decomposing the System.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 1.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 6 System Design: Decomposing the System.
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
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
CEN Advanced Software Engineering
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
CSE 303 – Software Design and Architecture LECTURE 4.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
COP 3331 Object-Oriented Analysis and Design 1 Overview System Design I (previous lecture) 0. Overview of System Design 1. Design Goals 2. Subsystem Decomposition.
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
Chapter 2 Object-Oriented Paradigm Overview. Getting Acquainted with the Class Project Read the requirements specification carefully Make note of any.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Lecture Videos will no longer be posted. Assignment 3 is due Sunday, the 8 th, 7pm. Today: –System Design,
Feb. 9, 2004CS WPI1 CS 509 Design of Software Systems Lecture #4 Monday, Feb. 9, 2004.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 1.
Software Requirements Specification Document (SRS)
CEN 4010 Eight Lecture Feb. 27, 2006 Introduction to Software Engineering (CEN- 4010) Spring 2006 Instructor: Masoud Sadjadi
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 1.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Two New UML Diagram Types Component Diagram Deployment Diagram.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Chapter 2 Object-Oriented Paradigm Overview
Chapter 7 System Design: Addressing Design Goals
Chapter 6 System Design: Decomposing the System
Rekayasa Perangkat Lunak Part-10
Rekayasa Perangkat Lunak
Chapter 7 System Design: Addressing Design Goals
SEVERITY & PRIORITY RELATIONSHIP
مقدمه اي بر مهندسي نيازمنديها
Rekayasa Perangkat Lunak
Advance Software Engineering (CEN-5011)
Analysis models and design models
An Introduction to Software Architecture
Addressing Design Goals
Decomposing the System
Chapter 8, Design Patterns Introduction
Chapter 6: Architectural Design
Presentation transcript:

Chapter Five–Part III Object Oriented Design More Design issues

Design Goals Design Goals Definition  Describes and prioritizes the qualities that are important for the system  Defines the value system against which options are evaluated  Must be defined right at the beginning of the design phase 2

Cont… 3 Design: “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies.” - C.A.R. Hoare

List of Design Goals Reliability Modifiability Maintainability Understandability Adaptability Reusability Efficiency Portability Traceability of requirements Fault tolerance Backward-compatibility Cost-effectiveness Robustness High-performance  Good documentation  Well-defined interfaces  User-friendliness  Reuse of components  Rapid development  Minimum # of errors  Readability  Ease of learning  Ease of remembering  Ease of use  Increased productivity  Low-cost  Flexibility

Relationship Between Design Goals Reliability Low cost Increased Productivity Backward-Compatibility Traceability of requirements Rapid development Flexibility Client End User (Customer, Portability Good Documentation Runtime Efficiency Sponsor) Developer/ Maintainer Minimum # of errors Modifiability, Readability Reusability, Adaptability Well-defined interfaces Functionality User-friendliness Ease of Use Ease of learning Fault tolerant Robustness Nielson Usability Engineering MMK, HCI Rubin Task Analysis

Typical Design Trade-offs Functionality vs. Usability Cost vs. Robustness Efficiency vs. Portability Rapid development vs. Functionality Cost vs. Reusability Backward Compatibility vs. Readability

Nonfunctional Requirements may give a clue for the use of Design Patterns Read the problem statement again Use textual clues (similar to Abbot’s technique in Analysis) to identify design patterns Text: “manufacturer independent”, “device independent”, “must support a family of products”  Abstract Factory Pattern Text: “must interface with an existing object”  Adapter Pattern Text: “must deal with the interface to several systems, some of them to be developed in the future”, “ an early prototype must be demonstrated”  Bridge Pattern

Global Resource Handling Discusses access control Describes access rights for different classes of actors Describes how object guard against unauthorized access

Defining Access Control In multi-user systems different actors have access to different functionality and data.  During analysis we model these different accesses by associating different use cases with different actors.  During system design we model these different accesses by examing the object model by determining which objects are shared among actors.  Depending on the security requirements of the system, we also define how actors are authenticated to the system and how selected data in the system should be encrypted.

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.

Access Matrix Implementations Global access table: Represents explicitly every cell in the matrix as a (actor,class, operation) tuple.  Determining if an actor has access to a specific object requires looking up the corresponding tuple. If no such tuple is found, access is denied. Access control list: associates a list of (actor,operation) pairs with each class to be accessed.  Every time an object is accessed, its access list is checked for the corresponding actor and operation.  Example: guest list for a party. A capability: associates a (class,operation) pair with an actor.  A capability provides an actor to gain control access to an object of the class described in the capability.  Example: An invitation card for a party. Which is the right implementation? It depende on your prefernec..

Boundary Conditions Most of the system design effort is concerned with steady- state behavior. However, the system design phase must also address the initiation and finalization of the system. This is addressed by a set of new use cases called administration use cases  Initialization  Describes how the system is brought from an no initialized state to steady-state ("startup use cases”).  Termination  Describes what resources are cleaned up and which systems are notified upon termination ("termination use cases").  Failure  Many possible causes: Bugs, errors, external problems (power supply).  Good system design foresees fatal failures (“failure use cases”).

Example: Administrative Use cases for MyTrip Administration use cases for MyTrip (UML use case diagram). An additional subsystems that was found during system design is the server. For this new subsystem we need to define use cases. ManageServer includes all the functions necessary to start up and shutdown the server.

Modeling Boundary Conditions Boundary conditions are best modeled as use cases with actors and objects. Actor: often the system administrator Interesting use cases:  Start up of a subsystem  Start up of the full system  Termination of a subsystem  Error in a subystem or component, failure of a subsystem or component

ManageServer Use Case PlanningService ManageServer Administrator StartServer ShutdownServer ConfigureServer >

Reviewing and Documenting System Designs Reviewing : To ensure the design goals and the 3Cs (correctness, completeness and consistency)  Example  A system is correct and complete if the analysis model can be mapped to the system design model: Question to be asked Can every subsystem be traced back to a use case or non- functional requirements? Every design goals to non- functional requirement? …. Documenting – as SDD (system design document)  Starts with design goals, includes subsystem decomposition, hardware software mapping, explanatory models like state chart and collaboration, data management, access control, and boundary conditions. 16

End of Chapter Five