Systems Analysis and Design in a Changing World, Fifth Edition

Slides:



Advertisements
Similar presentations
Chapter 11 Component-Level Design
Advertisements

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Traditional Approach to Design
Chapter 10 The Traditional Approach to Design
Chapter 9: The Traditional Approach to Design Chapter 10 Systems Analysis and Design in a Changing World, 3 rd Edition.
Object-Oriented Analysis and Design
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Unified Modeling Language
Systems Analysis and Design in a Changing World, Fourth Edition
2 Object-Oriented Analysis and Design with the Unified Process Objectives  Explain how statecharts can be used to describe system behaviors  Use statecharts.
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Introduction To System Analysis and Design
UML – Class Diagrams.
Aalborg Media Lab 23-Jun-15 Inheritance Lecture 10 Chapter 8.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
Unified Modeling Language
Object-Oriented Analysis and Design
The chapter will address the following questions:
Chapter 7: The Object-Oriented Approach to Requirements
Introduction To System Analysis and design
The Design Discipline.
The Object Oriented Approach to Design
Systems Analysis and Design in a Changing World, Fifth Edition
Object Oriented Analysis By: Don Villanueva CS 524 Software Engineering I Fall I 2007 – Sheldon X. Liang, Ph. D.
An Object-Oriented Approach to Programming Logic and Design
Systems Analysis and Design in a Changing World, 6th Edition
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.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Introduction To System Analysis and Design
1 ITEC 3010 “Systems Analysis and Design, I” LECTURE 10: Use Case Realizations [Prof. Peter Khaiter]
Systems Analysis and Design in a Changing World, 6th Edition 1 INTRODUCTION TO SYSTEMS ANALYSIS AND DESIGN: AN AGILE, ITERATIVE APPROACH Chapter 11 SATZINGER.
Object Oriented Design Jerry KotubaSYST Object Oriented Methodologies1.
Chapter 9 Moving to Design
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
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.
Chapter 16 Applying UML and Patterns Craig Larman
© 2005 Prentice Hall9-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
1 ITEC 2010 Chapter 9 – Design The Structure Chart Structure chart –A hierarchical diagram showing the relationships between the modules of a.
NJIT UML Class Diagrams Chapter 16 Applying UML and Patterns Craig Larman.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
Object Oriented Design Jerry KotubaSYST Object Oriented Methodologies1.
Design Model Lecture p6 T120B pavasario sem.
Relationships Relationships between objects and between classes.
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.
OOD - Principles Design Class Diagrams
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
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.
11 Systems Analysis and Design in a Changing World, Fifth Edition.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
Systems Analysis and Design in a Changing World, Fourth Edition
Agenda 0 Today 0 Assignment 2 Due 0 Sequence Diagrams- View & Data Layers 0 Message syntax 0 Cohesion & Coupling 0 Next Week 0 Review and wrap-up 0 Structure.
 Today o Sequence Diagrams- View & Data Layers Message syntax o Design Class Diagrams o Cohesion & Coupling SheridanObject Oriented Methods1.
 Sequence Diagrams Introduction.  Sequence Diagrams  Review Schedule Sheridan.
Object-Oriented Analysis and Design
The Object Oriented Approach to Design
OOD - Principles Design Class Diagrams
Component-Level Design
Chapter 20 Object-Oriented Analysis and Design
Analysis models and design models
Design Yaodong Bi.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Chapter 6: Architectural Design
Presentation transcript:

Systems Analysis and Design in a Changing World, Fifth Edition

Learning Objectives Explain the purpose and objectives of object-oriented design Develop component diagrams and deployment diagrams Develop design class diagrams Use CRC cards to define class responsibilities and collaborations Explain the fundamental principles of object-oriented design

Overview This chapter is thorough explanation of how to design simple systems Architechtural design is used to define the structure and configuration of the new system Good object-oriented design is based on fundamental design principles Design classes are a fundamental element in systems design Class-Responsibility-Collaboration (CRC) cards are useful for designing simple systems

Object-Oriented Design—The Bridge Between Analysis and Programming Bridge between users’ requirements and new system’s programming Object-oriented design is process by which detailed object-oriented models are built Programmers use design to write code and test new system User interface, network, controls, security, and database require design tasks and models

Overview of Object-Oriented Programs Set of objects that cooperate to accomplish result Object contains program logic and necessary attributes in a single unit Objects send each other messages and collaborate to support functions of main program OO systems designer provides detail for programmers Design class diagrams, interaction diagrams, and some state machine diagrams

Object-Oriented Three-Layer Program

Object-Oriented Design Processes and Models Diagrams developed for analysis/requirements Use case diagrams, use case descriptions and activity diagrams, domain model class diagrams, and system sequence diagrams Diagrams developed for design Component diagrams and Deployment diagrams Interaction diagrams and package diagrams Design class diagrams

Design Models with Their Respective Input Models

Object-Oriented Architectural Design Desktop system Enterprise-level system Network or client/server system Internet based system

Differences between network and Internet systems

Component Diagrams and Architectural Design Shows overall system architecture API is the set of all public methods available in the component Ports and Sockets define the interface Frameset notation to extend UML notation Used to describe web components

Component Diagram Notation

Two-layer Architectural Design of an Internet System

Three-layer Architectural Design of an Internet system

Sample Web Services Design

Deployment Diagrams Deployment diagram shows physical components of a new system Node is a physical component Artifact is an executable module Artifacts are components after they have been compiled into executables

Sample Deployment Diagram of an Internet System

Fundamental Principles of Object-oriented Detailed Design Design class diagrams and detailed sequence diagrams Use each other as inputs and are developed in parallel Sequence diagrams define the interactions between objects in order to execute a use case. Interactions are called messages Correspond to method calls in programming language Design Classes show attributes and method signatures

Sample Sequence Diagram

Sample Design Class

Sample Java Class Definition

Object-oriented Design Process

Design Class Symbols UML does not distinguish between design class notation and domain model notation Domain model class diagram shows conceptual classes in users’ work environment Design class diagram specifically defines software classes UML uses stereotype notation to categorize a model element by its characteristics

Standard Stereotypes Found in Design Models

Standard Design Classes Entity – design identifier for problem domain class Persistent class – exists after system is shut down Control – mediates between boundary and entity classes, between the view layer and domain layer Boundary – designed to live on system’s automation boundary, touched by users User interface and windows classes Data access – retrieves data from and sends data to database

Design Class Notation Name – class name and stereotype information Attribute visibility (private or public) – attribute name, type- expression, initial-value, property Method signature – information needed to invoke (or call) the method Method visibility, method name, type-expression (return parameter), method parameter list (incoming arguments)‏ Overloaded method – method with same name but two or more different parameter lists Class-level method – method associated with class instead of each object (static or shared method), denoted by an underline

Notation Used to Define a Design Class

Design Class Definitions Overloaded method – a method with one name but different parameter lists Class-level method – a method associated with the class rather than an object Class-level attribute – an attribute that contains the same value for all objects Overridden method – a method in a subclass that overrides the parents method Abstract class – a class that is never instantiated Concrete class – a normal class with objects

Sample Class Diagram with Design Classes and Inheritance

Developing the First-cut Design Class Diagram Elaborate the attributes Visibility, Type cast, Initial values Navigation Visibility Ability to reference the methods of another object

Navigation Visibility

Navigation Visibility Guidelines One-to-many with superior to subordinate. The visibility goes from the superior to the subordinate Mandatory relationships for existence. Visibility goes from independent to dependent Object needs information from another object. Visibility goes to object with the information Navigational arrows may be bidirectional

First Cut Class Diagram for RMO

Detailed Design with CRC cards Class-Responsibility-Collaboration Design process Select a single use case Identify class with primary responsibility Identify other classes that collaborate with primary class (become requests for service to other classes)‏ Identify responsibilities within each class (these become methods)‏

CRC Card Notation

CRC Card Set for Process new order

Updated Design Class Diagram with Visibility and Methods

Some Fundamental Design Principles Encapsulation – each object is self-contained unit that includes data and methods that access data Object reuse – designers often reuse same classes for windows components Information hiding – data associated with object is not visible to outside world

Some Fundamental Design Principles (continued) Coupling – qualitative measure of how closely classes in a design class diagram are linked Number of navigation arrows in design class diagram or messages in a sequence diagram Loosely coupled – system is easier to understand and maintain Cohesion – qualitative measure of consistency of functions within a single class Separation of responsibility – divide low cohesive class into several highly cohesive classes Highly cohesive – system is easier to understand and maintain and reuse is more likely

Some Fundamental Design Principles (continued)‏ Protection from variations – parts of a system that are unlikely to change are segregated from those that will Indirection – an intermediate class is placed between two classes to decouple them but still link them Object responsibility – Objects are responsible for system processing Responsibilities include knowing and doing

Summary Object-oriented design is the bridge between user requirements (in analysis models) and final system (constructed in programming language)‏ Systems design is driven by use cases, design class diagrams, and CRC Cards Domain class diagrams are transformed into design class diagram

Summary (continued)‏ Object-oriented design principles must be applied Encapsulation – data fields are placed in classes along with methods to process that data Low coupling – connectivity between classes High cohesion – nature of an individual class Protection from variations – parts of a system that are unlikely to change are segregated from those that will Indirection – an intermediate class is placed between two classes to decouple them but still link them Separation navigation – access classes have to other classes Three-layer design is used because maintainable