It is our hope that the Tiny Tools section of the SEPA Web site will
expand over the coming years. The following list contains suggestions
for Tiny Tools that might be developed as part of project work during
a software engineering course or (if you're a practitioner) something
that you'd like to do in your spare time. If you develop a Tiny Tool
that you believe has merit, we urge you to submit it for evaluation.
Tools accepted will be posted at the site, The author, university or
organization, and date will also be provided (unless anonymity is requested).
The intent of these Tiny Tools is to provide simple Web-based or downloadable
(e.g., a spread-sheet template) aids that can help both managers and
practitioners in their software engineering work. These are NOT full-blown
CASE tools.
The Tiny Tools listed below represent possibilities only. Further information
that will support development of the tool can be found in SEPA, 5/e.
Management-Related Tiny Tools
The following tools may be useful to a project manager or team leader
during a project. Note that the description represents a starting point
only. Feel free to extend the tiny tool in any direction that you believe
has merit. Also remember that all tools MUST have easy to use, predictable
interfaces, ideally, developed so that they may be invoked via the SEPA
Web site.
Metrics Database Builder
Likely a spreadsheet template, this tool helps the project manager
to collect process and project based metrics. RSP has a very basic
spreadsheet model that can be used as a foundation for this Tiny
Tool.
LOC Metrics Calculator
Builds a LOC data table (project, LOC, effort, duration, # people,
errors uncovered, review hours, etc) and then computes LOC-normalized
averages.
FP metrics Calculator
Calculates
FP values based on input of standard FP variables. Enhanced version
computes feature points or 3-D function points.
Control Charts Assistant (for Statistical process control
Using LOC or FP metrics, builds a control chart and then
performs basic computation (see p. 98ff) to determine if trends for
metrics data are statistically valid.
DRE Calculator
Error rate data for different SE activities is input to the
tool. DRE is computed from activity to activity (e.g., from analysis
to design) or for the entire process.
Problem-Based (LOC) Estimation Assistant
Assists the
manager in the functional decomposition of the problem for estimation
purposes. Then asks for low, expected and high estimates of program
size per function. Using LOC/pm averages, computes cost/effort estimate
as shown in Fig. 5.3.
Process based Estimation Assistant
Assists the
manager in the task decomposition for estimation purposes. Then asks
for effort estimates per task. Checks these against guidelines for effort
distribution. Creates table (Fig. 5.5) and computes cost/effort estimate
as shown in Fig. 5.5.
Problem-Based (FP) Estimation Assistant
Asks for
low, expected and high estimates of FP variables. Using FP/pm averages,
computes cost/effort estimate as shown in Fig. 5.4.
COCOMO-II Estimation Assistant
Implements
a simple version of the COCOMO II model. Note: This will require information
obtained from other sources in addition to SEPA, 5/e. There may be models
operational on the net. If so, a pointer to the appropriate model would
suffice in lieu of constructing a tool.
Decision Assistant (build and analyze decision trees)
A more sophisticated
tool, but potentially quite useful. Implements the construction of a
simple decision tree (Fig. 5.6) and then performs the computations required
to determine the expected cost for each decision. Added features might
include an automated approach for determining path probability.
Risk Table Builder (build and analyze risk tables)
Helps to
automate the construction of a risk table. Might semi-automate the determination
of risk probabilities and impact. To provide value-added with this tool,
the developer will require information obtained from other "risk"
sources in addition to SEPA, 5/e.
Risk Refinement Assistant
A simple
tool that guides the user through risk refinement using the CTC approach.
Risk Information Sheet Builder
Assists the
user in building and cataloging risk information sheets (Fig. 6.5).
Task Set Selector
Assists the
user in selecting the appropriate task set for a software project. All
heuristics and a manual, table driven approach are documented in detail
and can be obtained from RSP.
Earned Value Calculator
Assists the
user in computing earned value variables as described on pp. 183ff.
Error Tracker (builds an error tracking database)
Build an
error tracking database for subsequent use in determining quality metrics
and DRE information.
Change Request/Report Generator
Assists the
user in creating a Software change request and the developer in appending
a software change report.
Software Engineering Tiny Tools for Practitioners
The intent of these Tiny Tools is to provide simple web-based or down-loadable
(e.g., a spread-sheet template) tools that can help both managers and
practitioners in their software engineering work.
The Tiny Tools listed below represent possibilities only. The more
of them that can be developed, the more useful (and unique) the SEPA,
5/e web site will be.
Hatley-Pirbhai System Model Template Builder
Uses a Q&A
format to assist the user in creating a context level system model template
(Fig. 10.6, 10.7). An advanced version would decompose the context level
into a system flow diagram as shown in Fig 10.8.
Use-Case Builder
Uses a Q&A
format to assist the user in creating a complete use-case for some interactive
task. The tool might also help in identifying tasks, actors, etc.
Data/Function Partitioner
Many developers
have difficulty in partitioning data objects or functions. This tool
would guide a user in the partitioning process (possibly using a Q&A
approach). It might also make use of the "Grammatical Parser"
tool to parse a narrative at one level of abstraction into the next
lower level of abstraction.
Grammatical Parser
A more sophisticated
tool, this provides automated semi-automated assistance for those who
want to apply the grammatical parsing approach. Isolates nouns and verbs
and creates a preliminary list of each. This list is edited by the user
and the final list is created. Allows the user to develop further narrative
for each object (noun) and action (verb) and then applies itself recursively.
This provides a mechanism
Data Modeler
Possibly
used in conjunction with the "Grammatical Parser" tool, this
tool provides a simple means for creating ERDs by allowing the user
to specify "connections" between defined data objects.
Structured Analysis Assistant
Possibly
used in conjunction with the "Grammatical Parser" tool, this
tool guides the user through the tasks required to create an analysis
model . It creates simple DFDs, PSPECs, STDs, CPECs or provides assistant
in their creation.
Simple Algorithm Builder
Possibly
used in conjunction with the "Grammatical Parser" tool, this
tool uses stepwise refinement to guide user through creation of any
simple algorithm.
Coupling and Cohesion Metrics Calculator
This tool
computes the coupling and cohesion metrics described in SEPA. A more
advanced version would incorporate other C&C metrics (see [ZUS97])
to provide a "composite C&C index" for a component.
QDS Calculator
This tool
assists the user in developed a quantitative evaluation of a software
architecture using the approach outlined in SEPA. An advanced version
(or a different tool implements the ATAM heuristics referenced in SEPA.
Structured Design Assistant
This tool guides the user through the tasks required to create
a structured design model . It assists the user in developing flow boundaries
within a DFD and then mapping these into either transform or transaction
structures.
Decision Table Builder
This tool guides the user through the tasks required to create
a decision table. It queries for all conditions, actions and then helps
define rules. A more advanced version implements some of the things
contained in [HUR83].
Independent Basis Path Selector
Programming
language version of a component is input to this tool. The tool identifies
predicates, determines V(G), and then selects a set of independent basis
paths for the component.
Testing Assistant (Chapter 17)
Implements one or more of the testing methods discussed in
Chapter 17. The developer of this tool will require additional references
other than SEPA.
Quality Assessor
Uses a Q&A and/or quasi-quantitative assessment format
to develop and indication of the quality of an application. Based on
the factors noted on p. 510ff
BANG Metric Calculator
Implements calculation of DeMarcos Bang Metric.
DSQI Calculator
Calculates the design structure quality index by querying
the user for "S" counts and then performing the calculation.
A more advanced version might determine some of the S counts automatically.
Halstead Calculator
Calculates
Key Halstead variable using input source code.
SMI Calculator
Calculates
software maturity index using data provided by user.
Object-Class Identifier
Use a Q&A
format to assist an analyst in identifying candidate objects/classes
and then validating/rejecting candidates based on the characteristics
noted on p. 554ff.
OO project Estimator/controller
Builds tasks
associated with a generic recursive/parallel process model and allows
a project manager to customize and then estimate effort associated with
each task/iteration. Integrated.
Metrics Collector for OO Projects
Allows project
manager to enter measures described and then computes appropriate metrics
to assist in project estimation and/or control. See also Chapter 24.
UML Tutor for Analysis Work
Presents
a micro tutorial for UML including all important diagrammatic representations
used for OOA and basic concepts.
Domain Analysis Guide
Use a Q&A format to assist an analyst in identifying
candidate reusable objects/classes for a specific application domain.
Likely based on a functional decomposition/elaboration model for the
domain. See also, Chapter 27, p. 726ff.
Use-Case Builder
Use a Q&A
format to assist an analyst in creating use-cases. The output of the
tool will be use-case "forms."
CRC Index Card Builder
Use a Q&A
format to assist an analyst in building CRC index cards. The internal
database created for this tool should product reports that are of use
to both the analyst and the designer/tester.
UML Tutor for Design Work
Presents
a micro tutorial for UML including all important diagrammatic representations
used for OOD and basic concepts.
OO System Design Guide
Guides a
designer through the steps to complete a layered system design using
the approach recommended by Buschmann .
Design Pattern Register
Uses a forms
approach to "register a design pattern." User completes all information
specified.
Review Assistant for OOA/OOD models
Uses CRC
information (and database) created using the CRC Index Card Builder
to semi-automate the walkthrough suggested on p. 622ff.
Test Case Generator for OO Random Testing
User enters
all operations and their relationships form the behavioral model. Tools
then creates a set of test cases templates that exercise the relationships
among operations.
OO Metrics Calculator
Use a Q&A
format to collect measures that are discussed throughout Chapter 24
and then computes relevant metrics and produces a report based on their
implications.
Formal Methods Tiny Tool
Develop a
tiny tool that will assist someone in creating a formal specification.
The tiny too may address a very narrow aspect of specification development
and need not be comprehensive. This will require substantial additional
research in the sources referenced within SEPA and elsewhere.
Box Structure Builder
Assist the
cleanroom designer in building black-boxes, state-boxes and clear boxes,
including graphical representation of those boxes.
Design Verification (Proof of Correctness) Assistant
Accepts PDL
or source code as input and determines points in logic where correctness
questions are asked. Indicates these and in an advanced version, determines
context so that the appropriate question will be asked for the designer
to verify.
Statistical Use Test Generator
Using technique
described in the book (p. 712ff) develop a set of randomly generated
use tests based on input probability distribution for various program
stimuli.
Component Identifier
Using technique
described in the book (p. 725ff) address questions noted and then develop
a scheme for defining a "characterization function."
Component Librarian
Using a indexing
scheme defined by the tool builder, create a tool that enables a user
to look-up a potentially reusable component. This tool is for pedagical
purposes only and will not be intended for actual use.
Component Reuse Cost Calculator
Use a Q&A
format to collect measures required to compute cost values noted on
p. 739 ff. Ultimately computes reuse leverage and all intermediate values.
Web Site Quality Assessor
Uses a Q&A format to assess the quality of an existing
or proposed Web site following general quality model proposed in Figure
29.1.
Web Engineering Assistant
Guides the developer through WebEngineering tasks including
architecture design, navigation design, and interface design. Advanced
version build diagrams and provides detailed guidance and analysis.
Software Reengineering Tiny Tool
Develop a
tiny tool that will assist someone in doing some aspect of software
reengineering. The tiny too may address a very narrow aspect of reengineering
and need not be comprehensive. This will require additional research
in the sources referenced within SEPA and elsewhere.
Inventory Analyzer
Assists an
organization in developing an inventory of software applications including
the definition of various characteristics that will assist in determining
whether a legacy system requires reengineering.
Reengineering Cost Calculator
Use a Q&A format to collect measures required to compute
cost values noted on p. 819 ff. Ultimately computes cost benefit and
all intermediate values.