Date post: | 20-Jul-2015 |
Category: |
Education |
Upload: | ashenafi-workie |
View: | 29 times |
Download: | 2 times |
ObjectObject--Oriented Software EngineeringOriented Software Engineering
Chapter 1
An Introduction to Object-Oriented Software
Engineering
Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill
What is Object-Oriented Software Engineering ?....
Object-Oriented Software Engineering is the process of
solving customers’ problems by using the Object-Oriented
concepts and the systematic development and evolution of
large, high-quality software systems within cost and time.
3
Two Orthogonal views of software
The StructuralStructural "part of" hierarchy, functions concentrate on actual components concrete
The Object OrientedObject Oriented "is a" hierarchy concentrate on kinds of components abstract
4
A View of the Two paradigms
5
A View of the Two paradigms
6
What is a Software development methodology?
• Practices, procedures, and rules used to develop software.
Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill
Systems Development Methodologies
• Systems Development methodology is a way to develop system.
• A Comprehensive System Development methodology utilizes sets of tools as well as the style in which they are to be used.
Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill
Object Oriented System Development methodology
• Object-Oriented Systems Development is a way to develop software by building self-contained modules that can be more easily:
• Replaced• Modified• and Reused.
Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill
Traditional Systems Development Methodology
• Traditional or Structured approach is based on the idea that a system can be thought of as a collection of modules or subsystems.
• It is much easier to work with a smaller cohesive (inter-related) module than a complex system.
Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill
Object-Oriented Systems Development Methodology
• In an O-O environment, Software is a collection of discrete objects.
• These objects encapsulate their data and functionalities to model real world "objects."
Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill
Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill
Object-Oriented Systems Development Approach
Iteration and Reuse
Build use-casemodel
Validate/ Test
O-O Analysis
BuildUse-Cases
Design classes,defineattributes andmethods
O-O DesignO-O Implementation
Using TOOLSCASE and/orOO programing languages
Usersatisfaction Usability &QA Tests
Build object& dynamicmodel
Objectanalysis
Build UIandprototype
User satisfaction test,usability testquality assurance test
Validate/test
Object-Oriented Environment
In an object-oriented environment, software is a collection of discrete objects that encapsulate their data and the functionality to model real-world objects
Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill
Object-Oriented Systems Development Methodology (Con’t)
• An object-oriented life cycle encourages a view of the world as a system of cooperative and collaborating agents.
Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill
15
What Object Oriented…?
Object Orientation is about viewing and modelling the real
world / system as a set of interacting and interrelated objects
Features of OO Approach:
The universe consists of interacting objects
Describes and builds systems consisting of objects
Benefits of Object Orientation• An Object orientation produces
systems that are easier to evolve(develop), more flexible, more robust,and more re-usable than otherTraditional approaches
• Faster development,• Re-Usability,• Increased quality,• and easier maintenance.
Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill
Towards Object Orientation
17
Unified Approach
• The unified approach (UA) is amethodology for softwaredevelopment.
• The UA, based on methodologiesby Booch, Rumbaugh, Jacobson,and others, tries to combine thebest practices, processes, andguidelines.
Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill
Unified Approach (Con’t)
• UA utilizes the Unified Modeling Language (UML) which is a set of notations and conventions used todescribe and model an application.
Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill
Layered Architecture
• UA also uses a layered architecture to develop applications.
• The layered approach consists of view (or) user interface, business, and access layers.
Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill
Layered Architecture (Con’t)
• This approach reduces the inter-dependence of the user interface, database access, and business control.
• Therefore, it allows for a more robust(healthy/ strong) and flexible system.
Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill
An object oriented philosophy
Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill
Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill
Class and Object
Class and Object
24
Class and Object
Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill
27
Identification of Attributes
• Attributes express some important aspects of theobjects in the problem domain
LegLeg
Body
Arm
ArmHead
A model of a B Body can be composed of these objects.
28
JohnJohn
Identification of Attributes
Identification of Behaviors
ShafiShafi JohnJohn MaryMary
29
Identification of Attributes
Identification of Behaviors
ShafiShafi JohnJohn MaryMary
30
Inheritance
Class of PersonsClass of Persons
31
InheritanceClass of PersonClass of Person
AttributesAttributes
NameAddressAgeProfession
BodyBody
Left LegRight LegLeft HandRight HandHead
BehaviorBehavior
Tell AgeStore AgeJumpWalkDance…….
Create an InstanceCreate an Instance
Create Left LegCreate Right LegCreate HeadCreate Left HandCreate Right Hand
Class PersonClass Person
Instance of
Instance of
Instance of
3 November 2014R. MD. Shafi, Associate Professor in CSE
32
Step-4: Inheritance Contd…
Class BodyClass Body
AttributesAttributes
Left LegRight LegLeft HandRight HandHead
BehaviorBehavior
Move Right HandMove Left HandStretch Right LegBend Left Leg…………...
Create A BodyCreate A Body
Create Left LegCreate Right LegCreate HeadCreate Left HandCreate Right Hand
33
Class of PersonClass of Person
AttributesAttributes
NameAddressAgeBodyProfession
BehaviorBehavior
Tell AgeStore AgeJumpWalkDance…….
Create A PersonCreate A Person
Create A BodyClass PersonClass Person
Instance of
Instance of
Instance of
Inheritance
34
Inheritance: Person-Man-WomanAttributesAttributes
Husband
BehaviorBehavior
Store AgeJumpWalkDance…….
Create A WomanCreate A Woman
Create A Person
Female ClassFemale ClassDerived fromDerived fromPerson ClassPerson Class
AttributesAttributes
Wife
BehaviorBehavior
Tell AgeStore AgeJumpWalkDance…….
Create A ManCreate A Man
Create A Person
Male ClassMale ClassDerived fromDerived fromPerson ClassPerson Class
35
Object Technology PrinciplesCommon Methods of Organization
Abstraction
Encapsulation (Information Hiding)
Inheritance
Polymorphism
Message Communication
Associations
Reuse
36
• Common Methods of OrganizationPeople are accustomed to thinking in terms of...
• color• price• weight• engine• options...
Objects & Attributes
• number of doors• number of wheels• number of windows• number of lights• number of bolt type 1• number of bolt type 2• etc....
Wholes and PartsGroups & Members
VANS:• light utility• utility• passenger• etc...
37
AbstractionA mental ability that permits people to view real-world
problem domains with varying degrees of detail depending on the current context of the problem.
• Helps people to think about what they are doing• Functional and Data abstraction
38
Encapsulation (Information Hiding)
A technique in which data are packaged together with
their corresponding procedures.
In Object-Oriented Technology the “package” is called an OBJECT
The interface to each object is defined in such a way as to reveal as little as
possible about its inner workings
Encapsulation allows [software] changes to be reliably made with limited effort
[Gannon, Hamlet, & Mills, 1987]
39
Inheritance
A mechanism for expressing similarity
between things thus simplifying their definition.
• looks• behavior•Attitudes etc...
Person
Student Faculty Staff
Inheritance
40
Polymorphism (“many forms”)The ability to hide different implementations
behind a common interface.
The ability for two or more objects to respond
to the same request, each in its own way.
• H2 O = water, ice, steam (liquid, solid, vapor)• Carbon compound crystallizes as graphite &
diamond
41
Message Communication
OBJECT
OBJECT
OBJECT
OBJECT
Objects communicate via messages