The Design Discipline.

Slides:



Advertisements
Similar presentations
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Advertisements

CS 432 Object-Oriented Analysis and Design
Systems Analysis and Design in a Changing World, Fourth Edition
8.
Object-Oriented Analysis and Design
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
2 Object-Oriented Analysis and Design with the Unified Process Objectives  Explain how statecharts can be used to describe system behaviors  Use statecharts.
Overview Define structural components and dynamic interactions
2 Object-Oriented Analysis and Design with the Unified Process Objectives  Describe the differences between requirements activities and design activities.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
Chapter 9: Moving to Design
Course Instructor: Aisha Azeem
Object-Oriented Analysis and Design
Chapter 7: The Object-Oriented Approach to Requirements
Objectives Design Class Diagrams Issues in system design Generalization Review UML papers.
Chapter 9 Moving to Design Part 2.
Chapter 9 Elements of Systems Design
2 Object-Oriented Analysis and Design with the Unified Process Objectives  Describe the differences between requirements activities and design activities.
Moving to Design.
Moving From Business Modeling Requirements to Design
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
The Object Oriented Approach to Design
Systems Analysis and Design in a Changing World, Fifth Edition
Systems Analysis and Design in a Changing World, Fifth Edition
Objectives The Primary focus of this chapter is on how to develop detailed Object- oriented Design Models, which programmers then use to code the System.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
An Introduction to Software Architecture
1 SA Capstone Requirements and Design Week 6 SYST Winter 2015 Some slides adapted from: Systems Analysis and Design in a Changing World, 6th Edition,
Systems Analysis and Design in a Changing World, 6th Edition
12 Systems Analysis and Design in a Changing World, Fifth Edition.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
1 ITEC 3010 “Systems Analysis and Design, I” LECTURE 10: Use Case Realizations [Prof. Peter Khaiter]
Object Oriented Design Jerry KotubaSYST Object Oriented Methodologies1.
Chapter 9 Moving to Design
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design Identifying system components and their interfaces.
Systems Analysis and Design in a Changing World, 3rd Edition
2 Object-Oriented Analysis and Design and the Unified Process Objectives  Explain the purpose and objectives of object- oriented design  Develop design.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
1 ITEC 2010 Chapter 9 – Design The Structure Chart Structure chart –A hierarchical diagram showing the relationships between the modules of a.
TAL7011 – Lecture 4 UML for Architecture Modeling.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Object Oriented Design Jerry KotubaSYST Object Oriented Methodologies1.
Use Case Controller System sequence diagram (SSD) shows input messages from external actors within use case Only indicates that messages go to system Use.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Part VII: Design Continuous
Design CIS 4800 Kannan Mohan Department of CIS Zicklin School of Business, Baruch College Copyright © 2009 John Wiley & Sons, Inc. Copyright © 2008 Course.
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Chapters 10, 11 SSD (Revision) SD DCD Exam Object-Oriented 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.
Basic Characteristics of Object-Oriented Systems
11. Chapter 11: The Object-Oriented Approach to Design: Use Case Realization Systems Analysis and Design in a Changing World, Fourth Edition.
9. 9 Systems Analysis and Design in a Changing World, Fourth Edition.
11 Systems Analysis and Design in a Changing World, Fifth Edition.
9 Systems Analysis and Design in a Changing World, Fifth Edition.
Systems Analysis and Design in a Changing World, Fourth Edition
 Sequence Diagrams Introduction.  Sequence Diagrams  Review Schedule Sheridan.
Software Design and Architecture
The Object Oriented Approach to Design
Systems Analysis and Design in a Changing World, 6th Edition
Starting Design: Logical Architecture and UML Package Diagrams
An Introduction to Software Architecture
Design Yaodong Bi.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Presentation transcript:

The Design Discipline

Moving From Business Modeling Requirements to Design Figure 7-1

Understanding the Elements of Design Systems design discipline Two tiers of discipline tasks Design Activities Support services architecture & deployment environment Software architecture Use case realizations Database System and user interfaces System security and controls

System Development Information Stored in the CASE Repository Figure 7-3 System Development Information Stored in the CASE Repository

Deployment Environment (Support services architecture & deployment environment) Single-Computer and Multitier Architecture Centralized and Distributed Architecture Computer Networks Internet, intranets, and extranets

Client/Server Architecture (Software architecture) Client/server architecture tiers Architectural issues for client/server software Client and server communicate via well-defined protocols over a physical network Client/server architecture advantages Client/server architecture disadvantages

Client/Server Architecture with a Shared Database Figure 7-9 Client/Server Architecture with a Shared Database

Interaction Among Multiple Clients and a Single Server Figure 7-11 Interaction Among Multiple Clients and a Single Server

Three-Layer Client/Server Architecture Variant of client/server architecture Three-layers The data layer The business logic layer The view (presentation) layer Three-tier architecture advantages

Three-layer Architecture Figure 7-12 Three-layer Architecture

Internet and Web-Based Software Architecture Web is complex example of client/server architecture Advantages Disadvantages of Web technologies The key architectural design issues Defining client and server processes or objects Distributing processes across hardware platforms Connecting processes

What is Object-Oriented Design? The bridge between a user’s requirements and programming for the new system An adaptive approach to development Requirements and design are done incrementally within an iteration A complete set of designs may not be developed at one time

Overview of Object-Oriented Programs Object-oriented programs consist of a set of computing objects that cooperate to accomplish a result Most object-oriented programs are event-driven Instantiation of a class creates an object based on the template provided by the class definition

Object-oriented event-driven program flow Figure 8-1 Object-oriented event-driven program flow

Object-Oriented Design Models Identify all objects that must work together to carry out a use case Divide objects into groups for a multilayer design Interaction diagrams describe the messages that are sent between objects Design class diagrams document and describe the programming classes Statecharts capture information about the valid states and transitions of an object Package diagrams denote which classes work together as a subsystem

Design models with their respective input models Figure 8-4 Design models with their respective input models

Design Classes and Design Class Diagrams Design class diagrams are extensions of domain class model diagrams Elaborate on attribute details Define parameters and return values of methods Determine stereotypes A first-cut design class diagram is based on the domain model and engineering design principles Interaction diagrams are used to refine a design class diagram as development progresses

Figure 8-7 Student class examples for the domain diagram and the design class diagram

Some Fundamental Design Principles Encapsulation Object reuse Information hiding Navigation visibility Coupling Cohesion Separation of responsibilities

Figure 8-10 First-cut RMO design class diagram

Interaction Diagrams–Realizing Use Cases and Defining Methods Interaction diagrams are at the heart of object-oriented design Realization of a use case Determine what objects collaborate by sending messages to each other Object Responsibility Knowing Doing

Use Case Controller An artifact invented by the designer to handle a system function Serves as a collection point for incoming messages Intermediary between the outside world and the internal system A single use case controller results in low cohesion Several use case controllers raise coupling but result in high cohesion

SSD for the Look up item availability use case Recall a SSD Figure 8-12 SSD for the Look up item availability use case

First-Cut Sequence Diagram Determine which other objects may need to be involved to carry out the use case Replace the :System object with a use case controller object Determine all of the internal messages that result from each input message Identify the complete set of classes that will be affected by each message Flesh out the components for each message Iteration, true/false conditions, return values, and passed parameters

First-cut sequence diagram for the Look up item availability use case Figure 8-14 First-cut sequence diagram for the Look up item availability use case

Developing a Multilayer Design View layer Design the user interface for each use case Develop dialog designs for forms Add the window classes to the sequence diagram Data access layer Initialize domain objects with data from the database Query the database and send a reference object Return information in the reference object

Figure 8-17 Completed three-layer design for Look up item availability

Updating the Design Class Diagram Add classes for the view and data access layers Update classes with method signatures Constructor and get and set methods are optional Use case specific methods are required Every message in a sequence diagram requires a method in the destination object Include the new user controller classes and add navigation arrows

Figure 8-30 Updated design class diagram for the domain layer

Package Diagrams-Structuring the Major Components Associates classes of related groups One option is to separate the view, domain, and data access layers into separate packages Indicate dependency relationships Shows which elements affect other elements in a system May exist between packages, or between classes within packages Packages can be nested

Partial design for a three-layer package diagram for RMO Figure 8-31 Partial design for a three-layer package diagram for RMO

Implementation Issues for Three-Layer Design IDE tools can help programmers construct systems IDE tools can also make a system difficult to maintain Creates window classes that generate class definitions Inserts business logic code into the user interface Use good design principles when developing a system Define object responsibility for each layer

Summary Design is driven by use cases Two primary models developed during design Design class diagrams Sequence class diagrams Multilayer designs partition classes into groups View, domain, and data access layers Communication diagrams are a viable alternative to sequence diagrams

Summary (continued) Object-oriented design principles Encapsulation Coupling Cohesion Navigation Object responsibility Package diagrams can group classes by subsystem or layer