3
Introduction
Twoorthogonal view of software
Software development process model
Object oriented system methodology
Outline
Leweyehu Y
4.
4
Software can bedefined as a set of programs and associated
documentations.
which includes
A number of separate programs
Configuration files
System documentation
User documentation
Introduction
Leweyehu Y
5.
5
Software Engineeringcan be defined as the construction of quality
software with a limited budget and a given deadline in the context of
constant change.
Software engineering (SE) is an intellectual activity and thus human-
intensive
Software engineering is a detailed study of engineering to
the design, development and maintenance of software.
Software is built to meet a certain functional goal and satisfy certain
qualities
Software processes also must meet certain qualities
What is software engineering ?
Leweyehu Y
6.
6
Good processes leadto good software
Good processes reduce risk
Fundamental assumptions of software engineering
Leweyehu Y
7.
7
• Project –set of activities to develop a software system
• Activity – a phase in which related tasks are carried out
• Task – effort that uses resources AND produces WorkProduct
• Resources – time, equipment, people (participants)
• WorkProduct – a model, system, or artifact
Software Engineering Concepts: Definitions
Leweyehu Y
10
A modelis an abstraction describing system or a subset of a system
A view depicts selected aspects of a model
A notation is a set of graphical or textual rules for representing views
Systems, Models, and Views
Leweyehu Y
11.
11
There aretwo orthogonal views of software development.
Traditional Technique – focuses on data and functions
Object Oriented methodologies – focuses on objects that combines
data and functionality
Two orthogonal view of software
Leweyehu Y
12.
12
Traditional Approach
Collectionof programs or functions
A system that is designed for performing certain actions
Algorithms + Data Structures = Programs
Two orthogonal view of software
Leweyehu Y
13.
13
Object Oriented Approach
OO development offers a different model from the traditional software
based on functions and procedures
software is a collection of discrete object that encapsulate their data as
well as the functionality
Each object has attributes (properties) and method (procedures)
software by building self contained modules or objects that can be
easily REPLACED, MODIFIED AND REUSED
Objects grouped in to classes and object are responsible for itself
Two orthogonal view of software
Leweyehu Y
15
A softwaredevelopment process, also known as a software
development lifecycle, is a structure imposed on the development of
a software product
A software process is represented as a set of work phases that is
applied to design and build a software product
Software development process model
Leweyehu Y
16.
16
Generic ProcessFramework Communication Involves
Communication:
among the customer and other stake holders
encompasses requirements gathering
Planning
Establishes a plan for software engineering work
Addresses technical tasks
Resources, work products, and work schedule
Modelling (Analyze, Design)
Encompasses the creation of models to better under the requirements and the design
Construction (Code, Test)
Combines code generation and testing to uncover errors
Deployment
Involves delivery of software to the customer for evaluation and feedback
Software development process model
Leweyehu Y
17.
17
There arevarious software development life cycle models defined
and designed which are followed during the software development
process.
These models are also referred as Software Development Process
Models".
Each process model follows a Series of steps unique to its type to
ensure success in the process of software development.
Software Development Models (Waterfall, agile, Incremental, etc..)
Software development process model
Leweyehu Y
18.
18
Waterfall modelis an example of a Sequential model. In this model,
the software development activity is divided into different phases and
each phase consists of series of tasks and has different objectives.
Output of one phase becomes the input of the next phase.
It is mandatory for a phase to be completed before the next phase
starts.
In waterfall, development of one phase starts only when the previous
phase is complete. Because of this nature, each phase of waterfall
model is quite precise well defined.
Since the phases fall from higher level to lower level, like a waterfall,
It’s named as waterfall model
Waterfall Model
Leweyehu Y
20
The basicidea in Prototype model is that instead of freezing the
requirements before a design or coding can proceed, a throwaway
prototype is built to understand the requirements.
This prototype is developed based on the currently known requirements.
By using this prototype, the client can get an “actual feel” of the system,
The interactions with prototype can enable the client to better understand the
requirements of the desired system.
Prototyping is an attractive idea for complicated and large systems for
which there is no manual process or existing system to help determining
the requirements.
The prototype are usually not complete systems and many of the details
are not built in the prototype.
The goal is to provide a system with overall functionality
Prototyping Model
Leweyehu Y
22
An iterativelife cycle model does not attempt to start with a full
specification of requirements
Instead, development begins by specifying and implementing just
part of the software
It can be reviewed in order to identify further requirements
This process is then repeated, producing a new version of the
software for each cycle of the model
Iterative Model
Leweyehu Y
24
Agile developmentmodel is also a type of Incremental model.
Software is developed in incremental, rapid cycles.
This results in small incremental releases with each release building on
previous functionality.
Each release is thoroughly tested to ensure software quality is
maintained.
It is used for time critical applications.
Extreme Programming (XP) is currently one of the most well known
agile development life cycle model
Agile process Model
Leweyehu Y
26
XP isa lightweight, efficient, low-risk, flexible, predictable, scientific,
and fun way to develop a software
eXtreme Programming (XP) was conceived and developed to address
the specific needs of software development by small teams in the face
of vague and changing requirements.
Code reviews are effective as the code is reviewed all the time.
Testing is effective as there is continuous regression and testing.
Design is effective as everybody needs to do refactoring daily.
Integration testing is important as integrate and test several times a day.
Short iterations are effective as the planning game for release planning and iteration planning.
Extreme programming
Leweyehu Y
27.
27
OBJECT ORIENTEDAPPROACH…
• OOdevelopment offers a different model from the traditional software
based on functions and procedures.
• software is a collection of discrete object that encapsulate their dataas
well as the functionality.
• Each object has attributes (properties) and method (procedures).
• software by building self contained modules or objects that can beeasily
REPLACED, MODIFIED AND REUSED.
• Objects grouped in to classes and object are responsible foritself.
Leweyehu Y
28.
28
BENEFITS OF OBJECTORIENTATION
Faster development,
Reusability,
Increased quality
modeling the real world and provides us with the stronger equivalence of
the real world‘s entities (objects).
Raising the level of abstraction to the point where application can be
implemented in the same terms as they are described.
Leweyehu Y
29.
29
WHY OBJECT ORIENTATION
OOMethods enables to develop set of objects that work together
• software similar to traditional techniques.
It adapts to
• Changing requirements
• Easier to maintain
• More robust
• Promote greater design
• Code reuse Leweyehu Y
30.
30
Continued…
Others
• Higher levelof abstraction
• Seamless transition among different phases of
software development.
• Encouragement of good programming technique.
• Promotion of reusability.
Leweyehu Y
31.
31
OVERVIEWOFUNIFIEDAPPROACH
The unified approach(UA) is a methodology for software development.
Booch, Rumbaugh, Jacobson methodologies gives the best practices,
processes and guidelines for OO oriented software development.
Combines with the object management groups in unified modelling
language.
UA utilizes the unified modeling language (UML) which is a set of notations and
conventions used to describe and model an application.
Leweyehu Y
32.
32
OBJECTBASICS
Goals:
The developershould
Define Objects and classes
Describe objects, methods, attributes and how objects
respond to messages,
Define Polymorphism, Inheritance,data abstraction,
encapsulation, and protocol,
Describe objects relationships,
Describe object persistence,
Leweyehu Y
33.
33
OBJECT ORIENTEDPHILOSOPHY
The programminglanguages provide the programmers the way of
describing the process.
The ease of description, reusability, extensibility, readability, computational
efficiency, and ability to maintain depends on languages used.
System Software – Machine Understandable language (Integers, floating point
numbers, chars,Addressing Modes,….)
Eg., Financial Investment
Development of Financial Investment Machine directly would reduce
translation.
Leweyehu Y
34.
34
Conti…
Object-Oriented Programming Conceptsallows closer
ideas and terms for the development of certain
applications.
Financial Investment :
• Bond (data type) -> character
• Buy operation on a bond (+) ->operation on a number
Leweyehu Y
35.
35
TRADITIONALAPPROACH
The traditional approachto software development tends toward
writing a lot of code to do all the things that have to be done.
Algorithmic Centric Methodology – only the algorithm that can
accomplish the task.
Data-Centric Methodology- think about the data to build a
structure based on the algorithm
You are the only active entity and the code is just basically a lot of
building materials.
Leweyehu Y
36.
36
OBJECT-ORIENTEDAPPROACH
OO approach ismore like creating a lot of helpers
Take on an active role, a spirit, that form a community whose
interactions become the application.
Reusable
Modified
Replaced
Leweyehu Y
37.
37
EXAMPLES OFOBJECTORIENTED SYSTEMS
InOO system ,“everything is object”.
A spreadsheet cell, bar chart, title in bar chart, report,
numbers, arrays, records, fields, files, forms,
an invoice, etc.
A window object is responsible for things like opening, sizing, and
closing itself.
A chart object is responsible for things like maintaining data and labels even for
drawing itself. Leweyehu Y
38.
38
WHATISAN OBJECT?
The termobject was first formally utilized in the Simula language to
simulate some aspect of reality.
Attributes or properties describe object‘s state (data) and methods (properties
or functions) define its behavior.
An object is an entity.
• It knows things (has attributes)
• It does things (provides services or has methods
• Examples in next Slide ……….
Leweyehu Y
39.
39
OBJECT’SATTRIBUTES
Attributes represented bydata type.
They describe objects states.
In the Car example the car’s attributes are:
color, manufacturer, cost, owner, model, etc.
Leweyehu Y
40.
40
OBJECT’SMETHODS
Methods define objectsbehaviour and specify the way in
which an Object’s data are manipulated.
In the Car example the car’s methods are:
drive it, lock it, tow it, carry passenger in it.
Leweyehu Y
41.
41
IT KNOWS THINGS(ATTRIBUTES)
I am an Employee.
I know my name,
social security number and
my address.
Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill
Leweyehu Y
42.
42
ATTRIBUTES
I am aCar.
I know my color,
manufacturer,
cost, owner and
model.
Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill
Leweyehu Y
43.
43
IT DOES THINGS(METHODS)
I know how to
compute
my payroll.
Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill
Leweyehu Y
44.
METHODS
I know how
tostop.
Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill
45.
45
Object is whateveran applicationwantsto talkabout
For example, Parts and assemblies might be objects of bill of
material application.
Stocks and bonds might be objects of financial investment
applications.
Leweyehu Y
46.
46
OBJECTS AREGROUPED INCLASSES
The role of a class is to define the attributes and methods (the state and behaviour) of its
instances.
Used to distinguish one type of object from the other.
Set of objects, that share common methods, structure, behaviour.
Single object is simply an instance of class.
The class car, for example, defines the property color.Each individual car (object) will
have a value for this property, such as "maroon," "yellow" or "white."
Leweyehu Y