Title: Introduction to Object-Oriented Analysis and Design
1Introduction to Object-Oriented Analysis and
Design
2 Course Topics
- Introduction to Object Oriented Analysis and
Design - Object-Oriented Concepts
- Visual Modeling with UML
- Developing Object-Oriented Systems
- Transition from OO models to code
- Distributed architecture
- OO and Persistence
3 Introduction to OOAD
In this module
- What is Object-Oriented Technology?
- Definition
- Benefits
- Tools and languages
- OO Development Process
- Contrast of OO Methodology to Structured
Methodology
4 What Is Object Technology?
- Object Technology
- A set of principles guiding software
construction, together with languages, databases
and other tools that support those principles. - David Taylor Object Technology A Managers
Guide - A continuum of ideas and practices for software
analysis, design and programming that focuses on
objects and their interactions rather than
processes and data
5 What is OOAD?
- OOAD stands for Object-Oriented Analysis and
Design - Object-Oriented Analysis focuses on finding and
describing objects or concepts in the problem
domain - Object-Oriented Design focuses on
- Defining and detailing the software objects found
in OO Analysis - How software objects interact to fulfill the
requirements
6 What is OOP?
- OOP is Object-Oriented Programming
- OOP requires the developer to think of the
software solution in a different way - It requires the use of an object-oriented
language - OOP together with OOAD and OO testing form what
is called Object-Oriented Technology
7 Benefits of Object Technology
- Some of the strengths of OO technology
- Reflects real world entities more closely
- Encourages architectural, design and code reuse
- Promotes a consistent communication technique
that is understandable by both business and
technical participants - Builds systems that are more easily extended or
changed - Promotes quality of solutions
- Works well for large, complex software systems
8 Object-Oriented Languages
- Simula67 Recognized as the first OO language
- Smalltalk (1972)
- C popular in the late 80s and early 90s
- Java replaced C in late 90s and is still the
most popular language today
9 Other OO Languages
- Eiffel
- Designed by Bertrand Meyer at Interactive
Software Engineering - C
- A Microsoft created language as a part of the
.NET initiative - Ruby
- Created by Yukihiro Matsumoto and released it to
the public in 1995 - Python
- A high-level programming language first released
by Guido van Rossum in 1991 - Visual Basic .NET
- Another .NET language that coincided with C
10 Popular OO Languages
- Four OO programming languages seem to dominate
the development world today - C
- Java
- Visual Basic
- C
- The single major design language Unified
Modeling Language (UML) is universally accepted - Used to design OO systems
- Managed by the Object Management Group
- Currently on version 2.1
11Software Development Methodologies
- Methodology (noun) the organizing principles
underlying a particular focus area an approach
a set of processes and guidelines governing an
area of study - In software development, we are talking about the
approach to developing a software solution for a
technical or procedural problem - Often referred to as the Software Development
Life Cycle (SDLC) approach
12Software Development Methodologies
- Structured Development typically accomplished
with a Waterfall Process - Object-Oriented Development typically
accomplished with a Unified Process - Other popular development processes
- Rapid Application Development (RAD)
- Agile
- eXtreme Programming (XP)
13 Structured Analysis and Design
- The Procedural approach to building systems
focuses on separate procedures and their data - Procedural programs allow us to view an
application as commands to be executed
sequentially - Design models are created far in advance of
implementation - The focus is on the data and how it flows from
process to process
14Object-Oriented Analysis and Design
- Object-Oriented programming focuses on separate
objects and their data - Object-Oriented systems allow us to view a system
as objects which encapsulate state and behavior - Object-Oriented design models are developed close
to implementation - Object-Oriented systems promote re-use of
programming elements
15 OO Development Objectives
- Qualities of an Object-Oriented System
- Reusability
- Reliability
- Robustness
- Extensibility
- Maintainability
16 Development Objectives Reusability
- Reusability (reusable components)
- The ability to create and reuse architectural
components of a system - Reduces redundant development efforts by creating
or purchasing reusable frameworks, components and
service objects - Components can be used on many projects without
re-inventing them
17Development Objectives Reliability
- Reliability
- Components can be honed over time because they
are separate entities - Improves usefulness and reliability without
affecting or degrading other parts of a system
18 Development Objectives Robustness
- Robustness
- The ability of a system to continue to operate
correctly across a wide range of operational
conditions and to fail gracefully outside of that
range - Often called flexibility
- The OO development process is designed to help
the project team develop fully functional
applications using precise analysis, design and
coding techniques - As the system evolves, frequent testing is
imposed to verify robustness
19Development Objectives Extensibility
- Extensibility
- The ability to add new features to a program
without disturbing any existing code - Accomplished by creating modular (loosely
coupled) objects and components that can be
altered or enhanced without disturbing code in
other parts of the application - Applications can have a longer life if they are
relatively easy to modify incorporating
changing user needs
20Development Objectives Maintainability
- Maintainability
- The ease with which a software system or
component can be modified to correct faults,
improve performance or other attributes, or adapt
to a changed environment (IEEE definition) - Good OO design creates systems that are
partitioned and encapsulated to afford change
without a rippling effect
21 Waterfall Process
22 Unified Process
Disciplines
Business Modeling Requirements Analysis and
Design Implementation Test Deployment Configuratio
n Mgmnt Project Management Environment
23 Releases and Phases
Unified Process
- One pass through the phases of any lifecycle
delivers a release of a product - In iterative development, number of iterations
within each phase varies - Size, complexity, .
- Each discipline occurs within each iteration
- More or less emphasis depending on Phase
24 Unified Process Phases
- Overview of the Unified Process
- The Four Phases
- Inception
- Elaboration
- Construction
- Transition
25 The Four Phases
- The Life cycle contains four Phases
- One execution of a lifecycle delivers a Release
- The end of each phase is a Milestone
26 Inception Phase Milestone
- Here we
- Define objectives for the system under
development - Stakeholders agree on scope, cost and schedule
- Requirements identified and prioritized
- Project plan in place schedule, scope, budget,
risk, quality, procurement, staffing,
communications, configuration - Model the business using Activity diagrams and/or
Class diagrams - Create Use Case diagrams
27 Elaboration Phase Milestone
- Here we
- Define the baseline architecture
- Vision statement and requirements are stable
- Architecture is stable
- Iteration plans are ready
- Stakeholders agree on scope, cost and schedule
- Refine Use Case diagrams
- Create Activity and Interaction diagrams for Use
Case scenarios - Create Analysis models using Class diagrams
28 Construction Phase Milestone
- Here we
- Establish the initial operational capability
- Product is stable and ready to be released
- Stakeholders are ready to implement it
- Planned expenditure for deployment is acceptable
- Create Design models using Class diagrams
- Create or refine Component diagrams
29 Transition Phase Milestone
- Here we
- Deliver the system and place it in production
- User is satisfied
- Resource estimates for ongoing operation are
acceptable - Create Deployment diagram
- Could be created at an earlier phase
30 Reviews and Iterations
- Each phase contains one or more Iterations
- Depending upon project size, complexity,.
- A review is conducted after each iteration
31 Principles of OO Programming
- These concepts are fundamental to OO programming
- Objects
- Encapsulation
- Messages
- An object-oriented software solution consists of
a group of well defined objects that exploit
encapsulation and that communicate through
messages
32 What is an Object?
- Object
- An entity, concept or thing in your software
solution - Has state or data (in the form of variables)
- Has behavior or operations (in the form of
functions) - Is an instance of an abstract data type
Example a Valve Data - serial number -
capacity - open/closed Operations - open
- close - adjust flow
33 What is Encapsulation?
- Encapsulation
- Packaging data together with its corresponding
methods - A technique to accomplish data hiding
34 What is a Message?
- Message
- A signal from one object to another
- Requests the receiving object to execute one of
its methods - Typically accomplished with a function call
aValve.open()
aController
aValve
35 Contrast of Procedural and OO
- Problem
- Design a personalized banking system that
contains a collection of transactions that add
to, and subtract from, a running balance. Print
out the list of transactions, sorted by date and
show the final balance
36 A Procedural Solution
- There is much processing behind each of these
boxes - What happens if the format for the date of each
transaction changes like going from a two-digit
year to a four-digit year?
37 An Object-Oriented Solution
sort()
name J. Doe balance 50 pinNum 2345
printMonthlyStmt()
getAmt()
amt
anAcct
38 Review
- In your own words, define object-oriented
technology - What are some of the benefits of OO technology?
- What are the two software development
technologies discussed here? - What are the characteristics of an OO system that
distinguish it from a procedural system?
39 Any Questions?