0% found this document useful (0 votes)
66 views30 pages

Lec 2

The document discusses software processes and models. It covers the concepts of plan-driven and agile processes. Specific process models covered include waterfall, incremental development, and reuse-oriented engineering. Waterfall involves separate sequential phases while incremental development interleaves activities. Reuse focuses on building systems from existing components. The key activities in requirements engineering, design, and implementation are also outlined.

Uploaded by

Samah aldawood
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)
66 views30 pages

Lec 2

The document discusses software processes and models. It covers the concepts of plan-driven and agile processes. Specific process models covered include waterfall, incremental development, and reuse-oriented engineering. Waterfall involves separate sequential phases while incremental development interleaves activities. Reuse focuses on building systems from existing components. The key activities in requirements engineering, design, and implementation are also outlined.

Uploaded by

Samah aldawood
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
You are on page 1/ 30

1

SOFTWARE ENGINEERING
LECTURE 2 – SOFTWARE PROCESSES
Contact Information
2

 Instructor

Dr. Mohamed Nabil Elkawkagy

 E-Mail:

[email protected]

 Office Hours:

Sunday 11-12
Thursday 10-12
Objectives
3

 Understand the concepts of software processes and software process


models;

 Know the fundamental process activities of software requirements


engineering, software development, testing, and evolution;
The software process
4

 A set of related activities that leads to the production of a


software product.
 The software processes are:
 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.
Software process descriptions
5

 Process descriptions may also include:

 Products, which are the outcomes of a process activity;


 Roles, which reflect the responsibilities of the people
involved in the process;
 Pre- and post-conditions, which are statements that are
true before and after a process activity has been
performed or a product produced.
Plan-driven and agile processes
6

 software processes are categorized as


 Plan-driven processes
 Processes where all of the process activities are planned
in advance and progress is measured against this plan.
 Agile processes,
 Planning is incremental and it is easier to change the
process to reflect changing customer requirements.
Software process models
7

• Plan-driven model. Separate and


The waterfall model distinct phases of specification and
development.

• Specification, development and validation are


Incremental development
interleaved. May be plan-driven or agile.

Reuse-oriented software • The system is assembled from existing


engineering components. May be plan-driven or agile.

In practice, most large systems are developed using a process that incorporates elements
from all of these models.
The waterfall model
8
Waterfall model phases
9

 There are separate identified phases in the


waterfall model:
 Requirements analysis and definition
 System and software design
 Implementation and unit testing
 Integration and system testing
 Operation and maintenance

 The main drawback of the waterfall model is that a


phase has to be complete before moving onto the
next phase.
Waterfall model problems
10

 Inflexible partitioning of the project into distinct


stages makes it difficult to respond to changing
customer requirements.
 This model is only appropriate when the requirements are
well-understood and changes will be fairly limited during
the design process.
 Few business systems have stable requirements.

 The waterfall model is mostly used for large systems


engineering projects where a system is developed at
several sites.
Incremental development

Specification, development, and validation activities are


interleaved rather than separate, with rapid feedback across
activities.

11
Incremental development benefits
12

The cost of changing customer requirements is reduced.


 The amount of analysis and documentation that has to be

redone is much less than is required with the waterfall model.


It is easier to get customer feedback on the development work that
has been done.
 Customers can comment on demonstrations of the software

and see how much has been implemented.


More rapid delivery and deployment of useful software to the
customer is possible.
 Customers are able to use and gain value from the software

earlier than is possible with a waterfall process.


Incremental development problems
13
(Drawbacks)
 The process is not visible.
 Managers need regular deliverables to measure progress.
 System structure tends to degrade as new increments are added.
 Time and money is spent to improve the software. Incorporating further
software changes becomes increasingly difficult and costly.
 The problems of incremental development become difficult for large,
complex, long-life time systems, where different teams develop different
parts of the system.
 Large systems need a stable architecture and the responsibilities of the
different teams working on parts of the system need to be clearly defined
with respect to that architecture.
Reuse-oriented software engineering
14

 System are integrated from existing components.


 Although the initial requirements specification stage and the validation
stage are comparable with other software processes, the intermediate
stages in a reuse-oriented process are different.
 The intermediate process stages are:
 Component Analysis
 Requirements Modification
 System Design With Reuse
 Development And Integration
 Reuse is now the standard approach for building many types of business
system
Reuse-oriented software engineering

15

Given the requirements specification,


a search is made for components to The requirements are analyzed using

implement that specification. Usually, information about the components that

there is no exact match and the have been discovered. They are then

components that may be used only modified to reflect the available

provide some of the functionality components. Where modifications are

required. impossible, the component analysis


activity may be re-entered to search for
alternative solutions.
Reuse-oriented software engineering

16

the framework of the system is


designed or an existing framework is
reused. The designers take into Software that cannot be externally
account the components that are procured is developed, and the reuse
reused and organize the framework components are integrated to create the
to cater for this. Some new software new system. System integration, may
may have to be designed if reusable be part of the development process
components are not available. rather than a separate activity.
Reuse-oriented software engineering
17

 Advantage
 It reduce the amount of software to be developed and so reducing
cost and risks.
 It usually also leads to faster delivery of the software.
 Disadvantage
 May lead to a system that does not meet the real needs of users.
 Some control over the system evolution is lost as new versions of the
reusable components are not under the control of the organization
using them.
Software specification
18

 The process of establishing what services are required and the


constraints on the system’s operation and development.
 Requirements engineering process
 Feasibility study
 Is it technically and financially feasible to build the system?

 Requirements elicitation and analysis


 What do the system stakeholders require or expect from the system?

 Requirements specification
 Defining the requirements in detail

 Requirements validation
 Checking the validity of the requirements
The requirements engineering process
19

 Check if the identified user needs


will be satisfied using current software
and hardware technologies.
 The proposed system will be cost-effective
from a business point of view and
if it can be developed within existing budget constraints.
 It should be relatively cheap and quick.
 The result should inform the decision of whether or not to go ahead with a more
detailed analysis.
The requirements engineering process
20

This is the process of deriving the


system requirements through observation
of existing systems, discussions with
potential users, task analysis.
 This may involve the development of one or more system models and prototypes.
 These help you to understand the system to be specified.
The requirements engineering process
21

 It translate the information gathered


during the analysis activity into a document
that defines a set of requirements.
 Two types of requirements included in this document: -
 User requirements are abstract statements of the system requirements for the
customer and end-user of the system;
 System requirements are a more detailed description of the functionality to be
provided.
The requirements engineering process
22

 During this process, errors in the requirements document are discovered.


 It must then be modified to correct these problems.
Software design and implementation
23

 The process of converting the system specification into an executable system.


 Software design
 It is a description of the structure of the software to be implemented,
 The data models and structures used by the system,
 The interfaces between system components and, sometimes, the algorithms
used.
 Implementation
 Translate this structure into an executable program;
 The activities of design and implementation are closely related and may be
interleaved.
A general model of the design process
24
Software validation
25

 Verification and validation (V & V) involves checking and review

processes and system testing.

 System testing involves executing the system with test cases that are

derived from the specification of the real data to be processed by

the system.
Stages of testing
26

 Development or component testing


 Individual components are tested independently;
 Components may be functions or objects or coherent groupings of
these entities.
 System testing
 Testing of the system as a whole. Testing of emergent properties is
particularly important.
 Acceptance testing
 Testing with customer data to check that the system meets the
customer’s needs.
Software evolution process
27

 Software is flexible and can change.


 As requirements change through changing business circumstances, the
software that supports the business must also evolve and change.
Conclusion
28

 Software processes are the activities involved in producing a software


system. Software process models are abstract representations of these
processes.
 General process models describe the organization of software processes.
 Examples of these general models include the ‘waterfall’ model,
incremental development, and reuse-oriented development.
 Requirements engineering is the process of developing a software
specification.
Conclusion
29

 Design and implementation processes are concerned with transforming a


requirements specification into an executable software system.
 Software validation is the process of checking that the system conforms to
its specification and that it meets the real needs of the users of the system.
 Software evolution takes place when you change existing software systems
to meet new requirements. The software must evolve to remain useful.
30

 Thanks for your attention

You might also like