Object-Oriented and Classical Software Engineering: Stephen R. Schach
Object-Oriented and Classical Software Engineering: Stephen R. Schach
Object-Oriented and
Classical Software
Engineering
Eighth Edition, WCB/McGraw-Hill, 2011
Stephen R. Schach
KEY MATERIAL
FROM
PART A
Testing terminology
Execution-based and non-execution-based testing
Modularity
Reuse
Software project management plan
Figure 10.1
Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved.
Software Development: Theory vs. Practice (contd)
Slide 10.6
Figure 10.2
Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved.
Incrementation (contd) Slide 10.10
Examples:
– At the beginning of the life cycle
» The requirements workflow predominates
– At the end of the life cycle
» The implementation and test workflows predominate
Figure 10.3
It incorporates
– The methodology
» With its underlying software life-cycle model and techniques
– The tools we use
– The individuals building the software
Requirements workflow
– Determine exactly what the client needs
Analysis workflow
– Analyze and refine the requirements
» To achieve the detailed understanding of the requirements
essential for developing a software product correctly and
maintaining it easily
Design workflow
– Refine the artifacts of the analysis workflow until the
material is in a form that can be implemented by the
programmers
Implementation workflow
– Implement the target software product in the chosen
implementation language(s)
Test workflow
– Testing is carried out in parallel with the other workflows, from the
beginning
– Every developer and maintainer is personally responsible for
ensuring that his or her work is correct
– Once the software professional is convinced that an artifact is
correct, it is handed over to the software quality assurance group
for independent testing
– NOTE: the idea of an SQA group always formally checking every
artifact is good in theory, but real-world practices almost never
implement this idea. Formal SQA groups are rare except in very
large organizations that specialize in “for profit” software
development, and even then exhaustive checking is uncommon.
This observation is not meant to minimize the potential benefits of
an SQA group – it is meant to indicate that you should not assume
that an SQA group even exists, much less that it will check
everything. SO – check all your work yourself!
Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved.
10.5 Teams Slide 10.21
A configuration is
– A set of specific versions of each artifact from which a
given version of the complete product is built
– A configuration-control tool can handle problems caused
by development and maintenance by teams
» In particular, when more than one person attempts to change
the same artifact
A module is
– A lexically contiguous sequence of program statements,
– Bounded by boundary elements (that is, {…} pairs),
– Having an aggregate identifier
Examples:
– Procedures and functions of the classical paradigm
– Objects
– Methods within an object
Project function
– Work carried on throughout the project
– Examples:
» Project management
» Quality control
Activity
– Work that relates to a specific phase
– A major unit of work
» With precise beginning and ending dates,
» That consumes resources, and
» Results in work products like the budget, design, schedules,
source code, or users’ manual
Task
– An activity comprises a set of tasks (the smallest unit of
work subject to management accountability)
A work package is
– A work product, plus
» Staffing requirements
» Duration
» Resources
» The name of the responsible individual
» Acceptance criteria for the work product
» The detailed budget as a function of time, allocated to
– Project functions
– Activities