object-oriented analysis and design

Post on 02-Jan-2016

59 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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

TRANSCRIPT

Copyright © 2003 ProsoftTraining. All rights reserved.

Object-Oriented Analysis and Design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 1:Introduction to

Software Engineering

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

Evolution ofSoftware Engineering

• Data flow• Programming languages• Software systems• Analysis and design methodologies

Object Technology

• Objects maintain properties about their state

Advantages of anObject-Oriented Approach

• Maintainable• Reusable• Scalable

Analysisand Design

• Unified Software Development Process• Software crisis

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

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 2:Understanding

the Object Paradigm

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

Classes

Classes

Objects

Instantiation

Encapsulation

• Methods• Accessors• Mutators

Abstraction

• Used to manage complexity

ObjectRelationships

• “has a”• “uses a”

Application Objects

• Entity objects• Interface objects• Control objects

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

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 3:Inheritance

and Polymorphism

Objectives

• Identify the benefits of inheritance• Identify the benefits of polymorphism• Define abstract classes• Identify the benefits of multiple inheritance

Inheritance

• Inheritance the “is a” relationship• Superclasses• Inheriting attributes

– Subclasses• Inheriting methods• Extending components with inheritance

Polymorphism

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

Abstract Classes

• Declare methods without providing implementation

MultipleInheritance

• Inheritance from two or more superclasses

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

Summary

Identify the benefits of inheritance Identify the benefits of polymorphism Define abstract classes Identify the benefits of multiple inheritance

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 4:Software

Development Life Cycle

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

Software DevelopmentLife Cycle Model

• Requirements gathering• Design• Implementation• Testing

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

V-ShapedLife Cycle Model

• Adds emphasis to testing

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

SpiralLife Cycle Model

• Incorporates risk analysis• Divided into four phases

– Planning– Risk analysis– Engineering– Evaluation

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

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 5:The Unified SoftwareDevelopment Process

Objectives

• Describe the Unified Process• Identify the phases of the Unified Process• Identify the core workflows of the Unified

Process

The Unified Process

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

Life Cycle ofthe Unified Process

• Cycles– Single cycle

UnifiedProcess Phases

• Inception• Elaboration

– Architecture baseline• Construction

– Beta release– Beta test

• Transition

UnifiedProcess Iterations

• Increments

Core Workflowsof the Unified Process

• Requirements• Analysis• Design• Implementation• Test

Summary

Describe the Unified Process Identify the phases of the Unified Process Identify the core workflows of the Unified

Process

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 6:Unified

Modeling Language

Objectives

• Describe the history of the UML• Describe the purpose of a modeling language• Describe the purpose of models• Identify UML views

UMLModels

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

UMLViews

• Static• Use-case• Implementation• Deployment

• State machine• Activity• Interaction• Model management

Summary

Describe the history of the UML Describe the purpose of a modeling language Describe the purpose of models Identify UML views

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 7:Computer-Aided

Software Engineering

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

Selecting a CASE Tool

• Methodology• Flexibility• Collaboration• Diagram validation

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

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 8:The Requirements Workflow

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

Activities of theRequirements Workflow

• Listing possible requirements• Describing the context of the system• Capturing functional requirements• Capturing nonfunctional requirements

Requirements andthe Unified Process

• Four deliverables– Domain model or business model– Use-case model– User-interface descriptions or prototypes– Supplementary requirements document

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

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 9:Use-Case Modeling

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

Introduction toUse-Case Diagrams

• Actors• Use cases• Use-case relationships

– Association– Generalization– Include– Extend

Developing aUse-Case Model

• Top-level use-case diagrams• Top-level use-case descriptions• Sub-level use-case diagrams

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

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 10:Activity

Diagrams

Objectives

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

Introduction toActivity Diagrams

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

Summary

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

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 11:Interface Designand Prototyping

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

User Interface Design

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

User InterfacePrototyping

• Rapid prototyping• Paper prototyping

SpecifyingSystem Interfaces

• Metasyntax– Backus-Naur Form

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

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 12:The Analysis Workflow

Objectives

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

Analysis Classes

Entity class Boundary class Control class

Use-Case Realizations—Analysis

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

Summary

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

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 13:Analysis Modeling

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

CollaborationDiagrams

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

Flow of Events and Special Requirements

• Textual description of the sequence of events

Class-Responsibility—Collaboration Cards

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

design process

Class Analysis

• Attributes• Aggregation• Generalization

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

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 14:The Design Workflow

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

Design Model

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

Use-CaseRealizations—Designs

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

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

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 15:Architecture

Modeling

Objectives

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

architecture

Introduction toArchitecture Modeling

• Software architecture– Relationship between application

subsystems, components, or packages• Hardware architecture

– Relationship between hardware components or distinct software processes

PackageDiagrams

• Package dependencies• Embedded packages

DeploymentDiagrams

• Multi-tier models

Summary

Create and interpret package diagrams Use deployment diagrams to depict system

architecture

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 16:Class Diagrams

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

Introduction toClass Diagrams

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

Association

• Navigability• Multiplicity

Aggregation

• Reference objects• Value objects

Composition

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

Generalization

• The “is a” relationship

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

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 17:Sequence Diagrams

Objectives

• Interpret sequence diagrams• Use sequence diagrams to illustrate the

interactions between classes

Introduction toSequence Diagrams

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

Summary

Interpret sequence diagrams Use sequence diagrams to illustrate the

interactions between classes

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 18:State Diagrams

Objectives

• Interpret state diagrams• Develop state diagrams to illustrate the

internal workings of individual classes

Introduction toState Diagrams

• States• State transitions• Superstates

Summary

Interpret state diagrams Develop state diagrams to illustrate the

internal workings of individual classes

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 19:Design

Quality Issues

Objectives

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

metrics

Elements ofGood Design

• Encapsulation• Abstraction• High cohesion• Loose coupling

Object-OrientedDesign Metrics

• Chidamber and Kemerer Metrics– CBO– DIT– NOC

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

Designingfor Reuse

• Design considerations– Avoid using subclassing where subtyping

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

Summary

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

metrics

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 20:The Model-View-Controller Paradigm

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

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

Model-View-Controller Architecture

Business Domain

User Interface

Controller View

Model

setData(data) update()

Hybrid MVC

Business Domain

User Interface

Viewand

Controller

Model

setData(data)

update()

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

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 21:Refactoring

Objectives

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

existing design

Introductionto Refactoring

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

Summary

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

existing design

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 22:The Implementation Workflow

Objectives

• Describe the implementation process• Identify executable components• Generate program code from design classes• Define unit testing• Create an integration build plan

The Implementation Workflow

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

Implementation

design classes source code files executable files

Unit Testing

• Specification testing• Structure testing

Summary

Describe the implementation process Identify executable components Generate program code from design classes Define unit testing Create an integration build plan

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 23:The Test Workflow

Objectives

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

Test Cases

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

XBlack-Box Test Case

XWhite-Box Test Case

Use Case

Use-Case Realization--Design

Test Procedures

• Describes the method for performing one or more tests

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

Summary

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

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

Object-OrientedAnalysis and Design

The Requirements Workflow Use-Case Modeling Activity Diagrams Interface Design and Prototyping The Analysis Workflow Analysis Modeling The Design Workflow

Object-OrientedAnalysis and Design

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

Object-OrientedAnalysis and Design

The Implementation Workflow The Test Workflow

top related