Top Banner
Object-Oriented Analysis and Design
119

Object-Oriented Analysis and Design

Feb 13, 2016

Download

Documents

Bill

Object-Oriented Analysis and Design. Lesson 1: Introduction to Software Engineering. Objectives. Define object technology and identify its place in the evolution of software engineering - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Object-Oriented  Analysis and Design

Object-Oriented Analysis and Design

Page 2: Object-Oriented  Analysis and Design

Lesson 1:Introduction to

Software Engineering

Page 3: Object-Oriented  Analysis and Design

Objectives

Define object technology and identify its place in the evolution of software engineering

Describe the differences between a structured approach and an object-oriented approach to software development

Identify the advantages and disadvantages of an object-oriented approach to software development

Discuss the need for analysis and design

Page 4: Object-Oriented  Analysis and Design

Evolution ofSoftware Engineering Data flow

Programming languages

Software systems

Analysis and design methodologies

Page 5: Object-Oriented  Analysis and Design

Object Technology

Objects maintain properties about their state

Page 6: Object-Oriented  Analysis and Design

Advantages of anObject-Oriented Approach

Maintainable

Reusable

Scalable

Page 7: Object-Oriented  Analysis and Design

Analysisand Design

Unified Software Development Process

Software crisis

Page 8: Object-Oriented  Analysis and Design

Summary

Define object technology and identify its place in the evolution of software engineering

Describe the differences between a structured approach and an object-oriented approach to software development

Identify the advantages and disadvantages of an object-oriented approach to software development

Discuss the need for analysis and design

Page 9: Object-Oriented  Analysis and Design

Lesson 2:Understanding the

Object Paradigm

Page 10: Object-Oriented  Analysis and Design

Objectives

Explain the difference between classes and instances

Identify the benefits of abstraction and encapsulation

Define a simple object model using the “has a” and “uses a” relationships

Describe Jacobson’s application object types

Page 11: Object-Oriented  Analysis and Design

Classes

Classes

Objects

Instantiation

Page 12: Object-Oriented  Analysis and Design

Encapsulation

Methods

Accessors

Mutators

Page 13: Object-Oriented  Analysis and Design

Abstraction

Used to manage complexity

Page 14: Object-Oriented  Analysis and Design

ObjectRelationships

“has a”

“uses a”

Page 15: Object-Oriented  Analysis and Design

Application Objects

Entity objects

Interface objects

Control objects

Page 16: Object-Oriented  Analysis and Design

Summary

Explain the difference between classes and instances

Identify the benefits of abstraction and encapsulation

Define a simple object model using the “has a” and “uses a” relationships

Describe Jacobson’s application object types

Page 17: Object-Oriented  Analysis and Design

Lesson 3:Inheritance

and Polymorphism

Page 18: Object-Oriented  Analysis and Design

Objectives

Identify the benefits of inheritance

Identify the benefits of polymorphism

Define abstract classes

Identify the benefits of multiple inheritance

Page 19: Object-Oriented  Analysis and Design

Inheritance

Inheritance “is a” relationship

Superclasses

Inheriting attributes- Subclasses

Inheriting methods

Extending components with inheritance

Page 20: Object-Oriented  Analysis and Design

Polymorphism

The ability of subclasses to override methods defined in classes that are higher in the class hierarchy

Page 21: Object-Oriented  Analysis and Design

Abstract Classes

Declare methods without providing implementation

Page 22: Object-Oriented  Analysis and Design

MultipleInheritance

Inheritance from two or more superclasses

Page 23: Object-Oriented  Analysis and Design

Summary

Identify the benefits of inheritance

Identify the benefits of polymorphism

Define abstract classes

Identify the benefits of multiple inheritance

Page 24: Object-Oriented  Analysis and Design

Lesson 4:Software Development

Life Cycle

Page 25: Object-Oriented  Analysis and Design

Objectives

Define software development life cycle

Describe the Waterfall life cycle model

Describe the V-Shaped life cycle model

Describe the Incremental life cycle model

Describe the Spiral life cycle model

Page 26: Object-Oriented  Analysis and Design

Software DevelopmentLife Cycle Model

Requirements gathering

Design

Implementation

Testing

Page 27: Object-Oriented  Analysis and Design

WaterfallLife Cycle Model

Classic, or linear-sequential, life cycle model

Characterized by a series of discrete phases that must be completed in a linear sequential order

Page 28: Object-Oriented  Analysis and Design

V-ShapedLife Cycle Model

Adds emphasis to testing

Page 29: Object-Oriented  Analysis and Design

IncrementalLife Cycle Model

Evolutionary- A working version of the software is

created by the end of the first iteration, and subsequent iterations build on the work of earlier iterations

Page 30: Object-Oriented  Analysis and Design

SpiralLife Cycle Model

Incorporates risk analysis

Divided into four phases- Planning- Risk analysis- Engineering- Evaluation

Page 31: Object-Oriented  Analysis and Design

Summary

Define software development life cycle

Describe the Waterfall life cycle model

Describe the V-Shaped life cycle model

Describe the Incremental life cycle model

Describe the Spiral life cycle model

Page 32: Object-Oriented  Analysis and Design

Lesson 5:The Unified SoftwareDevelopment Process

Page 33: Object-Oriented  Analysis and Design

Objectives

Describe the Unified Process

Identify the phases of the Unified Process

Identify the core workflows of the Unified Process

Page 34: Object-Oriented  Analysis and Design

The Unified Process

Use-case driven

Architecture-centric

Iterative and incremental

Page 35: Object-Oriented  Analysis and Design

Life Cycle ofthe Unified Process

Cycles- Single cycle

Page 36: Object-Oriented  Analysis and Design

Phases

Inception

Elaboration- Architecture baseline

Construction- Beta release- Beta test

Transition

Page 37: Object-Oriented  Analysis and Design

Iterations

Increments

Page 38: Object-Oriented  Analysis and Design

Core Workflows

Requirements

Analysis

Design

Implementation

Test

Page 39: Object-Oriented  Analysis and Design

Summary

Describe the Unified Process

Identify the phases of the Unified Process

Identify the core workflows of the Unified Process

Page 40: Object-Oriented  Analysis and Design

Lesson 6:The Unified

Modeling Language

Page 41: Object-Oriented  Analysis and Design

Objectives

Describe the history of the UML

Describe the purpose of a modeling language

Describe the purpose of models

Identify UML views

Page 42: Object-Oriented  Analysis and Design

Models

Modeling levels- High-level models- Abstract models- Full specification models

Page 43: Object-Oriented  Analysis and Design

Views

Static

Use-case

Implementation

Deployment

State machine

Activity

Interaction

Model management

Page 44: Object-Oriented  Analysis and Design

Summary

Describe the history of the UML

Describe the purpose of a modeling language

Describe the purpose of models

Identify UML views

Page 45: Object-Oriented  Analysis and Design

Lesson 7:Computer-Aided

Software Engineering

Page 46: Object-Oriented  Analysis and Design

Objectives

Identify the role of CASE tools in the software development process

Identify the criteria for selecting a CASE tool

Identify the benefits and limitations of CASE tools

Install and use Argo/UML

Page 47: Object-Oriented  Analysis and Design

Selecting a CASE Tool

Methodology

Flexibility

Collaboration

Diagram validation

Page 48: Object-Oriented  Analysis and Design

Summary

Identify the role of CASE tools in the software development process

Identify the criteria for selecting a CASE tool

Identify the benefits and limitations of CASE tools

Install and use Argo/UML

Page 49: Object-Oriented  Analysis and Design

Lesson 8:The Requirements

Workflow

Page 50: Object-Oriented  Analysis and Design

Objectives

Describe the purpose of the requirements workflow

Describe the activities of the requirements workflow

Describe the deliverables of the requirements workflow

Create a list of candidate requirements

Create a simple domain model

Page 51: Object-Oriented  Analysis and Design

Activities of theRequirements Workflow Listing possible requirements

Describing the context of the system

Capturing functional requirements

Capturing nonfunctional requirements

Page 52: Object-Oriented  Analysis and Design

Requirements andthe Unified Process

Four deliverables- Domain model or business model- Use-case model- User-interface descriptions or

prototypes- Supplementary requirements document

Page 53: Object-Oriented  Analysis and Design

Summary

Describe the purpose of the requirements workflow

Describe the activities of the requirements workflow

Describe the deliverables of the requirements workflow

Create a list of candidate requirements

Create a simple domain model

Page 54: Object-Oriented  Analysis and Design

Lesson 9:Use-Case Modeling

Page 55: Object-Oriented  Analysis and Design

Objectives

Identify the actors and use cases of a system

Describe the four types of use-case relationship

Develop a use-case model to capture project requirements

Page 56: Object-Oriented  Analysis and Design

Introduction toUse-Case Diagrams

Actors

Use cases

Use-case relationships- Association- Generalization- Include- Extend

Page 57: Object-Oriented  Analysis and Design

Developing aUse-Case Model

Top-level use-case diagrams

Top-level use-case descriptions

Sub-level use-case diagrams

Page 58: Object-Oriented  Analysis and Design

Summary

Identify the actors and use cases of a system

Describe the four types of use-case relationship

Develop a use-case model to capture project requirements

Page 59: Object-Oriented  Analysis and Design

Lesson 10:Activity Diagrams

Page 60: Object-Oriented  Analysis and Design

Objectives

Describe the benefits of activity diagrams

Interpret activity diagrams

Create activity diagrams to describe use cases

Page 61: Object-Oriented  Analysis and Design

Introduction toActivity Diagrams

Creating activity diagrams

Branches and merges

Forks and joins

Page 62: Object-Oriented  Analysis and Design

Summary

Describe the benefits of activity diagrams

Interpret activity diagrams

Create activity diagrams to describe use cases

Page 63: Object-Oriented  Analysis and Design

Lesson 11:Interface Designand Prototyping

Page 64: Object-Oriented  Analysis and Design

Objectives

Identify the major goals of user interface design

Describe the different types of prototypes

Create a paper prototype

Design a system interface

Use the Backus-Naur Form to create an interface control document

Page 65: Object-Oriented  Analysis and Design

User Interface Design

User interface ergonomics- Metaphor- Self-evidence- Consistency- State visualization

Page 66: Object-Oriented  Analysis and Design

User InterfacePrototyping

Rapid prototyping

Paper prototyping

Page 67: Object-Oriented  Analysis and Design

SpecifyingSystem Interfaces

Metasyntax- Backus-Naur Form

Page 68: Object-Oriented  Analysis and Design

Summary

Identify the major goals of user interface design

Describe the different types of prototypes

Create a paper prototype

Design a system interface

Use the Backus-Naur Form to create an interface control document

Page 69: Object-Oriented  Analysis and Design

Lesson 12:The Analysis Workflow

Page 70: Object-Oriented  Analysis and Design

Objectives

Describe the purpose of the analysis workflow

Identify analysis classes

Define use-case realization—analysis

Page 71: Object-Oriented  Analysis and Design

Analysis Classes

Entity class Boundary class Control class

Page 72: Object-Oriented  Analysis and Design

Use-Case Realizations—Analysis A collaboration diagram

A flow-of-events description

A special-requirements description

Page 73: Object-Oriented  Analysis and Design

Summary

Describe the purpose of the analysis workflow

Identify analysis classes

Define use-case realization—analysis

Page 74: Object-Oriented  Analysis and Design

Lesson 13:Analysis Modeling

Page 75: Object-Oriented  Analysis and Design

Objectives

Interpret collaboration diagrams

Create collaboration diagrams to illustrate a rough vision of system design

Create flow-of-events descriptions to accompany collaboration diagrams

Use CRC cards to aid in developing collaboration diagrams

Identify attributes

Page 76: Object-Oriented  Analysis and Design

CollaborationDiagrams

Sequence numbers

Parameter passing

Return values

Message conditions

Multiplicity

Page 77: Object-Oriented  Analysis and Design

Flow of Events and Special Requirements Textual description of the sequence of

events

Page 78: Object-Oriented  Analysis and Design

Class Analysis

Attributes

Aggregation

Generalization

Page 79: Object-Oriented  Analysis and Design

Summary

Interpret collaboration diagrams

Create collaboration diagrams to illustrate a rough vision of system design

Create flow-of-events descriptions to accompany collaboration diagrams

Use CRC cards to aid in developing collaboration diagrams

Identify attributes

Page 80: Object-Oriented  Analysis and Design

Lesson 14:The Design Workflow

Page 81: Object-Oriented  Analysis and Design

Objectives

Identify design subsystems

Identify design classes

Use interaction diagrams to assist in creating use-case realizations—design

Create a flow-of-events—design

Define implementation requirements

Create deployment diagrams to describe system architecture

Page 82: Object-Oriented  Analysis and Design

Design Model

Design subsystems

Design classes

Use-case realizations—design

Page 83: Object-Oriented  Analysis and Design

Use-CaseRealizations—Designs Class diagrams

Interaction diagrams

Flow-of-events—design

Implementation requirements

Page 84: Object-Oriented  Analysis and Design

Architectural Design

Multi-tier models

Page 85: Object-Oriented  Analysis and Design

Summary

Identify design subsystems

Identify design classes

Use interaction diagrams to assist in creating use-case realizations—design

Create a flow-of-events—design

Define implementation requirements

Create deployment diagrams to describe system architecture

Page 86: Object-Oriented  Analysis and Design

Lesson 15:Class Diagrams

Page 87: Object-Oriented  Analysis and Design

Objectives

Use class diagrams to illustrate system design

Describe the difference between reference objects and value objects

Identify when it is appropriate to use associations, aggregation, and composition

Use generalizations to illustrate inheritance

Page 88: Object-Oriented  Analysis and Design

Introduction toClass Diagrams

Classes participate in four principal relationships- Association- Aggregation- Composition- Generalization

Page 89: Object-Oriented  Analysis and Design

Association

Navigability

Multiplicity

Page 90: Object-Oriented  Analysis and Design

Aggregation

Reference objects

Value objects

Page 91: Object-Oriented  Analysis and Design

Composition

A type of “has a” relationship between a class and a value object

Page 92: Object-Oriented  Analysis and Design

Generalization

The “is a” relationship

Page 93: Object-Oriented  Analysis and Design

Summary

Use class diagrams to illustrate system design

Describe the difference between reference objects and value objects

Identify when it is appropriate to use associations, aggregation, and composition

Use generalizations to illustrate inheritance

Page 94: Object-Oriented  Analysis and Design

Lesson 16:Sequence Diagrams

Page 95: Object-Oriented  Analysis and Design

Objectives

Interpret sequence diagrams

Use sequence diagrams to illustrate the interactions between classes

Page 96: Object-Oriented  Analysis and Design

Introduction toSequence Diagrams

Return values

Message conditions

Deletion

Multiplicity

Return stack

Page 97: Object-Oriented  Analysis and Design

Summary

Interpret sequence diagrams

Use sequence diagrams to illustrate the interactions between classes

Page 98: Object-Oriented  Analysis and Design

Lesson 17:Statechart Diagrams

Page 99: Object-Oriented  Analysis and Design

Objectives

Interpret statechart diagrams

Develop statechart diagrams to illustrate the internal workings of individual classes

Page 100: Object-Oriented  Analysis and Design

Introduction toStatechart Diagrams

States

Transitions

Superstates

Page 101: Object-Oriented  Analysis and Design

Summary

Interpret statechart diagrams

Develop statechart diagrams to illustrate the internal workings of individual classes

Page 102: Object-Oriented  Analysis and Design

Lesson 18:Design Quality Issues

Page 103: Object-Oriented  Analysis and Design

Objectives

Identify elements of good design

Define cohesion

Define coupling

Use object-oriented design metrics

Interpret design metrics

Page 104: Object-Oriented  Analysis and Design

Elements ofGood Design

Encapsulation

Abstraction

High cohesion

Loose coupling

Page 105: Object-Oriented  Analysis and Design

Object-OrientedDesign Metrics

Chidamber and Kemerer- CBO- DIT- NOC

Metrics for object-oriented design- MHF- AHF- MIF- AIF- PF- CF

Page 106: Object-Oriented  Analysis and Design

Summary

Identify elements of good design

Define cohesion

Define coupling

Use object-oriented design metrics

Interpret design metrics

Page 107: Object-Oriented  Analysis and Design

Lesson 19:The

Implementation Workflow

Page 108: Object-Oriented  Analysis and Design

Objectives

Describe the implementation process

Identify executable components

Generate program code from design classes

Define unit testing

Create an integration build plan

Page 109: Object-Oriented  Analysis and Design

The Implementation Workflow

Identifying components

Integration build planning

Generating code from design classes

Page 110: Object-Oriented  Analysis and Design

Unit Testing

Specification testing

Structure testing

Page 111: Object-Oriented  Analysis and Design

Summary

Describe the implementation process

Identify executable components

Generate program code from design classes

Define unit testing

Create an integration build plan

Page 112: Object-Oriented  Analysis and Design

Lesson 20:The Test Workflow

Page 113: Object-Oriented  Analysis and Design

Objectives

Describe the test workflow

Define test case

Define test procedure

Define test component

Page 114: Object-Oriented  Analysis and Design

Test Cases

Designing test cases

Page 115: Object-Oriented  Analysis and Design

Test Procedures

Describes the method for performing one or more tests

Describes how inputs are entered into the system using the user interface

Page 116: Object-Oriented  Analysis and Design

Summary

Describe the test workflow

Define test case

Define test procedure

Define test component

Page 117: Object-Oriented  Analysis and Design

Object-OrientedAnalysis and Design

Introduction to Software Engineering

Understanding the Object Paradigm

Inheritance and Polymorphism

Software Development Life Cycle

The Unified Software Development Process

The Unified Modeling Language

Computer-Aided Software Engineering

Page 118: Object-Oriented  Analysis and Design

Object-OrientedAnalysis and Design

The Requirements Workflow

Use-Case Modeling

Activity Diagrams

Interface Design and Prototyping

The Analysis Workflow

Analysis Modeling

The Design Workflow

Page 119: Object-Oriented  Analysis and Design

Object-OrientedAnalysis and Design

Class Diagrams

Sequence Diagrams

Statechart Diagrams

Design Quality Issues

The Implementation Workflow

The Test Workflow