Highlighted text? Practice this concept. Highlighted passages and figures open related questions.
Practice related questions (30)Progress & bookmarks
Current section
2 Software Development Technology
p. 276
Practice this section 30 linked exam questions with default filters
Progress
Not marked complete
Related questions in this lesson 4
Waterfall development model2Integration testing of combined modules1External-design deliverables1p. 276 · PDF 280
2 Software Development Technology
The software implementation process defines the activities to be provided to the acquirer and provider, as a “shared yardstick” for software development. What is actually used to perform these activities is software development technology.
2 - 1 Software Development Method
2-1-1 Software Development Model
A software development model is a standard model that represents the procedures for developing software. This is also called a system development model for system development.
[Merits of software development models]
- • Since development activities are routine, even developers with little experience can
participate in work. - • Since deliverables are easily routinized, maintenance work can be mitigated.
(1) Waterfall model
p. 277 · PDF 281

Source visual description
Fig. 4-5. The waterfall descends through Basic planning, External design, Internal design, Program design, Programming, Testing, and Operation / maintenance. Basic planning decides the overall development work and defines requirements. External design is from the user perspective and defines functions; Internal design is from the developer perspective and divides functions into program-based units; Program design decides each program-based unit; Programming creates programs; Testing verifies correct operation; Operation / maintenance operates and maintains software. The first four stages are labelled Upstream processes and the remaining stages Downstream processes.
The main activities to be implemented in the waterfall model software process, and overall corresponding SLCP, are as follows:
| Development process | Main activities | Corresponding SLCP |
|---|---|---|
| Basic planning | Computerization planning, requirements definition | Software requirements definition process |
| External design | Definition of subsystems, input/output outline design, code design, logical data design | Software architectural design process |
| Internal design | Functional partitioning /refinement, input/output detailed design, physical data design | |
| Software detailed design process | ||
| Program design | Module partitioning | |
| Programming | Coding | Software construction process |
In development under the waterfall model, a top-down approach is used so that development can proceed from the overall image of the software to increasingly detailed design. Conversely, in testing processes for developed software, a bottom-up approach is used so that development can proceed from the detailed level to the software overall. Thus, illustrating the relationship between design phases and tests reveals a V shape as shown below.
p. 278 · PDF 282
(This is known as a V-shaped model.)

Source visual description
Fig. 4-6. On the Design phase side, Basic planning descends through External design, Internal design and Program design to Programming. On the Testing phase side, Unit testing rises through Integration testing, System testing and Operational testing. Dotted arrows point left: Operational testing to Basic planning; System testing to External design; Integration testing to both Internal design and Program design; Unit testing to Programming. A dashed Top-down approach arrow descends on the left; a dashed Bottom-up approach arrow ascends on the right.
| Name of test | Content of testing | Corresponding SLCP |
|---|---|---|
| Unit test | Confirm that each individual module operates correctly. | Software unit test |
| Integration test | Modules are combined to confirm correct operation. | Software integration tests |
| System test | For the software overall, whether required functions are fulfilled and whether there are problems in operability or performance are to be confirmed. | Software qualification test |
| Operational test (Acceptance test, approval test) | The user department operates the software under conditions of actual operation, to confirm whether it fulfills requirements. | Acceptance test or operational test |
(2) Prototype model (prototyping)
The prototype model is a development technique that creates a provisional prototype in a short time and is tested and evaluated by users, with specifications finalized while changes are repeated. Since it enables users to confirm at an early stage that user requirements are met, it is able to reduce reworking. However, as adjustments to the schedule are difficult and prototypes must be created even if incomplete, it is suited to development of small-scale systems. In the end, it follows two methods: disposing the prototype after confirmation of specifications and then creating a new system, or improving the created prototype (through functional addition) to turn it into the production system.
p. 279 · PDF 283
(3) Spiral model
The spiral model is a development technique that divides a large-scale system into independent partial units, and processes including design/development/testing are repeated for each part to achieve a high degree of completion of a system. This technique combines the waterfall model and prototyping, and is suited to development of large-scale systems in which system development personnel are limited.
(4) RAD (Rapid Application Development)
RAD refers to rapid application development that is conducted by a small group of people through the use of development support tools. Users can be brought in to participate in the development work at an early phase. The technique was originally aimed at achieving development by a small number of people and facilitating communication.
(5) Software product line
Software product line is a method that analyzes the group of software to be developed and decomposes it into small parts that can and cannot be shared, which are then developed. By developing the sharable parts as core assets, software development can be performed efficiently.
(6) Iterative model
The iterative model is a technique in which software development processes (i.e., design/development/testing) are repeated many times. (The spiral model is a type of iterative model.)
- • Incremental model
This is a method that partitions software into multiple independent functions, which are developed and released incrementally in units of functions. - • Evolution model
This is a technique that develops software of limited functional scope, and adds improvements repeatedly.
Section progress
Original chapter exercises
Original chapter exercises →New FE Textbook Vol.2 · First Edition, April 2015

