| |
| |
The Product and the Process | |
| |
| |
The Product | |
| |
| |
The Evolving Role of Software | |
| |
| |
Software | |
| |
| |
Software: A Crisis on the Horizon | |
| |
| |
Software Myths | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points To Ponder | |
| |
| |
Further Readings and Information Sheets | |
| |
| |
The Process | |
| |
| |
Software Engineering - A Layered Technology | |
| |
| |
The Software Process | |
| |
| |
Software Process Models | |
| |
| |
The Linear Sequential Model | |
| |
| |
The Prototyping Model | |
| |
| |
The RAD Model | |
| |
| |
Evolutionary Software Process Models | |
| |
| |
Component-Based Development | |
| |
| |
The Formal Methods Model | |
| |
| |
Fourth Generation techniques | |
| |
| |
Process Technology | |
| |
| |
Product and Process | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points To Ponder | |
| |
| |
Further Readings and Information Resources | |
| |
| |
Managing Software Projects | |
| |
| |
Project Management Concepts | |
| |
| |
The Management Spectrum | |
| |
| |
People | |
| |
| |
The Product | |
| |
| |
The Process | |
| |
| |
The Project | |
| |
| |
The W5HH Principle | |
| |
| |
Critical Practices | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points To Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Software Process and Project Metrics | |
| |
| |
Measures, Metrics and Indicators | |
| |
| |
Metrics in the Process and Project Domains | |
| |
| |
Software Measurement | |
| |
| |
Reconciling Different Metric Approaches | |
| |
| |
Metrics for Software Quality | |
| |
| |
Integrating Metrics Within the Software Engineering Process | |
| |
| |
The Development of Metrics and GQM | |
| |
| |
Managing Variation - Statistical Process Control | |
| |
| |
Metrics for Small Organisations | |
| |
| |
Establishing a Software Metrics Program | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points To Ponder | |
| |
| |
Further Reading and Information Sources | |
| |
| |
Software Project Planning | |
| |
| |
Observations on Estimating | |
| |
| |
Project Planning Objectives | |
| |
| |
Software Scope | |
| |
| |
Resources | |
| |
| |
Software Project Estimation | |
| |
| |
Decomposition Techniques | |
| |
| |
Empirical Estimation Models | |
| |
| |
The Make-Buy Decision | |
| |
| |
Automated Estimation Tools | |
| |
| |
Summary | |
| |
| |
Summary | |
| |
| |
Problems and Points To Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Risk Analysis and Management | |
| |
| |
Reactive vs. Proactive Risk Strategies | |
| |
| |
Software Risks | |
| |
| |
Risk Identification | |
| |
| |
Risk Projection | |
| |
| |
Risk Refinement | |
| |
| |
Risk Mitigation, Monitoring and Management | |
| |
| |
Safety Risks and Hazards | |
| |
| |
The RMMM Plan | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points to Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Project Scheduling and Tracking | |
| |
| |
Basic Concepts | |
| |
| |
The Relationship Between People and Effort | |
| |
| |
Defining a Set Task for the Software Project | |
| |
| |
Selecting Software Engineering Tasks | |
| |
| |
Refinement of Major Tasks | |
| |
| |
Defining a Task Network | |
| |
| |
Scheduling | |
| |
| |
Earned Value Analysis | |
| |
| |
Error Tracking | |
| |
| |
The Project plan | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points to Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Software Quality Assurance | |
| |
| |
Quality Concepts | |
| |
| |
The Quality Movement | |
| |
| |
Software Quality Assurance | |
| |
| |
Software Reviews | |
| |
| |
Formal Technical Reviews | |
| |
| |
Statistical Quality Assurance | |
| |
| |
Software Reliability | |
| |
| |
Mistake Proofing for Software | |
| |
| |
The ISO 9000 Quality standards | |
| |
| |
The SQA Plan | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points to Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Software Configuration Management | |
| |
| |
Software Configuration Management | |
| |
| |
The SCM Process | |
| |
| |
Identification of Objects in the Software Configuration | |
| |
| |
Version Control | |
| |
| |
Change Control | |
| |
| |
Configuration Audit | |
| |
| |
Status Reporting | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points To Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Conventional Methods for Software Engineering | |
| |
| |
Systems Engineering | |
| |
| |
Computer-Based Systems | |
| |
| |
The System Engineering Hierarchy | |
| |
| |
Business process Engineering: An Overview | |
| |
| |
Product Engineering: An Overview | |
| |
| |
Requirements Engineering | |
| |
| |
System Modelling | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points To Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Analysis Concepts and Principles | |
| |
| |
Requirements Analysis | |
| |
| |
Requirement s Elicitation for software | |
| |
| |
Analysis Principles | |
| |
| |
Software Prototyping | |
| |
| |
Specification | |
| |
| |
Specification review | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points To Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Analysis Modelling | |
| |
| |
a Brief History | |
| |
| |
The Elements of the Analysis Model | |
| |
| |
Data Modelling | |
| |
| |
Functional modelling and Information Flow | |
| |
| |
Behavioural Modelling | |
| |
| |
The Mechanics of Structured Analysis | |
| |
| |
The Data Dictionary | |
| |
| |
An Overview of Other Classical Analysis Methods | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points To Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Design Concepts and Principles | |
| |
| |
Software Design and Software Engineering | |
| |
| |
The Design Process | |
| |
| |
Design Principles | |
| |
| |
Design Concepts | |
| |
| |
Effective Modular Design | |
| |
| |
Design Heuristics for Effective Modularity | |
| |
| |
The Design Model | |
| |
| |
Design Documentation | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points to Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Architectural Design | |
| |
| |
Software Architecture | |
| |
| |
Data Design | |
| |
| |
Architectural Styles | |
| |
| |
Analysing Alternative Architectural Designs | |
| |
| |
Mapping Requirements into a Software Architecture | |
| |
| |
Transform Mapping | |
| |
| |
Transaction Mapping | |
| |
| |
Refining the Architectural Design | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points to Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Using Interface DESIGN | |
| |
| |
The Golden Rules | |
| |
| |
User Interface Design | |
| |
| |
Task Analysis and Modelling | |
| |
| |
Interface Design Activities | |
| |
| |
Implementation Tools | |
| |
| |
Design Evaluation | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points to Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Component Level DESIGN | |
| |
| |
Structured Programming | |
| |
| |
Comparison of Design Notation | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points To Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Software Testing TECHNIQUES | |
| |
| |
Software Testing Fundamental | |
| |
| |
Test Case Design | |
| |
| |
White-Box Testing | |
| |
| |
Basis Path Testing | |
| |
| |
Control Structure Testing | |
| |
| |
Black-Box Testing | |
| |
| |
Testing for Specialised Environments, Architectures and Applications | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points To Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Software Testing STRATEGIES | |
| |
| |
A Strategic Approach to Software Testing | |
| |
| |
Strategic Issues | |
| |
| |
Unit Testing | |
| |
| |
Integration testing | |
| |
| |
Validation testing | |
| |
| |
System Testing | |
| |
| |
The Art of Debugging | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points to Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Technical Metrics for SOFTWARE | |
| |
| |
Software Quality | |
| |
| |
A Framework for Technical Software Metrics | |
| |
| |
Metrics for the Analysis Model | |
| |
| |
Metrics for the Design Model | |
| |
| |
Metrics for Source Code | |
| |
| |
Metrics for testing | |
| |
| |
Metrics for Maintenance | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points to Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
OBJECT-Oriented Software ENGINEERING | |
| |
| |
OBJECT-Oriented Concepts and PRINCIPLES | |
| |
| |
The Object-Oriented Paradigm | |
| |
| |
Object-Oriented Concepts | |
| |
| |
Identifying the Elements of an Object Model | |
| |
| |
Management of Object-Oriented Software Projects | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points to Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
OBJECT-Oriented Analysis | |
| |
| |
Object-Oriented Analysis | |
| |
| |
Domain Analysis | |
| |
| |
Generic Components of the OO Analysis Model | |
| |
| |
The OOA Process | |
| |
| |
The Object-Relationship Model | |
| |
| |
The Object Behaviour Model | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points to Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
OBJECT-Oriented Design | |
| |
| |
Design for Object-Oriented Systems | |
| |
| |
The System design process | |
| |
| |
The Object Design Process | |
| |
| |
Design Patterns | |
| |
| |
Object-Oriented Programming | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points to Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
OBJECT-Oriented Testing | |
| |
| |
Broadening the View of testing | |
| |
| |
Testing OOA and OOD models | |
| |
| |
Object-Oriented Testing Strategies | |
| |
| |
Test Case design for OO Software | |
| |
| |
Testing Methods Applicable at the Class Level | |
| |
| |
Inter-Class test Case Design | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points to Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Technical Metrics for OBJECT-Oriented Systems | |
| |
| |
The Intent of Object-Oriented Metrics | |
| |
| |
The Distinguishing Characteristics of Object-Oriented Metrics | |
| |
| |
Metrics for the OO Design Model | |
| |
| |
Class-Oriented metrics | |
| |
| |
Operation-Oriented Metrics | |
| |
| |
Metrics for Object-Oriented Testing | |
| |
| |
Metrics for Object-Oriented Projects | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points to Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Advanced Topics in Software Engineering | |
| |
| |
Formal Methods | |
| |
| |
Basic Concepts | |
| |
| |
Mathematical preliminaries | |
| |
| |
Applying Mathematical Notation for Formal Specification | |
| |
| |
Formal Specification Languages | |
| |
| |
Using Z to Represent Example Software Component | |
| |
| |
The Ten Commandments of Formal Methods | |
| |
| |
Formal Methods - The Road Ahead | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points to Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Cleanroom Software ENGINEERING | |
| |
| |
The Cleanroom Approach | |
| |
| |
Functional Specification | |
| |
| |
Design Refinement and Verification | |
| |
| |
Cleanroom Testing | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points to Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
COMPONENT-Based Software ENGINEERING | |
| |
| |
Engineering of Component-Based Systems | |
| |
| |
The CBSE Process | |
| |
| |
Domain Engineering | |
| |
| |
Component-Based Development | |
| |
| |
Classifying and Retrieving Components | |
| |
| |
Economics of CBSE | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points to Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
CLIENT-Server Software | |
| |
| |
The Structure of Client Server Systems | |
| |
| |
Software Engineering for C/S Systems | |
| |
| |
Analysis Modelling Issues | |
| |
| |
Design for C/S Systems | |
| |
| |
Testing Issues | |
| |
| |
Summary | |
| |
| |
The Design of Distributed Systems | |
| |
| |
Security Engineering | |
| |
| |
Software Engineering for C/S systems | |
| |
| |
Analysis Modelling Issues | |
| |
| |
Design for C/S Systems | |
| |
| |
Testing issues | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points To Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
WEB ENGINEERING | |
| |
| |
The Attributes of Web-Based Applications | |
| |
| |
The WebE Process | |
| |
| |
A Framework for WebE | |
| |
| |
Formulating/Analysing Web-Based Systems | |
| |
| |
Design for Web-Based Applications | |
| |
| |
Testing Web-Based Applications | |
| |
| |
Management Issues | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points To Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Reengineering | |
| |
| |
Business process Reengineering | |
| |
| |
Software Reengineering | |
| |
| |
Reverse Engineering | |
| |
| |
Restructuring | |
| |
| |
Forward Engineering | |
| |
| |
The Economics of Reengineering | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points To Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
Computer-Aided Software Engineering | |
| |
| |
What is CASE? | |
| |
| |
Building Blocks for CASE | |
| |
| |
A Taxonomy of CASE Tools | |
| |
| |
Integrated CASE Environments | |
| |
| |
The Integration Architecture | |
| |
| |
The CASE Repository | |
| |
| |
Summary | |
| |
| |
References | |
| |
| |
Problems and Points To Ponder | |
| |
| |
Further Readings and Information Sources | |
| |
| |
The Road Ahead | |
| |
| |
The Importance of software - Revisited | |
| |
| |
The Scope of Changes | |
| |
| |
People and the Way they Build Systems | |
| |
| |
The "New" Software Engineering Process | |
| |
| |
New Models for Representing Information | |
| |
| |
Technology as a Driver | |
| |
| |
A Concluding Comment | |
| |
| |
References | |
| |
| |
Problems and Points To Ponder | |
| |
| |
Further Readings and Information Sources | |