Upload
hakhanh
View
217
Download
0
Embed Size (px)
Citation preview
OBJECT-ORIENTED ANALYSIS & DESIGN
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Terms & DefinitionsTerms & Definitions
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
The Procedural Paradigm• The traditional paradigm had great successes initially
It started to fail with larger products (> 50 000 LOC) It started to fail with larger products (> 50,000 LOC)
• Maintenance problems (today, up to 80% of effort)
• Reason: structured methods are
Action oriented (data flow diagrams/Procedural abstraction); orAction oriented (data flow diagrams/Procedural abstraction); or
Data oriented (entity-relationship diagrams/data abstraction);
But not both
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Object Oriented Paradigm
An approach to the solution of problem in which all
t ti f d i th t t f bj tcomputations are performed in the context of objects.
The objects are instances of programming constructs,
normally called classes, which are data abstractions
with procedural abstractions that operate on the objectswith procedural abstractions that operate on the objects.• Data Abstraction + Procedural Abstraction
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Object Oriented System
• make use of abstraction in order to help make software
l lless complex
• Combine procedural abstraction with data abstractionp
• Procedural Abstraction
• Functions & Routines
• Data Abstraction• Data Abstraction
• Records & Structure
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Abstraction
Abstraction (from the Latin abs, meaning away from and trahere,i t d ) i th f t ki imeaning to draw) is the process of taking away or removing
characteristics from something in order to reduce it to a set ofessential characteristicsessential characteristics
C id ti f “ ti l” d t il l t d t th ti f thConsideration of “essential” details related to the perspective of the
viewer/application/subject and leaving out the rest
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Encapsulation
W i d t & d l b t ti Wrapping data & procedural abstraction
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Data Hiding
Hidi f i l t ti “d t il ” d h i l th Hiding of implementation “details” and showing only the necessaryinterfaces
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Object
• A concrete manifestation of an abstraction
• Instance of a class
• the basic run time entities in an object oriented system.
• match closely with real time objects.
• take up space in memory and have an associated address like a
Record in Pascal and a Structure in C.
• Objects interact by sending Message to one other• Objects interact by sending Message to one other.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Class• a general specification or description for a set of objects that
share common properties & behavior/ relationships.
• In fact, objects are the variables of the type class.
Cl d fi d d t t d b h lik th• Classes are user defined data types and behaves like the
built-in types of a programming language.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Messages and Receivers
• method call is referred to as a message g
• Message a request for action, bundled with whateverMessage a request for action, bundled with whatever objects may be necessary to complete the task
• The Object through which method is called known as receiver of message
• Objects communicate through messages
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
j g g
Polymorphism and Overloading
• the capability of having methods with the same names
d t t hibit diff t b h iand parameter types exhibit different behavior
depending on the receiver is known as Polymorphism
• the capability of using names to mean different things in
different contexts is called overloadingdifferent contexts is called overloading
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Persistence
• Allows the state of an object to be saved to non-volatile
t h fil d t b d l t t dstorage such as a file or database and later restored
even though the original creator of the object no longer
exists
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Inheritance• the capability of defining a new class of objects that
inherits from a parent class
• implements "is-a" relationships
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Interface• a collection of operations that specify a service of a
class
• Describes the externally visible behavior of that element
• Defines a set of operation specifications but never a set p pof operation implementation
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Relationship• General terms covering the specific types of logical
connections within classes or objects• Different Types of Relationships Link Association Aggregation
C iti Composition Generalization Realization Realization Dependency
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Association
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
OBJECT-ORIENTED ANALYSIS & DESIGN
UNIT I
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Learning Objectives
• Object Oriented Paradigm• Review of Object Oriented Conceptsj p• Class Modelling Objects and Classesj Links and association Generalization and specialization Inheritance Grouping concepts
A ti Aggregation Composition abstracts classes
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
abstracts classes
Learning Objectives
Polymorphism Metadata Constraints
• Reuse• Object Oriented Lifecycle Model• Introduction to Object Oriented Methodology
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Learning Objectives
• Overview of various object oriented methodologies• OOD• HOOD• OMT• CRC• OOA• OOSA• OOSA• OOSE• OOSDOOSD• OORASS
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
What is Object OrientationOO is an “approach” to software development which
includes : Requirements Design Programming Testing Metrics Metrics
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Object Oriented System
• make use of abstraction in order to help make software
l lless complex
• Combine procedural abstraction with data abstractionp
• Procedural Abstraction
• Functions & Routines
• Data Abstraction• Data Abstraction
• Records & Structure
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
The Procedural Paradigm• The traditional paradigm had great successes initially
It started to fail with larger products (> 50 000 LOC) It started to fail with larger products (> 50,000 LOC)
• Maintenance problems (today, up to 80% of effort)
• Reason: structured methods are
Action oriented (data flow diagrams/Procedural abstraction); orAction oriented (data flow diagrams/Procedural abstraction); or
Data oriented (entity-relationship diagrams/data abstraction);
But not both
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
The Object-Oriented Paradigm
• Both data and actions are of equal importance
• Reduce semantics gap between system and reality
• Maintainable testable reusable and able to cope withMaintainable, testable, reusable and able to cope with
large complex systems.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
The Object-Oriented Paradigm Cont..
• Heart of OO is representing both problems and
l ti i f i l i t t i “Obj t ”solutions in a fairly consistent way via “Objects”
data which characterize the object
methods which characterize the behavior or functions of the
objectobject
• Organizing procedural abstraction in the context of data
abstraction
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
The Object-Oriented Paradigm definition
An approach to the solution of problem in which all
t ti f d i th t t f bj tcomputations are performed in the context of objects.
The objects are instances of programming constructs,
normally called classes, which are data abstractions
with procedural abstractions that operate on the objectswith procedural abstractions that operate on the objects.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Traditional vs Modern Object-Oriented Paradigm
• Information hidingInformation hiding • Responsibility-driven design• Impact on maintenance, development
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
A View of the Two paradigms
mainmain
perform transaction
Accountcreditdebit
compute feesif checking then xxx
compute interestif checking
then xxx
debit
credit SavingsAccountCheckingAccountif savings then xxx
etc.
if savings then xxx
etc.
g
compute interestcompute fees
g
compute interestcompute fees
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Object & ClassObject:• A chunk of structured data in a running software system
C t thi ith hi h i t ti• Can represent anything with which you can associate propertiesand behavior
• Any concrete (Customer) or conceptual (Sales Transactiony ( ) p () thing
Class• Units of data abstraction in an object oriented programExample:
B k t Bank accountData: account balanceActions: deposit withdraw determine balance
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Actions: deposit, withdraw, determine balance
“Employee” Class
How would you describe an employee ?
Values it may take on: just as “integer” can be any negativeValues it may take on: just as integer can be any negative,
zero, or positive integer whose size is limited by the hardware
d ti t “E l ” tt ib t i l dand operating system. “Employee” attributes may include:
age represented by integer
sex represented by character
name represented by a string (or array of characters)name represented by a string (or array of characters)
address represented by string (or array of characters)
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
etc.
“Employee” Class..
What behavior or functions can an employee perform ? :
just as “integer” can it be operated on with arithmeticjust as integer , can it be operated on with arithmetic
operations of add, subtract, etc. ? Or rather - - -
thi l ?something else?
“respond to” employee age or address request
“respond to” number of years to eligible retirementetc.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
“Employee” Object
• But there is an “individual” employee:
John Thompson
Susan Tang Susan Tang
etc.
• Each of these individual employee (emp_1) is an Object just as
integer variables x, y, or z which are declared as an integer type.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Object
• the basic run time entities in an object oriented system.
• match closely with real time objects.y j
• take up space in memory and have an associated address like a
R d i P l d St t i CRecord in Pascal and a Structure in C.
• Objects interact by sending Message to one other.
• E.g. If “Customer” and “Account” are two objects in a program
then the customer object may send a message to the accountthen the customer object may send a message to the account
object requesting for bank balance without divulging the details
of each other’s data or code
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
of each other s data or code.
Class• a group of objects that share common properties & behavior/
relationships.
• In fact, objects are the variables of the type class.
Cl d fi d d t t d b h lik th• Classes are user defined data types and behaves like the
built-in types of a programming language.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Some OO Characteristics
Identity : information is organized into “unique” entities called, objects.
Ab t ti ( d d f ll t f d i th d l )Abstraction: (needed for all types of design methodology) a method where only the “essentials” are described.
** Classification:Classification: grouping of “common” attributes and behaviors into an entity called,
classclass.**Encapsulation: Wrapping data & procedural abstractionpp g p
• Information Hiding hiding of implementation “details” and showing only the necessary
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
interfaces
Some OO Characteristics..
** Inheritance:
providing a structure and mechanism to “share” attributes andp g
functions.
** Polymorphism:** Polymorphism:
capability of providing a different behavior of a function with
same name based on different classes and/or parameters
passed to the function.
Persistence:
bilit f i th bj t’ t t d f ti
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
capability of a saving the object’s name, state, and functions.
OO Concepts (cont.)Thi ki f bl d l ti i t f “ l ” d “ bj t ”Thinking of problems and solutions in terms of “classes” and “objects”
may not be natural for some people and very natural for other.
Abstraction is an important methodology that plays a key role
here.
In a library system, what may be some classes?
Inheritance is a capability that allows us to think in terms of a “family” ofp y y
classes and perhaps how to “reuse” the higher level classes by the
lower level classeslower level classes
In a library system, what may be a “family” of classes ?
i t ll t l ti di t di k tt t di k
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
intellectual properties - audio - tapes , diskettes, compact disks
OO Concepts (cont.)Encapsulation is wrapping up of data & functions into a single unit
the notion of “hiding.” What we are hiding is the implementation details.g g p
Why?
t i i i li to minimize coupling
Clear interfaces should be explicitly designed and maintained.
OO has specific facilities that allow us to differentiate the items we
want to hide and those we want to consider as interfaceswant to hide and those we want to consider as interfaces
private
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
public
OO Concept (cont.)Polymorphism is the ability to respond to similar requests that are askedPolymorphism is the ability to respond to similar requests that are asked
of different objects. Allows the “reuse” of the correct member function or method
based on late binding. Consider the situation where two classes have a similar function.
Depending on hich class the specific object belongs to theDepending on which class the specific object belongs to, theappropriate method is invoked.
Feed ( ) function for Bird class
If animalreferred toBird class
animal . feed( );
Fee ( ) function forIf animalreferred to
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Reptiles classreferred toReptiles class
OOAD
• OOADeciding which objects will be important to the users and• Deciding which objects will be important to the users, and
working out the structure, relationship and and behavior of
these objects , is a process of ob ject oriented analysis
• OOD• Consider the implementation issue
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Transition From Analysis to Design
Traditional paradigm:Traditional paradigm: Jolt between analysis (what) and design (how)
Object-oriented paradigm:
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Objects enter from very beginning
Analysis/Design “Hump”Systems analysis Determine what has to be done
Design Determine how to do it Architectural design—determine modules Detailed design—design each module
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Removing the “Hump”
Object-oriented analysis Determine what has to be done Determine the objects
Object-oriented design Determine how to do it Design the objects
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
In More Detail
Objects enter here
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Key Aspects of Object-Oriented Solution
Conceptual independence
EncapsulationEncapsulation
Physical independence
I f ti hidi Information hiding
Impact on development
Physical counterpart
Impact on maintenance
Independence effects
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Benefits of OO Approach• To develop complex systems
• Systems that are prone to changeSystems that are prone to change
• System with user interfaces
S t th t b d li t/ d l• Systems that are based on client/server model
• To build E-commerce/web based applications
• For Enterprise Application Integration
• Improved quality, Reusability, Extensibility
• Reduce maintenance burden
• Financial benefits
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Drawbacks of OO
• Need to change mindset
• Investment in training and toolsInvestment in training and tools
• Insist on testing
M ti d t t l i d d i• More time and cost to analysis and design
• User involvement
• Provides only long term benefits
• Still the success is greatly depends on people involved
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Object Based ProblemP1. For each of the following collections of objects,
describe how they could be distinguished1. All telephones in the world for making telephone call2. All persons in the world for the purpose of criminal
investigation3. All persons in the world for the purpose of sending mail4. All customers with safe deposit boxes in a given bank5. All electronic mail addresses throughout the world6. All employees of a company to restrict access for
security reasons
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Object Based Problem..P2. Discuss what the objects in each of the following list
have in common.1. Scanning electron microscope, eyeglasses, telescope,
bomb sight, binoculars2. Bicycle, sailboat, car, truck, airplane, glider,
motorcycle, horse3. Square root, exponential, sine, cosine
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Object Based Problem..P3. Suppose your bathroom sink is clogged and you have decided to try to unclog
it by pushing a wire into the drain. You have several types of wire availablearound the house, some insulated and some not. Which of the following wirecharacteristics would you need to consider in selecting a wire for the job?characteristics would you need to consider in selecting a wire for the job?Explain your answers.
1. Immunity to electrical noise2 Color of insulation •To create colorful artwork2. Color of insulation.3. Resistance of the insulation to saltwater4. Resistance of the insulation to fire5 Cost
•To create colorful artwork•Designing a piano•Designing a filament for ali ht b lb5. Cost
6. Stiffness7. Ease of stripping the insulation8 Weight
light bulb
8. Weight9. Availability10. Strength11 Resistance to high temperatures
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
11. Resistance to high temperatures12. Resistance to stretching
Object Oriented Thinking RethinkingA Case Study
• Every night, Fido barks and barks at the stupid door
til l t hi t id I h t tti t f b d Cuntil we let him go outside. I hate getting out of bed, Can
you help us out?
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Object Based Problem..P4 Derive the fundamental Object oriented concept for
Excel application. Identify: Object Class Attributes Methods Static and dynamic attributes Static and dynamic attributes Inheritance
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Case Study
• Consider a payroll program that processes employee
records at a small manufacturing firm The company hasrecords at a small manufacturing firm. The company has
several classes of employees with particular payroll
i t d l f i h Thirequirements and rules for processing each. This company
has three types of employees:
Managers receive a regular salary
Office workers receive an hourly wage and are eligible forOffice workers receive an hourly wage and are eligible for
overtime after 40 hrs
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Production workers are paid according to a piece rate
Case Study
Update the application for
Temporary office workers ineligible for overtime
Junior production workers who receive an hourly wage plus alower piece rate
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
OO Concepts
• Object• Class
• Data Abstraction
• Overriding• Object
• Attribute• Method
• Data Hiding• Inheritance
jpersistence
• ContainershipMethod• Message• State
• Polymorphismp
• GeneracityState
• EncapsulationD fi th tDefine the terms
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Modelling with Classes
• A model is an abstraction for the purpose understanding it before building.
• Advantage Testing a physical entity before building it
Communication with customer
Vi li ti Visualization
Reduction of complexity
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Reduction of complexity
Modelling with Classes..
• Class model describe the structure of objects in a
tsystem
Identity
Relationship with other objects
Attributes Attributes
operation
• Class diagram express the class model
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Essentials of UML Class Diagrams
The main symbols shown on class diagrams are: Classes
represent the types of data themselves Associations
represent linkages between instances of classesrepresent linkages between instances of classes Attributes
are simple data found in classes and their instancesp Operations
represent the functions performed by the classes and their i tinstances
Generalizationsgroup classes into inheritance hierarchies
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
g p
ClassesA l i i l t d b ith th f th l i idA class is simply represented as a box with the name of the class inside The diagram may also show the attributes and operations The complete signature of an operation is: The complete signature of an operation is:
operationName(parameterName: parameterType …): returnType
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Associations and Multiplicity
An association is used to show how two classes are related to each other Symbols indicating multiplicity are shown at each end of the
association
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Labelling Associations
Each association can be labelled, to make explicit thenature of the association
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Analyzing And Validating Associations
Many-to-oneA company has many employees,An employee can only work for one companyAn employee can only work for one company.
This company will not store data about the moonlightingactivities of employees!
A company can have zero employeesE.g. a ‘shell’ company
It is not possible to be an employee unless you work for aIt is not possible to be an employee unless you work for acompany
* worksForEmployee Company1
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Analyzing And Validating Associations
Many-to-manyAn assistant can work for many managersA manager can have many assistantsAssistants can work in poolsManagers can have a group of assistantsManagers can have a group of assistantsSome managers might have zero assistants. Is it possible for an assistant to have, perhaps temporarily, zero
?managers?
*supervisor
*****1..*Assistant Manager
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Analyzing And Validating Associations
One-to-oneFor each company, there is exactly one board of directorsA board is the board of only one companyA company must always have a boardA board must always be of some companyA board must always be of some company
Company BoardOfDirectors11
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Analyzing And Validating Associations
Avoid unnecessary one-to-one associations
Avoid this do this
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
A More Complex Example A booking is always for exactly one passenger
no booking with zero passengers
a booking could never involve more than one passenger.
A Passenger can have any number of Bookings
a passenger could have no bookings at all
a passenger could have more than one booking
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Association Classes Sometimes, an attribute that concerns two associated
classes cannot be placed in either of the classes
The following are equivalent
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Reflexive Associations
It is possible for an association to connect a class to itself
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Directionality In Associations• Associations are by default bi-directional
• It is possible to limit the direction of an association byadding an arrow at one end
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
GeneralizationSpecializing a superclass into two or more subclasses
A generalization set is a labeled group of generalizations
with a common superclass
The label (sometimes called the discriminator) describesThe label (sometimes called the discriminator) describes
the criteria used in the specialization
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Avoiding Unnecessary Generalizations
Inappropriate hierarchy ofInappropriate hierarchy ofclasses, which should beinstances
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Avoiding Unnecessary Generalizations
Improved class diagram, with its corresponding instance
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
diagram
Handling Multiple Discriminators
Creating higher-level generalization
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Handling Multiple Discriminators
Using multiple inheritance
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Avoiding Having Instances Change Class
An instance should never need to change class
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Aggregation Aggregations are special associations that represent ‘part-
whole’ relationshipswhole relationships.
The ‘whole’ side is often called the assembly or the
aggregateaggregate
This symbol is a shorthand notation association named
isPartOf
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
When To Use An Aggregation
As a general rule, you can mark an association as an
f faggregation if the following are true: You can state that
the parts ‘are part of’ the aggregate
or the aggregate ‘is composed of’ the parts
When something owns or controls the aggregate, then
they also own or control the partsy p
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Composition A composition is a strong kind of aggregation
if the aggregate is destroyed, then the parts aredestroyed as well
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Aggregation Hierarchy
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Propagation A mechanism where an operation in an aggregate is implemented
by having the aggregate perform that operation on its partsy g gg g p p p
At the same time, properties of the parts are often propagated
back to the aggregateback to the aggregate
Propagation is to aggregation as inheritance is to generalization.
Th j diff iThe major difference is:
inheritance is an implicit mechanism
propagation has to be programmed when required
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
InterfacesAn interface describes a portion of the visible behaviourof a set of objects. An interface is similar to a class, except it lacks
instance variables and implemented methods
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Constraints• To restrict the ways in which a class can operate• OCL is a specification language designed to formally p g g g y
specify constraints in software modules• Three types of constraints• Invariant Must always be true Defined on class attributes
• Precondition Defined on a method Checked before method execution
F tl d t lid t i t t
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Frequently used to validate input parameter
Constraints..• Postcondition Defined on a method
Checked after method execution
Frequently used to describe how values were changed by methodmethod
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Constraints..Invariant
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
The Process of Developing Class Diagrams
You can create UML models at different stages and with
diff t d l l f d t ildifferent purposes and levels of details Exploratory domain model:Developed in domain analysis to learn about the domain
System domain model:Models aspects of the domain represented by the system
System model:yIncludes also classes used to build the user interface and system
architecture
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
a c ec u e
System Domain Model Vs System Model
The system domain model omits many classes that areneeded to build a complete systemCan contain less than half the classes of the system.Should be developed to be used independently of particular sets
ofofuser interface classes architectural classes
The complete system model includesThe system domain modelU i t f lUser interface classesArchitectural classesUtility classes
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
y
Suggested Sequence Of Activities Identify a first set of candidate classes Add associations and attributes Find generalizations Find generalizations List the main responsibilities of each class Decide on specific operationsDecide on specific operations Iterate over the entire process until the model is satisfactoryAdd or delete classes, associations, attributes,
generalizations, responsibilities or operationsIdentify interfaces
Don’t be too disorganized. Don’t be too rigid either.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Identifying Classes When developing a domain model you tend to discover
classesclasses
When you work on the user interface or the system
hit t t d t i t larchitecture, you tend to invent classes
Needed to solve a particular design problem
(Inventing may also occur when creating a domain model)
Reuse should always be a concern
Frameworks
System extensions
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Similar systems
A Simple Technique For Discovering Domain Classes
Look at a source material such as a description of requirements
Extract the nouns and noun phrases
Eliminate nouns that:
are redundantare redundant
represent instances
are vague or highly generalare vague or highly general
not needed in the application
Pay attention to classes in a domain model that represent types Pay attention to classes in a domain model that represent types
of users or other actors
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Identifying Associations And Attributes
Start with classes you think are most central and important
Decide on the clear and obvious data it must contain and its
relationships to other classesrelationships to other classes.
Work outwards towards the classes that are less important.
Avoid adding many associations and attributes to a class
A system is simpler if it manipulates less information
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Tips About Identifying And Specifying Valid Associations
An association should exist if a classpossesses
t lcontrolsis connected tois related tois a part ofhas as partsis a member of oris a member of, orhas as members
some other class in your modely Specify the multiplicity at both ends Label it clearly.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Actions Versus Associations
A common mistake is to represent actions as if they wereassociationsassociations
Bad, due to the use of associations that are actions
Better: The borrow operation creates a Loan , and the return operation sets the returnedDateattributethat are actions attribute.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Identifying Attributes Look for information that must be maintained about each class
Several nouns rejected as classes, may now becomej y
attributes
An attribute should generally contain a simple valueAn attribute should generally contain a simple value
E.g. string, number
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Tips About Identifying And Specifying Valid Attributes
It is not good to have many duplicate attributes
If a subset of a class’s attributes form a coherent group then If a subset of a class s attributes form a coherent group, thencreate a distinct class containing these attributes
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Identifying Generalizations And Interfaces
There are two ways to identify generalizations:
bottom-upbottom up
Group together similar classes creating a new superclass
top-downtop down
Look for more general classes first, specialize them if needed
Create an interface instead of a superclass if Create an interface, instead of a superclass if
The classes are very dissimilar except for having a few
operations in commonoperations in common
One or more of the classes already have their own superclasses
Different implementations of the same class might be available
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Different implementations of the same class might be available
Case Study 2• Airline Reservation SystemOotumlia Airlines runs sighseeing flights from Java Valley, the
capital of Ootumlia . The reservation system keeps track of
passengers who will be flying in specific seats on vrious
flights, as well as people who will form the crew. For the crew
, the system needs to track what everyone does, and who
supervises whom. Ootumlia Airlines runs several daily
numbered flights on a regular schedule. Ootumlia Airlines
expects to expand in the future so the system needs to be
flexible; in particular, it will be adding a frequent-flier plan.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
; p , g q p
An Example (Attributes And Associations)
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
An Example (Generalization)
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Allocating Responsibilities To ClassesA ibilit i thi th t th t i i d t dA responsibility is something that the system is required to do. Each functional requirement must be attributed to one of the classesAll the responsibilities of a given class should be clearly related.If a class has too many responsibilities, consider splitting it into
distinct classesIf a class has no responsibilities attached to it, then it is probablyp , p y
uselessWhen a responsibility cannot be attributed to any of the existing
classes, then a new class should be created,
To determine responsibilitiesPerform use case analysisPerform use case analysisLook for verbs and nouns describing actions in the system
description
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Categories Of Responsibilities Setting and getting the values of attributes Creating and initializing new instances Loading to and saving from persistent storage Destroying instances
Addi d d l ti li k f i ti Adding and deleting links of associations Copying, converting, transforming, transmitting or outputting Computing numerical results Computing numerical results Navigating and searching Other specialized workp
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
An Example (Responsibilities)
• Creating a new regular flight• Searching for a flightSearching for a flight• Modifying attributes of a flight• Creating a specific flight
B ki• Booking a passenger• Canceling a booking
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Prototyping A Class Diagram On Paper
As you identify classes, you write their names on small cards
As you identify attributes and responsibilities, you list them ony y p , y
the cards
If you cannot fit all the responsibilities on one card: If you cannot fit all the responsibilities on one card:
this suggests you should split the class into two related classes.
Move the cards around on a whiteboard to arrange them into a Move the cards around on a whiteboard to arrange them into a
class diagram.
D li th d t t i ti d Draw lines among the cards to represent associations and
generalizations.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Identifying OperationsOperations are needed to realize the responsibilities of
each classeach class There may be several operations per responsibility
The main operations that implement a responsibility are
normally declared public
Other methods that collaborate to perform the responsibility
must be as private as possible
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
An Example (Class Collaboration)
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Difficulties And Risks When Creating Class Diagrams
Modeling is particularly difficult skill
Even excellent programmers have difficulty thinking at theEven excellent programmers have difficulty thinking at the
appropriate level of abstraction
Education traditionally focus more on design and programmingEducation traditionally focus more on design and programming
than modeling
Resolution: Resolution:
Ensure that team members have adequate training
H i d d ll t f th tHave experienced modeller as part of the team
Review all models thoroughly
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
System Development as an Industrial Process
Documented by Spector and Gifford(1986) via an interview with Gerald Fox (experienced bridge designer)
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Learning Objectives• The constitute of a rational enterprise philosophy• The constituents of multiple activities of a rational enterprise
Software Industry Direct Analogies with Rational Enterprise• Software Industry Direct Analogies with Rational Enterprise• System development characteristics• Part of a Larger ActivityPart of a Larger Activity• System Development• Transition from Analysis to Constructiony• The System Life Cycle• System Development as a Process of Change
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Learning Objectives Cont..
• System Development and Reuse
• Component
• System Development and Methodology
• Process Expresses more than Method
• Process Adaptation According to Organization Need
• Objectory
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Constitute of a Rational Enterprise Philosophy
Support for architecture method or
Tools
Support for architecture, method orprocess
ProcessHow to apply the architecture concept(step by
How to scale up the method to industry activity
Architecture
MethodThe selected approach from a universe ofapproaches (Foundation of concepts and
How to apply the architecture concept(step bystep)
pp ( ptechnology)
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Constituents of Multiple Activities of a Rational Enterprise
Tools Tools Tools
Method
Process
Method
Process
Method
Process
Architecture Architecture Architecture
iCreative Design Construction Long Term Support
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Software Industry Direct Analogies with Rational Enterprise
• Process must yield a forseeable result, irrespective of which
individual performed the jobindividual performed the job
• Volume of output doesn’t effect the process
P ibilit t ll t t f th t l• Possibility to allocate parts of the process to several
manufacturers/subcontractors
• Possible to make use of predefined building blocks and
components
• Possible to plan and calculate the process with great precision.
• Each person trained for an operation must perform it in a similar
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
p p p
manner
System Development Characteristics
Part of a large activity
System Development
T iti f A l i t C t tiTransition from Analysis to Construction
Requirements are input to system developmentRequirements are input to system development
A system is output system developmenty p y p
Parties interested in system development are customer, comp.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
dept., direct users, indirect users`
Part of a Larger Activity
O d Sales ProductionOrders and Requir
Deliverable Products
(Change)
System
ements requirements
yDevelopment
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Part of a Larger Activity Cont..
Only person involved in production skilled in duplicating products, assembling and configuring
t d t tisystem and testing To Minimize the development department with customer
contacts.contacts.
Product is described as sets of packages of functionality servicestermed as service packages
S i P k t l t d i t b ildi bl kService Packages are translated into building blocks
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
System DevelopmentGradual transformation of a sequence of models
Can be viewed as a process of producing model description
C i t f th di ti t h th t f ll h th l lConsist of three distinct phases that follow each other seamlessly-analysis, construction and testing
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
System Development Cont..
New & System DevelopmentChanged
RequirementsChanged System
C t tiRequir
t SysAnalysis
ConstructionDesign Imple
mentationTesting
ements System
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Transition from Analysis to Construction
Guidelines for analysis Analysis must be independent of implementation
Analysis must be application oriented
Described in terms of service packages
Should not be too elaborated
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Requirements are Input to System Development
Technical applications Tactical command & control system; process control system;
t l i ti ttelecommunication system The role of system in its environment identified &
requirements formulated in terms of behavior of sensors andrequirements formulated in terms of behavior of sensors andactuators (interfaces to the environment)
Administrative systems Requirements based on a dialogue between customer and
producerproducer
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
A System is Output System Development
Set of descriptions
Basis for production in production department and forproduct description in sales department
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
The System Life CycleSystem Development as a process of change
System development and Reuse
S t D l t d th d lSystem Development and methodology
ObjectoryObjectory
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
System Development as a Process of Change
Delta requirement specification Specifications for desired changes to an earlier version
Each new version is a delta version
Process of progressive changeDelta
Analysis Construction TestingRequirements Delta
System
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
System Development and Reuse
Not a central issue in other branches as so obvious andpracticed widely
System is a set of application module
A module composed of other modules or componentA module composed of other modules or component
Finest level of granularity of reuse is component
Decrease the product’s life-cycle model
Other descriptions can be reused such as handbooks andeducational material
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
ComponentAlready implemented unit
Not quantity but quality determines the success of reuse
Li t d i t lListed in catalogue
Browser to access catalogueBrowser to access catalogue Each iteration as a change to an existing system
Currently support for data structures and windows managementsystems in form of macro libraries, subroutine libraries, procedurelib i d
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
libraries and so on
Changeable ApplicationsMust be designed to permit frequent alteration
Modules must be framed to handle change in requirement in allprobability in few modules
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
System Development and Methodology
Important to know how the different steps of the method interact andhow they fit into the development process as a whole
Architecture Internal structure key property of a system makes it easy to
understand, change, test and maintain
Analysis model design model and implementation model may Analysis model, design model and implementation model mayform an architecture
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
System Development and Methodology contd..
Method A planned procedure to approach a specified goal step by step Simplifies the development of system of a particular
architecture
Process Natural scaling up of a methodatu a sca g up o a et od
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
System Development and Methodology Cont..
Method description and process description
Method presented as starting from nothing and resulting in a firstMethod presented as starting from nothing and resulting in a firstsystem version
Project includes changing an existing system tendering projectProject includes changing an existing system, tendering project,error handling project and others
Process offers to more than one projectProcess offers to more than one project
Activity description should be reusable in different types of systems
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
System Development and Methodology cont..
Process will continue to exists so long as the developed system is inoperation
A set of interacting sub process
Software factory describe the division of processes and subprocesses
A process presuppose a method which, in turn presuppose anhit tarchitecture
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Process Expresses More Than Method
Transition from principles to practice
Describe how different subprocesses should cooperate and to whatextent they should be carried out in parallel
Activity becomes less dependent on individual
System development as process of change
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
CASE
Support the process it is based on
Part of a greater whole
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Process Adaptation According to Organization Need
Heterogeneous projects
Development case description about pros and cons ofdeselecting of subprocess
Process adaptor must have access of development casep pdescription
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
ObjectoryModern Development Technique Support of iterative development Support the entire chain from changed requirement to the
functioning system
Object Factory for Software Development a development technique
Framework: Design with building blocks
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Objectory Cont..
• Essential idea behind the CCIT(Commite Consultatif
I t ti l T l hi t T l h iInternational Telegraphique et Telephonique
• Used in various systems information system, , real time
system, process control system, CASE tools and
graphic presentation systems. Adapted to differentgraphic presentation systems. Adapted to different
programming languages
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Objectory Cont..
• and scaled down to small scale projects with Simplified
l j tlarge projects
• Three design techniques: building blocks, conceptualg q g , p
modeling and object oriented programming
• Conceptual modeling extended with OO concepts and
ability to describe dynamic behaviorability to describe dynamic behavior
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
S ft Lif C l M d lSoftware Life Cycle Model
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Summary of Development Process
System ConceptionUsersDevelopersManagers
Generate RequestSystem Conception
Analysis:
ManagersBusiness Experts
User Interviews
Request
Build
Problem Statement
•Domain Analysis•Application Analysis
User InterviewsExperienceRelated Systems
Build Models
Class Model
Design:•System DesignCl D i
ArchitectureUse CasesAlgorithms Elaborate
Class ModelState Model
Interaction Model
•Class Design AlgorithmsOptimization
Elaborate Models
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Software Development : A Use Case Model
<<include>><<include>>
<<include>>Software development
System developmentProblem definition System operation
Client End userDeveloperProject manager Administrator
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Software Development : Simple Object Model
Software Development
Object DesignDocument
Requirements Analysis Executable system
Problem Statement
DocumentExecutable system
System DesignDocument
Test Manual
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Software life cycle
* Object Model of the Process group
Process*
Software Life Cycle
Work Product
Process
Phase**
Activity Task
producesconsumes
*
*
Resource
*
Time
Participant
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Money
D i
Life Cycle Model of OOSAD
O
DomainApplication Scenario
OA
Identify Actors
Identify Use cases
Build UseCase Model
i
Test
Do Object Analysis
OOD
Identify Classes
Identify Objects
ExamineReusableObjects
BuildPrototype
Build OOSystem DesignD g
BuildInterfaceObjects
BuildDynamic
Model
Test UsageScenario
(Use Case)
OO
( )
BuildDetail
Use Tools &Program for
Test for QAAcceptance
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
OI
DetailDesign
Program forImplementation
Acceptance
Post Implementation Hand Over
UNIFIED APPROACHUNIFIED APPROACH
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Objectives• The Unified Approach• Best Practices• Object Oriented Analysis• Object Oriented DesignObject Oriented Design• Four phases of UA• UA DisciplinesUA Disciplines
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Unified Approachtime
In an iteration,
content
,you walk through all disciplinesdisciplines.
Disciplines group
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
p g prelated activities.
The Unified Approach
• Based on the best practices• Unify the modeling efforts of Booch, Rumbaugh andy g , g
Jacobson• Revolves around the processes and concepts Use-case driven development Object Oriented Analysis Object oriented Design Incremental development and prototyping
C ti T ti Continuous Testing
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
RUP Implements Best Practices
Best PracticesProcess Made Practical
Best PracticesProcess Made Practical
D l It ti lD l It ti lDevelop IterativelyManage Requirements
Use Component Architectures
Develop IterativelyManage Requirements
Use Component ArchitecturesUse Component ArchitecturesModel Visually (UML)
Continuously Verify Quality
Use Component ArchitecturesModel Visually (UML)
Continuously Verify QualityCo t uous y e y Qua tyManage Change
Co t uous y e y Qua tyManage Change
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Practice 1: Develop Iteratively
Best PracticesProcess Made Practical
Best PracticesProcess Made PracticalProcess Made PracticalProcess Made Practical
Develop IterativelyDevelop IterativelyDevelop IterativelyManage Requirements
Use Component Architectures
Develop IterativelyManage Requirements
Use Component ArchitecturesUse Co po e t c tectu esModel Visually (UML)
Continuously Verify Quality
Use Co po e t c tectu esModel Visually (UML)
Continuously Verify Qualityy y yManage Change
y y yManage Change
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Develop Iteratively
IterationIteration isis thethe repetitionrepetition ofof steps,steps, eacheach timetime improvingimprovingthethe accuracyaccuracy ofof thethe resultresult..
BenefitsBenefitsBenefitsBenefits•• RiskRisk estimationsestimations areare earlierearlier..•• ChangeChange isis moremore manageablemanageable..ChangeChange isis moremore manageablemanageable..•• LearningLearning andand ImprovingImproving..•• BetterBetter overalloverall qualityquality..
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Contd. . .
Iterations Mitigate Risks
Waterfall Model
Risk
R i tAnalysis& Design
Requirements
gImplementation
TestThe Project Test
Deployment
j
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Time
Iterations Mitigate Risks
Iterative Software Delivery Process
Requirements Requirements Requirements
Risk
Analysis& Design
Requirements
Analysis& Design
Requirements
Analysis& Design
Requirements
Implementation
Test
Implementation
Test
Implementation
Test
Deployment Deployment Deployment
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Time
Practice 2: Manage Requirements
Best PracticesP M d P ti l
Best PracticesP M d P ti lProcess Made PracticalProcess Made Practical
Develop IterativelyDevelop IterativelyDevelop IterativelyManage Requirements
Use Component Architectures
Develop IterativelyManage Requirements
Use Component ArchitecturespModel Visually (UML)
Continuously Verify Quality
pModel Visually (UML)
Continuously Verify Qualityy y yManage Change
y y yManage Change
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Requirements Management Means…
Making sure you solve the right problem build the right system build the right system
by taking a systematic approach to eliciting
i i organizing documenting managing
the changing requirements of a software application.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Map of the Territory
Problem Problem Space
Solution Space
Needs
Features SpaceFeatures
SoftwareThe
Product So t a eRequirements to Be
Built
Test ScriptsDesign User
Docs
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Use Cases as a Basis for Iteration PlanningUse Cases as a Basis for Iteration Planning
Constraints
Project Use-Case Model
Iteration PlanFi i d l f
Project Management
Supplementary
Fine-grained plan for a single iteration
SupplementarySpecifications
During Elaboration, use cases are implemented to validate the
hit t
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
architecture.
Use Cases as a Basis for System Modeling
Use-Case Model(requirements)
li tiverification
realization influence
Implementation Model(source code)
Test ScriptsDesign Model(classes and objects)
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Use Cases as a Basis for Test Planning
The complete behavior of a use case is tested using Test Scripts and Test Suites.
Test Script
Test Suite
T t S it
Test Script
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Test Suite
Practice 3: Use Component Architectures
Best PracticesP M d P ti l
Best PracticesP M d P ti lProcess Made Practical Process Made Practical
Develop IterativelyDevelop IterativelyManage Requirements
Use ComponentArchitectures
Manage RequirementsUse ComponentArchitecturesArchitectures
Model Visually (UML)Continuously Verify Quality
ArchitecturesModel Visually (UML)
Continuously Verify QualityContinuously Verify QualityManage Change
Continuously Verify QualityManage Change
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Purpose of a Component-Based Architecture
Basis for reuse Component reuse Architecture reuse Component-basedArchitecture reuse
Basis for project management Planning
Staffing
Component based architecture with layers
Staffing Delivery
Intellectual controlApplicationApplication--specificspecific
Manage complexity Maintain integrity
MiddlewareMiddleware
BusinessBusiness--specificspecific
SystemSystem--softwaresoftware
MiddlewareMiddleware
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Practice 4: Model Visually (UML)
Best PracticesP M d P ti l
Best PracticesP M d P ti lProcess Made Practical Process Made Practical
Develop IterativelyDevelop IterativelyDevelop IterativelyManage Requirements
Use Component Architectures
Develop IterativelyManage Requirements
Use Component ArchitecturespModel Visually (UML)
Continuously Verify Quality
pModel Visually (UML)
Continuously Verify Qualityy y yManage Change
y y yManage Change
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
One Language for All Practitioners
Tecnology M d li
Application ModelingRequirements
M d li
Data Modeling
Modeling
Business Modeling
Modeling
One language – One tool – One team
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
One language – One tool – One team
Role of UML in RUP• Rational Unified Process was developed hand-in-hand
with the UML.
• Many artifacts in Rational Unified Process have a UML representationrepresentation.
• Rational Unified Process also includes guidelines for• Rational Unified Process also includes guidelines for UML concepts.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Practice 5: Continuously Verify Quality
Best PracticesP M d P ti l
Best PracticesP M d P ti lProcess Made Practical Process Made Practical
Develop IterativelyDevelop IterativelyDevelop IterativelyManage Requirements
Use Component Architectures
Develop IterativelyManage Requirements
Use Component ArchitecturesUse Component ArchitecturesModel Visually (UML)
Continuously
Use Component ArchitecturesModel Visually (UML)
ContinuouslyyVerify QualityManage Change
yVerify QualityManage Change
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Continuously Verify Your Software’s Quality
Software problems are100 to 1000 times more costly
to find and repair after deployment
Software problems are100 to 1000 times more costly
to find and repair after deployment p p yp p y
Cost to Repair Software Cost to Repair Software
CostCost
p
Cost of Lost Opportunities
Cost of Lost Customers
p
Cost of Lost Opportunities
Cost of Lost CustomersCostCost Cost of Lost Customers Cost of Lost Customers
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Development Phases
Testing Dimensions of Quality
UsabilityUsability Test application from the
ti f Test application from the
ti f
ReliabilitReliabilit
FunctionalityFunctionality Test the accurate
workings of each Test the accurate
workings of each
perspective of convenience to end-user.perspective of convenience to end-user.
ReliabilityReliability Test that the application
behaves consistently and predictably
Test that the application behaves consistently and predictably
workings of each usage scenarioworkings of each usage scenario
predictably.predictably.
P fP f
SupportabilitySupportability Test the ability to maintain
and support application Test the ability to maintain
and support application PerformancePerformance Test online response
under average and peak loading
Test online response under average and peak loading
pp ppunder production use
pp ppunder production use
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
loadingloading
Test Each Iteration
UML Model
Iteration 1Iteration 1 Iteration 2Iteration 2 Iteration 4Iteration 4Iteration 3Iteration 3
UML Model and
Implementation
T t S it 1T t S it 1 T t S it 2T t S it 2 Test Suite 4Test Suite 4T t S it 3T t S it 3
Tests
Test Suite 1Test Suite 1 Test Suite 2Test Suite 2 Test Suite 4Test Suite 4Test Suite 3Test Suite 3
Tests
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Need for automated testing increases
Practice 6: Manage Change
Best PracticesP M d P ti l
Best PracticesP M d P ti lProcess Made PracticalProcess Made Practical
Develop IterativelyDevelop IterativelyDevelop IterativelyManage Requirements
Use Component Architectures
Develop IterativelyManage Requirements
Use Component ArchitecturespModel Visually (UML)
Continuously Verify Quality
pModel Visually (UML)
Continuously Verify Qualityy y yManage Change
y y yManage Change
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Change Request ManagementChange requests come from many sources throughout each iteration of the product lifecycle
Customer and
Req
Customer andUser inputs
MarketingNew Feature
Single Channel
Design
Marketing
NewRequirementApproved
D i i
Single Channel for Approval
Test
CodeBug
DecisionProcess
Coders inputsTesters inputs
Maint
Test Help DeskUser inputs
ChangeRequest (CR)
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Unified Change Management
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Best Practices Reinforce Each Other: An Example
Best PracticesBest PracticesDevelop IterativelyDevelop Iteratively
Ensures users involved i t l
Develop Iteratively
Manage Requirements
Develop Iteratively
Manage Requirements
Validates architectural decisions early on
as requirements evolveg q
Use Component Architectures
g q
Use Component Architecturesdecisions early on
Addresses complexity of design/implementation incrementallyModel Visually (UML)Model Visually (UML)
Measures quality early and oftenContinuously Verify QualityContinuously Verify Quality
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Evolves baselines incrementallyManage Change Manage Change
Object-Oriented Analysis
• Identify the Actors• Develop a simple business process model using UMLp p p g
Activity diagram• Develop the use case• Develop interaction diagrams• Identify classesy
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Object-Oriented Design• Designing classes, their attributes, methods,
associations, structures and protocols, apply designaxioms.
• Design the Access layer
• Design and prototype User interface
• Iterate and refine the data
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
The Unified Approach PhasesHas four phases Inception Understand problem
ElaborationU d t d S l tiUnderstand Solution
ConstructionHave a SolutionHave a Solution
TransitionUse solution efficientlyy
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Main Disciplines of R.U.P.
1. Business Modeling
2. Requirements
3. Analysis and Design3. Analysis and Design
4. Implementation
5. Test
6. Deploymentp y
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Supportive Discipline of R.U.P.
1. Configuration and Change Management
2. Project Management
3 Environment3. Environment
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Business Modeling
To understand current problems in the target organization andidentify improvement potentials.
To assess the impact of organizational change.
To ensure that customers end users developers and otherTo ensure that customers, end users, developers, and otherparties have a common understanding of the organization.
To derive the software system requirements needed to supportthe target organization.
To understand how a to-be-deployed software system fits intothe organization.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›Contd. . .
RequirementsT t bli h d i t i t ith th t d•To establish and maintain agreement with the customers and
other stakeholders on what the system should do.
• To provide system developers with a better understanding of thesystem requirements.
• To define the boundaries of the system.•To provide a basis for planning the technical contents of iterations.
•To provide a basis for estimating cost and time to develop thesystem.y
•To define a user-interface for the system, focusing on the needsand goals of the users
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
and goals of the users.
Contd. . .
Analysis & Design
• To transform the requirements into a design of thesystem-to-be.y
• To evolve a robust architecture for the system.
• To adapt the design to match the implementationenvironmentenvironment.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Implementation
• Defines the organization of the code.
• To test the developed components as units.
• To integrate the results produced by teams into an executablesystem.
• Verify the integration and interaction between objects.
T id if d d f dd d i h• To identify and ensure defects are addressed prior to the deployment.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Deployment•Successfully produce product releases.
D li th ft t it d• Deliver the software to its end users.
• Cover a wide range of activities-Cover a wide range of activities Release of software. Packaging.g g Distributing. Installing.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Configuration & Change Management
•Identifying configuration items.
• Restricting changes to those items.
• Auditing changes made to those items• Auditing changes made to those items.
• Defining and Managing configuration of those items.Defining and Managing configuration of those items.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Project Management
• To provide a framework for managing softwareprojects.p j
• To provide practical guidelines for planning, staffing,executing and monitoring projects.
• To provide a framework for managing risk• To provide a framework for managing risk.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Environment
P id th ft d l t i tiProvide the software development organization
with the software development environment –with the software development environment
both processes and tools that are needed to
support the development team.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Bringing It All Together: The Iterative Approachtime
In an iteration,
content
,you walk through all disciplinesdisciplines.
Disciplines group
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
p g prelated activities.
Typical Effort and Time Percentages by Phase
People
ConstElab TransInc
Time
ConstElab TransInc
Inc Elab Const TransEffort 5% 20% 65% 10%
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Time/Schedule 10% 30% 50% 10%
Conclusion
Combine the best practices, processes, methodologies
d id li ith UML t ti d di fand guidelines with UML notations and diagrams for
better understanding object-oriented concepts and
system development.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Object Oriented Methodologies
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Learning Objectives• OO Methodology• Different Methodologiesg• Rumbaugh OMT• Booch OODBooch OOD• Jacobson OOSE
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
OO Methodology• Software developing methodology based on Object-
Oriented concepts
• World is a collection of collaborating objects
• Software has to be organized according to the structureof our worldof our world Increases understandability and evolve ability of software
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Current Object-Oriented Methodologies
Berard [Berard 93] BOOM BON [Nerson 92] Booch [Booch 94] Booch [Booch 94] Coad/Yourdon [Coad 91] Colbert [Colbert 89] d Ch [d Ch 93] de Champeaux [de Champeaux 93] Embley [Embley 92] EVB [Jurik 92] FUSION [Coleman 94] HOOD [HOOD 89]
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Current Object-Oriented Methodologies
IBM [IBM 90,91] Jacobson [Jacobson 92] Martin/Odell [Martin 92] Martin/Odell [Martin 92] Reenskaug (OOram, was OORASS) [Reenskaug 91] ROOM [Selic 94] R b h t l [R b h 91] Rumbaugh et al. [Rumbaugh 91] Shlaer and Mellor [Shlaer 88 and 92] Wasserman [Wasserman 90] Winter Partners (OSMOSYS) [Winter Partners] Wirfs-Brock et al. [Wirfs-Brock 90]
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Rumbaugh OMTObject Modeling Technique presented by Jim RubaughConsist of four phases
A l i AnalysisObjects, dynamic and functional models
System Design System DesignStructure of basic architecture along with high-level
strategy decisionsstrategy decisionsIdentification of subsystemsChoice of data storage and access strategiesg g
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Rumbaugh OMT Object designDetail object’s static, dynamic and functional models
ImplementationProduce reusable, extensible and robust code
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Rumbaugh OMT ModelsStatic Object model with attributes, operations and relationships
(extension of E R model)(extension of E-R model)Dynamic State transition diagrams (network of states and events)State transition diagrams (network of states and events)
Functional Based on classical DFD
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Booch OOD• Aimed on physical design and programming rather than
requirement and conceptual designD ib t l l f di• Describes two levels of diagram Design levelClass object state transition and interactionClass, object, state transition and interaction
diagrams Implementation levelpModule and process diagrams
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Booch OODSuggest two development process
Micro Development ProcessRepresents the daily activities of the individual
developerdeveloper
Macro Development Processac o e e op e t ocessServes as the controlling framework for the micro
process
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Booch OOD Micro Development Process
Identify the classesIdentify the classes
and objects
Identify the classes and objects Semantics
Specify class & Identify the classes and objects relationships
Specify class & Objects interface &
Implementation relationships
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Booch OOD Macro Development Process
Establishment of Core Requirements
Conceptualization
Developing a model of the desired behavior
AnalysisConceptualization Analysis
Creation of A hit t D i
Evolving the i l t ti Architecture Designimplementation
Evolution
Managing post delivery evolution Maintenance
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Jacobson OOSE
• Originated from Objectory (Object Factory for software
development)development)
• Aim to fit the development of large real-time system
• Covers entire life cycle
• Stress traceability among the different phases (Backward &y g p (
forward)
Usecase concept is core• Usecase concept is core
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Objectory
• Discipline process for the industrialized development of software,
based on a usecase driven designbased on a usecase driven design
• Built around several different models
U d l Usecase model
Domain object model
Analysis object model
Implementation model
Test model
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Usecase Approach
Use Case ModelExpress in
Domain Object M d l Test Model
Express in
Realized byTested in
Model Design Model
Implementation
Test Model
Structure by Implemented by
Analysis ModelImplementation
model
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Object Oriented Business Engineering
• Object modeling at the enterprise level
U t l hi l f d li• Use case central vehicle for modeling
• Marjory three phases Analysis
Design and implementationDesign and implementation
Testing
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
OO Concepts
• Object• Class
• Data Abstraction
• Overriding• Object
• Attribute• Method
• Data Hiding• Inheritance
jpersistence
• ContainershipMethod• Message• State
• Polymorphismp
• GeneracityState
• Encapsulation
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Object Based ProblemP1. For each of the following collections of objects,
describe how they could be distinguished1. All telephones in the world for making telephone call2. All persons in the world for the purpose of criminal
investigation3. All persons in the world for the purpose of sending mail4. All customers with safe deposit boxes in a given bank5. All electronic mail addresses throughout the world6. All employees of a company to restrict access for
security reasons
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Object Based Problem..P2. There are two lists below. The first is a list of classes that describe
implementation objects. The second is a list of operations. For each class,select the operations that make sense for objects in that class. Discuss thebehavior of each operation listed for each class.behavior of each operation listed for each class.
Classes:Variable length array --- ordered collection of objects, indexed by an integer,
whose size can vary at run time.Symbol table --- a table that maps text key words into descriptorsSet --- unordered collection of objects with no duplicatesOperations:
Append Append Copy Count Delete Delete Index Intersect Insert
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Insert Update
Object Based Problem..P3. Discuss what the objects in each of the following list
have in common. You may add more classes1. Scanning electron microscope, eyeglasses, telescope,
bomb sight, binoculars2. Bicycle, sailboat, car, truck, airplane, glider,
motorcycle, horse3. Square root, exponential, sine, cosine
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Object Based Problem..P4. Suppose your bathroom sink is clogged and you have decided to try to unclog
it by pushing a wire into the drain. You have several types of wire availablearound the house, some insulated and some not. Which of the following wireh t i ti ld d t id i l ti i f th j b?characteristics would you need to consider in selecting a wire for the job?
Explain your answers.1. Immunity to electrical noise2 Color of insulation2. Color of insulation.3. Resistance of the insulation to saltwater4. Resistance of the insulation to fire5 Cost5. Cost6. Stiffness7. Ease of stripping the insulation8 W i ht8. Weight9. Availability10. Strength
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
11. Resistance to high temperatures12. Resistance to stretching
Object Based Problem..P5 Derive the fundamental Object oriented concept for
Excel application. Identify: Object Class Attributes Methods Static and dynamic attributes Static and dynamic attributes Inheritance
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Very Short QuestionsQ1.Define the following terms with example
Class, Object, Inheritance, Message, Polymorphism, Abstraction, j g y p
Encapsulation, Data Hiding,
Q2. How Class is different from Object?j
Q3. What are the participating parties in system development?
Q4. Define the following terms with exampleQ4. Define the following terms with example
Realization, Delta Requirements, Block, Component, Association,
Aggregation, Composition, Interface, Abstract Class, Class Modeling,Aggregation, Composition, Interface, Abstract Class, Class Modeling,
Service Package
Q5. How Interface is different from Abstract Class
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Q5. How Interface is different from Abstract Class
Very Short QuestionsQ6.How Association is different from Dependency?
Q7. How Aggregation is different from Composition?gg g p
Q8. How Process is different from Method
Q9. Can we develop a system using only method (no Process)? Why?Q9. Can we develop a system using only method (no Process)? Why?
Q10. What do you mean by Invariable Constraint? Give Example.
Q11 Differentiate Pre vs Post Constraint with example?Q11.Differentiate Pre vs. Post Constraint with example?
Q12. We can use more than one architecture for a product. Justify
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Short QuestionsQ1. Discuss the different types of relationships in class Modelling
Q2. Discuss Objectoryj y
Q3. System Development is a part of Large Activity,
Q4. System Development is the conversion of one Model to next modelQ4. System Development is the conversion of one Model to next model
Q5. Discuss Reusablity.
Q6 What do you mean by Constraint? What are the different types of ConstraintsQ6. What do you mean by Constraint? What are the different types of Constraints.
Q7. Discuss at least three
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›
Long QuestionsQ1. Discuss the different types of relationships in class Modelling
Q2. Discuss the Characteristics of System Development.y p
Q3. What are the participating parties in system development?
Q4. Define the following terms with exampleQ4. Define the following terms with example
Realization, Delta Requirements, Block, Component, Association,
Aggregation, Composition, Interface, Abstract Class, Class Modeling,Aggregation, Composition, Interface, Abstract Class, Class Modeling,
Service Package
Q5. How Interface is different from Abstract ClassQ5. How Interface is different from Abstract Class
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Anukiran Jain U1. ‹#›