Software Engineering I Object-Oriented Design

Slides:



Advertisements
Similar presentations
Software Architecture Design Chapter 12 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
Advertisements

Requirements Elicitation and Use Case Diagrams
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Sucha Smanchat  Steps in OOAD using UML  Use Case Diagram  Sequence Diagram / Communication Diagram  Class Diagram  State.
Introduction To System Analysis and Design
Copyright W. Howden1 Lecture 4: Sequence Interaction Diagrams.
ECEN5053 SW Eng of Dist Systems, Arch Des Part 2, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems, Part 2 ECEN5053 SW.
Software Engineering I Object-Oriented Design Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
1 Object-Oriented Software Engineering CIS 375 Bruce R. Maxim UM-Dearborn.
UML Diagrams: Sequence Diagrams The Requirements Model, and The Dynamic Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical.
UML Sequence Diagrams Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
UML Diagrams: Sequence Diagrams The Requirements Model, and The Dynamic Analysis Model Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty.
Introduction To System Analysis and design
The Design Discipline.
CS 4310: Software Engineering Lecture 3 Requirements and Design.
Requirement Analysis Functional & Non-Functional Requirements Scenarios Use cases: – View Fixtures – Manage Tournament – Register Team – Report Discrepancy.
Software Engineering CS B Prof. George Heineman.
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
The Unified Modeling Language Part I Omar Meqdadi SE 2730 Lecture 6 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
CS361 Winter 2013 Final Exam Review Software Engineering I Oregon State University.
1 SAD2 - UML 4 th Lecture Class Diagram in Construction Phase Patterns Case Study Lecturer: Dr Dimitrios Makris
Unified Modeling Language, Version 2.0
Software Design The Dynamic Model Design Sequence Diagrams and Communication Diagrams Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical.
Requirement Engineering. Review of Last Lecture Problems with requirement Requirement Engineering –Inception (Set of Questions) –Elicitation (Collaborative.
Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department.
Introduction To System Analysis and Design
UML Diagrams: Class Diagrams The Static Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
UML Diagrams: Sequence Diagrams The Requirements Model, and The Dynamic Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical.
Approaching a Problem Where do we start? How do we proceed?
Systems Analysis and Design in a Changing World, 3rd Edition
© 2005 Prentice Hall9-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
The Static Analysis Model Class Diagrams Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
CS 8532: Advanced Software Engineering Dr. Hisham Haddad Overview of Object-Oriented Design Highlights of OOD Concepts, Components, and Process.
Software Design: Principles, Process, and Concepts Getting Started with Design.
Introduction to OOAD and the UML
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
DESIGN OF SOFTWARE ARCHITECTURE
Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall Object-Oriented Systems Analysis and Design Using UML Systems Analysis and Design,
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Prof. Hany H. Ammar, CSEE, WVU, and
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Chapter : 9 Architectural Design
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
04 - OOD Intro.CSC4071 Software Design ‘Requirements’ defines –The goals the system needs to satisfy. ‘Specification’ defines –The externally-observable.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
The Dynamic Analysis Model StateCharts Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
Software Design Refinement Using Design Patterns
Instructor: Dr. Hany H. Ammar
UML Diagrams: Class Diagrams The Static Analysis Model
Instructor: Dr. Hany H. Ammar
Object-Oriented Analysis and Design
Instructor: Dr. Hany H. Ammar
Object-Oriented Design
Object-Oriented Analysis
Introduction To System Analysis and Design PART 2
Unified Modeling Language
Lecture 4: Sequence Interaction Diagrams
UML Diagrams: Sequence Diagrams Dynamic Analysis Model
Object oriented analysis and design
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
CIS 375 Bruce R. Maxim UM-Dearborn
UML Diagrams: StateCharts The Dynamic Analysis Model
Introduction to OOAD and the UML
Presentation transcript:

Software Engineering I Object-Oriented Design Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU

Outline UML Development – Overview The Requirements, Analysis, and Design Models More on Relationship Between Models Examples Object Oriented Design (OOD) The Static Design Model How can we Identify Classes? How can we develop Class Diagrams? The Dynamic Design Model Design Sequence Diagrams Notation

Development Process - Overview ACTORS USE CASES REQUIREMENTS ELICITATION Time SCENARIOS D SEQUENCE DIAGRAMS A T A ANALYSIS CLASS DIAGRAM(S) OO ANALYSIS Specify Domain Objects StateChart DIAGRAMs D I OPERATION CONTRACTS C T Architecture/ OO Design I SUBSYSTEM/CLASS DIAGRAMS DESIGN SEQUENCE DIAG. DEPLOYMENT DIAGRAM O N DESIGN DIAGRAMS A Detailed DESIGN R Y Object Design IMPLEMENTATION CHOICES IMPLEMENTATION Activity DIAGRAMS IMPLEMENTATION PROGRAM

The Requirements, Analysis, and Design Models Elicitation Process Use Case Diagrams/ System Sequence Diagrams (the system level) Functional/ Nonfunctional Requirements - Analysis Class Diagrams - StateChart Diagrams/ Refined Sequence Diagrams (The domain object level) Static Analysis Dynamic Analysis The Analysis Process Design Class Diagrams, StateChart Diagrams Design Sequence/ Collaboration Diagrams The Design Process Static Design, Dynamic Design

More on Relationship Between Models

More on Relationship Between Models

Example: A Digital Sound Recorder (DSR) From Requirements-to-Analysis-to-Design The main function of the DSR is to record and playback speech. The messages are recorded using a built-in microphone and they are stored in a digital memory. The DSR contains an alarm clock with a calendar. The user can set a daily alarm. The alarm beeps until the user presses a key, or after 60 seconds.

Digital Sound Recorder: Showing the Process From Requirements-to-Analysis-to-Design

Digital Sound Recorder: Analysis Class Diagram (Object-Oriented Analysis, defining the domain objects)

Digital Sound Recorder: The OOD Static Model: Designing the Architecture Class Diagram: Designing The Subsystems,

Digital Sound Recorder: The OOD Static Model: Designing the Classes in Each Subsystem, Shown is the Audio Subsys. only Interactions between Objects are defined Using Design Sequence diagrams

Digital Sound Recorder: Object Interactions The OOD Dynamic Models (Design Sequence diagrams) shows the interactions between objects in different subsystems Design Sequence Diagrams can help find operations of classes during design

Digital Sound Recorder: Object Interactions The OOD Dynamic model (Design Collaboration diag.) Interactions are shown using a UML collaboration diagram. Timer interrupt update scenario Notice an EventProxy Class is added For posting Events. Uses the Observer And Proxy Desgin patterns

Object Oriented Design (OOD) Design the system as a set of interacting Objects 1. Design Models Static Structural Models ( class diagrams ) Dynamic Interaction Models (Sequence/Collaboration diagrams) Dynamic Object Behavioral Models (StateChart diagrams) 2. Detailed Class and object description Visibility (Private, protected, and public attributes ) Concurrency

OOD (Cont’d) 3. Evaluate and Refine Design according to the Design Goodness Criteria Coupling: The manner and degree of interdependence between classes (objects) Cohesion: The degree and manner to which the tasks performed by an object are related to each other Complexity The number and complexity of operations and attributes of a class

Static and Dynamic Design: Iterative Development The Static design class diagram is developed iteratively along with the dynamic models represented in design sequence diagrams or collaboration diagrams Design sequence diagrams show detailed interactions between objects of classes in different subsystems They are defined based on analysis sequence diagrams developed for a given Use- Case scenario defined in the analysis (or the requirements) model

Static and Dynamic Design The development of Design Class Diagrams is completed by defining the attributes and operations of classes to support the interactions represented in the dynamic model. Operations of classes in the design class diagram are defined using the dynamic interactions in the dynamic model sequence diagrams New classes might be needed in the design class diagram to support the interactions of objects in the sequence diagrams (e.g., Interface classes, proxy classes, scheduler classes etc.)

Class Operations Defined From Sequence Diagrams The behavior of a class is represented by its operations Operations may be found by examining interaction diagrams registration form manager 3: add course(joe, math 01) RegistrationManager addCourse (Student,Course)

OOD: How can we Identify Classes of Objects ? Define classes such that each performs a specific function or task to maximize cohesion and minimize coupling, the following are typical examples of classes Controllers Subsystem controls a given aspect of the system Coordinators/Schedulers Coordinates several control classes Data Collectors/Monitors Collects data from external environment Data analyzers Provides reports and/or displays Servers Provides service for client classes, User/Device Interface Collection of classes supporting needs of users or devices

OOD: How can we develop Class Diagrams? The development of the class diagram can be done using consolidated collaboration diagrams These diagrams are obtained from combining several collaboration diagrams developed from different scenarios

Example: Consolidated Collaboration Diagram of an Elevator Control System

Example: The ATM Banking System Architecture Showing external classes

Consolidated Collaboration Diagram of the ATM Banking System (the dynamic model): Combines several usage scenarios

Consolidated Collaboration Diagram of the ATM Client Subsystem The diagram can be easily used to develop the class diagram of the ATM Client Subsys.

OOD: How can we define the Behavior of Classes Example: State Chart of The ATMControl Class StateCharts can be used to Refine the class diagram using the State Pattern

Examples of Design Sequence Diagrams Notation

Compound and Simple Iteration Examples of Design Sequence Diagrams Notation  Compound and Simple Iteration

Examples of Design Sequence Diagrams Notation Messages specified on interactions can be synchronous or asynchronous Synchronous (sequential call)

Examples of Design Sequence Diagrams Notation Asynchronous (Concurrent Interactions)

Examples of Design Sequence Diagrams Notation (UML 2)