CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model...
-
Upload
sydney-reeves -
Category
Documents
-
view
215 -
download
2
Transcript of CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model...
![Page 1: CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:](https://reader036.fdocuments.us/reader036/viewer/2022082818/56649ee45503460f94bf3b07/html5/thumbnails/1.jpg)
CSC 480Software Engineering
OOAD Process
![Page 2: CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:](https://reader036.fdocuments.us/reader036/viewer/2022082818/56649ee45503460f94bf3b07/html5/thumbnails/2.jpg)
Topics
Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy: inheritance and aggregation
![Page 3: CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:](https://reader036.fdocuments.us/reader036/viewer/2022082818/56649ee45503460f94bf3b07/html5/thumbnails/3.jpg)
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
![Page 4: CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:](https://reader036.fdocuments.us/reader036/viewer/2022082818/56649ee45503460f94bf3b07/html5/thumbnails/4.jpg)
Down to the Ground-LevelIdeas
Needs statement
Functional spec(D-req’ts)
Design docs
System in production System under dev.
Prototypes
High-up in the air
Solidground
Analysis
Design
Implementation
Conceptualization
C-req’ts
![Page 5: CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:](https://reader036.fdocuments.us/reader036/viewer/2022082818/56649ee45503460f94bf3b07/html5/thumbnails/5.jpg)
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
![Page 6: CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:](https://reader036.fdocuments.us/reader036/viewer/2022082818/56649ee45503460f94bf3b07/html5/thumbnails/6.jpg)
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
![Page 7: CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:](https://reader036.fdocuments.us/reader036/viewer/2022082818/56649ee45503460f94bf3b07/html5/thumbnails/7.jpg)
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
![Page 8: CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:](https://reader036.fdocuments.us/reader036/viewer/2022082818/56649ee45503460f94bf3b07/html5/thumbnails/8.jpg)
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
![Page 9: CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:](https://reader036.fdocuments.us/reader036/viewer/2022082818/56649ee45503460f94bf3b07/html5/thumbnails/9.jpg)
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
![Page 10: CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:](https://reader036.fdocuments.us/reader036/viewer/2022082818/56649ee45503460f94bf3b07/html5/thumbnails/10.jpg)
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
![Page 11: CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:](https://reader036.fdocuments.us/reader036/viewer/2022082818/56649ee45503460f94bf3b07/html5/thumbnails/11.jpg)
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
![Page 12: CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:](https://reader036.fdocuments.us/reader036/viewer/2022082818/56649ee45503460f94bf3b07/html5/thumbnails/12.jpg)
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
![Page 13: CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:](https://reader036.fdocuments.us/reader036/viewer/2022082818/56649ee45503460f94bf3b07/html5/thumbnails/13.jpg)
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
![Page 14: CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:](https://reader036.fdocuments.us/reader036/viewer/2022082818/56649ee45503460f94bf3b07/html5/thumbnails/14.jpg)
Identifying Relationships
Relationship types Hierarchical
Inheritance Aggregation
Association Dependency: aka collaborations
![Page 15: CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:](https://reader036.fdocuments.us/reader036/viewer/2022082818/56649ee45503460f94bf3b07/html5/thumbnails/15.jpg)
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