Software Engineering Process II Product Implementation INFO 637 Glenn Booker INFO 637 Lecture #7 Implementation Process The Implementation phase includes: Detailed (low level) design Actual coding and product.

Download Report

Transcript Software Engineering Process II Product Implementation INFO 637 Glenn Booker INFO 637 Lecture #7 Implementation Process The Implementation phase includes: Detailed (low level) design Actual coding and product.

Software Engineering Process II
Product Implementation
INFO 637
Glenn Booker
INFO 637
Lecture #7
1
Implementation Process
The Implementation phase includes:
Detailed (low level) design
Actual coding and product implementation
Unit testing
INFO 637
Lecture #7
2
Check High Level Design
Before proceeding, make sure the high
level design is complete
You should have subdivided the system into
smaller pieces, and specified what each piece
needs to do
The overall logic of the system needs to be
clearly understood
INFO 637
Lecture #7
3
Design Levels
From largest to smallest, the levels of
design are (here) called:
System
Subsystem
Product
Component
Module
INFO 637
Lecture #7
4
Detailed Design
Detailed design takes the larger level
pieces (subsystems and products), and
keeps breaking them into smaller and
smaller pieces (component and module)
until the entire system is fully specified
How small do pieces need to be?
Code modules are typically 150 LOC or less
INFO 637
Lecture #7
5
Detailed Design
Keep repeating the design scripts (DESn)
until every piece is well defined
In some cases, some pieces may be
implemented before others are fully
defined
This is generally okay as long as the high
level structure isn’t affected
Pieces may be implemented in parallel if
the design permits and time is essential
INFO 637
Lecture #7
6
Implementation Standards
Standards again play an important role
in implementation
This could include using external industry
standards, or developing your
organization’s own internal standards
For example, IBM has an internal standard
for counting LOC
INFO 637
Lecture #7
7
Types of Standards
Standards for file and variable names
Interface and messaging standards
Code format and style standards
Standards for finding LOC and other sizes
Defect type standards
INFO 637
Lecture #7
8
Defect Prevention
Standards can help support defect
prevention activities
In addition to defect types (code,
documentation, etc.), the cause of the
defects should be identified
Focus on defects which cause the
biggest problems (e.g. most frequent,
or most time consuming)
INFO 637
Lecture #7
9
Defect Prevention
Defect Cause types may include
Education (language, environment, application)
Communication (then fix the process)
Transcription (then fix the tools)
Oversight (look for better methods)
Try to identify how to prevent each defect
Change the process to prevent it
And then see if it recurs
INFO 637
Lecture #7
10
Review Strategy
While design tends to work from top down
(general to specific), review work better
from the bottom up
First review the lowest level parts, which
call nothing else (fan out = 0)
Then review the parts which call them,
and keep working up to bigger parts
INFO 637
Lecture #7
11
Reuse Strategy
Simple things help support reuse
Use a common header format for all files,
to identify what it does, what it uses for
inputs, return formats
Describe all variables, their ranges, limitations,
and allowable values
Remember to ask support manager if
anyone has a module to meet your needs
INFO 637
Lecture #7
12
Reviews and Inspections
This was covered in Appendix C of the text
Keep in mind that typos and other random
defects can account for many defects in
code (e.g. 28 defects/KLOC for the author)
Many not caught by compiler
Many not logical, hence hard to anticipate
Hard for tests to catch every possible logical
path, data value, and operating condition
INFO 637
Lecture #7
13
Design Inspections
Detailed designs need to be inspected
Re-inspection later on is not needed unless the
fundamental design changed
Code reviews are often more effective at
catching defects than testing
Use a code review checklist to ensure
consistent and complete reviews (PSP p. 706)
INFO 637
Lecture #7
14
Implementation Scripts
To start implementation, need:
Completed development strategy and plan
Completed SRS and SDS
A defined coding standard
Other standards, common terminology,
and specifications
INFO 637
Lecture #7
15
Implementation Script IMP1
p. 152
Plan implementation tasks using SUMP
and SUMQ
Allocate tasks to team members
Conduct detailed design
Do design review using LOGD and LOGT
Create unit test plan, test cases,
procedures, and test data
INFO 637
Lecture #7
16
Implementation Script IMP1
Inspect the detailed design for each
component using INS and LOGD
Create the code, and review it using
code checklist
Record defects using LOGD and LOGT
Do formal code inspection using INS
and LOGD
INFO 637
Lecture #7
17
Implementation Script IMP1
Have quality manager verify
every component
Release accepted components
Hence the outputs from this script are:
Completed code
Forms INS, SUMP, SUMQ, LOGD, and LOGT
Test plans and materials (test cases, etc.)
Updated project notebook
INFO 637
Lecture #7
18
Quality Map
Judge component quality using the
regions shown on the following slide:
Zone I means quality is acceptable
Zone II means design needs to be re-inspected
Zone III means code needs to be re-inspected
Zone IV means program needs to be reworked
(start design over)
INFO 637
Lecture #7
19
Quality Map Regions
Compile
Defects/
KLOC
Not to scale!
Region IV
50
III
II and
III
I
II
10
0
0
INFO 637
5
20
Unit Test Defects/KLOC
Lecture #7
20