Chapter One
Introduction
Outline
Introduction to Software Engineering
Software Process
Software development life cycle and process models
Process assessment models
Software process metrics
Two Orthogonal view of software.
Overview of UML
Basic Elements of an Object Oriented Model
Characteristics of Object Oriented Model
Why an object oriented
Benefits and Drawbacks
Difference between Traditional and Object Oriented Model
Object-Oriented Software Engineering-chapter one 01/26/2026 2
Introduction
Software engineering is about the creation of large pieces of software, thousands of lines of code
and involve many human effort.
In categorizing software, we can distinguish two major types:
system software
Applications software
Software Engineering:- the process of solving customers’ problems by the systematic development
and evolution of large, high-quality software systems within cost, time and other constraints.
Software Engineering is about methods, tools and techniques used for developing software.
Object-Oriented Software Engineering-chapter one 01/26/2026 3
Software process
Many different software processes but all involve:
Specification – defining what the system should do
Design and implementation – defining the organization of the
system and implementing the system
Validation – checking that it does what the customer wants.
Evolution – changing the system in response to changing customer
needs.
Object-Oriented Software Engineering-chapter one 01/26/2026 4
Software Development life cycle (SDLC)
The process of delivering high-quality product that is as per the customer’s requirement
SDLC stages cover the complete life cycle of software
Feasibility study(practical, achievable, and beneficial), requirement
gathering, and analysis
Design
Implementation or coding
Testing
Deployment and maintenance
Object-Oriented Software Engineering-chapter one 01/26/2026 5
Software Development Life Cycle Models
SDLC model is a descriptive representation of the software development cycle.
Waterfall Model:
It is also known as the linear sequential model.
outcome of one phase is the input for the next phase.
Development of the next phase starts only when the previous phase is
complete.
Reading Assignment
Advantage and disadvantage of Waterfall Model
Object-Oriented Software Engineering-chapter one 01/26/2026 6
Count…
V- shaped Model is also known as Verification and Validation Model
development and testing go parallel
Object-Oriented Software Engineering-chapter one 01/26/2026 7
Count…
Iterative & Incremental Development Model:- Once the iteration is completed, a product is verified and is
delivered to the customer for their evaluation and feedback.
Customer’s feedback is implemented in the next iteration along with the newly added feature.
Phases of Iterative & Incremental Development Model:
Inception Phase: Includes the requirement and scope of the Project
Elaboration Phase: which covers the risk identified in the inception phase and also fulfills the non-functional
requirements.
Construction Phase: ready to be deployed and is created through analysis, designing, implementation, and testing of
the functional requirement.
Transition Phase: In the Transition Phase, the product is deployed in the Production environment .
01/26/2026 8
Object-Oriented Software Engineering-chapter one
Count…
Flow of activities in Iterative Incremental model software development life cycle
Object-Oriented Software Engineering-chapter
one 01/26/2026 9
Process assessment models
Examination and checking of the software processes used by an organization, based on a process model to
assure software quality.
The assessment includes:
Identification and characterization of current practices
Identifying areas of strengths and weaknesses
Ability to control software quality, cost, and schedule.
Some of software process assessment standards are ISO, IEEE, PSS-05
ISO (International Organization for Standardization)
IEEE (Institute of Electrical and Electronics Engineers)
PSS-05 (ESA Software Engineering Standards)
Object-Oriented Software Engineering-chapter one 01/26/2026 10
Count…
A software assessment (or audit) can be of three types.
A self-assessment (first-party assessment) is performed internally by an organization's own
personnel.
A second-party assessment is performed by an external assessment team or the organization is
assessed by a customer.
A third-party assessment is performed by an external party or (e.g., a supplier being assessed by
a third party to verify its ability to enter contracts with a customer).
Object-Oriented Software Engineering-chapter 01/26/2026 11
one
Software process metrics
A software metric is a measure of software characteristics that are quantifiable or countable.
Types of Software matrix:
1. Formal code metrics
Such as Lines of Code (LOC), code complexity, Instruction Path Length, etc.
In modern development environments, these are considered less useful.
2. Developer productivity metric
Such as active days, assignment scope, and efficiency
These metrics can help you understand how much time and work developers are investing in a software
project.
3. Agile process metrics
Such as lead time, cycle time and velocity.
They measure the progress of a developer team in producing working, shipping-quality software features.
Object-Oriented Software Engineering-chapter one 01/26/2026 12
Count…
4. Operational metrics
Such as Mean Time Between Failures (MTBF) and Mean Time to Recover (MTTR).
This checks how software is running in production and how effective operations staff are at
maintaining it.
5. Test metrics
Such as code coverage, percent of automated tests, and defects in production.
This measures how comprehensively a system is tested, which should be correlated with software
quality.
6. Customer satisfaction
Such as Net Promoter Score (NPS), Customer Effort Score (CES) and Customer Satisfaction Score
(CSAT).
The ultimate measurement of how customers experience the software and their interaction with the
software vendor.
Object-Oriented Software Engineering-chapter one
01/26/2026 13
Two Orthogonal view of software
Traditional Approach Procedural /Structured paradigm
Collection of programs or functions.
A system that is designed for performing certain actions.
Algorithms + Data Structures = Programs.
Software Development Models (Waterfall, Spiral, Incremental, etc…
Software is organized around the notion of procedures
Helps reduce the system’s complexity.
Groups together the pieces of data that describe some entity
Object-Oriented Software Engineering-chapter one 01/26/2026 14
cont’d
Object oriented paradigm:-
An approach to the solution of problems in which all computations are
performed in the context of objects
It is developed by SW engineering professionals who deal with large and
complex systems in domains such as aerospace and process control.
Views a system as a collection of interacting objects which are capable of their
own behavior (called methods).
This allows the objects to interact with each other.
Object-Oriented Software Engineering-chapter one 01/26/2026 15
cont’d
It views a system as a bottom up approach
Organizing procedural abstractions in the context of data abstractions
A running program can be seen as a collection of objects collaborating to perform a given task
It uses UML (Unified Modeling Language)
Object-Oriented Software Engineering-chapter one 01/26/2026 16
Overview of UML(Unified Modeling
UML focuses Language)
on three architectural views of a system
Functional: describes the external behavior of the system from the perspective of
the system perspective. E.g. use-case diagram
Static: this is described in terms of attributes, methods, classes, relationships and
messages. E.g. class responsibility collaboration (CRC cards), class diagrams and
object diagram.
Dynamic: represented by sequence diagram, collaboration and state charts.
Object-Oriented Software Engineering-chapter one 01/26/2026 17
Basic elements of object oriented model
Object: merges the data and process concerns into singular constructs called objects.
Object – A person, place, thing, event, concept, screen, or report. It has both data (attributes)
and functionality (methods). E.g. Amanuel, Anteneh, etc.
For example in case of a Banking System, a customer is an object, a checkbook is an object,
and even an account is an object.
It models a system in terms of its objects and their interactions and its structured approach is
record in a database.
In doing so it uses such diagrams as Use-Case diagrams, class diagrams and etc.
Object-Oriented Software Engineering-chapter one 01/26/2026 18
cont’d
Class: A class is a collection of similar objects.
It is a template where certain basic characteristics of a set of objects are
defined.
The class defines the basic attributes and the operations of the objects of that
type.
Defining a class does not define any object, but it only creates a template.
For objects to be actually created instances of the class are created as per the
requirement of the case.
Object-Oriented Software Engineering-chapter one 01/26/2026 19
cont’d
Attribute – It is something that a class knows. E.g. ID No.
Structured equivalent may be a “Data Element” in a database
Method – It is something a class does & it modifies attributes of an object.
E.g. Pay Tuition
Structured equivalent may be functions or procedures.
Some methods return a value (like a function) while some don’t (like a
procedure)
Object-Oriented Software Engineering-chapter one 01/26/2026 20
Characteristics of OO
Encapsulation:- means data structures and the operations that
manipulate them are merged in a single package.
Inheritance:- the mechanism where features in a hierarchy
inherit from super-classes to subclasses.
Polymorphism:- the mechanism by which several methods can
have the same name and implement the same abstract
operation.
Object-Oriented Software Engineering-chapter one 01/26/2026 21
Potential Benefit of OO
Increase reusability: provides opportunities for reuse through the concept of
inheritance, polymorphism, encapsulation, modularity, coupling and cohesion.
New applications can use the existing modules, thereby reduces the development
cost and cycle time
Increased extensibility: it is easy to extend existing OO applications. E.g. to add
administrator to a university information system(existing system).
Object-Oriented Software Engineering-chapter one 01/26/2026 22
cont’d
Improved quality: OO provides greater opportunities for users to participate in the development
processes.
Financial benefit: enables you to build systems better, faster and cheaper
Increased chance of project success: a project is successful if it is on time, on budget and meets the
needs of its users.
Recued maintenance budget: SW organizations currently spend significant resources maintained
and operations SW.
B/c of long waiting list of work to be done, it takes significant time to get new project started,
maintenance burden.
Object-Oriented Software Engineering-chapter one 01/26/2026 23
Potential Draw backs of OO
OO requires a greater concentration on requirements, analysis and design. You
can’t build a system that meets the needs of your users if you don’t know what
those needs are.
Developers must work closely with users: involving users in development
process is easier said than done and it will take months or even years.
Requires a complete change in mindset on the part of individuals: systems are
now made up of a bunch of interacting objects that have both functionality and
data.
Object-Oriented Software Engineering-chapter one 01/26/2026 24
Why OO?
Provides advantage at management and technical levels
Faster and cheaper development of programs
Object reuse
Easier to maintain
Easier to adapt
Easier to scale (Large system can be created by assembling reusable subsystem )
Object-Oriented Software Engineering-chapter one 01/26/2026 25
Difference between Traditional and Object Oriented Approach
Object-Oriented Software Engineering-chapter one 01/26/2026 26
Reading assignment
1. Write short summary about the following SDLC models including (definition, properties, advantage, and
disadvantage)
A. Spiral Model
B. Agile model
C. Prototype model
2. Briefly discussed on the application of Encapsulation, Inheritance, Polymorphism and
Modularity?
3. Write short and price notes on SDLC stages.
Feasibility study, requirement gathering, and analysis
Design
Implementation or coding
Testing
Deployment and maintenance
Object-Oriented Software Engineering-chapter 01/26/2026 27
one
Thank you!