KEMBAR78
Lecture 2 | PDF | Software | Software Development Process
0% found this document useful (0 votes)
8 views25 pages

Lecture 2

The document discusses software processes and models, outlining key concepts, classifications, and activities involved in software development. It introduces three generic software process models: the waterfall model, incremental development, and reuse-oriented software engineering, along with their advantages and disadvantages. Additionally, it emphasizes the importance of adapting processes to accommodate changes in requirements and the integration of good software engineering practices.

Uploaded by

mohammedalfeky14
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)
8 views25 pages

Lecture 2

The document discusses software processes and models, outlining key concepts, classifications, and activities involved in software development. It introduces three generic software process models: the waterfall model, incremental development, and reuse-oriented software engineering, along with their advantages and disadvantages. Additionally, it emphasizes the importance of adapting processes to accommodate changes in requirements and the integration of good software engineering practices.

Uploaded by

mohammedalfeky14
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/ 25

1

SOFTWARE
ENGINEERING
Lecture 2 : Chapter 2 – Software Processes
2

Objectives
• understand the concepts of software processes and
software process models;
• have been introduced to three generic software process
models and when they might be used;
• know about the fundamental process activities of software
requirements engineering, software development, testing,
and evolution;
• understand why processes should be organized to cope
with changes in the software requirements and design;
• understand how the Rational Unified Process integrates
good software engineering practice to create adaptable
software processes.
3

Classification of software
• The software is used extensively in several domains including
hospitals, banks, schools, defence, finance, stock markets, and
so on. It can be categorized into different types:
1. Based on the application such as System Software,
Networking and Web Applications Software, Embedded
Software, Reservation Software and so on
2. Based on copyright:
1. Commercial
2. Shareware
3. Freeware
4. Public domain
4

Software classification based on copyright


1. Commercial: It represents the majority of software which we
purchase from software companies, commercial computer
stores, etc. In this case, when a user buys software, they acquire
a license key to use it. Users are not allowed to make copies of
the software. The copyright of the program is owned by the
company.
2. Shareware: Shareware software is also covered under
copyright but the purchasers are allowed to make and distribute
copies with the condition that after testing the software, if the
purchaser adopts it for use, then they must pay for it. In both of
the above types of software, changes to the software are not
allowed.
5

Software classification based on copyright


3. Freeware:
In general, according to freeware software licenses, copies of the
software can be made both for archival and distribution
purposes but here, distribution cannot be for making a profit.
Derivative works and modifications to the software are allowed
and encouraged. Decompiling of the program code is also
allowed without the explicit permission of the copyright holder.
4. Public Domain:
In the case of public domain software, the original copyright
holder explicitly relinquishes all rights to the software. Hence
software copies can be made both for archival and distribution
purposes with no restrictions on distribution. Modifications to
the software and reverse engineering are also allowed.
6

The Software Process

➢A structured set of activities required to develop a


software system.
▪ Development of software from scratch
▪ extending and modifying existing systems
▪ Configuring and integrating off-the-shelf software or system components.
➢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.
➢A software process model is an abstract representation of a
process. It presents a description of a process from some
particular perspective.
7

Software Process Descriptions

➢When we describe and discuss processes, we usually talk


about the activities in these processes such as
specifying a data model, designing a user interface, etc.
and the ordering of these activities.
➢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 enacted or a
product produced.
8

Basic activities of process models

➢Typical activities include:


➢ Requirements: gathering requirements at the strategic business level
and at the business area level.
➢ Analysis: understand the nature of the program(s) that need to be
built, understand the information domain, as well as, required
functionality, behavior, performance and interface.
➢ Design: focus on the data structure, software architecture, interface
representation and procedural (algorithmic) detail.
➢ Implementation: translating the requirements and design into a
machine-readable form (code).
➢ Maintenance: changing the software after it is delivered to the
customer. Change might occur if the software contains errors, or must
be adapted to accommodate changes to its external environment, or
because the customer requires functional or performance
enhancements.
9

Umbrella activities of process models

➢Umbrella activities are a series of steps or procedures


followed by a software development team to maintain
the progress, quality, changes, and risks of complete
development tasks. They include:
➢ Software project tracking and control
➢ Formal technical reviews
➢ Software quality assurance
➢ Software configuration management
➢ Document preparation and production
➢ Reusability management
➢ Measurement
➢ Risk management
10

Plan-driven and Agile Processes


a.k.a. Heavy-Weight versus Light-Weight Models

➢ Plan-driven processes are processes where all of the process


activities are planned in advance and progress is measured against
this plan.
➢ Plan drives everything!
➢ The Agile methodology is a way to manage a project by breaking it up
into several phases. It involves constant collaboration with
stakeholders and continuous improvement at every stage.
➢ In Agile Processes planning is incremental and it is easier to
change the process to reflect changing customer requirements.

➢ In practice, most practical processes include elements of both


plan-driven and agile.

➢ There are no right or wrong software processes.


11

Software process models

• A software process model is a simplified representation of


a software process.
• Each process model represents a process from a
particular perspective, and thus provides only partial
information about that process.
• For example, a process activity model shows the activities
and their sequence but may not show the roles of the
people involved in these activities.
• General process models (‘process paradigms’) and will be
presented from an architectural perspective. That is, we
see the framework of the process but not the details of
specific activities.
12

Generic software process models

➢The waterfall model (separate components)


▪ Plan-driven model. Separate and distinct phases of specification
and development.
➢Incremental development (versions)
▪ Specification, development and validation are interleaved. May be
plan-driven or agile.
➢Reuse-oriented software engineering (reusable
components)
▪ The system is assembled from existing 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.
13

The Waterfall Model

Notice the feedback loops


14

The waterfall model

➢ cascade from one phase to another


➢ Also known as software lifecycle
➢ plan-driven process
➢ Separate and distinct phases of specification and development.
➢ Heavily oriented toward documentation (documentation-intensive)
➢ Progress often measured thru documentation completion and reviews
(many)
➢ Gantt charts
➢ Lockstep approach
➢ Little chance for Change!
➢ Oftentimes discover major flaws too late.
➢ Delivered as Big Bang
➢ Still exists in spades – but modified to a degree.
15

The principal stages of the waterfall model


1. Requirements analysis and definition:
o The system’s services, constraints, and goals are established by
consultation with system users.
o They are then defined in detail and serve as a system specification.

2. System and software design:


o allocates the requirements to either hardware or software systems by
establishing an overall system architecture.
o Software design involves identifying and describing the fundamental
software system abstractions and their relationships.

3. Implementation and unit testing:


o The software design is realized as a set of programs or program units.
o Unit testing involves verifying that each unit meets its specification.
16

The principal stages of the waterfall model (cont.)


4. Integration and system testing :
o The individual program units or programs are integrated and tested as a
complete system to ensure that the software requirements have been met.
o After testing, the software system is delivered to the customer.

5. Operation and maintenance:


o longest life cycle phase.
o The system is installed and put into practical use.
o Maintenance involves:
▪ correcting errors which were not discovered in earlier stages of the life cycle
▪ improving the implementation of system units
▪ enhancing the system’s services as new requirements are discovered.
17

Problems in waterfall model:


o The main drawback of the waterfall model is the difficulty of
accommodating change after the process is underway. In
principle, a phase has to be complete before moving onto the
next phase.
o Inflexible partitioning of the project into distinct stages makes it
difficult to respond to changing customer requirements.
• Therefore, 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.
18

When to use waterfall model:

• The waterfall model should only be used when the requirements are
well understood and unlikely to change radically during system
development.
• The waterfall model is consistent with other engineering process
models and documentation is produced at each phase. This makes
the process visible so managers can monitor progress against the
development plan.
19

Incremental Development

• developing an initial implementation, exposing this to user comment and evolving


it through several versions until an adequate system has been developed
• Specification, development, and validation activities are interleaved rather than
separate, with rapid feedback across activities.
20

Incremental development benefits


• The cost of accommodating changing customer
requirements is reduced.
o 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.
o 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.
o Customers are able to use and gain value from the software earlier
than is possible with a waterfall process.
21

Incremental development problems


From a management perspective

• The process is not visible.


o Managers need regular deliverables to measure progress. If
systems are developed quickly, it is not cost-effective to produce
documents that reflect every version of the system.
• System structure tends to degrade as new increments are
added.
o Unless time and money is spent on refactoring to improve the
software, regular change tends to corrupt its structure.
Incorporating further software changes becomes increasingly
difficult and costly.
22

Reuse-oriented software engineering

• software reuse
• Previous knowledge of designs or code that are similar to what is required
• modify and incorporate into new system.
• initial requirements specification stage and the validation stage are comparable
with other software processes
23

Intermediate stages in a reuse oriented


process
1. Component Analysis
• Search for components meeting requirements
• usually no exact match
• only provide some of the functionality required
2. Requirements modification
• Requirements are analyzed against components specifications
• Requirements are modified to meet components specifications
• Failure leads to re-enter component analysis
3. System design with reuse
• Framework is designed or reused if available
• Organize the framework to suit reused components
• New software for unavailable reusable components
4. Development and integration
• Developing software that cannot be externally procured
• Integrating all components to create new system
24

Advantages, Disadvantages and


Applicability
• Advantages:
➢ reducing the amount of software to be developed
➢ reducing cost and risks.
➢ leads to faster delivery of the software.
➢ more reliable systems, due to using previously tested components
• Disadvantages:
➢ Compromises in requirements are needed
➢ Less control over the system’s evolution
• Applicability:
➢ When there is a pool of existing components that could satisfy the
requirements of the new product
25

Questions
• List and explain different types of software based on the
copyright
• Define software process and software process model
• List and explain basic activities of process models
• What is meant by Umbrella activities of process models.
Mention some of these activities
• What is the difference between Plan-driven and Agile
Processes
• What are the generic software process models. Explain
each one with the help of its block diagram. Explain the
advantages, disadvantages and applicability of each

You might also like