| |
| |
| |
Introduction | |
| |
| |
Why We Wrote This Book | |
| |
| |
Software Tools Enable Big Productivity Gains | |
| |
| |
Along Comes CASE | |
| |
| |
Little CASE's Larger History | |
| |
| |
Why Perl Is Good for Software Engineering Tools | |
| |
| |
Testing Too | |
| |
| |
Software Development Processes and Prototyping | |
| |
| |
How to Use This Book | |
| |
| |
Your Friends Along the Way | |
| |
| |
Equipped Better | |
| |
| |
| |
Why Perl? | |
| |
| |
What Is Perl? | |
| |
| |
Why Is Perl Useful for Rapid Prototyping? | |
| |
| |
"Functional quickly" | |
| |
| |
"Easy to modify" | |
| |
| |
"A working model written in a fourth-generation language" | |
| |
| |
"Always rewritten in a procedural language for implementation" | |
| |
| |
"Always discarded" | |
| |
| |
"Something that models human interfaces to computers" | |
| |
| |
"A miniature model of a proposed system" | |
| |
| |
"A model used to determine design correctness" and "A quick way to approximate a problem solution" | |
| |
| |
"Always used with 'live' data" | |
| |
| |
How Perl Stacks Up | |
| |
| |
Perl Beats the Combined Forces | |
| |
| |
Converting Existing Scripts to Perl | |
| |
| |
Really Learning Perl | |
| |
| |
| |
Prototyping with Perl | |
| |
| |
Why Prototype? | |
| |
| |
| |
Unknowns in Customer Requirements | |
| |
| |
| |
Unknowns in Technology | |
| |
| |
| |
Unknowns in Interfaces | |
| |
| |
The Waterfall Development Model | |
| |
| |
The Spiral Model | |
| |
| |
Structured Rapid Prototyping | |
| |
| |
Object-Oriented Analysis and Design | |
| |
| |
Other Development Methodologies | |
| |
| |
Prototyping Methods | |
| |
| |
Risks of Prototyping | |
| |
| |
The General Case of Prototyping | |
| |
| |
Requirements Analysis | |
| |
| |
Design | |
| |
| |
Implementation and Test | |
| |
| |
The Final Spin Cycle | |
| |
| |
Case History: Prototyping Power Estimation | |
| |
| |
| |
Productivity Tools | |
| |
| |
Generic Tags File Generator Tool | |
| |
| |
Reuse Library System | |
| |
| |
Documentation Extraction Tool | |
| |
| |
Reuse Browser | |
| |
| |
AutoDoc | |
| |
| |
Code Generators | |
| |
| |
Command-Line Processing and Help Code Generator | |
| |
| |
Test Fixtures | |
| |
| |
Stretch Yourself on Productivity Tools | |
| |
| |
| |
Software Metrics with Perl | |
| |
| |
Why Metrics? | |
| |
| |
What Are Software Metrics? | |
| |
| |
Counting Lines of Code | |
| |
| |
Halstead's Metrics | |
| |
| |
McCabe's Metric | |
| |
| |
Using Software and Other Metrics | |
| |
| |
Misusing Metrics | |
| |
| |
Metrics, Management, and Misconception | |
| |
| |
Not in My Code | |
| |
| |
Look What I've Done | |
| |
| |
Lies, Damn Lies, and Statistics | |
| |
| |
Those Who Live By The Books... | |
| |
| |
Taken as Directed | |
| |
| |
Stretch Yourself on Software Metrics | |
| |
| |
| |
Configuration Management | |
| |
| |
The How and Why of Configuration Management | |
| |
| |
Two Ways of Managing Versions | |
| |
| |
Revision Control System (RCS) Basics | |
| |
| |
Jumpstarting Revisions | |
| |
| |
Viewing History | |
| |
| |
How Far Does It Take Us? | |
| |
| |
Identifying Object Files | |
| |
| |
Automatic History | |
| |
| |
Handling Systems or Packages | |
| |
| |
Another Option | |
| |
| |
RCS Perl Scripts | |
| |
| |
Smart ci and co Tools | |
| |
| |
Problem Reporting | |
| |
| |
Stretch Yourself on Configuration Management | |
| |
| |
| |
Perl Quick Tour | |
| |
| |
Perl Data Types | |
| |
| |
Variables | |
| |
| |
Literals | |
| |
| |
Basic Syntax | |
| |
| |
Subroutines | |
| |
| |
Packages | |
| |
| |
Operators | |
| |
| |
Regular Expressions | |
| |
| |
Special Variables | |
| |
| |
Perl Formatting Capabilities | |
| |
| |
Wrapping Up | |
| |
| |
| |
Portable Perl | |
| |
| |
| |
Toolkit Libraries | |
| |
| |
Langdef File Format and Access Routines | |
| |
| |
Langdef Regular Expressions | |
| |
| |
Langdef Capabilities | |
| |
| |
Langdef Routines | |
| |
| |
Routines Found in main Package | |
| |
| |
Useful Routines Found in "Langdef" Package | |
| |
| |
The Perl Forms System | |
| |
| |
What is a Form? | |
| |
| |
Defining a Form | |
| |
| |
Attributes Common to All Fields | |
| |
| |
Function Keys | |
| |
| |
Text Editing in Fields | |
| |
| |
Using Text Fields | |
| |
| |
Using Hidden Text Fields | |
| |
| |
Using Cyclic Fields | |
| |
| |
Using Enumerated Fields | |
| |
| |
Using the Forms System | |
| |
| |
| |
Software Engineering with Perl Scripts | |
| |
| |
| |
Productivity Tools | |
| |
| |
Tags.pl | |
| |
| |
doc_builter.pl | |
| |
| |
doc_browser.pl | |
| |
| |
AutoDoc.pl | |
| |
| |
| |
Software Metrics with Perl | |
| |
| |
countlines.pl | |
| |
| |
halstead.pl | |
| |
| |
mccabe.pl | |
| |
| |
| |
Configuration Management | |
| |
| |
smart_diff.pl, smart_ci.pl, smart_co.pl, send-pr.pl | |
| |
| |
| |
Bibliography | |
| |
| |
| |
GNU General Public License | |