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

Software Engineering

The document discusses software engineering and the software development life cycle. It describes two common models for the software development process: 1) The waterfall model, where each phase (analysis, design, implementation, testing) must be completed before moving to the next phase in a linear fashion. This allows each group to know what to work on but makes it difficult to locate problems. 2) The incremental model, where an initial simplified version is developed and tested, then more details and functionality are incrementally added and tested at each step to more quickly find and address problems.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views

Software Engineering

The document discusses software engineering and the software development life cycle. It describes two common models for the software development process: 1) The waterfall model, where each phase (analysis, design, implementation, testing) must be completed before moving to the next phase in a linear fashion. This allows each group to know what to work on but makes it difficult to locate problems. 2) The incremental model, where an initial simplified version is developed and tested, then more details and functionality are incrementally added and tested at each step to more quickly find and address problems.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

Software Engineering

Sources: Forouzan, B. Foundations of Computer Science, 3rd edition

1. The software Life Cycle


A fundamental concept in software engineering is the software lifecycle . Software, like many other products,
goes through a cycle of repeating phases (Figure 10.1).

Figure 10.1 The software lifecycle

Software is first developed by a group of developers. Usually it is in use for a while before modifications are
necessary. Modification is often needed due to errors found in the software, changes in the rules or laws
governing its design, or changes in the company itself. The software therefore needs to be modified before
further use. These two steps, use and modify, continue until the software becomes obsolete. By ‘obsolete’, we
mean that the software loses its validity because of inefficiency, obsolescence of the language, major changes in
user requirements, or other factors.

1.1. Development Process Models


Although software engineering involves all three processes in Figure 10.1, in this chapter we discuss only
the development process , which is shown outside the cycle in Figure 10.1. The development process in the
software lifecycle involves four phases: analysis, design, implementation, and testing. There are several models
for the development process. We discuss the two most common here: the waterfall model and the incremental
model.

 Analysis - The development process starts with the analysis phase. This phase results in a specification
document that shows what the software will do without specifying how it will be done.
 Design - The design phase defines how the system will accomplish what was defined in the analysis
phase. In the design phase, all components of the system are defined.
 Implementation - In this phase the programmers write the code.
 Testing - The goal of the testing phase is to find errors, which means that a good testing strategy is the
one that finds most errors.

Integration and maintenance are also tasks to be performed in software engineering, in particular when
delivering or deploying software, although it might not be seen as part of the development process itself.
Also note that it is more often than not the practice to perform verification and testing throughout the
development life cycle.

1.1.1. The Waterfall Model


One very popular model for the software development process is known as the waterfall model (Figure
10.2). In this model, the development process flows in only one direction. This means that a phase cannot be
started until the previous phase is completed.
Figure 10.2 The waterfall model

For example, the analysis phase of the whole project should be completed before its design phase is started.
The entire design phase should be finished before the implementation phase can be started.

There are advantages and disadvantages to the waterfall model. One advantage is that each phase is
completed before the next phase starts. The group that works on the design phase, for example, knows
exactly what to do because they have the complete results of the analysis phase. The testing phase can test
the whole system because the entire system under development is ready. However, a disadvantage of the
waterfall model is the difficulty in locating a problem: if there is a problem in part of the process, the entire
process must be checked.

1.1.2. The Incremental Model


In the incremental model, software is developed in a series of steps. The developers first complete a
simplified version of the whole system. This version represents the entire system but does not include the
details. Figure 10.3 shows the incremental model concept.

In the second version, more details are added, while some are left unfinished, and the system is tested
again. If there is a problem, the developers know that the problem is with the new functionality. They do not
add more functionality until the existing system works properly. This process continues until all required
functionality has been added.

Figure 10.3 The incremental model

You might also like