0% found this document useful (0 votes)
37 views

CH 1software

This document provides an overview of object-oriented software engineering and various software development models. It discusses traditional and object-oriented approaches, the software development life cycle, and agile models like waterfall, V-model, incremental, RAD, iterative, and agile. The key advantages and disadvantages of each model are outlined. The document aims to introduce the basic concepts of software engineering processes and methodologies.

Uploaded by

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

CH 1software

This document provides an overview of object-oriented software engineering and various software development models. It discusses traditional and object-oriented approaches, the software development life cycle, and agile models like waterfall, V-model, incremental, RAD, iterative, and agile. The key advantages and disadvantages of each model are outlined. The document aims to introduce the basic concepts of software engineering processes and methodologies.

Uploaded by

Amare Baye
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 37

Object-Oriented Software

Engineering

Introduction

1 BONGA University,computer 4/13/2022


science(GDRMAN)
Introduction
Software Engineering
 a modeling activity
 a problem-solving activity
 a knowledge acquisition activity
 a rationale-driven activity
A software process is a set of activities that leads to the
production of a software product.
Software = program + documentation +operating
procedures

2 BONGA University,computer 4/13/2022


science(GDRMAN)
Introduction

Software Engineering
 concerned with the theories, methods and tools which
are needed to develop software product.
 Aim- the production of dependable software, delivered
on time and within budget, that meets the user’s
requirement
 also produce documents such as software design, user
manual, and so on.
 Generally ,SE is the process of solving customer’s
problems by systematic development and
evolution of large , high-quality software systems
within cost, time and other constraints.

3 BONGA University,computer 4/13/2022


science(GDRMAN)
Cont…
 Characteristics of software product includes:-
 Usability - be useful and usable to make people’ s lives
easier and better
 Maintainability - meet the changing requirements
 Dependability - reliability , security and safety
 Efficiency - should not make wasteful use of system
resources such as memory and processor
 user friendly
 Reusability

4 BONGA University,computer 4/13/2022


science(GDRMAN)
TWO ORTHOGONAL VIEWS OF SOFTWARE:
Traditional technique
Object oriented methodologies

TRADITIONAL APPROACH OBJECT ORIENTED SYSTEM


DEVELOPMENT approach

 Collection procedures(functions)  Combination of data and functionality


 Focuses on function and  Focuses on object, classes, modules
procedures, different styles and that can be easily replaced, modified
methodologies for each step of and reused.
process  Moving from one phase to another
 Moving from one phase to another phase is easier.
phase is complex.  decreases duration of project
 Increases duration of project  Reduces complexity and redundancy
 Increases complexity

5 BONGA University,computer 4/13/2022


science(GDRMAN)
Software development life cycle
A framework defining tasks performed at each step in software development
process

6 BONGA University,computer 4/13/2022


science(GDRMAN)
Software development process models
Waterfall model
 Waterfall model :'Linear sequential model' or 'Classic
life cycle model'.
 Some situations situations where the use of Waterfall model is most
appropriate are −
 Requirements are very well documented, clear and fixed.
 Product definition is stable.
 Technology is understood and is not dynamic.
 There are no ambiguous requirements.
 Full resources with required expertise are available to support the product.
 The project is short.

7 BONGA University,computer 4/13/2022


science(GDRMAN)
Cont…
Merits of Waterfall model
 easy to manage.
 It avoids overlapping of phases
 small projects
 quality is more important as compared to the cost of the project.
Demerits of waterfall
 Not good for complex and object oriented projects.
 It is a poor model for long duration projects.
 The problem is uncovered, until the software testing.
 The amount of risk is high and uncertainty.
 Cannot accommodate changing requirements.

8 BONGA University,computer 4/13/2022


science(GDRMAN)
V-model
 The V-model is an SDLC model where execution of processes happens in a sequential manner in a V-
shape.
 The development the V-Model is an extension of the waterfall model and is based on the association
of a testing phase for each corresponding development stage.
 This means that for every single phase in the development cycle, there is a directly associated testing
phase.
 This is a highly-disciplined model and the next phase starts only after completion of the previous
phase.
V model is known as Verification and Validation model.
 processes are executed sequentially and parallelly.
Advantages of V-model
 easy and simple to use.
 saves more time.
 less chances of error occurred at final phase of testing.
 suitable for small projects
Disadvantages of V-model
V-model is
 not suitable for large and composite projects.
 If the requirements are not constant then this model is not acceptable.

9 BONGA University,computer 4/13/2022


science(GDRMAN)
Incremental model
 The first increment in this model is generally a core product.
 Each increment builds the product and submits it to the customer for
suggesting any modifications.
 The next increment implements the customer's suggestions and add
additional requirements in the previous increment.
 This process is repeated until the product is completed.
For example, the word-processing software is developed using the
incremental model.

 Characteristics of an Incremental module includes


 System development is broken down into many mini development projects
 Partial systems are successively built to produce a final total system
 Highest priority requirement is tackled first
 Once the requirement is developed, requirement for that increment are
frozen

10 BONGA University,computer 4/13/2022


science(GDRMAN)
Cont…
Merits of Incremental model
 flexible because the cost of development is low and
 initial product delivery is faster.
 It is easier to test and debug in the smaller iteration.
 The customers can respond to its functionalities after every increment.
 Demerits of the incremental model
 The cost of the final product may cross the cost initially estimated.
 requires a very clear and complete planning.
 The planning of design is required before the whole system is broken into
smaller increments.
 The demands of customer for the additional functionalities after every
increment causes problem in the system architecture.

11 BONGA University,computer 4/13/2022


science(GDRMAN)
Cont…

12 BONGA University,computer 4/13/2022


science(GDRMAN)
Rad model
 RAD is a Rapid Application Development model.
 software product is developed in a short period of time.
 the requirements are divided into groups.
 RAD model can be applied successfully to the projects in which clear modularization is
possible. If the project cannot be broken into modules, RAD may fail.
 The following pointers describe the typical scenarios where RAD can be used −
 RAD should be used only when a system can be modularized to be delivered in an
incremental manner.
 It should be used if there is a high availability of designers for Modelling.
 RAD SDLC model should be chosen only if domain experts are available with relevant
business knowledge.
 It Should be used where the requirements change during the project and working prototypes
are to be presented to customer in small iterations of 2-3 months.
 Merits of RAD Model
 application development and delivery are fast.
 flexible, if any changes are required.
 Demerits of RAD Model
 not a good choice for long term and large projects.
 High dependency on Modelling skills.
 Requires user involvement throughout the life cycle.

13 BONGA University,computer 4/13/2022


science(GDRMAN)
Cont…

14 BONGA University,computer 4/13/2022


science(GDRMAN)
Iterative model

 This process may be described as an "evolutionary acquisition" or "incremental build"


approach."
In the Iterative model, iterative process starts with a simple implementation of a small set of the
software requirements and iteratively enhances the evolving versions until the complete system is
implemented and ready to be deployed.
 An iterative life cycle model does not attempt to start with a full specification of
requirements. Instead, development begins by specifying and implementing new implementing
just part of the software, which is then reviewed to identify further requirements. This process
is then repeated, producing a new version of the software at the end of each iteration of the
model.
large application of software development is divided into smaller chunks and smaller parts of
software
 Merits of an Iterative Model
 Produces working software rapidly and early
 easy to test and debug in a smaller iteration.
 It is less costly to change scope and requirements.
 Demerits of an Iterative Model
 The system architecture is costly.
 not suitable for smaller projects.

15 BONGA University, computer 4/13/2022


science(GDRMAN)
Agile model
 incremental + iterative process models.
 focuses on the users satisfaction
 breaks the product phases into individual iterations.
 Every iteration includes cross functional teams working
on different areas such as planning, requirements, analysis,
design, coding, unit testing and acceptance testing.
 At the end of an iteration working product shows to the
users.

16 BONGA University, computer 4/13/2022


science(GDRMAN)
Cont…
 Merits of Agile model
 Customers are satisfied
 Regular delivery of working software.
 Face to face interaction between the customers,
developers and testers and it is best form of
communication.
 Even the late changes in the requirement can be
incorporated in the software.
 Demerits of Agile model
 It is totally depends on customer interaction.
 Documentation is less, so the transfer of technology to
the new team members is challenging.
17 BONGA University,computer 4/13/2022
science(GDRMAN)
Spiral model
cyclic process
 Prototype model + sequential or waterfall model.
 This model is a risk driven process model.
 Every phase in the Spiral model is start with a design goal and ends with the client
review.
 The development team adds the functionality in every spiral till the application is
ready.

18 BONGA University,computer 4/13/2022


science(GDRMAN)
Cont…
 Merits of Spiral Model
 It reduces high amount of risk.
 It is good for large and critical projects.
 It gives strong approval and documentation control.
 the software is produced early
 Demerits of Spiral Model
 It can be costly to develop a software model.
 It is not used for small projects.

19 BONGA University,computer 4/13/2022


science(GDRMAN)
Prototype model
 The Software Prototyping refers to building software application prototypes which displays
the functionality of the product under development, but may not actually hold the exact logic
of the original software.
 Software an Software prototyping is becoming very popular as a software development
model, as it enables to understand customer requirements at an early about early stage of
development.
 It helps get valuable feedback from the customer and helps software designers and developers
understand about what what exactly is expected from the product under development.
 Merits of Prototyping Model
 users are actively involved.
 the best platform to understand the system by the user.
 Earlier error detection takes place
 It gives quick user feedback for better solutions.
 Demerits of Prototyping Model
 The client involvement is more
 It is a slow
 Many changes can disturb the development team.
 It is a throw away prototype when the users are confused with it.

20 BONGA University,computer 4/13/2022


science(GDRMAN)
Object oriented paradigm:
Object oriented paradigm:
 The object-oriented paradigm is an approach to the solution of problems in the
context of objects.
 views the world as a set of objects.
 OO is a paradigm for describing object and their relation ship. Object and relations
are stand close to real world concepts.
Eg: a bank account object in a bank product corresponds to an actual bank account in
the bank .
 In the object-oriented paradigm, a running program can be seen as a collection of
objects collaborating to perform a given task

For many years


 OO was used to denote software development approach that used OO
programming languages (Java, C++, Smalltalk …)
Today
 OO encompasses a complete view of SE
 The benefits of object-oriented technology are enhanced if it is addressed early-on
and throughout the software engineering process.

21 BONGA University,computer 4/13/2022


science(GDRMAN)
Object-Oriented Concepts and Principles
Objects - entity in the real world
 Exist
-Nature, Human-made, Product,. . .
 Can be
-Categorized, described , organized, combined, manipulated and
created

eg: - In a payroll , there would be objects representing each individual


employee.
- In student registration system, there would be objects representing
each student, each course and each faculty member.

 an abstraction that enables us to model the world in ways that help


us better understand and navigate it

22 BONGA University,computer 4/13/2022


science(GDRMAN)
Cont…
 object encapsulates data and operation/ function. I.e.
- Objects are responsible for managing their own private states,
and for offering services to other objects when is it requested.
-
- Encapsulation means to enclose data & operation under one
packaged

 The objects are instances of classes,


-Objects are classified into classes, and objects belonging to the
same class have common properties, such as attributes and
operations

23 BONGA University,computer 4/13/2022


science(GDRMAN)
Classes

 class represents and defines a set of similar objects, its


instances. All the objects with the same properties and
behavior are instances of one class.

Class
 Generalized description
 Collection of Similar objects
 Superclass and subclass

Attributes
 Describe the class or object in some way

24 BONGA University,computer 4/13/2022


science(GDRMAN)
Operations

 An object encapsulates data and the algorithms that process


the data. These algorithms are called operations, methods, or
services
 Each of the operations
- Provides a representation of one of the behaviors of the object

Messages
 the means by which objects interact
 Stimulates some behavior to occur in the receiving object
 the behavior is accomplished when an operation is executed
25 BONGA University,computer 4/13/2022
science(GDRMAN)
Encapsulation and Inheritance

 characteristics of OO systems
 Encapsulation
 Inheritance

 Encapsulation means data structures and the operations that


manipulate them are merged in a single package

 benefits:
 The internal implementation details of data and procedures
are hidden from the outside world(information hiding)
-this reduces the propagation of side effects when changes occur

26 BONGA University,computer 4/13/2022


science(GDRMAN)
Cont…
 Data structures and the operations that manipulate
them are merged in a single named entity- the class.
-This facilitates component reuse

 An object that sends a message need not be


concerned with the detail of internal data structures.
-the system coupling tends to be reduced.

27 BONGA University,computer 4/13/2022


science(GDRMAN)
Cont…
 Inheritance
 inheritance enables us to organize concepts into hierarchies
 At the top of the hierarchy is a general concept(superclass)
and at the bottom of the hierarchy are the most specialized
concepts(subclass)

 A subclass Y inherits all of the attributes and operations


associated with its superclass, X
 All data structures and algorithms originally designed and
implemented for X are immediately available for Y

28 BONGA University,computer 4/13/2022


science(GDRMAN)
Cont…

29 BONGA University,computer 4/13/2022


science(GDRMAN)
Why ???

 Provides advantage at management and technical levels


 Faster and cheaper development of programs
 Object reuse
 Easier to maintain
 Structure inherently decoupled: if during maintenance
implementation details are changed within an object, no other parts of product
need to be modified.
 Easier to adapt
 Easier to scale (Large system can be created by
assembling reusable subsystem )

30 BONGA University,computer 4/13/2022


science(GDRMAN)
Software Engineering Development
Activities
 Development activities
 Requirements Elicitation
 Analysis
 Design
 Implementation
 Testing
 Maintenance
 Support

31 BONGA University,computer 4/13/2022


science(GDRMAN)
Cont…
Requirements Elicitation
 the purpose of the system define by the client and developers
 the system functionality, the interaction between the user and
the system & the environmental conditions in which the system
functions will be identified
 The result of this activity is a description of the system in
terms of actors and use cases.
 Actors - the external entities that interact with the system.
- e.g. Student, manager, a central bank computer,
 Use cases are general sequences of events that describe all the
possible actions between an actor and the system
 e.g. Login ,withdrawal, booking
32 BONGA University,computer 4/13/2022
science(GDRMAN)
Cont…
Analysis
 the requirements elicited is structured and formalized
 the information expressed in a formal or semiformal
notation
 focuses on producing a model of the system, the analysis model
 It is composed of three models
 the functional model, represented by use cases and scenarios
 the analysis object model, represented by class and object diagrams
 and the dynamic model, represented by state machine and sequence
diagrams

 The result of analysis is a system model annotated with attributes,


operations, and associations.

33 BONGA University,computer 4/13/2022


science(GDRMAN)
Cont…
System Design

 During system design the system is decompose into smaller


subsystems that can be realized by individual teams

 Developers also select strategies for building the system, such


as the hardware/software platform on which the system will
run, the persistent data management strategy, the access
control policy, etc.
 The result of system design is a subsystem decomposition, and
a deployment diagram representing the hardware/software
mapping of the system

34 BONGA University,computer 4/13/2022


science(GDRMAN)
Cont…
Implementation
 During implementation, developers translate the
solution domain model into source code.
 includes implementing the attributes and methods of
each object and integrating all the objects

35 BONGA University,computer 4/13/2022


science(GDRMAN)
Cont…
Testing
 Testing is the process of analyzing a system to detect the
differences between specified (required) and observed
(existing) behavior
 Unit testing finds differences between a specification of an
object and its realization as a component.
 Structural testing finds differences between the system
design model and a subset of integrated subsystems.
 Functional testing finds differences between the use case
model and the system.
 Performance testing finds differences between
nonfunctional requirements and actual system performance

36 BONGA University,computer 4/13/2022


science(GDRMAN)
Thank you!!!
?
?
?

37 BONGA University,computer 4/13/2022


science(GDRMAN)

You might also like