Date post: | 02-Jan-2016 |
Category: |
Documents |
Upload: | forrest-shields |
View: | 53 times |
Download: | 2 times |
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