Software engineering
By Leweyheu Y.
November 29, 2022
Haramaya University
Department of computer science
Chapter-1
Introduction
By Leweyehu Y.
November 29, 2022
3
 Introduction
 Two orthogonal view of software
 Software development process model
 Object oriented system methodology
Outline
Leweyehu Y
4
Software can be defined 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
 Software Engineering can 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
Good processes lead to good software
 Good processes reduce risk
Fundamental assumptions of software engineering
Leweyehu Y
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
8
Software Engineering Concepts
Leweyehu Y
9
Requirements Elicitation
Analysis
Object Design
System Design
Implementation
Validation/testing
Software Engineering Activities
Leweyehu Y
10
 A model is 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
 There are two 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
Traditional Approach
 Collection of programs or functions
 A system that is designed for performing certain actions
 Algorithms + Data Structures = Programs
Two orthogonal view of software
Leweyehu Y
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
14
Two orthogonal view of software
Leweyehu Y
15
 A software development 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
 Generic Process Framework 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
 There are various 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
 Waterfall model is 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
19
Waterfall Model
Leweyehu Y
20
 The basic idea 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
21
Prototyping Model
Leweyehu Y
22
 An iterative life 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
23
Iterative Model
Leweyehu Y
24
 Agile development model 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
25
Agile process Model
Leweyehu Y
26
 XP is a 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
OBJECT ORIENTEDAPPROACH…
• 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 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
BENEFITS OF OBJECT ORIENTATION
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
WHY OBJECT ORIENTATION
OO Methods 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
Continued…
Others
• Higher level of abstraction
• Seamless transition among different phases of
software development.
• Encouragement of good programming technique.
• Promotion of reusability.
Leweyehu Y
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
OBJECTBASICS
Goals:
 The developer should
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
OBJECT ORIENTEDPHILOSOPHY
The programming languages 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
Conti…
Object-Oriented Programming Concepts allows 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
TRADITIONALAPPROACH
The traditional approach to 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
OBJECT-ORIENTEDAPPROACH
OO approach is more 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
EXAMPLES OFOBJECTORIENTED SYSTEMS
In OO 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
WHATISAN OBJECT?
The term object 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
OBJECT’SATTRIBUTES
Attributes represented by data type.
They describe objects states.
In the Car example the car’s attributes are:
color, manufacturer, cost, owner, model, etc.
Leweyehu Y
40
OBJECT’SMETHODS
Methods define objects behaviour 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
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
ATTRIBUTES
I am a Car.
I know my color,
manufacturer,
cost, owner and
model.
Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill
Leweyehu Y
43
IT DOES THINGS (METHODS)
I know how to
compute
my payroll.
Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill
Leweyehu Y
METHODS
I know how
to stop.
Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill
45
Object is whatever an 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
OBJECTS AREGROUPED IN CLASSES
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
47
Employee
Class
John object Jane object Mark object
Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill
Leweyehu Y
48
Thank You!
Leweyehu Y