Software Engineering Tiny Tools for Managers and Practitioners
The intent of these Tiny Tools is to provide simple web-based or downloadable (e.g., for example, a spreadsheet template) tools 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. The more
of them that can be developed, the more useful (and unique) the SEPA, 5/e
web site will be. If you develop one of these tools and would like to post
it on the Tiny Tools web site, contact Professor Bruce Maxim.
Note: page numbers following tool refer to Dr. Roger Pressman's
Software Engineering: A Practitioners Approach, 5/e incidence of the topic.
Metrics Database Builder (Metrics Collection Template)
- 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 (p. 86)
Builds an LOC data table (project, LOC, effort, duration, # people, errors uncovered, review hours, etc) and then computes LOC-normalized averages.
FP metrics Calculator (p. 87)
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 (p. 98)
- 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 (p. 103)
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 (see algorithm p. 123)
Assists the manager in the functional decomposition of the problem for estimation purposes (see algorithm p. 123). 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 (p. 128)
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(p. 126)
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 (p.130)
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) p. 133
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) p.147
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 (p. 152)
A simple tool that guides the user through risk refinement using the CTC approach.
Risk Information Sheet Builder (p.156)
- Assists the user in building and cataloging risk information sheets (Fig. 6.5).
Task Set Selector(p. 167)
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 (p. 181)
Assists the user in computing earned value variables as described on pp. 183ff.
Error Tracker (builds an error tracking database) p. 183
Build an error tracking database for subsequent use in determining quality metrics and DRE information.
Change Request/Report Generator, p. 229
Assists the user in creating a Software change request and the developer in appending a software change report.
Hatley-Pirbhai System Model Template Builder (p. 257)
- 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 (p. 274)
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 (p. 282)
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 (p. 316ff)
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 (p. 297)
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 (p. 313)
- 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 intheir creation.
Simple Algorithm Builder (p. 349)
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 (p. 517ff)
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 (p.370)
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 (p. 371)
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 (p. 420)
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 (p. 440)
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.
TestingAssistant (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 (p. 501)
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.500ff
BANG Metric Calculator (p. 510)
¥ Implements calculation of DeMarco's Bang Metric.
DSQI Calculator (p. 516)
- 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 (p.522)
Calculates Key Halstead variable using input source code.
SMI Calculator (p. 524)
Calculates software maturity index using data provided by user.
Object-Class Identifier (p. 544)
- Use a Q&A format to assist analyst in identifying candidate objects/classes and then validating/rejecting candidates based on the characteristics noted on p.546ff.
OO project Estimator/controller (p. 552)
- 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 milestones p. 555 ff.
Metrics Collector for OO Projects (p. 553)
- Allows project manager to enter measures described pp.553ff and then computes appropriate metrics to assist in project estimation and/or control. See also Chapter 24, p. 651ff.
UML Tutor for Analysis Work (p. 565)
- Presents a micro tutorial for UML including all important diagrammatic representations used for OOA and basic concepts.
Domain Analysis Guide (p. 567)
- 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. 711ff.
Use-Case Builder (p. 570)
- 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 (p.571)
- 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 (p. 598)
- Presents a micro tutorial for UML including all important diagrammatic representations used for OOD and basic concepts.
OO System Design Guide (p. 601)
- Guides a designer through the steps to complete a layered system design using the approach recommended by Buschmann (p. 601).
Design Pattern Register (p. 612)
- Uses a forms approach to register a design pattern. User completes all information specified on p. 612.
Review Assistantf or OOA/OOD models (p. 622)
- Uses CRC information (and database) created using the CRC Index Card Builder to semi-automate the walkthrough suggested on p. 622ff.
Test Case generate for OO Random Testing (p. 632)
- User enters all operations and their relationships form the behavioral model. The tool then creates a set of test cases templates that exercise the relationships among operations.
OO MetricsCalculator (p. 640ff)
- 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 (p. 673)
- 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 (p. 691ff)
- Assist the cleanroom designer in building black-boxes, state-boxes and clear boxes, including graphical representation of those boxes.
DesignVerification (Proof of Correctness) Assistant (p. 694ff)
- 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 UseTest Generator (p. 699ff)
- Using technique descibed in the book (p. 699ff) develop a set of randomly generated use tests based on input probability distribution for various program stimuli.
Component Identifier (p. 711ff)
- Using technique described in the book (p. 711ff) address questions noted and then develop a scheme for defining a characterization function.
Component Librarian (p. 721ff)
- 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 pedagogical purposes only and will not be intended for actual use.
Component Reuse Cost Calculator (p. 724ff)
- A Q&A format to collect measures required to compute cost values noted on p. 724 ff. Ultimately computes reuse leverage and all intermediate values.
Web Site Quality Assessor (p. 758)
- Uses a Q&A format to assess the quality of an existing or proposed Web site following general quality model proposed in Figure29.1.
Web Engineering Assistant (p. 763ff)
Guides the developer through Web Engineering tasks including architecture design, navigation design, and interface design. Advanced version build diagrams and provides detailed guidance and analysis.
Software Reengineering Tiny Tool (p. 789ff)
- 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 (p. 763ff)
- 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 (p. 803ff)
- Use a Q&A format to collect measures required to compute cost values noted on p.803 ff. Ultimately computes cost benefit and all intermediate values.