11/5/01OO Design1 Design Object-Oriented Design. 11/5/01OO Design2 Object-Oriented Design  The process of determining the architecture, and specifying.

Slides:



Advertisements
Similar presentations
ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
Advertisements

Introduction To System Analysis and Design
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS System Design Lecture 12 Päivi Ovaska.
© 2005 Prentice Hall7-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Component-Level Design
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Use Case Analysis – continued
1 A Student Guide to Object- Orientated Development Chapter 9 Design.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
What is Software Architecture?
Introduction To System Analysis and design
CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Tuesday Class will start momentarily. Please Stand By … CS 8532: Advanced Software.
Chapter 10 Architectural Design
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Systems Analysis and Design in a Changing World, Fifth Edition
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
Design Patterns.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
An Introduction to Software Architecture
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.
OHTO -99 SOFTWARE ENGINEERING LECTURE 5 Today: - An overview to OO Analysis and OO Design - Introduction of Assignment 2.
RUP Design RUP Artifacts and Deliverables
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Introduction To System Analysis and Design
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Relational Databases and Transaction Design Lecture 27.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Systems Analysis and Design in a Changing World, 3rd Edition
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
GRASP: Designing Objects with Responsibilities
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
Chapter 1 Introduction to Databases. 1-2 Chapter Outline   Common uses of database systems   Meaning of basic terms   Database Applications  
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
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.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
TAL7011 – Lecture 4 UML for Architecture Modeling.
CS 8532: Advanced Software Engineering Dr. Hisham Haddad Overview of Object-Oriented Design Highlights of OOD Concepts, Components, and Process.
1 CMPT 275 High Level Design Phase Modularization.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
UML - Development Process 1 Software Development Process Using UML.
CS223: Software Engineering Lecture 13: Software Architecture.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 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.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
11 Systems Analysis and Design in a Changing World, Fifth Edition.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Software Design AITI GP John Paul Vergara.
Object-Oriented Design
Object-Oriented Design
Software Architecture
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
CS 8532: Advanced Software Engineering
Design Yaodong Bi.
Presentation transcript:

11/5/01OO Design1 Design Object-Oriented Design

11/5/01OO Design2 Object-Oriented Design  The process of determining the architecture, and specifying the classes needed to implement a software product in CONCURRENTLY

11/5/01OO Design3 Design In General  Transfer the results of analysis phase into the design of a software solution  Define the overall S/W architecture  For OO Design Non-private attributes, operations, and algorithms are defined for design objects Implementation-oriented new objects are defined

11/5/01OO Design4 More About Design  The boundary between design and implementation is both flexible and subjective  The goal of design is to achieve sufficient agreement on interface definition and internal structure that implementation work may then BE proceed independently in parallel

11/5/01OO Design5 Design Work Products  Design Guidelines  System Architecture  APIs  Target Environment  Sub-system model  Design Object Model  Design Scenarios  Design Object Interaction Diagrams  Design State Models  Design Class Descriptions  Rejected Design Alternatives  Database tables Milestone #6 Milestone #7

11/5/01OO Design6 Design Guidelines  A set of rules that help in defining the design deliverables and guiding the design process  Extension of analysis guidelines  Recycle as much as possible  Address the work products apply to design

11/5/01OO Design7 System Architecture  The set of project wide design decisions  Should cover the following areas Structure-- how to layer and partition the S/W Communication patterns among the components Other communication issues distribution Persistence Security Error handling Recovery H/W and S/W configurations

11/5/01OO Design8 More On System Architecture  Created by the “Project Architect”  Restricts what a developer can do  May include assumptions For example, “Use VBScript on all the ASP pages except the first page, assuming client environment is IE4 or later.”  Nonfunctional requirements may affect this part greatly

11/5/01OO Design9 Examples On System Architecture  Structure-- how to layer and partition the S/W Show the software layers such as ODBC  Communication patterns among the components Specify all the inter-component communication is achieved through the database  Other communication issues Client to server communication using HTTP (TCP/IP)  Distribution Using DBMS’ replication feature  Persistence All the persistence data should be stored in the database

11/5/01OO Design10 Examples On System Architecture  Security Users need to be authenticated through LDAP  Error handling Critical sections need to use  try … catch … final structure  Recovery Relay on the database to provide check point Use “transaction” operation to make data changes are atomic  Debugging Each class need to provide a method “displayState” that prints out the values of all the members.  H/W and S/W configurations Client environment is IE6 or later, Win3264 OS, X86 CPU, etc

11/5/01OO Design11 APIs  One of the two Application Programming Interfaces Architecture Program Interface  One view of APIs are that they are a collection of public methods  This view enable the sub/system to be used without the needs to understand a class’ internal details, especially for applications that provide some services

11/5/01OO Design12 Target Environment  The environment in which the application will operate  Come from non-functional requirements  It should specify H/W OS runtime environment  It should provide specifications for both clients and servers (database, IIS, etc)

11/5/01OO Design13 Target Environment  This work product ensures that both the user and the system architect share a common understanding of the operating environment  For distributed system you need to specify all the possible clients and servers, especially clients!  Users’ opinions count here!

11/5/01OO Design14 Subsystem Model  Is a partitioning of a system into subsystems and delegation of system responsibilities.  There are many ways to divide the system.  A subsystem may contain sub-subsystem.  A subsystem model identifies existing subsystems that are to be reused as well as those that need to be constructed.

11/5/01OO Design15 Subsystem Model  The most common reason of having subsystem is “divide and conquer”  Others reasons are reuse dividing the work – CS625/CS630 etc.

11/5/01OO Design16 How To Partition A System  Developed V.S. under-developing  Already divided at the analysis phase  Divided by physical boundaries For example, Staff, Student, classes  After Design Object Model for less amount of communication

11/5/01OO Design17 More About Sub-system  Once a subsystem is identified, it is treated as a system in its own right May have its own workbook  Subsystem model shows the interaction among sub systems  Each use case must be mapped into a subsystem or subsystems  Most use cases should be contain with a single subsystem

11/5/01OO Design18 The Subsystem Model Includes  1. Subsystem diagram A. subsystems B. contracts  2. For each subsystem A. Name B. Description C. Contracts  2. For each contract A. Name B. Description C. API D. Notes

11/5/01OO Design19  Subsystem can be larger enough to have its own workbook  Balancing the amount of work should not be a Criterion for partition a system. However, that is what you will do because CS430 Subsystem Model

11/5/01OO Design20 Design Object Model  Consists of the classes, their attributes, operations, and interrelationships among the classes

11/5/01OO Design21 Design Object Model  Document the static aspect of an OO solution to a problem  Shows the structure of the software system, not the problem domain  An analysis class may be mapped into two or more classes. For example One for data processing One for data presentation  May introduce new classes Security

11/5/01OO Design22 Design Object Model  Start with Analysis Object Model  Add new classes for views and utilities  May consult with Design OID and Design State Models for completeness/correctness  Consider subclass carefully  May need to consider accessibility (public, protected, private)

11/5/01OO Design23 Notation  See page 285

11/5/01OO Design24 Design Scenarios  Define system behaviors at a concrete level  Include information regarding how to trigger the scenarios

11/5/01OO Design25 Design Scenarios: Purposes  Define a complete set of functional specifications that define the externally visible behaviors  Define the assumptions and outcomes of Design OIDs

11/5/01OO Design26 Design Scenarios: Approaches  Approach #1 (emphasize on mechanisms). Transform Analysis OIDs into Design OIDs, then transform the corresponding Analysis scenarios  Approach #2 (emphasize on interfaces). Transform Analysis scenarios first, then analysis OIDs.  IBM recommends approach #1  Key: Scenarios and OIDs are closely linked!

11/5/01OO Design27 Design Scenarios: Approach #1  Working on Design OIDs based on Analysis OIDs.  Once a Design OID is created, its corresponding Design Scenario is created or updated

11/5/01OO Design28 Design Scenarios: Approach #2  Start with Analysis Scenarios  Need to make design decision at the early stage

11/5/01OO Design29 Design Scenarios: Notation  Name  Trigger can be a method or a user event  Assumption  Outcome  Note

11/5/01OO Design30 Design Scenarios: Example  Name: User rents a tape  Trigger: a correct video id is entered  Assumption: A rental object is defined (REN_getRenalID() returns not null) The video is available (VID_videoAvailable(Vid) returns true)  Outcome Video count decrement(VID_VideoCountDecrease(Vid)) Tape is recorded rented by user (REN_AddTape(RID, VID))  Note id can either be entered by an employee or bar code reader

11/5/01OO Design31 Design Object Interaction Diagrams (OIDs)  Is used for dynamic modeling  Is a graphical representation of object collaborations  Involve newly added classes for control, interface, communication, distribution, and storage (may come from reusable code)  Is architecture driven Client/Server implementation should be different from desk top implementation

11/5/01OO Design32 Design OID: Techniques  Start with everything you have: use cases, analysis and design scenarios, and analysis OIDs  Consider the responsibilities of newly added design classes  Reflect the interaction among objects in Design Object Model  Always start with a task and ask: which object can handle this task

11/5/01OO Design33 Design OID: Techniques (2)  Make sure the parameters and return values are well defined, especially for large systems  Clearly indicate control and threading data

11/5/01OO Design34 Design OID: Techniques (3)  Have the group work on a couple together  Have every group member work on several  Have another meeting to review the results  Update the Design Object Model, if necessary

11/5/01OO Design35 Design OID: Notation  Focus of control  multitasking  process and subsystem boundary  Example on page 302

11/5/01OO Design36 Design OID: Good News  Only the major design scenarios are documents and developed into Design OID

11/5/01OO Design37 Design State Models  About the same as the Analysis state model  One diagram for each class

11/5/01OO Design38 Design Class Descriptions  Very much the same as analysis class descriptions  For developers  map out members and methods for public protected private  See book for notation changes

11/5/01OO Design39 Rejected Design Alternatives  List the rejected designs decisions with reasons

11/5/01OO Design40 Database Design  Not from IBM  Define all the tables The name Columns Data type and size of all columns Restrictions on all columns (default value, initial value, allow NULL, etc) Key Foreign keys  Other important business rules