CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:

Slides:



Advertisements
Similar presentations
Unit Testing in the OO Context(Chapter 19-Roger P)
Advertisements

UML an overview.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Object-Oriented Analysis and Design
OOAD Placement Training 1 Prepared by G.Naveen Sundar, Karunya University.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Slide 1 Chapter 7 Structural Modeling. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
1 IS 4420 Database Fundamentals Chapter 2: Database Development Process Leon Chen.
C++ Training Datascope Lawrence D’Antonio Lecture 11 UML.
© 2005 by Prentice Hall 1 Chapter 2: The Database Development Process Modern Database Management 7 th Edition George Lamperti.
Sharif University of Technology1 Design and Use-case Realization Software Engineering Laboratory Fall 2006.
Introduction To System Analysis and design
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
The Database Development Process
Lesson 7 Guide for Software Design Description (SDD)
Requirements Analysis
Chapter 1: Introduction to Systems Analysis and Design
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.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Lab 04.
Slide 1 Structural Modeling Chapter 7. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
Approaching a Problem Where do we start? How do we proceed?
CS3773 Software Engineering Lecture 04 UML Class Diagram.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
The Static Analysis Model Class Diagrams Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Lecture 6: Structural Modeling
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
Structural Modeling Chapter 7. Key Ideas A structural or conceptual model describes the structure of the data that supports the business processes in.
Design Model Lecture p6 T120B pavasario sem.
CS251 – Software Engineering Lecture 9: Software Design Slides by Mohammad El-Ramly, PhD
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Introduction to OOAD and the UML
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
ITEC324 Principle of CS III Chapter 2 (Horstmann’s Book) – Part 1 The Object-Oriented Design Process Hwajung Lee.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
CSC 480 Software Engineering PSP Project 2 August 27, 2004.
Fall 2007 Week 9: UML Overview MSIS 670: Object-Oriented Software Engineering.
Chapter 6: The Analysis Workflow Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes [Arlow and Neustadt, 2005] CS 426 Senior Projects in.
Diagrams. Typically, we view the static parts of a system using one of the four following diagrams. 1. Class diagram 2. Object diagram 3. Component diagram.
UML Fundamental Elements. Structural Elements Represent abstractions in our system. Elements that encapsulate the system's set of behaviors. Structural.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
Identification of Classes. Object Oriented Analysis (OOA) OOA is process by which we identify classes that play role in achieving system goals & requirements.
Basic Characteristics of Object-Oriented Systems
Chapter 2 (Horstmann’s Book) – Part 1 The Object-Oriented Design Process Hwajung Lee.
Process 4 Hours.
Elaboration popo.
UML Diagrams: Class Diagrams The Static Analysis Model
Chapter 1: Introduction to Systems Analysis and Design
Business System Development
UML: Unified modeling language
Overview of Software Requirements
SYS466 Domain Classes – Part 1.
Software Design Lecture : 15.
Software Design Lecture : 14.
Chapter 1: Introduction to Systems Analysis and Design
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Uml diagrams In ooad.
Chapter 1: Introduction to Systems Analysis and Design
Introduction to OOAD and the UML
Software Development Process Using UML Recap
ITEC324 Principle of CS III
ITEC324 Principle of CS III
Presentation transcript:

CSC 480 Software Engineering OOAD Process

Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy: inheritance and aggregation

Macro Development Process The process can be roughly divided into three major phases Analysis: focusing on what are required Design: answering the questions of how to fulfill the requirements  Resulting in blueprints that map functional needs to program units (interrelated classes) Implementation: realizing the design with a working system

Down to the Ground-Level Ideas Needs statement Functional spec (D-req’ts) Design docs System in production System under dev. Prototypes High-up in the air Solid ground Analysis Design Implementation Conceptualization C-req’ts

Analysis Phase Specify system needs in a conceptual model  High-level, with details omitted  Document: system requirement specification (SRS) Completeness  a contract between client and developers Consistency : without contradiction Readability : customer & developer (C-&D-) req’ts Addressing all shareholders interests Testability : can be tested against reality

Requirements Engineering There is no clear-cut boundary between phases In OOA process, use cases are a powerful means to present and organize requirements  RUP claims to be use-case-driven  Good for revealing both external and internal needs (user and system requirements)  Can be used for design, implementation, testing, and user training purposes

The Design Phase The goal is to find and present a solution  The key is decomposition Interrelated classes: class  responsibilities  collaborations Focusing on architecture (key classes + interfaces), omitting implementation details The outcome is system design document (SDD)  Class diagrams  Sequence diagrams  State diagrams

Design Phase Also known as high-level design  Classes at various levels of abstraction  Relationships among classes Dependency Inheritance aggregation Product design or UI design may be needed  Story-boarding  Screen navigation charts

Implementation Phase Better known as the construction phase  Detail design: sub-class level Data structures, algorithms  Coding  Unit testing  Gradual integration and repeated “system” testing  Deployment

Object and Class An object is characterized by its  State:  Behavior:  Identity A class specifies objects with the same behavior An instance of a class is an object that belongs to the given class

Micro Development Process Largely driven by the stream of scenarios and architectural products  Identifying classes and objects  Identifying semantics of classes and objects  Identifying the relationships among classes and objects  Implementing classes and objects

Identifying Classes A rule of thumb is to look for nouns in SRS  Class candidates usually fall in following categories Tangible things Agents Events and transactions Users and roles Systems System interfaces and devices Foundational classes

Identifying Responsibilities Responsibilities can be mapped to a functional requirement Responsibilities include  Things an object need to know: state  Operations an object can perform: behavior Assign a responsibility to exactly one class Assign responsibilities as evenly among classes as possible

Identifying Relationships Relationship types  Hierarchical Inheritance Aggregation  Association Dependency: aka collaborations

Object Collaborations An object tends to fulfill its responsibilities by collaborating with other objects Client-server contract  Client: the object receiving a service  Server: the object providing the service  Contract: the interface definition through which a service may be requested  The client and server roles may change in different collaborations