Learn how to attract and keep successful software professionals
Software Engineering Quality Practices describes how software engineers and the managers that supervise them can develop quality software in an effective, efficient, and professional manner. This volume conveys practical advice quickly and clearly while avoiding the dogma that surrounds the software profession. It concentrates on what the real requirements of a system are, what constitutes an appropriate solution, and how you can ensure that the realized solution fulfills the desired qualities of relevant stakeholders. The book also discusses how successful organizations attract and keep people who are capable of building high-quality systems.
The author succinctly describes the nature and fundamental principles of design and incorporates them into an architectural framework, enabling you to apply the framework to the development of quality software for most applications. The text also analyzes engineering requirements, identifies poor requirements, and demonstrates how bad requirements can be transformed via several important quality practices.
Qualities
Quality Drivers
Common Approaches to Developing Quality Software
An Integrated Approach for Developing Quality Software
Organizational Change Management
Practices to be Followed by Management Personnel
Practices to be Followed by Software Engineering Process
Groups
A Procedure for Making Change Happen
Personnel Management
Practices for Staffing an Organization
Practices for Developing Individual Skills
Practices for Rewarding Performance
Practices for Providing a Suitable Workplace
A Procedure for Hiring and Keeping Good People
Project Management
Practices for Planning a Project
Practices for Managing a Project
A Procedure for Planning a Project
Configuration Management
Practices for Managing Versions of Software Artifacts
Practices for Controlling Changes to Software Artifacts
Practices for Building Software Systems
Practices for Releasing Software Systems
Practices for Maintaining the Integrity of Software
Artifacts
A Procedure for Creating a Configuration Management
System
A Baseline Procedure for Managing Software
Configurations
Requirements Engineering
Practices for Eliciting Requirements
Practices for Analyzing the Problem Domain and
Application Needs
Practices for Specifying Requirements
Practices for Validating Requirements
Practices for Managing the Definition of Requirements
A Procedure for Engineering Requirements
Design
Fundamental Principles of Design
Practices for Designing Architectures
Practices for Adding Detailed Design Information
Practices Affecting the Design Process
A Unified Framework for System Architectures
A Procedure for Designing Software
Programming
Practices for General-Purpose Programming
Verification
Inspections
Testing
A Procedure for Planning the Verification Procedure
A Baseline Procedure for Verifying Software Systems
Remaining Quality Practices and Issues
Practices for Writing Useful User Documentation
Reusability
Defect Estimation Techniques
Competing Approaches
Extreme Programming
The Rational Unified Process
Cleanroom Software Engineering
Capability Maturity Model - Integrated
Summary
Comparison to Competing Approaches
Early Thoughts of the Software Pioneers
My Final Thoughts
Biography
Ronald Kirk Kandt