2Object-Oriented Analysis and Design with the Unified Process Objectives Explain the purpose and...
-
Upload
jonathan-wilder -
Category
Documents
-
view
220 -
download
2
Transcript of 2Object-Oriented Analysis and Design with the Unified Process Objectives Explain the purpose and...
2Object-Oriented Analysis and Design with the Unified Process
Objectives Explain the purpose and various phases of the
traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to the
SDLC in place of the more predictive traditional SDLC
Describe how the more adaptive Unified Process (UP) life cycle uses iterative and incremental development
Explain the differences between a model, a tool, a technique, and a methodology
3Object-Oriented Analysis and Design with the Unified Process
Objectives (continued)
Describe the Unified Process as a comprehensive system development methodology that combines proven best practices with the iterative UP life cycle
Describe the disciplines used in a UP development project
Describe the key features of the object-oriented approach
Explain how automated tools are used in system development
4Object-Oriented Analysis and Design with the Unified Process
Overview
Traditional systems development life cycle (SDLC) Unified Process (UP)
Iterative, incremental, adaptive approach to life cycle Nine disciplines: six for system development, three
for support Review object-oriented (OO) concepts Describe computer support tools such as CASE Apply UP to the development project of RMO
5Object-Oriented Analysis and Design with the Unified Process
The Systems Development Life
Cycle SDLC: process of building, deploying, using, and
updating an information system Chief variations of SDLC
Predictive: project planned entirely in advance Adaptive: planning leaves room for contingencies
Pure approaches to SDLC are rare Most projects have predictive and adaptive elements
6Object-Oriented Analysis and Design with the Unified Process
Figure 2-1Predictive versus adaptive approaches to the SDLC
7Object-Oriented Analysis and Design with the Unified Process
The Systems Development Life Cycle
Predictive approach Example: A company that want to convert its old,
mainframe inventory system to a newer networked client/server system.
8Object-Oriented Analysis and Design with the Unified Process
The Traditional Predictive SDLC Approaches
Five activities or phases in a project Planning, analysis, design, implementation, support
Pure waterfall approach (predictive SDLC) Assumes project phases can be sequentially executed Project drops over the “waterfall” into the next phase
Modified waterfall approach The phases of project must overlap, influencing and
depending on each other.
10Object-Oriented Analysis and Design with the Unified Process
Figure 2-4The Waterfall Approach to the SDLC
11Object-Oriented Analysis and Design with the Unified Process
PROJECT PLANNINGPROJECT PLANNING ADDITIONAL PROJECT MANAGEMENT TASKSADDITIONAL PROJECT MANAGEMENT TASKS
ANALYSISANALYSIS ADDITIONAL ANALYSIS ACTIVITIES
ADDITIONAL ANALYSIS ACTIVITIES
DESIGNDESIGN ADDITIONAL DESIGN ACTIVITIES
ADDITIONAL DESIGN ACTIVITIES
IMPLEMENTATIONIMPLEMENTATION
SUPPORT
Figure 2-5The Overlap of System Development
Activities
12Object-Oriented Analysis and Design with the Unified Process
The Newer Adaptive Approaches to the SDLC
The spiral model: early form of adaptive SDLC Activities radiate from center starting point Prototypes are artifacts of each phase
Iterative problem solving: repeats activities Several approaches to structuring iterations
Define and implement the key system functions Focus on one subsystem at a time Define by complexity or risk of certain components Complete parts incrementally
13Object-Oriented Analysis and Design with the Unified Process
Figure 2-6The Spiral Life Cycle Model
14Object-Oriented Analysis and Design with the Unified Process
The Unified Process Life Cycle
UP life cycle
Includes (4) phases which consist of iterations
Iterations are “mini-projects”
Inception: develop and refine system vision
Elaboration: define requirements and core architecture
Construction: continue design and implementation
Transition: move the system into operational mode
15Object-Oriented Analysis and Design with the Unified Process
Figure 2-8The Unified Process System Development Life Cycle
17Object-Oriented Analysis and Design with the Unified Process
Methodologies, Models, Tools, and Techniques
Analysts have a wide variety of aids to help them complete activities and tasks in system development beyond SDLC.
18Object-Oriented Analysis and Design with the Unified Process
Methodologies and System Development Processes
System development methodology
Provides guidelines every activity in system development
Includes specific models, tools, and techniques
UP is a system development methodology
Methodologies supported with documentation
19Object-Oriented Analysis and Design with the Unified Process
Models A model is a representation of an important aspect of the real
world.
Models come in many forms
Physical analogs, mathematical, graphical
System development models are highly abstract
Depict inputs, outputs, processes, data, objects, interactions, locations, networks, and devices
Unified Modeling Language (UML): standard notation
PERT or Gantt charts: model project itself
20Object-Oriented Analysis and Design with the Unified Process
Figure 2-10Some Models used in System Development
21Object-Oriented Analysis and Design with the Unified Process
Tools
Tool: software used to create models or components
Example tools
Project management software tools (Microsoft Project)
Integrated development environments (IDEs)
Code generators
Computer-aided system engineering (CASE)
22Object-Oriented Analysis and Design with the Unified Process
Tools Integrated development environments (IDEs) is a software application
that provides comprehensive facilities to computer programmers for software development.
An IDE normally consists of a:
– source code editor,
– compiler and/or interpreter,
– build automation tools, and
– debugger (usually).
Example: Eclipse, Mic. Visual Studio and recent versions of Netbeans
23Object-Oriented Analysis and Design with the Unified Process
Techniques Technique
Collection of guidelines
Enables an analyst to complete an activity or task
Example techniques
Domain-modeling , use case modeling, software-testing, user-interviewing techniques, relational database design techniques
Proven techniques are embraced as “Best Practices”
24Object-Oriented Analysis and Design with the Unified Process
Figure 2-13Relationships of Models, Tools, and Techniques in a System
Development Methodology
25Object-Oriented Analysis and Design with the Unified Process
The Unified Process as a System Development Methodology
UP: object-oriented system development methodology , offered by Rational Software, which is now part of IBM.
UP should be tailored to organizational and project needs
Project will be use case driven
26Object-Oriented Analysis and Design with the Unified Process
The Unified Process as a System Development Methodology
(continued) Use case
Activity that the system carries out Basis for defining requirements and designs
UP defines disciplines within each phase Discipline: set of functionally related activities Iterations concatenate activities from all disciplines Activities in each discipline produce artifacts; models,
documents, source code, and executables
27Object-Oriented Analysis and Design with the Unified Process
Figure 2-15UP Life Cycle with Phases, Iterations, and Disciplines
28Object-Oriented Analysis and Design with the Unified Process
The UP Disciplines Six main UP development disciplines
Business modeling, requirements, design, implementation, testing, and deployment
Each iteration Similar to a mini-project Results in a completed portion of the system
Three additional support disciplines Project management, configuration and change
management, and environment
29Object-Oriented Analysis and Design with the Unified Process
Business Modeling
Purpose: understand business environment
Three major activities part of business modeling
Understand surroundings
Create the system vision (define - system objective, system capabilities and primary business benefits)
Create business models
30Object-Oriented Analysis and Design with the Unified Process
Requirements
Objective: document business requirements Key drivers of activities: discovery and
understanding Activities list
Gather detailed information Define functional and nonfunctional requirements Develop user interface dialogs Evaluate requirements with users
31Object-Oriented Analysis and Design with the Unified Process
Design Objective: design system based on requirements Six major activities in the design discipline
Design support services architecture and deployment environment
Design the software architecture Design use case realizations (the design of the s/ware that
implements each use case)
Design the database Design the system and user interfaces Design the system security and controls
32Object-Oriented Analysis and Design with the Unified Process
Implementation
Objective: build or acquire needed system components
Implementation activities
Build software components
Acquire software components
Integrate software components
33Object-Oriented Analysis and Design with the Unified Process
Testing Testing is critical discipline
Testing activities
Define and conduct unit testing
Define and conduct integration testing
Define and conduct usability testing
Define and conduct user acceptance testing
In UP, acceptance testing occurs throughout the building phase
34Object-Oriented Analysis and Design with the Unified Process
Deployment
Goal: conduct activities to make system operational
Deployment activities
Acquire hardware and system software
Package and install components
Train users
Convert and initialize data
Deployment activities prominent in transition phase
35Object-Oriented Analysis and Design with the Unified Process
Project Management Most important support discipline
Project management activities
Finalize the system and project scope
Develop the project and iteration schedule
Identify project risks and confirm feasibility
Monitor and control the project’s plan
Monitor and control communications
Monitor and control risks and outstanding issues
36Object-Oriented Analysis and Design with the Unified Process
Configuration and Change Management
As the project progresses, many changes occur in: Requirements
Design
Source code
Executables
The two activities in this discipline Develop change control procedures
Manage models and software components
37Object-Oriented Analysis and Design with the Unified Process
Environment Managing development environment includes
Available facilities
Design of the workspace
Forums for team communication and interaction
Environment discipline activities Select and configure the development tools
Tailor the UP development process
Provide technical support services
38Object-Oriented Analysis and Design with the Unified Process
Overview of Object-Oriented Concepts
OOA views system as a collection of objects
Object: entity capable of responding to messages
Languages: Simula, C++, Java, C#, Visual Basic .NET
Object-oriented design (OOD) Defines additional types of communication objects
Shows how the objects interact to complete tasks
Refines definition of objects for implementation
Object-oriented programming (OOP): object coding
39Object-Oriented Analysis and Design with the Unified Process
Recognizing the Benefits of OO
Development Rationale for use in information systems
Benefits of naturalness
Reusability
40Object-Oriented Analysis and Design with the Unified Process
Objects are More Natural OO approach mirrors human perception OOA, OOD, and OOP imitate perceptual processes by
modeling classes of objects Some system developers resist OO development They have get used to procedural programming Many experienced developers have had difficulty
learning the OO approach New programmers are more receptive to OO approach
41Object-Oriented Analysis and Design with the Unified Process
Classes of Objects Can Be Reused
Classes of objects have a long shelf life
Example: Customer class adaptability
Reused in systems where customer objects needed
Extended through inheritance to a new subclass
Reused during analysis, design, or programming
Classes may be stored, with implementation hidden, in class libraries
42Object-Oriented Analysis and Design with the Unified Process
Understanding Object-Oriented Concepts
Object: thing with attributes and behaviors
Types of objects
User interface
Problem domain objects
Attributes are associated with data
Behaviors are associated with methods, functions, and procedures
43Object-Oriented Analysis and Design with the Unified Process
Figure 2-18Attributes and Methods in Problem Domain Objects
44Object-Oriented Analysis and Design with the Unified Process
Understanding Object-Oriented Concepts (continued)
Class: defines what all objects of class represent
Objects are instances of a class
Customer object is an instance of a customer class
Objects interact through messages
Objects retain memory of transactions
Example:
45Object-Oriented Analysis and Design with the Unified Process
UML diagram CheckingAccount class
Corresponding code for simple checking account object
Reference: The Object-Oriented Thought Process, 2nd Edition by Matt Weisfeld
attribute
method
46Object-Oriented Analysis and Design with the Unified Process
Figure 2-20Order-processing system where objects interact by sending messages
47Object-Oriented Analysis and Design with the Unified Process
Understanding Object-Oriented Concepts (continued)
Objects maintain association relationships Encapsulation: combining attributes and methods
into one unit Information hiding: separating specification from
implementation Inheritance: extending the characteristics of a class Polymorphism: ability for dissimilar objects to
respond to the same message
Encapsulation
48Object-Oriented Analysis and Design with the Unified Process
Reference: The Object-Oriented Thought Process, 2nd Edition by Matt Weisfeld
Definition: Attributes (data) and behaviors (code) are encapsulated in to a single object.
attribute
methodsetter
getter
Encapsulation
In many cases, an attribute of the object will have both a getter and a setter – not always the case
What is always the case is that the getters and setters are used to control access to the attributes and this is a key part of encapsulation.
49Object-Oriented Analysis and Design with the Unified Process
Reference: The Object-Oriented Thought Process, 2nd Edition by Matt Weisfeld
Encapsulation Class shown in previous slide cannot be executed
directly. Example of an application that uses CheckingAccount class to instantiate and use a CheckingAccount object.
50Object-Oriented Analysis and Design with the Unified Process
Reference: The Object-Oriented Thought Process, 2nd Edition by Matt Weisfeld
object
Encapsulation
The application shown in previous slide instantiate a CheckingAccount object, called myAccount, set the value of balance to 40.00 and then print that balance out.
Output:
Starting myEncapsulation…..
Balance= 40.00
51Object-Oriented Analysis and Design with the Unified Process
Reference: The Object-Oriented Thought Process, 2nd Edition by Matt Weisfeld
Information/ Data Hiding
Definition: Access to all of an object’s attributes is tightly controlled.
Accomplished by making all the attributes private.
52Object-Oriented Analysis and Design with the Unified Process
Reference: The Object-Oriented Thought Process, 2nd Edition by Matt Weisfeld
Attribute is set to private
Information/ Data Hiding Trying to access the balance attribute directly
from the myAccount object.
53Object-Oriented Analysis and Design with the Unified Process
Reference: The Object-Oriented Thought Process, 2nd Edition by Matt Weisfeld
myAccount.setBalance (40.00)
Information/ Data Hiding
54Object-Oriented Analysis and Design with the Unified Process
Reference: The Object-Oriented Thought Process, 2nd Edition by Matt Weisfeld
Information/ Data Hiding If balance is declared to public, it will work but
violates the concept of data hiding. Data hiding, as with many other object-oriented
concepts, is a design decision. If the system is designed with attributes as private,
the compiler can help with enforcing data hiding. If the classes are designed with public attributes,
the application is not designed in an object-oriented manner.
55Object-Oriented Analysis and Design with the Unified Process
Reference: The Object-Oriented Thought Process, 2nd Edition by Matt Weisfeld
Inheritance Inheritance allows a class to inherit the attributes
and methods of another class.
56Object-Oriented Analysis and Design with the Unified Process
Reference: The Object-Oriented Thought Process, 2nd Edition by Matt Weisfeld
InheritanceThe Dog and Cat classes both inherit from Mammal. This means that a
Dog class actually has the following attributes:
eyeColor // inherited from Mammal
barkFrequency // defined only for Dogs
In the same vein, the Dog object has the following methods:
getEyeColor // inherited from Mammal
bark // defined only for Dogs
57Object-Oriented Analysis and Design with the Unified Process
Reference: The Object-Oriented Thought Process, 2nd Edition by Matt Weisfeld
superclass
subclasses
Polymorphism Ability for dissimilar objects to respond to the
same message. Read below article:
http://www.developer.com/tech/article.php/10923_3332401_2
58Object-Oriented Analysis and Design with the Unified Process
Reference: The Object-Oriented Thought Process, 2nd Edition by Matt Weisfeld
59Object-Oriented Analysis and Design with the Unified Process
Tools to Support System Development
CASE (Computer Aided System Engineering) Database repository for information system
Set of tools that help analysts complete activities
Sample artifacts: models, automatically generated code
Variations on CASE Visual modeling tools
Integrated application development tools
Round-trip engineering tools
60Object-Oriented Analysis and Design with the Unified Process
Figure 2-24A Case Tool Repository Contains All Information About the System
61Object-Oriented Analysis and Design with the Unified Process
Tools to Support System Development (continued)
Microsoft Visio: emphasizes technical drawing Rational Rose
CASE tool supporting object-oriented approach Strongly identified with UP methodology
Together Pioneers round-trip engineering
◘ synchronizes graphical models with generated program code
Leverages UML diagrams
62Object-Oriented Analysis and Design with the Unified Process
Figure 2-26Visual Modeling Tool Rational Rose Displaying UML Diagrams
63Object-Oriented Analysis and Design with the Unified Process
Tools to Support System Development (continued)
Embarcadero Describe
Visual Modeling
Round-trip engineering
Rational XDE Professional
Integrates Microsoft Visual Studio.NET IDE
Also provides visual modeling and round-trip
64Object-Oriented Analysis and Design with the Unified Process
Figure 2-29Rational XDE Professional is integrated with Visual Studio .NET
65Object-Oriented Analysis and Design with the Unified Process
Summary
SDLC: set of activities required to complete system development project
Predictive SDLC: executes project in sequential phases (waterfall approach)
Adaptive SDLC: accommodates change and phase overlap
Spiral SDLC model introduces iterations (cycles)
UP is an adaptive system development methodology
66Object-Oriented Analysis and Design with the Unified Process
Summary (continued) UP life cycle includes four phases-inception,
elaboration, construction, and transition
UP phases decomposed into one ore more iterations
Iterations involve work in nine UP disciplines
UP is object-oriented
Object-oriented concepts: object, class, methods, encapsulation, associations, inheritance, polymorphism
CASE: automation tools simplify development tasks