Introduction to Object-Oriented Analysis and Design - PowerPoint PPT Presentation

About This Presentation
Title:

Introduction to Object-Oriented Analysis and Design

Description:

Introduction to Object-Oriented Analysis and Design – PowerPoint PPT presentation

Number of Views:356
Avg rating:3.0/5.0
Slides: 40
Provided by: RichL157
Category:

less

Transcript and Presenter's Notes

Title: Introduction to Object-Oriented Analysis and Design


1
Introduction 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

11
Software 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

12
Software 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

14
Object-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

17
Development 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

19
Development 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

20
Development 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?
Write a Comment
User Comments (0)
About PowerShow.com