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

Chapter 1 - Introduction

The document provides an overview of software engineering concepts including: 1) It describes two views of software - the traditional/structural approach and object-oriented approach, noting benefits of the object-oriented approach like easier transitions between phases and shorter project durations. 2) It outlines several software development process models like waterfall, v-model, rapid application development, incremental, and spiral models. The waterfall model is described in more detail with its phases of requirements, design, implementation, testing, and maintenance. 3) It introduces object-oriented system development methodology, noting benefits like easier adaptation to changes, more robustness, and greater reuse. Basic concepts of objects, classes, attributes, and methods are also

Uploaded by

Bonsa Mesganaw
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views

Chapter 1 - Introduction

The document provides an overview of software engineering concepts including: 1) It describes two views of software - the traditional/structural approach and object-oriented approach, noting benefits of the object-oriented approach like easier transitions between phases and shorter project durations. 2) It outlines several software development process models like waterfall, v-model, rapid application development, incremental, and spiral models. The waterfall model is described in more detail with its phases of requirements, design, implementation, testing, and maintenance. 3) It introduces object-oriented system development methodology, noting benefits like easier adaptation to changes, more robustness, and greater reuse. Basic concepts of objects, classes, attributes, and methods are also

Uploaded by

Bonsa Mesganaw
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 29

Software Engineering

Instructor: Mohammed Oumer[M.Sc.]


[email protected]
Samara University
Chapter One: Introduction
This Chapter Covers:
 Two Orthogonal View of Software
 Software Development Process Models
 Object Oriented System Development Methodology
Two Orthogonal View of Software
Traditional (structural) Approach: focuses on function and
procedures, different styles and methodologies for each step
of process.

 Moving from one phase to another phase is complex.


 Increases duration of project.

An Object-Oriented Approach: focuses on object, classes,


modules that can be easily replaced, modified and reused.

 Moving from one phase to another phase is easier.


decreases duration of project.
Software Development Process Models
Software Processes
The software process is a description of the process which
guides the software engineers as they work. A structured
set of activities required to develop a software system.

There are many different software processes but all must


include four activities.

Specification - The functionality of the software and


constraints on its operation must be defined.
Design and implementation - Software to meet the
specification must be produced.
Cont.
Validation - Software must be validated to ensure that it
does what the customer wants.
Evolution - The software must evolve to meet changing
customer needs.
Software Process
The sequence of steps to develop and maintain software.

Sets out the technical and management framework for


applying methods, tools and people to the software task.
Software processes are complex and involve a large
number of activities.
SDLC Model - A framework that describes the activities
performed at each stage of a software development project.
Software Development Life-Cycle
A project is a set of activities, interactions and results.
A life-cycle or a software process is the organisational
framework for a project.

A life-cycle…
 is a finite and definite period of time.
 starts when a software product is conceived (think).
 ends when the product is effective for use.

Any life-cycle is organised in (composed of) phases.


A type of SDLC is known as a Development Model.
Development Models
A particular interaction configuration (layout) of
development phases leading to a final software product.

There are different development models from those : -


 Waterfall
 V-Model (reading assignment)
 Evolutionary Prototyping
 Rapid Application Development (RAD) (reading
assignment)
 Incremental (reading assignment)
 Spiral
Waterfall Model Phases
Requirements Analysis and Definition - The system’s
services, constraints, and goals are established by
consultation (dialogue) with system users. They are then
defined in detail and serve as a system specification
(documented in a requirement specification document).

System and Software Design - involves identifying and


describing the fundamental software system abstractions and
their relationships. Specifying HW and helps in defining the
overall system architecture.

Implementation and Unit Testing - the software design is


realized as a set of programs or program units.
Unit testing involves verifying that each unit meets its
specification.
Waterfall Model Phases
Integration and System Testing - The individual program
units or programs are integrated and tested as a complete
system to ensure that the software requirements have been
met.
After testing, the software system is delivered to the
customer.

Operation and Maintenance - this is the longest life cycle


phase.
The system is installed and put into practical use.
Maintenance involves correcting errors which were not
discovered in earlier stages of the life cycle.
Waterfall Model
Requirements
definition

System and
software design

Implementation
and unit testing

Integration and
system testing

Operation and
maintenance
Advantage and Disadvantage of Waterfall Model

Advantage of Waterfall Model


 Simple and easy to understand and use.
 Phases are processed and completed one at a time.
 Milestones (significant stage) are well understood.
 Sets requirements stability (requirements are very well
understood).
Advantage and Disadvantage of Waterfall Model

Disadvantage of Waterfall Model


 Not a good model for complex and object oriented
projects.
Can give a false impression (sense) of progress.
 It is difficult to measure progress within stages.
 Little opportunity for customer to preview the system.
Difficulty of accommodating change after the process is
underway.
Late testing maturity (does not allow identifying any
challenges early).
When to Use The Waterfall Model
Some situations where the use of waterfall model is most
appropriate are :-
Requirements are very well known (not supposed to change
in future).
Technology is understood and is not dynamic.
The project is short.
There are no ambiguous requirements.
Evolutionary Prototyping
Developers build a prototype during the requirements
phase.
Prototype is evaluated by end users.
Users give corrective feedback.
Developers further refine the prototype.
When the user is satisfied, the prototype code is brought up
to the standards needed for a final product.
Evolutionary Prototyping Advantages
Customers can see the system requirements as they are
being gathered.
Developers learn from customers.
A more accurate end product.
Unexpected requirements accommodated.
Allows for flexible design and development.
Meets user requirements.
Evolutionary Prototyping Disadvantage
Process may continue forever (scope creep – refers to
changes, continuous or uncontrolled growth in a projects
scope, at any point after the project begins).
Poor documentation due to continuously changing
customer requirements.
It is very difficult for developers to accommodate all the
changes demanded by the customer.
When to Use Evolutionary Prototyping
Requirements are unstable or have to be clarified.
New product, original development.
Extremely beneficial in the development of systems that
require a high level of user interaction.
Spiral Model
Determine objectives and Find Alternatives
This phase includes requirement gathering and analysis.
Based on the requirements, objectives are defined and
different alternate solutions are proposed.

Risk Analysis and Resolving


All the proposed solutions are analyzed and any potential
risk is identified, analyzed, and resolved.

Identify risks (lack of experience, new technology, etc).


Spiral SDLC Model
Develop and Test
Typical activities:
This phase includes actual implementation of the
different features.
All the implemented features are then verified with
through testing.
Review and Planning of The Next Phase
Typical activities
 In this phase, the software is evaluated by the customer.
 It also includes risk identification and monitoring like
cost overrun or schedule slippage.
Spiral SDLC Model
Spiral Model Advantages
Perfect for projects that are “large and complex” in nature
as continuous prototyping and evaluation help in
mitigating (reduce) any risk.

Because of its risk handling ability, the model is best suited


for projects which are very critical.

Since customer gets to see a prototype in each phase, so


there are higher chance of customer satisfaction.
Spiral Model Disadvantage
Because of the prototype development and risk analysis in
each phase, it is very expensive and time taking.

It is not suitable for simpler and smaller project because of


multiple phases (model is complex).

Project deadlines can be missed since the number of phases


is unknown in the beginning and frequent prototyping and
risk analysis can make things worse.
When to Use Spiral Model
When creation of a prototype is appropriate.
When costs and risk evaluation is important.
For medium to high-risk projects.
Users are unsure of their needs.
Significant changes are expected (research and
exploration).
O-O System Development Methodology
Object oriented systems development methodology
develops software by building objects that can be easily
replaced , modified and reused.
It is a system of cooperative and collaborating objects.
Each objects has attributes (data) and methods (functions).

why an object oriented?


Object oriented systems are
Easier to adapt to changes
More robust (able to recover from unexpected failure).
Easier to maintain.
Promote greater design and code reuse.
Basic C oncept of O bject
What is an object?
Informally , an object represents an entity, either physical
or conceptual.
The term object means a combination of data and logic
that represents some real world entity.
Classes are used to distinguish one type of object from
another.
A Class = a set of objects that share a common structure
and behavior.
Classes are an important mechanism for classifying objects.
In an OO system, a method or behavior of an object is
defined by its class.
Attributes and Methods
Objects can be described by their properties (attributes ) and
methods (operations).
Assignment 1
Explain in Detail
1 - Process Assessment Models
2 - Software Process Metrics

Reading Assignment
An object oriented philosophy
Quiz

List five (5) major phases in


waterfall model?
Thank You ...

You might also like