+ All Categories
Home > Documents > Object-Oriented Analysis and Design

Object-Oriented Analysis and Design

Date post: 02-Jan-2016
Category:
Upload: forrest-shields
View: 53 times
Download: 2 times
Share this document with a friend
Description:
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
Popular Tags:
138
Copyright © 2003 ProsoftTraining. All rights reserved. Object-Oriented Analysis and Design
Transcript
Page 1: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Object-Oriented Analysis and Design

Page 2: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

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

Copyright © 2003 ProsoftTraining. All rights reserved.

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

Copyright © 2003 ProsoftTraining. All rights reserved.

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 the “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

Subtypingvs. Subclassing

• Subtyping– Creating a subtype, which is a data type

that provides the same interface as a supertype

• Subclassing– Process by which a new class is created

that shares the implementation of a superclass

Page 24: 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 25: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 4:Software

Development Life Cycle

Page 26: 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 27: Object-Oriented  Analysis and Design

Software DevelopmentLife Cycle Model

• Requirements gathering• Design• Implementation• Testing

Page 28: 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 29: Object-Oriented  Analysis and Design

V-ShapedLife Cycle Model

• Adds emphasis to testing

Page 30: 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 31: Object-Oriented  Analysis and Design

SpiralLife Cycle Model

• Incorporates risk analysis• Divided into four phases

– Planning– Risk analysis– Engineering– Evaluation

Page 32: 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 33: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 5:The Unified SoftwareDevelopment Process

Page 34: 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 35: Object-Oriented  Analysis and Design

The Unified Process

• Use-case driven• Architecture-centric• Iterative and incremental

Page 36: Object-Oriented  Analysis and Design

Life Cycle ofthe Unified Process

• Cycles– Single cycle

Page 37: Object-Oriented  Analysis and Design

UnifiedProcess Phases

• Inception• Elaboration

– Architecture baseline• Construction

– Beta release– Beta test

• Transition

Page 38: Object-Oriented  Analysis and Design

UnifiedProcess Iterations

• Increments

Page 39: Object-Oriented  Analysis and Design

Core Workflowsof the Unified Process

• Requirements• Analysis• Design• Implementation• Test

Page 40: 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 41: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 6:Unified

Modeling Language

Page 42: 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 43: Object-Oriented  Analysis and Design

UMLModels

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

Page 44: Object-Oriented  Analysis and Design

UMLViews

• Static• Use-case• Implementation• Deployment

• State machine• Activity• Interaction• Model management

Page 45: 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 46: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 7:Computer-Aided

Software Engineering

Page 47: 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 48: Object-Oriented  Analysis and Design

Selecting a CASE Tool

• Methodology• Flexibility• Collaboration• Diagram validation

Page 49: 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 50: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 8:The Requirements Workflow

Page 51: Object-Oriented  Analysis and Design

Objectives

• Describe the purpose of the requirements workflow

• Describe the activities of the requirements workflow

• Create a list of candidate requirements• Describe the deliverables of the requirements

workflow

Page 52: 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 53: 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 54: Object-Oriented  Analysis and Design

Summary

Describe the purpose of the requirements workflow

Describe the activities of the requirements workflow

Create a list of candidate requirements Describe the deliverables of the requirements

workflow

Page 55: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 9:Use-Case Modeling

Page 56: 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 57: Object-Oriented  Analysis and Design

Introduction toUse-Case Diagrams

• Actors• Use cases• Use-case relationships

– Association– Generalization– Include– Extend

Page 58: 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 59: 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 60: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 10:Activity

Diagrams

Page 61: Object-Oriented  Analysis and Design

Objectives

• Describe the benefits of activity diagrams• Interpret activity diagrams• Create activity diagrams to describe use cases

Page 62: Object-Oriented  Analysis and Design

Introduction toActivity Diagrams

• Creating activity diagrams• Branches and merges• Forks and joins

Page 63: Object-Oriented  Analysis and Design

Summary

Describe the benefits of activity diagrams Interpret activity diagrams Create activity diagrams to describe use cases

Page 64: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 11:Interface Designand Prototyping

Page 65: 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 66: Object-Oriented  Analysis and Design

User Interface Design

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

Page 67: Object-Oriented  Analysis and Design

User InterfacePrototyping

• Rapid prototyping• Paper prototyping

Page 68: Object-Oriented  Analysis and Design

SpecifyingSystem Interfaces

• Metasyntax– Backus-Naur Form

Page 69: 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 70: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 12:The Analysis Workflow

Page 71: Object-Oriented  Analysis and Design

Objectives

• Describe the purpose of the analysis workflow• Identify analysis classes• Define use-case realization—analysis

Page 72: Object-Oriented  Analysis and Design

Analysis Classes

Entity class Boundary class Control class

Page 73: Object-Oriented  Analysis and Design

Use-Case Realizations—Analysis

• A collaboration diagram• A flow-of-events description• A special-requirements description

Page 74: Object-Oriented  Analysis and Design

Summary

Describe the purpose of the analysis workflow Identify analysis classes Define use-case realization—analysis

Page 75: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 13:Analysis Modeling

Page 76: 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 77: Object-Oriented  Analysis and Design

CollaborationDiagrams

• Sequence numbers• Parameter passing• Return values• Message conditions• Multiplicity

Page 78: Object-Oriented  Analysis and Design

Flow of Events and Special Requirements

• Textual description of the sequence of events

Page 79: Object-Oriented  Analysis and Design

Class-Responsibility—Collaboration Cards

• CRC cards– A tool used to simplify the analysis and

design process

Page 80: Object-Oriented  Analysis and Design

Class Analysis

• Attributes• Aggregation• Generalization

Page 81: 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 82: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 14:The Design Workflow

Page 83: 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

Page 84: Object-Oriented  Analysis and Design

Design Model

• Design subsystems• Design classes• Use-case realizations—design

Page 85: Object-Oriented  Analysis and Design

Use-CaseRealizations—Designs

• Class diagrams• Interaction diagrams• Flow-of-events—design• Implementation requirements

Page 86: 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

Page 87: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 15:Architecture

Modeling

Page 88: Object-Oriented  Analysis and Design

Objectives

• Create and interpret package diagrams• Use deployment diagrams to depict system

architecture

Page 89: Object-Oriented  Analysis and Design

Introduction toArchitecture Modeling

• Software architecture– Relationship between application

subsystems, components, or packages• Hardware architecture

– Relationship between hardware components or distinct software processes

Page 90: Object-Oriented  Analysis and Design

PackageDiagrams

• Package dependencies• Embedded packages

Page 91: Object-Oriented  Analysis and Design

DeploymentDiagrams

• Multi-tier models

Page 92: Object-Oriented  Analysis and Design

Summary

Create and interpret package diagrams Use deployment diagrams to depict system

architecture

Page 93: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 16:Class Diagrams

Page 94: 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 95: Object-Oriented  Analysis and Design

Introduction toClass Diagrams

• Classes participate in four principal relationships– Association– Aggregation– Composition– Generalization

Page 96: Object-Oriented  Analysis and Design

Association

• Navigability• Multiplicity

Page 97: Object-Oriented  Analysis and Design

Aggregation

• Reference objects• Value objects

Page 98: Object-Oriented  Analysis and Design

Composition

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

Page 99: Object-Oriented  Analysis and Design

Generalization

• The “is a” relationship

Page 100: 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 101: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 17:Sequence Diagrams

Page 102: Object-Oriented  Analysis and Design

Objectives

• Interpret sequence diagrams• Use sequence diagrams to illustrate the

interactions between classes

Page 103: Object-Oriented  Analysis and Design

Introduction toSequence Diagrams

• Return values• Message conditions• Deletion• Multiplicity• Return stack

Page 104: Object-Oriented  Analysis and Design

Summary

Interpret sequence diagrams Use sequence diagrams to illustrate the

interactions between classes

Page 105: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 18:State Diagrams

Page 106: Object-Oriented  Analysis and Design

Objectives

• Interpret state diagrams• Develop state diagrams to illustrate the

internal workings of individual classes

Page 107: Object-Oriented  Analysis and Design

Introduction toState Diagrams

• States• State transitions• Superstates

Page 108: Object-Oriented  Analysis and Design

Summary

Interpret state diagrams Develop state diagrams to illustrate the

internal workings of individual classes

Page 109: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 19:Design

Quality Issues

Page 110: Object-Oriented  Analysis and Design

Objectives

• Identify elements of good design• Define cohesion• Define coupling• Use and interpret object-oriented design

metrics

Page 111: Object-Oriented  Analysis and Design

Elements ofGood Design

• Encapsulation• Abstraction• High cohesion• Loose coupling

Page 112: Object-Oriented  Analysis and Design

Object-OrientedDesign Metrics

• Chidamber and Kemerer Metrics– CBO– DIT– NOC

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

Page 113: Object-Oriented  Analysis and Design

Designingfor Reuse

• Design considerations– Avoid using subclassing where subtyping

is more appropriate– Define attributes and methods as protected– Avoid class coupling– Document your design

Page 114: Object-Oriented  Analysis and Design

Summary

Identify elements of good design Define cohesion Define coupling Use and interpret object-oriented design

metrics

Page 115: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 20:The Model-View-Controller Paradigm

Page 116: Object-Oriented  Analysis and Design

Objectives

• Describe the purpose of MVC• Describe the advantages of MVC• Identify the elements of an MVC design• Define the fundamentals of the MVC

architecture

Page 117: Object-Oriented  Analysis and Design

Introduction toModel-View-Controller

• Model class– Represents a business entity

• View class– Handles the visual representation of a

model• Controller class

– Handles input from a user affecting the model or the view

Page 118: Object-Oriented  Analysis and Design

Model-View-Controller Architecture

Business Domain

User Interface

Controller View

Model

setData(data) update()

Page 119: Object-Oriented  Analysis and Design

Hybrid MVC

Business Domain

User Interface

Viewand

Controller

Model

setData(data)

update()

Page 120: Object-Oriented  Analysis and Design

Summary

Describe the purpose of MVC Describe the advantages of MVC Identify the elements of an MVC design Define the fundamentals of the MVC

architecture

Page 121: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 21:Refactoring

Page 122: Object-Oriented  Analysis and Design

Objectives

• Describe the purpose of refactoring• Identify code that can benefit from refactoring• Apply refactoring techniques to improve an

existing design

Page 123: Object-Oriented  Analysis and Design

Introductionto Refactoring

• Identify new methods• Identify methods that can be moved• Identify inheritance opportunities• Clarify variable names

Page 124: Object-Oriented  Analysis and Design

Summary

Describe the purpose of refactoring Identify code that can benefit from refactoring Apply refactoring techniques to improve an

existing design

Page 125: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 22:The Implementation Workflow

Page 126: 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 127: Object-Oriented  Analysis and Design

The Implementation Workflow

• Identifying components• Integration build planning• Generating code from design classes

Implementation

design classes source code files executable files

Page 128: Object-Oriented  Analysis and Design

Unit Testing

• Specification testing• Structure testing

Page 129: 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 130: Object-Oriented  Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 23:The Test Workflow

Page 131: Object-Oriented  Analysis and Design

Objectives

• Describe the test workflow• Define test case• Define test procedure• Define test component

Page 132: Object-Oriented  Analysis and Design

Test Cases

• Black-box test cases• White-box test cases

XBlack-Box Test Case

XWhite-Box Test Case

Use Case

Use-Case Realization--Design

Page 133: 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 134: Object-Oriented  Analysis and Design

Summary

Describe the test workflow Define test case Define test procedure Define test component

Page 135: Object-Oriented  Analysis and Design

Object-OrientedAnalysis and Design

Introduction to Software Engineering Understanding the Object Paradigm Inheritance and Polymorphism Software Development Life Cycle Unified Software Development Process Unified Modeling Language Computer-Aided Software Engineering

Page 136: 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 137: Object-Oriented  Analysis and Design

Object-OrientedAnalysis and Design

Architecture Modeling Class Diagrams Sequence Diagrams State Diagrams Design Quality Issues The Model-View-Controller Paradigm Refactoring

Page 138: Object-Oriented  Analysis and Design

Object-OrientedAnalysis and Design

The Implementation Workflow The Test Workflow


Recommended