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 DeMarco’s 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.