0% found this document useful (0 votes)
2 views28 pages

Chapter 1 Inroduction

Chapter One introduces software engineering, emphasizing the systematic development of high-quality software systems and the software development life cycle (SDLC). It discusses various SDLC models, including Waterfall, V-shaped, and Iterative & Incremental, along with software process metrics and assessment models. The chapter also highlights the characteristics, benefits, and drawbacks of object-oriented models compared to traditional approaches.

Uploaded by

wondebelete92
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views28 pages

Chapter 1 Inroduction

Chapter One introduces software engineering, emphasizing the systematic development of high-quality software systems and the software development life cycle (SDLC). It discusses various SDLC models, including Waterfall, V-shaped, and Iterative & Incremental, along with software process metrics and assessment models. The chapter also highlights the characteristics, benefits, and drawbacks of object-oriented models compared to traditional approaches.

Uploaded by

wondebelete92
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

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!

You might also like