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

Chapter 2 Software Processes

The document discusses software processes and models. It defines a software process as a series of actions that lead to a software product. Software development methodologies like Waterfall consist of phases that together represent a process. Each phase can also be viewed as an individual process. The document outlines some key software processes like specification, design, implementation, validation, and evolution. It also describes some common process models like Waterfall, incremental development, and reuse-oriented development.
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)
185 views

Chapter 2 Software Processes

The document discusses software processes and models. It defines a software process as a series of actions that lead to a software product. Software development methodologies like Waterfall consist of phases that together represent a process. Each phase can also be viewed as an individual process. The document outlines some key software processes like specification, design, implementation, validation, and evolution. It also describes some common process models like Waterfall, incremental development, and reuse-oriented development.
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/ 21

SOFTWARE ENGINEERING

CHAPTER TWO

SOFTWARE PROCESSES
Definitions
 A process is a series of actions that produce something or lead to a particular result, Webster Dictionary.

 Therefore, a software development methodology (such as Waterfall, …) is a process because the


methodology consists of a series of actions that lead to a software product.
 A software development methodology consists of several phases.

 For example, design, construction, and testing are some phases in the Waterfall methodology.

A series of process that, if followed can lead to the development of application.


The software processes describe how the work is to be carried out to achieve the original goal
based on the system requirements.
Each process consists of number of steps and rules that should be performed during development
2 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021
 Therefore, all the phases in a software development methodology together represent a process
(or a methodology).
 Since each phase consists of a series of actions and leads to an artifact as a result (e.g., the

construction phase consists of a series of actions such as writing and refining the source code
and finally produces the source code as the artifact),
 on the basis of the definition of process, you can treat each such phase as a process.

 Therefore, we can view a software development methodology either as a single process or as a


chain of linked processes.
 When all the phases in a software development methodology are described as a chain of linked

activities, this is called a software development life cycle.


3 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021
 There are many different software processes but all must include four activities
that are fundamental to software engineering:
1. Software specification
 The functionality of the software and constraints on its operation must be defined.
2. Software design and implementation
 The software to meet the specification must be produced.
3. Software validation
 The software must be validated to ensure that it does what the customer wants.
4. Software evolution
 The software must evolve to meet changing customer needs.

4 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021


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.
 The waterfall model This takes the fundamental process activities of specification, development,
validation, and evolution and represents them as separate process phases such as requirements
specification, software design, implementation, testing, and so on.
 Incremental development This approach interleaves the activities of specification, development, and
validation.
 The system is developed as a series of versions (increments), with each version adding functionality
to the previous version.
 Reuse-oriented software engineering This approach is based on the existence of a significant
number of reusable components.
 The system development process focuses on integrating these components into a system rather than
developing them from scratch.
5 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021
Software Process Activities
 Some software development models were discussed in the previous sections.
 Each model has a different way of executing the software development processes.
 For example, in the Waterfall model, all the phases are carried out sequentially, in the order
of requirement gathering, software design, construction, testing, and software release.
 In contrast, in agile models, these phases are not performed sequentially because, after
software construction, software design can be taken up in the form of refactoring.
 In this section, we discuss various detailed activities that are carried out during each of the
phases, that is, the process of software development.
 The core (essential) software development processes include requirement gathering and
specification, design, construction (coding), testing, and release.
 Software development life cycle core processes and their work products (artifacts) Figure

6 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021


7 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021
System development refers to all activities that go into producing an
information system solution.
System development activities consists of
System analysis, user and system requirements,
Modeling
Design
Implementation
Testing
maintenance

8 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021


 The project team works on requirement gathering and specifications during the
requirement gathering phase and develops and delivers a requirement specification
document at the end of this phase.
 Similarly, after the design phase, the project team delivers a software product model

(design).

 After the construction phase, an untested software product is delivered.


 After the testing phase, a fully tested software product is delivered.
 After the release phase, the user-tested product is implemented at the customer site.

 During the release phase, user documents and technical documents are also created and

delivered.
9 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021
Copying with Change
 Change is inevitable in all large software projects.
 The system requirements change as the business procuring the system
responds to external pressures and management priorities change.
 As new technologies become available, new design and implementation
possibilities emerge.
 Therefore whatever software process model is used, it is essential that it
can accommodate changes to the software being developed.
 There are two related approaches that may be used to reduce the costs of
rework:

10 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021


System Evaluation Process: Change is needed

11 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021


1. Change avoidance, where the software process includes activities that can anticipate
possible changes before significant rework is required.
 For example, a prototype system may be developed to show some key features of the
system to customers.
 They can experiment with the prototype and refine their requirements before committing
to high software production costs.
2. Change tolerance, where the process is designed so that changes can be
accommodated at relatively low cost.
 This normally involves some form of incremental development.
 Proposed changes may be implemented in increments that have not yet been developed.
 If this is impossible, then only a single increment (a small part of the system) may have to be
altered to incorporate the change.

12 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021


Rational Unified Process (RUP)
 The software engineering methodology that is used to develop a software product

will influence the decision about the technologies to be used to develop the product.

 Some software products need to be developed incrementally. In those cases, only

some technologies are well suited.


 In RUP, during the software development process, the requirements go through
evolution and thus the design may need to be changed several times.
 With some technologies, it is not easy to change the design, but it is easy with other
technologies.

13 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021


 The Rational Unified Process (RUP) is an example of a modern process model that has been
derived from work on the UML and the associated Unified Software Development Process.
 The RUP recognizes that conventional process models present a single view of the process. In
contrast, the RUP is normally described from three perspectives:
1. A dynamic perspective, which shows the phases of the model over time.
2. A static perspective, which shows the process activities that are enacted.
3. A practice perspective, which suggests good practices to be used during the process.
 The RUP is a phased model that identifies four discrete phases in the software
process.
1. Inception The goal of the inception phase is to establish a business case for the
system.
2. Elaboration The goals of the elaboration phase are to develop an understanding of the
problem domain, establish an architectural framework for the system, develop the project
plan, and identify key project risks.
14 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021
3. Construction The construction phase involves system design, programming, and
testing.
 Parts of the system are developed in parallel and integrated during this
phase.
4. Transition The final phase of the RUP is concerned with moving the system from the
development community to the user community and making it work in a real environment.

Phases in in the RUP Process

15 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021


Incremental Iterative Methodologies
 An object-oriented design (OOD) allows making changes more easily than any other
technology currently available.
 Therefore, object-oriented technology is a good fit when a project is based on RUP.
 OOD is good for incremental product development as well.
 In OOD, it is possible not to have a complete product design initially.
 A partial product design can be prepared initially for projects where incremental
methodologies such as XP or Scrum are used.
 When the size of the product increases through the incremental addition of new features, some
of the classes defined initially may not support the new features.
 However, after refactoring, it is possible to integrate the new features.

16 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021


Waterfall Methodology
 In the Waterfall model, the design should have provisions for incorporating the changes in the

future.

 At the same time, a complete design of the proposed product should be created at the very

beginning of the project.

 Almost all types of programming and designing methods work well with projects that are

based on the Waterfall methodology.

 A primary requirement is that the time required to design the software product should be

known in advance.
17 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021
 This is because the projects that are based on the Waterfall model require a clear visibility

(complete project plan including the timelines for doing the entire project work) and

 the development company has to give the cost and effort estimates to the customer at the

beginning of the project.

 A complete software design helps determine how much time it will take to implement

(construct) it.

 This up-front information is vital to provide visibility of the entire project to be done.

 Thus, the entire project can be planned with much accuracy.

18 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021


Summary
 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.
 Software evolution takes place when you change existing software systems to meet
new
requirements.
 Changes are continuous and the software must evolve to remain useful.

19 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021


Summary
 Processes should include activities to cope with change.
 This may involve a prototyping phase that helps avoid poor decisions on
requirements and design.
 Processes may be structured for iterative development and delivery so that
changes may be made without disrupting the system as a whole.
 The Rational Unified Process is a modern generic process model that is
organized into phases (inception, elaboration, construction, and transition)
 but separates activities (requirements, analysis, and design, etc.) from these
phases.

20 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021


21 Software Engineering Teaching Material Compiled by Yadeta Gonfa @2021

You might also like