Download as pdf or txt
Download as pdf or txt
You are on page 1of 29

Software Engineering

Instructor: Mohammed Oumer[M.Sc.]


momoumer2014@gmail.com
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.

The sequence of steps to develop and maintain software.

Sets out (decide) 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.
Cont.
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.
Validation - Software must be validated to ensure that it
does what the customer wants.
Evolution - The software must evolve to meet changing
customer needs.

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 up).
 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.
Cont…
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.
Cont…
Requirements
definition

System and
software design

Implementation
and unit testing

Integration and
system testing

Operation and
maintenance
ADV and Disad 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).
ADV and Disad of Waterfall Model
Disadvantage of Waterfall Model
 Not a good model for complex and object oriented
projects (requirement changes frequently).

Little opportunity for customer to preview the system.


Difficulty of accommodating (fit in with) 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 Disad

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 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 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 (bad).
When to Use Spiral Model

When creation of a prototype is appropriate (suitable).

When risk evaluation is important.

For medium to high-risk projects.

Users are unsure (unconfident) of their needs.

Significant changes are expected.


O-O S/M 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


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 Concept of Object
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 is 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 with an example? Except Q3

1 - Process Assessment Models

2 - Software Process Metrics

3 - An object oriented philosophy


Quiz 5%

List five (5) major phases in


waterfall model?
Thank You ...

You might also like