Page 228 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 228
Principles of Software Engineering
Notes High-level Language
The concept was that if we want to compute |A + B − C|, and store the result in a memory
location called D, all we had to do was write D = |A + B − C| and let a computer program,
the compiler, convert that into the sequences of numbers that the computer could execute.
FORTRAN (an acronym for Formula Translation) was the first major language in this period.
The FORTRAN statements were patterned after mathematical notation. In mathematics the =
symbol implies that both sides of the equation have the same value. However, in FORTRAN
and some other languages, the equal sign is known as the assignment operator. The action
carried out by the computer when it encounters this operator is, ‘Make the variable named on
the left of the equal sign have the same value as the expression on the right.’ Because of this, in
some early languages the statement would have been written as −D → D to imply movement
or change, but the use of → as an assignment operator has all but disappeared.
11.1 Incremental
An incremental approach postpones detail in some or all phases to produce working software
earlier in the project development timescale. The basic idea is to develop the system in a vertical
slice rather than a horizontal slab.
Incremental Development: Incremental Development is the growth of a system in a sequence
of incomplete products (increments) throughout the project timescale.
Incremental Delivery: Incremental Delivery is the delivery of increments to the customer/users
at intervals throughout the project timescale.
Increment: An Increment is a self-contained functional unit of software, together with all
supporting material, including:
• Requirements specification
• Design documentation
• Test plans, cases and results
• User manuals and training
• Estimates, plans, schedules, resourcing
• Quality assurance information (e.g. Review reports)
• Configuration management information.
An increment produces (or alters) a cross-section of the final system deliverables, connected to
a functional piece of the final system. Incremental development is the construction of a software
system in a series of small mini-life-cycles, rather than construction in one large monolithic life
cycle.
11.1.1 Incremental Life Cycle Models
Incremental Build and Test
The incremental build and test approach begins the incremental development in the coding
phase, with the phases being monolithic. Many developers go some way toward this approach
casually, although often without the complete put of life cycle documentation. Since this is not
222 LOVELY PROFESSIONAL UNIVERSITY