Documente Academic
Documente Profesional
Documente Cultură
7
1.1
1.2
1.3
1.4
TERMINOLOGY .................................................................................................20
1.5
MULTIPLE-CHOICE QUIZ..................................................................................................23
UNIT2.
2.1
2.1.1
2.1.2
2.1.3
System Design........................................................................................................40
2.1.4
Implementation......................................................................................................43
2.1.5
2.1.6
Integration Testing.................................................................................................47
2.1.7
Product Testing......................................................................................................48
2.1.8
Acceptance Testing.................................................................................................49
2.1.9
2.1.10
Maintenance...........................................................................................................50
2.2
LIFE-CYCLE METHODOLOGIES.........................................................................................54
2.2.1
Build-and-Fix Model..............................................................................................54
2.2.2
Waterfall Model......................................................................................................56
2.2.3
2.2.4
Incremental Model.................................................................................................62
2.2.5
Synchronize-and-Stabilize Model..........................................................................65
2.2.6
Spiral Model..........................................................................................................68
2.2.7
2.2.8
2.3
EXERCISE 1.......................................................................................................................74
2.4
-1-
2.4.1
Product Description...............................................................................................75
2.4.2
Customer Constraints............................................................................................76
2.4.3
Assignment.............................................................................................................79
2.4.4
2.5
UNIT3.
3.1
3.1.1
Informal Specifications..........................................................................................86
3.1.2
3.1.3
Process Logic.........................................................................................................92
3.1.4
Decision Trees........................................................................................................93
3.1.5
3.1.6
3.1.7
3.1.8
3.1.9
Data Dictionaries................................................................................................101
3.1.10
3.2
ENTITY-RELATIONSHIP MODELING................................................................................110
3.3
EXERCISE 2....................................................................................................................112
3.4
MULTIPLE-CHOICE QUIZ................................................................................................114
3.5
EXAM..............................................................................................................................118
UNIT4.
4.1
4.1.1
4.1.2
Background..........................................................................................................119
4.1.3
4.1.4
4.1.5
Class Modeling....................................................................................................124
4.1.6
Dynamic Modeling...............................................................................................126
4.2
4.2.1
-2-
4.2.2
4.2.3
4.3
EXERCISE 3....................................................................................................................134
USE CASE MODELING.........................................................................................................134
4.4
4.4.1
4.4.2
4.4.3
4.5
EXERCISE4......................................................................................................................146
4.6
4.7
MULTIPLE-CHOICE QUIZ................................................................................................147
UNIT5.
5.1.1
5.2
Assessments..........................................................................................................150
OOD PRINCIPLES...........................................................................................................151
5.2.1
5.2.2
5.2.3
5.2.4
.Detailed Design..................................................................................................162
5.2.5
.Design Testing.....................................................................................................164
5.3
5.3.1
5.3.2
5.3.3
5.4
EXERCISE 5....................................................................................................................170
5.5
5.6
5.6.1
5.6.2
5.6.3
5.6.4
5.7
-3-
EXERCISE 6.....................................................................................................................179
5.8
5.9
MULTIPLE-CHOICE QUIZ................................................................................................180
5.10
EXAM.........................................................................................................................184
UNIT6.
6.1.1
6.2
Assessments..........................................................................................................186
IMPLEMENTATION...........................................................................................................186
6.2.1
.Reuse...................................................................................................................186
6.2.2
6.2.3
6.3
MODULE TESTING..........................................................................................................201
6.3.1
.Execution-Based Testing.....................................................................................202
6.3.2
Non-execution-Based Testing...............................................................................206
6.3.3
6.3.4
6.4
INTEGRATION TESTING...................................................................................................217
6.4.1
6.4.2
6.4.3
6.4.4
6.5
6.5.1
Product Testing....................................................................................................223
6.5.2
Acceptance Testing...............................................................................................225
6.6
CASE TECHNOLOGY......................................................................................................225
6.6.1
6.6.2
Coding Tools........................................................................................................227
6.6.3
6.6.4
Build Tools...........................................................................................................230
6.6.5
Integrated Environments......................................................................................230
6.6.6
6.7
EXERCISE 7.....................................................................................................................231
6.8
MULTIPLE-CHOICE QUIZ................................................................................................232
-4-
UNIT7.
7.1
7.2
7.3
FINAL DOCUMENTATION.................................................................................................240
7.3.1
Maintainers Documentation...............................................................................241
7.3.2
Installer/Administrator Documentation...............................................................241
7.3.3
7.3.4
7.3.5
7.4
WHY DOCUMENT?..........................................................................................................243
7.5
DOCUMENTATION AIDS...................................................................................................245
7.6
EXERCISE 8.....................................................................................................................247
7.7
PROJECT DOCUMENTATION............................................................................................248
7.8
MULTIPLE-CHOICE QUIZ................................................................................................248
UNIT8.
8.1.1
8.2
Assessments..........................................................................................................252
WHAT IS MAINTENANCE?...............................................................................................252
8.2.1
Types of Maintenance..........................................................................................253
8.2.2
8.3
MANAGING MAINTENANCE............................................................................................255
8.3.1
Fault Reports.......................................................................................................256
8.3.2
Managing Workflow.............................................................................................257
8.3.3
Fault Prioritization..............................................................................................258
8.3.4
Workarounds........................................................................................................260
8.3.5
8.4
8.5
AIDS TO MAINTENANCE.................................................................................................264
8.6
EXERCISE 9.....................................................................................................................265
8.7
8.8
UNIT9.
-5-
EXAM 3..................................................................................................................269
9.1
EXAM MULTIPLE-CHOICE..............................................................................................269
9.2
CERTIFICATION EXAM....................................................................................................269
UNIT10.
-6-
time
estimate
you
thought
was
reasonable,
you
should
-7-
satisfaction
and
confidence.
In
today's
competitive
-8-
Depending
on
what
agreements
have
been
reached
for
Hardware by itself contributes relatively little to highquality software development; it is more important to have good
software tools and well-defined development practices.
"If we get behind schedule, we can just add more programmers."
Today's computers can run very large software products that
would take a single person a long time to develop. Although
team programming permits the development of large products in a
short time by allowing work in parallel, it also introduces
complexity. Changes affecting the interface to modules of the
system need to be distributed among all programmers whose code
interacts with those modules. Coordination among team members
may require lengthy meetings and conferences. When adding new
programmers to an ongoing project, one must consider the time
that it will take the new programmers to get up to speed and
become productive, and the time required for existing team
members to train the newcomers, as well as any additional time
required for communication and coordination within the enlarged
group.
While trying to debunk individual myths surrounding software
the
very
beginning
of
this
unit,
we
defined
software
for
and
tracking
development
itinerary
where
the
1.2
- 11 -
- 12 -
in
the
quality
of
the
code,
and
lack
of
medical, industrial, and military establishments, and by the evergrowing entertainment industry. Therefore, it is even more vital now
to improve the predictability of the software process in terms of
cost, time, and correctness.
The term "software engineering" was coined in 1967 and formally
endorsed
the
following
year
by
the
NATO
Software
Engineering
- 14 -
- 15 -
software engineering.
- 16 -
the
product's
user
interface.
This
example,
though
simple,
- 18 -
(b)
(c)
(d)
2.Software engineering has which of the following objectives?
I.
II.
2.
I.
II.
(a) I only;(b) I and II only;(c) I, II, and III;(d) III only
3.Which of the following is true of software today?
4.
(c)
(d)
5.In the _____ phase of software development, the product undergoes changes and
enhancements until it can no longer perform the task it was designed to perform, and then
- 19 -
(a)
(b)
(c)
(d)
The
The
The
The
10.Which of the following terms are used to indicate a particular approach or set of
techniques for accomplishing one or more specific phases in the software development life
cycle?
I.
II.
A paradigm
A methodology
10.
- 20 -
I.
II.
A method
(a) II and III only;(b) I, II, and III;(c) I and III only;(d) I and
II only
1.
Which of the following is true about the probable effect of adding new
programmers to a software project?
(a) Production will generally be sped up because programmers are generally most
productive when they first start on a project.
(b) Production will generally be sped up because of the decrease in pressure on the
programmers already working on the project.
(c) Production will generally be slowed because of the need for training and additional
coordination.
(d) Production will generally be sped up because new programmers generally bring
bright new implementation ideas to a project.
3.
4.
II.
III.
In the _____ phase of software development, the product undergoes changes and
enhancements until it can no longer perform the task it was designed to perform,
and then it enters the _____ phase.
- 21 -
7.
Over the entire life cycle of a software product, which phase typically takes the
most time?
(a) Design
(b) Maintenance
(c) Implementation
(d) Specification
8.
9.
10.
A failure is the behavior perceived by the user that results from a fault in
program code.
II.
III.
- 22 -
In this unit, you will cover the different stages of the software
life cycle in a bit more detail and you will read about specific
life-cycle models for software development.
2.1.1
1
Statement of Scope
process their orders, and too often, they find out, some time later,
that the restaurant has run out of what they ordered. The restaurant
management decides that they would like a hardware/software product
that in addition to balancing the books, allows the waiters to key in
the orders and send the order to the kitchen right at the table, so
customers will know immediately whether their choice is available.
One advantage of this proposed system, the reasoning goes, is that it
also keeps track of what customers want, helping the management make
better decisions about menu planning, including the quantities of
different foodstuffs to have on hand. Another advantage is that as
each order is placed, the inventory of basic food ingredients can be
automatically updated, making it easier for the management to make
daily purchasing decisions.
The solution that the restaurant management chooses may result in a
very fancy order and inventory management system, but it is likely to
require a significant financial investment, some amount of personnel
training, and an increased budget for equipment maintenance. It is
possible that the original problem with customer dissatisfaction can
be solved much more simply by adding waiters, or giving them radios
to communicate customer orders back to the kitchen. The inventory
update problem might be solved by connecting the cash register with
an inventory management software package, allowing dynamic inventory
update based on each new order.
The first part of problem identification, therefore, is to define the
problem as precisely as possible and consider a range of solutions
and their associated costs. This analysis is essential in determining
the viability of a decision to build new software. Another aspect of
problem identification is determining the scope of a solution. For
example, if an organization decides that they must have custom-built
software, does the resulting software product need to be implemented
for different hardware platforms, or is the organization's computing
base homogeneous, a group, for example, of only PC-compatible
machines? Depending on the type of software application desired,
developing for one or more hardware platforms may require
significantly different levels of investment.
The responsibility for problem identification usually rests with
the client, but the software engineer must be sensitive to mismatches
between the problem as described by the client and the solution the
client believes to be appropriate. While no software developer wants
to refuse a contract, it is not a good idea in the end to build and
- 24 -
Statement of Scope
- 25 -
2.1.2
Readings:
- 28 -
Specification Phase
- 29 -
2.1.3
System Design
- 31 -
Readings:
Schach (4th Edition), section 2.4.
Schach (5th Edition), section 2.4.
internal
structure
and
operation
of
the
software
product.
The
- 32 -
design that will accommodate future enhancements that the client has
mentioned but are not part of the current specifications, or that the
developer foresees being clearly desirable. Ideally the design should
be as general as possible to allow for reusability in similar
products and adjustment to future changes, but the cost of this
flexibility may be a more complex design: one that is harder to
understand, that will take longer to code, that will be trickier to
test, and that will be more difficult to maintain.
The design team should carefully record the rationale for any
decisions taken during the design process. There are at least two
reasons why it is very desirable to document the design decisions. In
the first place, there will be times when the designers feel they may
need to redesign some aspect of the program, because the current
design is causing some difficulties. The ability to go back and
review the reasons for decisions made previously can help designers
determine whether a redesign is really necessary or desirable.
Secondly, in the face of requested enhancements or modifications to
the program, having a record of the design decisions will be helpful
in
determining
if
the
requests
can
be
accommodated
without
program
requirements,
accommodate
or
the
has
become
whether
necessary
obsolete
the
in
design
changes.
the
was
Having
face
flexible
a
record
of
changing
enough
of
to
design
- 33 -
2.1.4
Implementation
Once the design phase has been completed, programmers receive the
detailed design document and begin implementing the modules, data
structures, and algorithms according to the document's content.
Readings:
- 35 -
2.1.5
2.1.6
2.1.7
Product Testing
- 37 -
2.1.8
Acceptance Testing
2.1.9
Two terms that are frequently associated with product testing are
alpha testing and beta testing. These terms have different
definitions, depending on the kind of software being developed.
In the case of a software product that is being developed for a
specific client (a one-of-a-kind product), alpha testing usually
refers to testing in a controlled environmentin the developer's
site, for example. This phase of testing focuses on the functionality
of the software rather than on its performance or robustness. A
member of the developer's team is on hand to help resolve any
problems caused by faults in the software as it is being tested. A
beta test, in contrast, is a quasi-final version of the software
product, installed at the client's site and on the client's hardware,
and being used to perform real tasks in a production-like setting.
This type of testing addresses performance and robustness. Its intent
is to identify problems that might not show up except through
extended use in a realistic setting.
The testing strategy is quite different for shrink-wrapped (also
called commercial off-the-shelf or COTS) software. Whereas with a
- 38 -
2.1.10 Maintenance
Maintenance is the last stage in the life cycle of a software
project, and represents the period after the software product has
been accepted by the client and before it has been retired, whether
by replacement or full removal. This phase should not be considered
unpleasant or inconvenient. Rather, it should be regarded as a
natural and integral part of the software process.
Readings:
Schach (4th Edition), section 2.7.
Schach (5th Edition), section 2.7.
enhancements
are
desirable
in
order
to
increase
the
example,
in
functionality
or
performance.
Some
of
these
- 39 -
- 40 -
2.2.1
Build-and-Fix Model
- 41 -
produced
understand
and
by
this
approach
maintain,
because
are
they
typically
difficult
completely
lack
to
any
2.2.2
Waterfall Model
Until the early 1980s, the only widely accepted life-cycle model
was the waterfall model.
Readings:
- 43 -
2.2.3
Even
if
the
requirements
customer
in
lacks
software
the
technical
engineering
terms,
skill
the
to
describe
customer
can
- 46 -
2.2.4
Incremental Model
Readings:
Schach (4th Edition), section 3.4.
usually
implies
easier
maintainability,
because
the
incremental
model
has
some
disadvantages.
The
primary
incremental
design
is
feasible.
Not
all
products
fit
this
- 48 -
2.2.5
Synchronize-and-Stabilize Model
Support for early testing: Since the model requires that all
aspects of the product be synchronized and tested together at
each step, the product can be tested "early and often." This
helps the development team to find and fix faults as early as
possible, reducing the overall cost of software faults over the
life of the project.
Constant interoperability: Each version of the product
contains modules that have been tested together successfully.
The implication is that there is always a working (though
perhaps incomplete) version of the product that can be
examined, tested, etc. This advantage is useful in situations
where the product must also integrate with external software;
the development process can be structured so that connections
to other products can be implemented and tested early.
Early feedback on design: A development model that requires a
full, testable build of early versions of a product will help
to uncover design flaws that are typically only discovered
during implementation. Because the synchronize-and-stabilize
model requires that all modules be synchronized and tested
together, any flaws in the design that result in faults in the
implementation will be discovered earlier rather than later,
reducing the overall cost of faults and potential redesign
activities.
The primary disadvantages of the model include:
- 50 -
Limited experience: So far, the synchronize-andstabilize model has not been used widely outside of Microsoft.
2.2.6
Spiral Model
- 51 -
- 52 -
2.2.7
- 53 -
- 54 -
2.2.8
Readings:
Schach (4th Edition), section 3.8.
Schach (5th Edition), section 3.9.
(Schach (4th Edition), fig. 3.10 or Schach (5th Edition), fig. 3.10
or Schach (6th Edition), fig. 2.12).
Life-Cycle
Model
Build-and-Fix
Waterfall
Rapid
Prototyping
Incremental
Synchronize-and
-Stabilize
- 55 -
Trengths()
Weaknesses
Totally unsatisfactory
for nontrivial
programs
Product may not meet
customer needs
Temptation to reuse
code that should be
reimplemented instead
Requires open
architecture; May
degenerate into buildand-fix
Has not been widely
used outside Microsoft
Spiral
Object-Oriented
components can be
integrated
Incorporates features
of all the models
above
Supports iteration
within phases
2.3 Exercise 1
(s)
""
2.4 Product
Description,
Scope,
Requirements,
and
Development Model
Product Description
Customer Constraints
Assignment
Web Site for SSD9 Exercises
The skills learned in the course pages are practiced in the course exercises, which focus
on the definition, analysis, design, implementation, and documentation for WebOrder, a
prototype online ordering system for electronic commerce on the World Wide Web. This
exercise involves writing a scope description and requirements checklist for the WebOrder
system, and choosing a development process model that seems most appropriate for
development of the system.
- 56 -
2.4.1
Product Description
By the end of SSD9, you will implement a prototype software system that provides an
end user with the ability to order products from a Web site. The system will be called
WebOrder. The customer is an online seller of musical instruments. The application involves
three main elements:
2.4.2
Customer Constraints
We assume that the hypothetical customer has provided the following constraints on the
product in advance:
- 57 -
Figure 1: WebOrder after initial login. The current product list and the user's
previous shopping basket contents are displayed.
- 58 -
Figure 2: WebOrder after the user has displayed and added the Saxophone product
to the shopping basket. Note that the order information has been updated by the
application.
- 59 -
Figure 4: The Order History window after the user has selected an order to display.
Throughout the remainder of the course, you will work on a series of exercises to
complete the WebOrder application. At the beginning of each exercise, appropriate details
will be provided that will help you complete the exercise. Due to space considerations, not
all of the details of the project are explained here.
2.4.3
Assignment
- 60 -
2.4.4
A Web page containing specific instructions and sample code for the exercises in SSD9
can be found here:
Appendix A. Course Project
You will not need to use the project Web site materials for this exercise, but you are
welcome to browse the site and get familiar with its contents. You will start using the
materials on the project Web site when you work on Exercise 2.
2. 4
(a) Requirements, design, implementation, and specifications
(b) Requirements, specifications, design, and implementation
(c) Specifications, requirements, design, and implementation
(d) Design, implementation, requirements, and specifications
(a)
(b)
(c)
(d)
3.Which of the following is an important trade-off that must be kept in mind during the
design phase of software development?
- 61 -
3.
(a)
(b)
(c)
(d)
5.
(a) onsite offsite
(b)
(c)
(d)
6.Which of the following is true of maintenance in software development?
I.
II.
7.
I.
II. 2 3
8.Until the 1980s, the only widely accepted life-cycle model of software development was
the
(a) the client gives requirements for the product to the developer
over time
(b) faults in the product are fixed incrementally
(c) the product is built all at once but maintenance happens through
successive refinements
(d) the product is built in a series of successive releases or builds
10.
(a)(b)(c )
(d)
11.Which of the following advantages are true of the synchronize-and-stabilize model of
software development?
I.
II.
(a) I, II, and III;(b) II and III only;(c) II only;(d) I and III only
12.A feature of the spiral model that distinguishes it from other life-cycle models is the
(c)
(d)
13.Which of the following is true of the unconstrained application of an object-oriented lifecycle model?
- 64 -
Exercise 2
Multiple-Choice Quiz 3
3.1
3.1.1
Informal Specifications
- 65 -
the
document,
it
is
hard
to
detect
whether
there
are
3.1.2
- 66 -
system
in
which
people
or
departments
are
the
components. In fact, a data flow diagram does not make any commitment
regarding the implementation of the system or any of its components.
The ability to "differentiate between the logical and the physical"
(DeMarco 1978, chapter 10) is a feature of data flow diagrams, as
well as other graphical representations used in specifying systems.
Pressman (Pressman 5th ed, 2000, chapter 11) says that software
design proceeds like an architect's design for a building. It starts
by expressing the totality of what is to be built. Then the details
of each piece are gradually filled in (e.g. details of dimensions
comes before details about materials to be used which in turn comes
before details of lighting). Similarly software design moves from the
essential to the more detailed. This gradual elaboration of details
can be easily applied to DFDs. A level 0 DFD (termed a fundamental
system model or a context model ) just shows the entire software
product as a process, with input and output flowing into and out of
it. For example, suppose you were specifying a translation system
- 67 -
that translated English input (text or speech) into French, the level
0 DFD is described by the following diagram.
By
partitioning
the
system
little
more
and
showing
an
The system that is described by the level 1 DFD converts the English
input, through a process of interpretation, into an intermediate
representation of meaning that is language independent. This meaning
representation is then used to generate the corresponding meaning in
French. Even though this diagram is starting to make some assertions
about how the process of translation takes place, it still does not
make any commitments to a particular implementation. The DFD could be
describing a software system or a human interpreter.
A further refinement of the level 1 DFD might show more detail about
the interpretation process, by highlighting additional data sources
and an intermediate step in the processing of input.
- 68 -
When do you stop refining a DFD? When you cannot decompose into
subprocesses any further without entering into algorithm design.
References
Demarco, T. Structured Analysis and System Specification. New York:
Yourdon Press, 1978.
Pressman, Roger S. Software Engineering: A Practitioner's
Approach. 5th ed. New York: McGraw Hill, 2000.
- 69 -
3.1.3
Process Logic
Decision Trees
Processing Specifications (PSPECs)
Control Flow Diagrams (CFDs) for Real-Time Systems
Control Specifications (CSPECs)
Data Flow vs. Control Flow
While a dataflow diagram shows the input and output for each
conceptual component of a system, it does not specify the process
logic of the system. Process logic is how control flows within and
between each of the component processes of the system.
Readings:
- 70 -
3.1.4
Decision Trees
means
- 71 -
3.1.5
3.1.6
- 72 -
Real-time systems, which monitor input continuously or semicontinuously, iterate through different internal states of the system
based on the input received from the environment and other components
of the system. In order to specify how real-time systems process
their input, the notation of data flow diagrams must be augmented to
show control flow and control processing explicitly. Normally, a
control flow diagram (CFD) is created by stripping the data flow
arrows off a data flow diagram and adding the control information. In
the diagram below, control flow for copy machine software is
superimposed onto the DFD for clarity. Solid lines are used for data
flow and dashed lines for control flow, according to Hatley and
Pirbhai's notation (Hatley & Pirbhai 1987, quoted in Pressman 5th ed.
2000, Section 12.4.4). The notation also uses vertical bars to
indicate the presence of a control specification (CSPEC), and
control flows or event flows are shown flowing into and out of a
CSPEC. All CSPEC bars in a control flow diagram refer to the same
CSPEC.
- 73 -
3.1.7
- 74 -
in the CFD. The diagram shows that two events cause a transition out
of the state making copies:
1. The event copies done changes the state to reading
commands, by invoking the process read operator input.
2. The event jammed transitions the copier to diagnosing
problems by activating the process perform problem
diagnosis.
As a representation, an STD is useful for detecting any omissions in
the specified behavior. For example, in the diagram above, there is
an omissionthe event empty should transition the copier to state
reloading
paper
by
invoking
the
process
reload
paper.
The
Edition),
figs.11.13
and
11.14
give
an
example
of
this
equivalence of representations.
We will not discuss real-time systems further, but you should
read carefully through Schach (4th Edition), section 10.6 or Schach
(5th Edition), section 11.6 or Schach (6th Edition), section 11.7.
3.1.8
The following diagram shows how control flow diagrams and control
specifications relate to data flow diagrams and process
specifications. The process model is connected to the control model
through data conditions. A data condition occurs whenever data
input to a process results in a control output. For example, when the
operator of a copy machine requests 20 copies of a document and the
machine, while processing the request, reads a jammed paper feed
status and sounds an alarm. The control model is connected to the
process model through process activators. For example, a control
flow to the process perform problem diagnosis will activate
processing of fault data.
- 75 -
References
Hatley, D.J., and I.A. Pirbhai. Strategies for Real-Time System
Specification. New York: Dorset House, 1987.
Pressman, Roger S. Software Engineering: a Practitioner's
Approach. 5th ed. New York: McGraw Hill, 2000.
3.1.9
Data Dictionaries
- 76 -
can just list the operations and the numeric input. For example, for
a
calculator
program
that
processes
the
following
kind
of
- 77 -
- 78 -
Single-valued
Mandatory
Plural (for NOUN)
String
Single-valued
Optional (if regular)
3rd person singular (VERB)
String
Single-valued
Optional (if regular)
Past (for VERB)
String
Single-valued
Optional (if regular)
Transitivity (for VERB)
TRANS, INTRANS
Multi-valued
Mandatory
The table above gives you an idea of the type of information that
you might want to put in a data dictionary for each data item. In
addition to the name of the data item itself, you will want to
specify:
- 79 -
3.1.10 Input
- 80 -
Output Specifications
nin2n3 ...
ni * n2 * n3 * ...
On the other hand, when the product uses a forms interface to a
database, the input is more complexmany fields in the form may be
changed at onceand there may not be any visible output. The values
typed in by the user may be placed in a temporary memory store, and
permanent output, like changes in the database itself, may be delayed
until
the
user
submits
the
entire
form.
The
input
output
third
example,
consider
again
the
automatic
machine
- 81 -
calculator
programthe
product
should
avoid
crashing
if
possible. Instead, the specification should describe the errorreporting behavior of the product. Illegal input is preferably
detected before processing, so it can be reported to be unacceptable
in a graceful manner. For example:
INPUT:
Operator: division ( / )
Dividend: n1
- 82 -
Divisor: 0
OUTPUT:
ERROR: Illegal division by zero
If illegal input cannot always be detected, then other types of
software-generated errors will be given as output. Preferably cryptic
system errors are translated into language the user can understand to
provide some information for diagnosing the source of the error.
As with all specifications documents, the input output
specifications should be precise, unambiguous, complete, and
consistent. This will make it easier to trace the design document
back to the specification document and will therefore make it easier
to verify the design.
- 83 -
3.3 Exercise 2
1.
In this exercise, you will be required to create the database using a database
management system of your choice (MySQL/PostgreSQL/Microsoft Access), and then
design and implement the database tables.
Logical Data Modeling: Create an entity-relationship model using the following
- 85 -
steps:
Physical Database Design: Write physical table definitions for the database using
the following steps:
Normalize relations and define tables in the physical database using the
algorithm for mapping an ER model to the relational model. (See the Mapping
Algorithm on the Appendix A. Course Project page for more information.)
Create the database. (If you choose MySQL, read the MySQL Reference
Manual on the Appendix A. Course Project page).
- 86 -
(a) I and II only;(b) II only;(c) II and III only;(d) I, II, and III
2. Which of the following are true of informal specifications?
I.
II.
(a) I only;(b) III only;(c) I and III only;(d) II and III only
2.
I.
II.
(a) I and III only;(b) I and II only;(c) II and III only;(d) I, II,
and III
3.DFD
I.
II. DFDs
DFDs
4.Dataflow diagrams (DFDs) show
9. Which of the following describes the way a software product should react to incorrect
and/or incomplete input?
(a) It should raise a system error during processing and end the
program.
(b) It should end the program after telling the user why the data is
bad.
(c) It should raise a system error during processing and wait for
user correction.
- 88 -
(a)
(b)
(c)
(d)
10. The input-output specifications should cover which of the following kinds of input?
I.
II.
Error-ridden input
Incomplete input
11. Suppose that a database model for job seekers has three main entities, people, skills,
and jobs. Suppose also that the people must have one or more skills, while jobs require
zero or more skills. Then the modalities for the relationships HAS_SKILL and
REQUIRES_SKILL are, respectively, _____ and _____.
3.5 Exam
Exam
Multiple-Choice
Exam
Practical
- 89 -
Multiple-Choice Quiz 4
4.1.1
Readings:
4.1.2
Background
application, or both. Developed before the evolution of objectoriented techniques, traditional ("structured") techniques for
analysis typically select one emphasis (either data or actions). In
object-oriented analysis, both data and actions are given equal
emphasis. Since both data and actions are equally important in most
applications, the object-oriented analysis method is considered
superior.
The traditional action-oriented analysis approach begins with a
data flow diagram. Although a data flow diagram refers both to
actions and data, its primary focus is to identify the sequence(s) of
actions performed by the product, and it does not specify the
detailed structure of the data objects that are passed from action to
action. Another example of an action-oriented approach to analysis is
the use of finite-state machines (see Schach (4th Edition), section
10.6 or Schach (5th Edition), section 11.6 or Schach (6th Edition),
section 11.7).
Data-oriented techniques begin with a detailed analysis of the
data. The structure of the data is determined first, and then it is
used to determine the structure of the actions performed on the data.
When this technique is used, the structure of the actions always
corresponds to the structure of the data. An example of data-oriented
analysis is discussed in Schach (4th Edition), section 10.5 or Schach
(5th Edition), section 11.5 or Schach (6th Edition), section 11.6.
There is a fundamental drawback to both of these approaches. It
is often not possible to understand the required data structure
unless one considers all of the actions to be performed; similarly,
it is generally not possible to envision the structure of all actions
in the absence of a data analysis. The object-oriented analysis
technique addresses these shortcomings by providing an equal emphasis
on actions (methods) and data (attributes) at each step.
4.1.3
- 91 -
4.1.4
11.4.
12.3.
12.4.
For example, Schach (4th Edition), fig. 11.1 or Schach (5th
Edition), fig. 12.1 or Schach (6th Edition), fig. 12.2 illustrates a
- 92 -
4.1.5
Class Modeling
Readings:
In the class-modeling phase, the analyst works with the use case
scenarios and use case diagrams in an effort to extract preliminary
information about what classes of software objects should be created
in the subsequent design phase. This involves analyzing the written
prose descriptions of the use case scenarios to create a class
diagram, which is a form of entity-relationship diagram.
Later in this unit, we will explore the following elements of
class modeling in more detail:
4.1.6
Dynamic Modeling
In this sense, a state transition diagram is like the finitestate machines (FSM) used for state modeling in structured analysis
(see Schach (4th Edition), Chapter 10 or Schach (5th Edition),
Chapter 11 or Schach (6th Edition), Chapter 11). A state transition
diagram can be formally specified as a set of rules of the form:
current state and event and predicate => next state
In practice, however, it is often more useful to represent the
state transition diagram in a graphic form that more clearly links
the different states and the transitions between them in a graphical
manner.
We present more details regarding dynamic modeling and the
construction of state transition diagrams using the Unified Modeling
Language (UML) in 4.3.3 State Transition Diagrams in UML.
- 95 -
4.2.1
Before the analyst can construct use case scenarios and use case
diagrams for an object-oriented software system, he or she must first
identify all of the different roles played by various entities during
the operation of the software.
Although the focus is typically on the end user of the software, who
will invoke most of the functionality of the software and interact
directly with the software during its operation, there are other
important roles to consider as well:
4.2.1
- 96 -
4.2.2
when the associated use case is carried out. In this example, the
scenarios should describe trying to save a file when the hard drive
is full, canceling a request to save a file to disk, and so on. We
present more detail regarding use case scenarios and how to write
them for each use case in 4.2.3 Writing Use Case Scenarios.
References
Pooley, Rob, and Perdita Stevens. Using UML: Software Engineering
with Objects and Components, revised edition. Reading, MA: AddisonWesley, 1999.
4.2.3
After identifying all the different user roles and drawing a use
case diagram for the software, the analyst writes a series of use
case scenarios for each use case. Scenarios that describe the normal
flow of events for a particular use case are called "normal" use case
scenarios. It is also important to describe what happens when
unexpected events occur (for example, disk-full errors, network
connection errors, bad input data, etc.). Scenarios that describe the
system's behavior in the face of unexpected conditions are called
"abnormal" usage scenarios. It is important for the analyst to
consider all possible normal and abnormal use case scenarios for a
given use case.
Written scenarios are very important, for the following reasons:
4.2.3
- 99 -
Schach (4th Edition), figs. 11.2 and 11.3 or Schach (5th Edition),
figs. 12.2 and 12.3 or Schach (6th Edition), figs. 12.3 and 12.4
illustrate examples of both normal and abnormal use case scenarios.
Although the scenarios are written in plain English, they are not
particularly verbose; the focus is on short, concise sentences that
detail the stepwise operation of a system in a particular context
while carrying out a particular function. It is important to keep the
language of the scenarios simple and unambiguous, wherever possible.
Simplicity, especially when referring to various elements and
actions, helps to avoid a proliferation of redundant objects that
really only refer to a single object class. The analyst should review
the use case scenarios after they are written to ensure that all of
the steps are unambiguous. If any step is described in a way that
could be interpreted as more than one concrete action on the part of
the software, then the step is ambiguous and must be rewritten.
4.3 Exercise 3
Please answer the following question(s).
If the assessment includes multiple-choice questions, click the "Submit
Answers" button when you have completed those questions.
Create a use case diagram in UML. Using UML syntax, create a UML
diagram illustrating the use cases you have identified for the software product.
Write use case scenarios. Write appropriate normal and abnormal use case
scenarios for each use case you identified in the use case diagram.
Note: You should include the database server as an external entity role in the use case
diagrams, but you do not have to analyze and model the internal operation of the server
(that is, you do not have to write use cases or use case scenarios for the server itself).
- 100 -
4.4.1
Readings:
- 101 -
- 103 -
4.4.2
Once a candidate class list has been created through the process
of noun extraction, the next step is to draw an object diagram that
shows the relationships between the objects (object diagrams are also
referred to as class diagrams in some texts). A preliminary object
diagram shows only the classes and their relationships; as the object
diagram is refined, more detail is added regarding the class
variables and methods for each object. The final details (which
include the class variable types, as well as the arguments, argument
types, and return types for each method) are often not finalized
until the Design Phase.
The Unified Modeling Language (UML) contains a convenient
notation for drawing object diagrams with the following elements:
- 104 -
- 105 -
we know there are m floors; we assume there are n elevators since the
number of elevators is unspecified). Since there are m floors, there
will be 2m - 2 floor buttons; every floor will have both an Up and
Down button, except for the first and top floors, which will have one
button each (Up and Down, respectively).
As pointed out by Schach, it is often necessary to refine the
initial class diagram to add classes and relationships that more
accurately model the real situation (Schach (4th Edition), page 385
or Schach (5th Edition), page 373 or Schach (6th Edition), page 353).
In the elevator example, we know that a real elevator does not
directly accept commands from the different buttons; rather, an
elevator controller handles all the button actions and issues control
commands to the elevators. A revised class diagram, including an
ElevatorController class, is shown in Schach (4th Edition), fig.
11.5 or Schach (5th Edition), fig. 12.5 or Schach (6th Edition), fig.
12.6.
2.
KMT Example
4.4.3
- 107 -
4.5 Exercise4
- 108 -
Noun extraction: Analyze the use case scenarios that you wrote in
Note: You do not have to model the server (database) side of the product, only the
client (interface).
Data
Actions
- 109 -
(a) II and III only;(b) I and III only;(c) I, II, and III;(d) I and
II only
5.
I.
II.
Network errors
Unexpected input data
- 110 -
7.
I.
II.
I.
II.
8.()
I.
II.
(a) III only;(b) II only;(c) I and III only;(d) II and III only
9.The details regarding class methods and attributes are specified
(a) II only;(b) II and III only;(c) I and III only;(d) I and II only
10.
I.
II.
5.1.1
5.2.1
- 113 -
Cohesion
- 114 -
example of cohesion, see Schach (4th Edition), fig 6.7 or Schach (5th
Edition), fig 7.7 or Schach (6th Edition), fig 7.7.
3.
Coupling
- 115 -
(4th Edition), figs. 6.11-6.13 or Schach (5th Edition), figs. 7.117.13 or Schach (6th Edition), figs. 7.11-7.13.
For further reading on modularity, cohesion, coupling, and other
properties of modules and objects, refer to Schach (4th Edition),
Chapter 6 or Schach (5th Edition), Chapter 7 or Schach (6th Edition),
Chapter 7.
5.2.2
Action-Oriented Design
Data-Oriented Design
Object-Oriented Design
Action-Oriented Design
- 117 -
Object-Oriented Design
- 118 -
5.2.3
- 119 -
5.2.4
.Detailed Design
Readings:
Schach (4th Edition), section 12.8.
Schach (5th Edition), section 13.8.
During the detailed design phase, the designer considers each module
identified in the architectural design and produces the following
specifications:
- 120 -
5.2.5
.Design Testing
Readings:
Schach
Schach
Schach
- 121 -
5.3.1
- 122 -
- 123 -
depicts the sequence diagram for one use case scenario associated
with the ElevatorController case study.
5.3.2
Shown below is a partial collaboration diagram for the simple clientserver architecture introduced in 5.2.1:
- 124 -
5.3.3
After the interaction diagrams are constructed in the objectoriented design phase, it is possible to create a detailed class
diagram that refines (and finalizes) the proposed classes for the
system. Recall that the object-oriented analysis phase produces a
preliminary class diagram that indicates the classes, attributes, and
relations, but does not give any detail regarding the class methods.
The basic task in building the detailed class diagram is to associate
the messages specified in the interaction diagrams with particular
- 125 -
5.4 Exercise 5
- 126 -
entered previously.
Please answer the following question(s).
If the assessment includes multiple-choice questions, click the
"Submit Answers" button when you have completed those questions.
5.5 Sequence,
Collaboration,
and
Detailed
Class
Diagrams
5.6.1
Once the detailed class diagram has been created, the final step
in architectural design in the object-oriented approach is to create
a client-object diagram. The client-object diagram specifies the
product in terms of clients of objects. Specifically, an object C
that sends a message to object O is a client of O . UML notation is
used to draw all the classes and their associated client-object
relations. This simple diagram contains just two elements:
- 127 -
5.6.2
5.6.3
- 130 -
...
}
An example of a field doc comment:
/**
* The X-coordinate of the window.
*
* @see window#1
*/
int x = 1263732;
An example of a method doc comment:
/**
* Returns the character at the specified
* index. An index ranges from 0 to length() - 1.
*
* @param index the index of the desired
*
character.
* @return the desired character.
* @exception StringIndexOutOfRangeException
*
if the index is not in the range
*
0 to length()-1.
* @see java.lang.Character#charValue()
*/
public char charAt(int index) { ... }
If the designer takes care to format the skeletal class files and
method descriptions using the javadoc syntax and tagging
conventions, then javadoc can be used to generate automatically,
full class documentation in HTML format. While it can be timeconsuming to format comments using the javadoc syntax, the crossreferenced HTML produced by the tool is a very powerful source of
documentation that would require much more effort to produce from
scratch. The compelling characteristic of javadoc is that it allows
the designer or programmer to produce HTML documentation "for free"
from the detailed design specification (in the form of skeletal class
files), even before the methods are implemented.
5.6.4
- 131 -
- 132 -
5.7 Exercise 6
Skeletal class files: For each class in your class diagram, create a
skeletal Java file containing the class definition, with empty signatures for
the constructor(s) and method(s) in the class. Include all of the
information about arguments and return types that you gathered in the
module interface specification task.
- 133 -
I.
Understandability
II.
Testability
Maintainability
1.modularity
(s)
I. Understandability
II. Testability
(a) I, II, and III;(b) I and II only;(c) II and III only;(d) I only
2.Data flow analysis includes which of the following?
I.
II.
2.
I.
II.
(a) I and III only;(b) I and II only;(c) I only;(d) II and III only
3.The architectural design of a software system is used during which of the following
phases of software construction?
I.
II.
Requirements specification
Detailed design
3.
- 134 -
I.
II.
(a) I and III only;(b) I, II, and III;(c) II and III only;(d) I and
II only
4.The products of the detailed design phase include which of the following?
I.
II.
Module algorithms
Code for Java classes
Module interfaces
4.
I.
II. Java
(a) I, II, and III;(b) I only;(c) I and III only;(d) II and III only
5.Some CASE tools are useful for design testing because they
Collaboration diagrams
Entity-relationship diagrams
Sequence diagrams
6.
I.
II.
(a) II and III only;(b) I and III only;(c) I, II, and III;(d) I and
II only
7.Collaboration diagrams emphasize
(a)
(b)
(c)
(d)
8.A detailed class diagram is created from the preliminary class diagram by adding which of
the following?
9.
I.
II.
(a) II and III only;(b) I only;(c) I and III only;(d) I, II, and III
10.A skeletal Java class file can be used to specify which of the following?
I.
II.
Method signatures
Detailed design information
10.
I.
II.
(a) I, II, and III;(b) I and III only;(c) II and III only;(d) I and
II only
11.How is javadoc useful as a tool for design?
I.
Detailed design information can be written as code comments in the "doc" format
to be extracted by javadoc.
II.
- 136 -
(a) I and III only;(b) I only;(c) III only;(d) II and III only
11. javadoc
I. javadoc ""
II. javadoc
javadoc HTML
12.During a design review, which of the following issues concerning the detailed design is
(are) considered?
I.
II.
5.10 Exam
Exam
Multiple-Choice
Exam
Practical
6.1
6.2
6.3
6.4
Implementation
Module Testing
Integration Testing
Product and Acceptance Testing
6.1.1
Assessments
Exercise 7
Multiple-Choice Quiz 6
6.2 Implementation
6.2.1
1.
.Reuse
Module Reuse
Costs and Constraints in Reuse
What Can Be Reused and When?
Reuse and Maintenance
Module Reuse
7.6.
8.6.
8.6.
- 138 -
- 140 -
3.
6.2.2
While design and code reuse may be an option for some portion of
a new software product, a larger part of the product will need to be
implemented from scratch. One of the major decisions to be made will
be the programming language to use for developing the product. We
begin with a brief survey of programming languages, and then continue
on to guidelines for choosing a programming language.
Readings:
13.2.
14.2.
- 142 -
1.
14.2.
Programming Language Types
- 143 -
Rapid-Prototyping Language
costs for training the programming staff, and in higher risk, both
with respect to being able to meet deadlines and produce high quality
code.
"
"
"
"
"()
6.2.3
Readings:
1.
- 146 -
Once the programming language has been chosen, the next step is
to get down to implementing the product design. A few general
guidelines should be mentioned for building code that is easier to
understand, easier to test, and easier to maintain.
1.
1. Coding style guidelines (for example, how to indent the
program lines) are language specific. Programmers are advised
to consult a guide on good programming practice for the
particular programming language.
2. Coding style should keep in mind that future program
maintainers have to understand the code. Essentially, this
boils down to using identifiers for procedures, variables,
constants, object classes, etc., that are not meaningful only
to the author of the code. The variable name xCoordRobotArm is
significantly clearer than just xCoord or xCdRbtArm.
3. Although self-documenting code exists, it is very
seldom found. The following is an example of a code fragment
that is largely self-documenting. No line-by-line explanation
is needed for the while loop, but the last line needs a
comment. In the application that this code fragment was taken
from, the last read statement was necessary to consume an
extra control character that would have otherwise been
prepended to the next input.
// Read in the server response.
buf.setLength(0);
while (bytesToRead > 0) {
c = in.read();
buf.append((char)c);
bytesToRead--;
}
c = in.read(); // whats this?
- 148 -
6.3.1
- 149 -
6.2.1
6.2.2
6.2.3
6.2.4
Execution-Based Testing
Non-execution-Based Testing
Other Testing Approaches
A Comparison of Module-Testing Techniques
.Execution-Based Testing
General Remarks
Black-Box Module-Testing Techniques
1.
13.8.1.
14.8.1.
14.13.1.
There are two basic approaches to testing modules, each with its
own weaknesses. Testing to Specifications, also known as black-box,
structured, data-driven, functional, or input/output-driven testing,
seeks to verify that the module conforms to the specified input and
output while ignoring the actual code. It is rarely possible to test
all modules for all possible input cases, which may be a huge number
of modules. Usually time constraints permit only about 1000 test
cases per module, so tests should be chosen carefully. Exhaustive
testing is feasible only when input combinations are small.
Testing to Code, also called glass-box, white-box, behavioral,
logic-driven, or path-oriented testing, is quite the opposite of
Testing to Specifications. It ignores the specification in favor of
exercising each path through the code. Unfortunately, testing each
path through the code is generally not feasible, even for simple
flowcharts. Moreover, it is possible to test every path without
finding existing faults, because, for example, the fault lies in the
decision criterion for selecting between paths. Moreover, it is
possible to exercise successfully all paths with data that would not
show the fault. For example, imagine an operation in the code that
would result in a fault when executed with certain input values, an
operation like taking the square root of a negative number. If code
- 150 -
- 151 -
-1
Boundary value analysis would test the code with the values 0, 1,
-1, and a value for each of the remaining four equivalence classes.
Output specifications may be used similarly to establish equivalence
classes and boundary values, and to determine the input test cases
required. These two techniques, used in combination, make up a
powerful approach to discovering faults.
In functional testing, the tester identifies each item of
functionality or each function implemented in the module and uses
data to test each function. Functional testing is somewhat simplistic
since functions are usually intertwined. A more realistic process for
testing functionality called functional analysis exists. However,
functional testing is problematic in general because functionality
often spans across module boundaries. As a result, integration
testing and module testing become blurred.
3.
6.3.2
- 152 -
Non-execution-Based Testing
Code Walkthroughs
Code Inspections
Remarks on Non-execution-Based Testing Techniques
Code Walkthroughs
- 153 -
Code Inspections
6.3.3
Readings:
Schach
Schach
Schach
1.
- 155 -
Complexity Metrics
- 157 -
6.3.4
The most general conclusion that can be drawn is that all techniques
are roughly equally effective from the perspective of finding faults,
and each presents some advantages and disadvantages. One study
concluded that professional programmers were able to detect more
errors more quickly with code reading, while advanced students did
equally well whether it was with a black-box or code-reading
technique. Both groups performed better with black-box and code
reading than with glass-box techniques, which also tend to be quite
expensive on a per fault basis. Overall, code reading found more
interface faults, and black box more control faults.
- 158 -
Testing presents special difficulties when used to test objectoriented code. Methods associated with object classes may change the
internal state of object instances, but the correctness of the
resulting internal state cannot be tested without developing methods
and sending messages that give the value of state variables. In
addition, even though a method may have been tested for a superclass,
it will still need to be retested for instances of subclasses, due to
the fact that inheritance permits superclasses and subclasses of
objects to have different methods.
Because module-testing practices, except correctness proofs, are
still largely an imperfect science, management needs to exercise some
judgment in the testing process, in particular with respect to the
kind of testing and its exhaustiveness. Ultimately, the management
needs to decide whether the cost of proving correctness exceeds the
benefit of checking that the product satisfies its specifications.
Similarly, management will need to determine when to stop testing. A
set of techniques from reliability analysis can be used to provide
statistical estimates of the remaining number of faults. Schach (4th
Edition), section 13.13 or Schach (5th Edition), section 14.13 or
Schach (6th Edition), section 14.18 gives a little more detail, as
well as some literature references for these techniques.
Another decision that management may need to make is whether to
keep testing a module that is found to contain many faults or whether
to have it recoded from scratch. We mentioned earlier that finding a
significantly larger than average number of faults in a module argues
for recoding that module. Somewhat unintuitively, the probability
that further faults will remain increases with the number of problems
found during development. Management must decide the maximum
acceptable number of faults, and request that a module be recoded if
that number is exceeded.
Readings:
6.4.1
- 160 -
6.4.2
6.4.3
- 162 -
6.4.4
Product Testing
Acceptance Testing
modules are correct and that the modules communicate correctly with
each other. After integration testing is completed and before the
product is delivered, the product as a whole must undergo testing of
other behavioral properties. During this stage of testing, it is the
responsibility of the SQA group in the developers organization to
ensure that any residual product faults are found and removed.
Readings:
6.5.1
Readings:
6.6.1
- 166 -
6.6.2
Coding Tools
- 167 -
6.6.3
- 168 -
6.6.4
Build Tools
6.6.5
Integrated Environments
6.6.6
- 169 -
6.7 Exercise 7
This is a resumption of your previous attempt.
Please note: At this time, we cannot track responses you
entered previously.
Please answer the following question(s).
If the assessment includes multiple-choice questions, click the
"Submit Answers" button when you have completed those questions.
1.
Implement, integrate, and test. Follow your plan and complete the
initial implementation of the classes. Did your experience in practice
reflect the original plan, or did you have to change the order of
implementation or testing strategy because of something you learned
during the actual implementation? Hand in your updated .java files along
with the original implementation plan and a brief "post-mortem"
describing the actual implementation versus the original plan.
Please refer to the Appendix A. Course Project page for more specific
implementation information.
(a)
(b)
(c)
(d)
2.Which of the following characterizes the binary machine code instructions processed by
computers?
White-box testing
Testing to code
Path-oriented testing
4.
I.
II.
(a) I and II only;(b) I and III only;(c) I, II, and III;(d) III only
- 171 -
5.It may be worth redesigning and recoding a module from scratch under which of the
following conditions?
7.()
I.
II.
(a) I and II only;(b) I and III only;(c) I, II, and III;(d) II and
III only
8.A module that either returns the information requested or returns appropriate hard-coded
values for given input is called
(a)
(b)
(c)
(d)
9.Acceptance testing can be performed by which of the following?
I.
II.
The client
The developer under supervision of a client's representative
(a) II and III only;(b) I and III only;(c) I and II only;(d) I, II,
and III
9.
I.
II.
SQA
10.Programming-in-the-many refers to which of the following?
- 173 -
7.1
7.2
7.3
7.4
7.5
Assessments
Exercise 8
Multiple-Choice Quiz 7
documentation,
although
references
to
the
importance
of
Schach (5th Edition), section 2.2.2, 2.3.2, 2.4.2, 2.5.2, 2.6.2, 2.7.2.
If you look at any of the life-cycle models described in Unit 2.
Software Life Cycle, you will notice that there is no separate
documentation phase. Documentation is an ongoing activity throughout
the software process. The following table shows the documents
associated with each life-cycle phase.
Life-Cycle Phase
Document Types
Requirements Analysis
Specification
Specification document
Architectural design
Design
Detailed design
Inline and module documentation
Implementation
Module
- 174 -
testing
document,
test
suites,
test
Integration
results
Integration testing document, test suites, test
results
Maintenance
design,
No documents created
Error-handling capabilities
Maintainer's Documentation
Installer/Administrator Documentation
User Training Materials
User Reference Manual
User Quick Reference
7.3.1
Maintainers Documentation
7.3.2
Installer/Administrator Documentation
- 177 -
7.3.3
Training materials guide first-time and novice end users through the
functionality of a system in a simple way. One approach to developing
training materials is to present different scenarios of use, and lead
the user through each one, using a realistic example throughout the
scenario. Another approach might be to give examples of uses and then
present example problems (with solutions) for the user to practice.
Training materials should cover all the major functionalities of the
system, but they do not necessarily have to cover every single aspect
of the system. They may contain pointers to the users reference
manual for more complex or less common operations, or they may
provide training for these operations in staged scenarios ordered by
complexity.
7.3.4
7.3.5
- 178 -
1.1.2
7.6 Exercise 8
(a) III only;(b) I and III only;(c) I, II, and III;(d) II and III
only
1.
I.
II.
- 182 -
Documentation of variables
2.()
I.
II.
Module input/output
The names of files accessed and changed by the module
The name of the file or files containing test data for the module
3.
I. /
II.
(a) II and III only;(b) I and II only;(c) I, II, and III;(d) I only
4. Installer/administrator documentation for a software product includes instructions about
which of the following?
I.
II.
Any product-related activities that would be performed by the systems division of the
organization
4./
I.
II.
(a) II and III only;(b) I only;(c) I and III only;(d) I, II, and III
5.A complete and detailed description of the functionality available in a software product is
found in the
(b)/
(c)
(d)
7. The reasons for documenting software development as early and completely as possible
include which of the following?
I.
II.
(a) I, II, and III;(b) I and II only;(c) I and III only;(d) II only
7.
I.
II.
Documentation will be produced throughout the life cycle and kept up to date
Documents for each phase will be completed by people who participated in that
phase
Documentation will lag behind the product by no more than one version
(a) I and III only;(b) I, II, and III;(c) II only;(d) I and II only
8.
I.
II.
9. Which of the following is (are) true about documentation standards for software
products?
I.
II.
(a) I only;(b) II and III only;(c) I, II, and III;(d) I and II only
9.()
I.
II.
10. CASE tools can help the documentation process for a software product in which of the
following ways?
I. By reducing the drudgery associated with documentation upkeep
II. By making the documentation available online for searching and changing
By centralizing and distributing changes to documentation
- 184 -
8.1
8.2
8.3
8.4
8.1.1
What is Maintenance?
Managing Maintenance
Maintaining Object-Oriented Software
Aids to Maintenance
Assessments
Exercise 9
Multiple-Choice Quiz 8
Types of Maintenance
Skills Required for Maintenance
- 185 -
8.2.1
One study found that perfective maintenance claims the bulk of time
devoted to maintenance, approximately 60 percent. Corrective and
adaptive maintenance each consume about 18 percent of the time, and
the remainder is accounted for by other types of activities.
When releasing a new version of the product after performing
maintenance, it is usually a good idea not to include more than one
kind of maintenance in the same release.
8.2.2
- 186 -
- 187 -
Fault Reports
Managing Workflow
Fault Prioritization
Workarounds
Readings:
15.8.
16.8.
15.8.
8.3.1
Fault Reports
- 188 -
8.3.2
Managing Workflow
8.3.3
Fault Prioritization
8.3.4
Workarounds
8.3.5
tools. Also used in the integration phase, these tools include sccs
(source code control system), rvs (revision control system), and cvs
(concurrent versions system). They are used to manage different
versions of the same module as it is updated due to fault fixes and
enhancements. To keep track of the versions of different modules that
are required in a whole product version, what is needed is a
configuration control tool, of which CCC (change and configuration
control) is a commercial example.
During maintenance, when a product is undergoing updates, the
previous version should be frozen as a baseline and new
(experimental) revisions should be treated as branches from the
baseline. After rigorous testing and approval, a module is released
back into the shared module pool and the baseline is updated. This
may happen only in conjunction with product version releases to the
client, but more likely, there will be a few internal version
releases creating different baselines.
Since the maintenance phase encompasses the activities of all
previous phases of the software life-cycle process, metrics that are
relevant to those phases are also applicable to maintenance. In
addition, a few more metrics are useful for tracking fault reports.
These include the total number of faults reported (in total, during a
specific period), a classification of fault reports, and the status
of those reports.
8.6 Exercise 9
- 194 -
Package and deliver all components of the system to the instructor in a .zip archive:
Javadoc directory: Also, include the final version of your detailed design
documentation in javadoc format.
1.
III.
IV.
Documentation of variables
(a) II only(b) I and III only(c) I only(d) I, II, and III
- 195 -
2.()
III.
IV.
Module input/output
The names of files accessed and changed by the module
The name of the file or files containing test data for the module
(a) II and III only(b) I and II only(c) I, II, and III(d) I only
3.
/
III.
IV.
Any product-related activities that would be performed by the systems division of the
organization
(a) II and III only(b) I only(c) I and III only(d) I, II, and III
4./
III.
IV.
5.
(a)Maintainer
(b)
(c)
(d)
6.Instructions for both the installation of the product and procedures for initialization
are included in which of the following?
(a) Maintainer's manual;(b) Installer/administrator documentation;(c) User's reference
manual;(d) User training manual
6.
- 196 -
(a)Maintainer
(b)/
(c)
(d)
7.The reasons for documenting software development as early and completely as
possible include which of the following?
III.
IV.
7.
III.
IV.
Documentation will be produced throughout the life cycle and kept up to date
Documents for each phase will be completed by people who participated in that
phase
Documentation will lag behind the product by no more than one version
(a) I and III only;(b) I, II, and III;(c) II only;(d) I and II only
8.
III.
IV.
9.Which of the following is (are) true about documentation standards for software
products?
III.
IV.
9.()
III.
IV.
10.CASE tools can help the documentation process for a software product in which
of the following ways?
III. By reducing the drudgery associated with documentation upkeep
IV. By making the documentation available online for searching and changing
By centralizing and distributing changes to documentation
- 197 -
10.
III.
IV.
Unit9. Exam
Practical
- 198 -