Object-Oriented Design

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Object-Oriented Analysis and Design CHAPTERS 12-14: INTRODUCTION TO DESIGN 1.
Introduction To System Analysis and Design
Component-Level Design
Software Engineering 1 Provisional Revision Plan.
1 SYSTEM and MODULE DESIGN Elements and Definitions.
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Tuesday Class will start momentarily. Please Stand By … CS 8532: Advanced Software.
Lesson 7 Guide for Software Design Description (SDD)
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
CS 3610: Software Engineering – Spring 2009 Dr. Hisham Haddad – CSIS Dept. Class Project OO Design Document Here is what you need to do for your class.
Unified Modeling Language, Version 2.0
Introduction To System Analysis and Design
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
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 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Class Project OO Design Document Here is what you need to do for your class project.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
1 CS Tutorial 5 Frid. Oct 23, 2009 Design Document Tutorial.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
CS 4850: Senior Project – Spring 2009 CS 4850: Senior Project Spring 2009 Overview of Software Requirements and OO Analysis.
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
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.
Lecture 18: Object-Oriented Design
04 - OOD Intro.CSC4071 Software Design ‘Requirements’ defines –The goals the system needs to satisfy. ‘Specification’ defines –The externally-observable.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
Basic Characteristics of Object-Oriented Systems
CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Discussion of Course Syllabus Class will start momentarily. Please Stand By … CS 8532: Advanced.
CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad , Monday Class will start momentarily. Please Stand By … CS 8532: Advanced Software.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,
Design Concepts ch-8
UNIT-IV Designing Classes – Access Layer ‐ Object Storage ‐ Object Interoperability.
UML Diagrams By Daniel Damaris Novarianto S..
Chapter 1: Introduction to Systems Analysis and Design
Object-Oriented Analysis and Design
Introduction to the Unified Modeling Language
Modelling Concepts Based on Chapter 5 Bennett, McRobb and Farmer
Systems Analysis and Design With UML 2
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Week 10: Object Modeling (1)Use Case Model
For University Use Only
Object Oriented Concepts -I
UML Diagrams Jung Woo.
Software Design AITI GP John Paul Vergara.
CSC480 Software Engineering
The Process of Object Modeling
The Object Oriented Approach to Design
Overview of System Engineering
CIS 375 Bruce R. Maxim UM-Dearborn
Overview of Software Requirements
Object-Oriented Design
Introduction to the Unified Modeling Language
Object oriented analysis and design
Introduction to the Unified Modeling Language
Analysis models and design models
CS 8532: Advanced Software Engineering
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Review CSE116 2/21/2019 B.Ramamurthy.
CS 8532: Advanced Software Engineering
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

Object-Oriented Design CS 4850: Senior Project Object-Oriented Design

OOA and OOD - The Big Picture OO Analysis OO Design Implementation OO Testing Deployment Class Design Sub-System Design Message Responsibilities OO Analysis OO Design Implementation OO Testing Deployment Object Relationship Modeling Class Behavior

Mapping OOA to OOD Attributes Operations Collaborators Design Patterns (domain Objects) Responsibilities Design Subsystem Design Class/Object Design Message Use Cases Object Behavior Model Class Model Object Relatio- nships Attributes Operations Collaborators

Terminology OOA Model OOD Model Classes Attributes Methods - Design is answering the “How” question! Classes Attributes Methods Relationships Behavior OOA Model Objects Data Structures Algorithms Messaging Control OOD Model

Major Sections of an OO SDD Other sections and subsection may be added as needed. Table of Contents 1. Introduction 1.1 Purpose 1.2 Scope 1.3 Definitions, acronyms, abbreviations 1.4 References 2. Design Overview 2.1 Introduction 2.2 System Architecture 2.3 System Interfaces 2.4 Constraints and Assumptions 3. System Object Model 3.1 Introduction 3.2 Subsystems 3.3 Subsystem Interfaces 4. Object Descriptions (Object Design) 4.1 Objects in Subsystem 1 4.2 Objects in Subsystem 2 5. Object Collaboration (Process View) 5.1 Objects in Subsystem 1 5.2 Objects in Subsystem 2 6. Dynamic Model State and sequence diagrams 7. Data Design 8. Non-Functional Requirements 9. Supplementary Documentation

Partitioning the Analysis Model Step 1: System Design (1) Partitioning the Analysis Model - From your SRS description, identify potential subsystems. A subsystem is a self-contained and highly-independent groups of classes that define a main function of the system. - Don't force subsystems to your project is not applicable! - A subsystem has: - a well-define interface (check use-cases) - reasonable number of classes - classes that communicate with each others - possibly some internal subsystems. (check use-cases)

Partitioning the Analysis Model Step 1: System Design (2) Partitioning the Analysis Model - In section 3 of the SDD (see slide #5), provide a description for each subsystem and its interface. (separate table for each subsystem) - Provide a collaboration diagram to illustrate interactions among the subsystems. Consider using UML package notation to represent subsystems.

Step 2: Object Design (1) Here, focus on the detailed design of your objects (attributes and methods) and their messages. Apply the following design activities: 1 - Algorithm design 2 - Data structure design Make sure to adhere to “information Hiding” and “functional independence” concepts as you design your objects.

Step 2: Object Design (2) Object Description For each class in each subsystem, provide object description that includes interface description and implementation description. Interface description is a listing all message that an object of the class can respond to (i.e., all public methods it provides to its users). Implementation description is the internal (hidden) details of the operations that implement the interface methods. Follow the organization in section 4 of the SDD, using table format for each class.

Step 2: Object Design (3) Algorithm Design For each class operation, provide an algorithmic description (pseudocode) as a self-contained module. Consider dividing complex operations into separate smaller operations, such that each smaller operation performs a well-defined functions. Apply stepwise refinement, such that: - define operation interfaces (list of parameters if any) - fill-in operation body sections - refine body details as needed The level of details of your algorithmic description should be sufficient enough so that the implementer can translated it to source code without help from the designer.

Step 2: Object Design (4) Data Structure Design Define needed data structures of the class (if any) in conjunction with class operations. Document your data structures in section 7 of the SDD (see slide #5). Organize this section (sub-headings) similar to section 5 if your project is divided into subsystems.

Step 2: Object Design (5) - Create a specification class diagram: - add classes and relationships needed for modeling the solution (classes of interest to the developer) - add more details into individual classes (attributes and operations details) - Expand the class diagram in the SRS to include: - other classes and relationships needed for modeling the solution (those are classes of interest to you - the developer) - details of new classes (attributes and operations)

Step 3: Object Collaboration In section 5 of the SDD (see slide #5), provide description of collaborations between objects of each subsystems. Provide a UML object collaboration diagram to illustrate potential collaborations among objects of each subsystem. Notice that collaboration is required when a class cannot fulfill all of its responsibilities on its own (i.e., the class doesn’t have method(s) to manipulate its attributes).

Feel free to modify any template you choose to fit your project design description as long as you include the sections outlined on slide #5. You may reuse your SRS template with the sections outlined on slide #5. For sections 4 of the SDD (slide #5), you can take the tables from the SRS and expand them to include design details for each class method and attributes.