Contents
Chapter 4 · Development TechnologyPractice

LEARN WITH HARU

Video Lesson တွေက Haru အတန်းသားတွေအတွက်ပါ

Haru ရဲ့ ITPEC FE Full Course မှာ ယခု သင်ခန်းစာတွေကို တစ်ခုချင်း တစ်ကြောင်းချင်း အသေးစိတ်ရှင််ရှင်းပြထားပါတယ်

အခြေခံ မရှိတဲ့ ကျောင်းသားများစွာဟာလည်း ဒီ Course နဲ့ ပဲ အောင်မြင်ကုန်ကြပါပြီ

အတန်းမအပ်သေးပဲ Haru ဆီမှာ အစမ်းသင်ကြည့်ချင်ပါသလား?

သင်တန်းသားတွေရဲ့ စကားသံများ

သင်တန်းသားတွေရဲ့ စကားသံများ

Highlighted text? Practice this concept. Highlighted passages and figures open related questions.

Practice related questions (2)Progress & bookmarks

Current section

1-2-3 Software Detailed Design Process

p. 253

Progress

Not marked complete

Related questions in this lesson 2

STS module partitioning1Original STS partitioning diagrams1Module coupling order1Module independence and weak coupling1
Progress and bookmarks

p. 253 · PDF 257

1-2-3 Software Detailed Design Process

The software detailed design process provides a design for the software that implements and can be verified against the software requirements and software architecture and is sufficiently detailed to permit coding and testing.

[Activities of software detailed design process] (i) Software detailed design (ii) Evaluation and review of software detailed design

(1) Software detailed design

Six tasks are executed in software detailed design.

(i) Detailed design of software components

Software components are refined into lower levels containing software units (i.e., a single unit, classes, and modules) that can be coded, compiled, and tested. It is confirmed that all software requirements are allocated from the software components to software units. This is documented in a software detailed design document (i.e., component detailed design document). (ii) Detailed design of software interfaces

A detailed design is to be developed and documented for the external interfaces of the software configuration items, the interfaces between the software components, and the interfaces between the software units. (iii) Detailed design for the databases

A detailed design for the database is to be developed and documented. (iv) Updating user documentation

User documentation is to be updated as necessary. (v) Definition of test requirements for software units

Test requirements and the schedule for testing software units are to be defined and documented. The scope, test plans, test procedures, and others of software unit test are to be defined, and a software unit test specifications document is to be developed. It is desirable that the test requirements include the stress test of the software unit at the limits of its requirements. (vi) Updating of test requirements for software integration

The test requirements and the schedule for software integration are to be updated.

p. 254 · PDF 258

In software detailed design, software components (i.e., programs) are partitioned into the units of coding called software units.

Task (i) described above is also called module design, because software component is partitioned into modules, which are the units of development (i.e., coding). In the module partitioning that is conducted during module design, structured design using the concept of structuring is used. For the module partitioning that is used in structured design, there are methods that focus on the flow of processing (or data). In general procedures, higher-level module partitioning is first performed by using STS partitioning, after which lower-level modules are partitioned by using transaction partitioning. After this, the modules are verified, and common functional partitioning is performed.

[Module partitioning techniques focused on the flow of processing (or data)]

STS source transform and sink program flow and module structural hierarchy; original source comparison.
Enlarge original visual
Source visual description

Program flow (bubble chart): A points to B, B to C, C to D, D to E, and E to F. Source contains A and B; Transform contains C and D; Sink contains E and F. Dashed vertical boundaries mark the maximum abstract input point between B and C and the maximum abstract output point between D and E. Beneath, the Module structural diagram (functional hierarchy diagram) has Program above Source, Transform and Sink; Source has children A and B, Transform C and D, and Sink E and F.

Original STS partitioning diagrams · 1 practice questions
  • • TR partitioning (Transaction partitioning)
    This is a technique that partitions each process as a module when processing differs according to type of data. As an example, when processing procedures differ for males and females in file updating, partitioning can be performed as follows:

p. 255 · PDF 259

Transaction partition by male and female processing; original source comparison.
Enlarge original visual
Source visual description

Update processing has two child boxes: Processing for males and Processing for females.

  • • Common functional partitioning
    When there are functions that are common to multiple partitioned modules, this technique partitions these functions into a single independent module.
Common function partition and shared function A; original source comparison.
Enlarge original visual
Source visual description

The left hierarchy has M1 above M2 and M3; each lower module contains Function A. A rightward arrow leads to a hierarchy with M1 above M2 and M3 and one shared Function A box beneath them. Both lower modules connect to the common Function A; the source shows its folded-corner mark.

In addition to methods focused on the flow of processing (or data), there are also methods of module partitioning that focus on data structure.

[Module partitioning techniques focused on data structure]

  • • Jackson method
    This is a technique that analyzes input data and output data, and partitions modules according to the output data structure. In the Jackson method, both data structures and program structure are represented as three basic structures (sequence, selection, and iteration).
  • • Warnier method
    This is a technique that uses the set theory to analyze input data structures from the perspective of when and how many times to perform processing.

Modules partitioned in this way must be evaluated for independence. Module strength and module coupling are used as metrics for evaluation.

p. 256 · PDF 260

  • • Module strength
    This metric represents the associations of functions within the module. A better module has a higher strength. When modules are arranged in order of higher module strength, the result is as follows:
Functional strength A collection of only functions that execute one certain
process
Informational
strength
A collection of multiple independent functions that process
specific data
Communicational
strength
A collection of multiple sequential functions, with internal
passing of data
Procedural strength A collection of multiple sequential functions, without
internal passing of data
Temporal strength A collection of multiple functions executed at a specific
timing
Logical strength A collection of multiple functions selected by parameters
Coincidental strength A collection of meaningless functions partitioned by size
and others
View original table · p. 256
Original module strength table; original source comparison.
Enlarge original table
Data coupling Passes only parameters that do not affect control
Stamp coupling Passes the data structure itself
Control coupling Passes parameters that affect control
External coupling Externally declares and shares only necessary data
Common coupling Externally declares and shares data including unnecessary
data
Content coupling Directly looks up data in other modules
View original table · p. 256
Original module coupling table; original source comparison.
Enlarge original table
Module coupling order · 1 practice questions

Partitioned modules are to be evaluated according to evaluation criteria, such as scope of control and scope of effect of the module, amount of partitioning of the module (the number of steps), partitioning into components, and reuse. After that, they are to be repartitioned as necessary.

p. 257 · PDF 261

[Guidelines for amount of module partitioning]

  • • Partition a single component into about 10-200 modules.
  • • Partition a component so that partitioned modules have a hierarchical depth of up to 4
    levels.
  • • Partition a component so that the number of modules at the same depth (i.e., level) is
    10 or less.

Module specification design (or program design) is to be performed to clarify the functions of the partitioned modules. At this time, methods for representing module specifications include flowcharts, decision tables, and NS (Nassi-Shneiderman) charts. (Details are described in “2-2-1 Structured Design.”) In “(ii) Detailed design of software interfaces” (interface design), physical design is to be performed, which includes responsiveness, hardware functions, and others along with what have been considered in architectural design. In input/output detailed design, as input media, input design to determine input data checking methods (e.g., numeric checks, limit checks, format checks, duplication checks, matching checks, balance checks, logical checks (validity checks)), output objectives, and others are considered, output media (e.g., display screens, printer forms) is determined. In addition, output design is performed to design layouts based on the limitations of paper (specialized paper, general paper), displays, printers, and others. In physical data design for files and others, data property analysis, file organization methods (e.g., sequential organization, relative organization, indexed sequential organization, partitioned organization, direct organization), recording media, the layout of records (generally with key items positioned to the front, and reserved items added with expansion taken into account), and others are determined. This way of thinking is that same as that in “(iii) Detailed design for the databases,” and a physical data model is created with an awareness of the DBMS product to be implemented. With regard to interfaces between software components and interfaces between software units, appropriate interfaces (e.g., parameters and return values) are to be defined on the basis of the relationships between modules (i.e., main routines) that perform calls and modules (i.e., subroutines) that are called. At this time, call by value and call by reference are to be used appropriately as methods for calling subroutines (i.e., methods for passing parameters). In “(v) Definition of test requirements for software units,” in the same manner as test requirements for software integration, checklists, and others are to be used. In addition, criteria are to be created for test requirements for not only black box tests but also white box tests that verify whether the internal structure (i.e., algorithm) of the software is correct. (Details of black box tests and white box tests are described in “1-2-4 Software Construction Process.”)

p. 258 · PDF 262

(2) Evaluation and review of software detailed design

The following tasks are to be executed in evaluation and review of software detailed design.

(i) Evaluation of software detailed design Software detailed design is to be evaluated, with consideration given to the criteria of traceability to the requirements of the software configuration item, external consistency with architectural design for the software configuration item, internal consistency between the software components and software units, appropriateness of design methods and standards used, feasibility of testing, and feasibility of operation and maintenance. (ii) Implementation of joint review in software detailed design

A joint review is to be conducted, with agreement obtained concerning software architectural design.

Original chapter exercises

Original chapter exercises →

New FE Textbook Vol.2 · First Edition, April 2015