0% found this document useful (0 votes)
56 views

The OO Solution

The document discusses object-oriented development. It covers the OO solution approach of structuring a system based on the problem domain rather than the solution. It also discusses what OO is and is not, including that OO is a way of thinking about a problem based on real world concepts. The document outlines the OO development process including inception, elaboration, construction, and transition phases. It notes that UML can be used to model the domain, analysis, and design stages.

Uploaded by

irwankilay
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views

The OO Solution

The document discusses object-oriented development. It covers the OO solution approach of structuring a system based on the problem domain rather than the solution. It also discusses what OO is and is not, including that OO is a way of thinking about a problem based on real world concepts. The document outlines the OO development process including inception, elaboration, construction, and transition phases. It notes that UML can be used to model the domain, analysis, and design stages.

Uploaded by

irwankilay
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

The OO Solution

● The problem domain is relatively constant


■ Creating cards
Object-Oriented Development ■
◆ Assemble the card and get the right thing at the right place
Auto pilot
◆ Get a plane from point A to point B using the available control surfaces
● The functionality and data representation is what is likely to change
■ Creating cards
◆ The type of information and placement of information changes often
◆ The options available to the user evolve with time
■ Auto pilot
◆ The hardware interfaces are different between different models
◆ The operational modes vary between models and evolve over time

Structure the system based on the structure of the problem


domain, NOT based on the structure of the solution
04-OO-Development 1 04-OO-Development 2

What is OO What is not OO

● A way of thinking about a problem (software) ● Using an “object oriented” language (C++, Eiffel,
based on abstractions of concepts that exist in the Smalltalk)
real world ■ You can easily misuse the OO support in these languages
● Using an “OO notation” for design
● OO is not constrained by implementation
■ Misuse the notation for a non-OO design
language (C, Pascal, FORTRAN , etc. will work)
● Calling what you do OO
■ Management and customers like OO, therefore, that is what we
are doing

OO is not the answer to all your problems


04-OO-Development 3 04-OO-Development 4

Several Complementary
Models
● Structural Models
■ Describes the structure of the objects in a system
◆ Structure of individual objects (attributes and operations)
◆ Relationships between the objects (inheritance, sharing, and
associations)
◆ Clustering of objects in logical packages and on the actual hardware
● Dynamic models (behavioral models) Intentionally Blank
■ The aspects related to sequencing of operations
◆ Changes to attributes and sequences of changes
◆ The control aspects of the system

04-OO-Development 5 04-OO-Development 6

1
We Will Cover

● Requirements specification
Very briefly
The OO Development Process ●

Iterative development
● Different models
■ Three distinct models for which you can use UML
◆ Domain (or conceptual) model
◆ Analysis (specification) model
◆ Design (implementation) model
● How do we move between the models

04-OO-Development 7 04-OO-Development 8

Process Overview Inception

● Inception ● Creation of the basic idea that we want to implement


(presumably with software)
● Elaboration
● Could take many shapes
● Construction ■ A discussion over a beer at the pub
■ Many iterations ■ A full fledged feasibility study
● Transition ● Figure out (roughly)
■ The business case
◆ How much money will this make the company
■ Project scope
Construction 1

Construction 2

Construction 3

Construction n

Inception Elaboration Transition

04-OO-Development 9 04-OO-Development 10

Elaboration Requirements Risks

● Answer the following: ● Poor or wrong requirements a serious problem


■ What is it you are going to build?
■ How are you going to build it?
● Use UML notations to help you understand the customers
■ What technology are you going to use?
requirements and the inherent structure of the problem
● Your decisions should be guided by the risks domain
■ Requirements risks ■ Use-case diagrams and use cases to understand customer
■ Technological risks requirements
■ Skills risks ■ Class diagrams, activity diagrams, and possibly other diagrams to
■ Political risks understand the domain

04-OO-Development 11 04-OO-Development 12

2
Plan the Construction Phase Construction

● We will never build the entire system at once ● Construct the system as a series of iterations
■ Incremental development ■ Each iteration is a “mini” project
● Categorize the use cases ◆ Analyze the use case, design, code, test, and integrate.

■ “I absolutely must have this function in the system” ● Refine your domain model
■ “I can live without this feature for a little while” ■ Identify all attributes and operations
■ “This is an important function, but we might be able to live without ■ Define the dynamic behavior of all objects
it” ◆ State machines
● Time estimate and allocate the use cases to iterations ◆ “Contracts”
● Make decisions influenced by platform and language

04-OO-Development 13 04-OO-Development 14

Transition Three Distinct Models

● The phase between the beta release and the final product ● A conceptual model (domain model)
● Wrap up all the issues that should not be done or cannot ■ Try to figure out what is really going on
be done during the iterations ■ Build a model to better understand the problem
■ Used to communicate with the customer and “domain” experts
■ Examples include performance evaluation and optimization
● An analysis model (specification model)
■ Complete system testing
■ Model the software that will implement the system
● No new functionality added ■ Focus on the software structure and the module interfaces
■ Fix bugs ● Design model (implementation model)
■ Refactor your system a final time ■ A detailed design of the software
■ Including all attributes and detailed descriptions of the operations

04-OO-Development 15 04-OO-Development 16

Summary

● Inception
● Elaboration
● Construction
■ Many iterations
● Transition
Construction 1

Construction 2

Construction 3

Construction n

Inception Elaboration Transition

04-OO-Development 17

You might also like