Title:
Constructing Superior Software
Series:
SOFTWARE QUALITY INSTITUTE SERIES
Physical Description:
xix, 285 pages : illustrations ; 23 cm
ISBN:
9781578701476
Abstract:
This work offers a practical guide to the key areas of the software development life-cycle. The essays look at all issues and provide a set of fundamental engineering strategies for achieving successful software solutions.
Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 33000000006999 | QA76.76 C66 2000 | Open Access Book | Gift Book | Searching... |
On Order
Summary
Summary
This is the lead book in a series of books from the Software Quality Institute (SQI). This series will bring together some of the key individuals in the Software Engineering community, and through their knowledge and experience, develop a library of books that set the standards for best practices in achieving high-quality software. This title presents a set of fundamental engineering strategies for achieving a successful software solution, with practical advice to ensure that the development project is moving in the right direction. Software designers and development managers can improve the development speed and quality of their software, and improve the processes used in development.
Table of Contents
Introduction | p. 1 |
Part 1 Quality Systems | p. 9 |
1 The System Is the Key | p. 11 |
Systems, Systems, Systems! | p. 12 |
A Simple Message | p. 13 |
What Is a Software Development System? (SDS) | p. 14 |
Objectives for a Specific Development Activity | p. 14 |
Policies | p. 16 |
People | p. 16 |
Procedures | p. 17 |
Tools | p. 18 |
Information | p. 19 |
Broader System Issues | p. 20 |
Objectives for the Entire SDS | p. 21 |
Environment | p. 21 |
Resources | p. 22 |
Management | p. 23 |
Using the Key | p. 23 |
Summary | p. 24 |
References | p. 25 |
2 Engineer the Reliability | p. 27 |
Software Reliability Engineering | p. 28 |
Basic Definitions | p. 28 |
What SRE Is and Why It Works | p. 29 |
A Proven, Standard, Widespread Best Practice | p. 30 |
SRE Process and Fone Follower Example | p. 32 |
List Associated Systems | p. 33 |
Define "Just Right" Reliability | p. 33 |
Develop Operational Profiles | p. 35 |
Prepare for Test | p. 36 |
Execute Test | p. 37 |
Guide Test | p. 37 |
Collect Field Data | p. 39 |
Summary | p. 39 |
To Explore Further | p. 40 |
Books | p. 40 |
Conference | p. 40 |
Courses | p. 40 |
Internet Resources | p. 40 |
Journals | p. 41 |
Professional Organization | p. 41 |
References | p. 41 |
3 User-Centered Design and Development | p. 43 |
What Is User-Centered Design? | p. 43 |
Usability | p. 45 |
Cost-Justifying Usability | p. 45 |
Traditional Versus User-Centered Approach | p. 46 |
The Five Principles of UCD | p. 51 |
Principle 1 Understand Users | p. 52 |
Principle 2 Design the Total User Experience | p. 52 |
Principle 3 Evaluate Designs | p. 54 |
Principle 4 Assess Competitiveness | p. 55 |
Principle 5 Manage for Users | p. 56 |
The UCD Process | p. 58 |
How UCD Fits into the Software Development Process | p. 58 |
Development Process Activities | p. 60 |
Design | p. 61 |
Prototyping | p. 61 |
Evaluation | p. 61 |
Implementation | p. 61 |
Development Team | p. 61 |
Determining System Requirements | p. 64 |
Functional Requirements | p. 64 |
User Requirements | p. 65 |
User Interface Design | p. 67 |
Prototyping | p. 69 |
Usability Evaluation | p. 74 |
Reasons for Conducting User Evaluations | p. 74 |
Types of User Evaluations | p. 75 |
Field Evaluation | p. 75 |
Walkthrough/Inspection | p. 76 |
Formal Lab Test | p. 77 |
Summary | p. 78 |
References | p. 79 |
Part II Quality Designs | p. 81 |
4 Software Architecture and Quality | p. 83 |
What Is Software Architecture and Why Is it Important? | p. 83 |
Qualities and Their Relationship to Software Architecture | p. 88 |
Understanding Quality Attributes | p. 93 |
A Quality-Based Design Process | p. 93 |
Architectural Drivers, Requirements, and Choices | p. 95 |
Refining the Functional Structure | p. 96 |
Refining the Concurrency Structure | p. 96 |
Use Cases and Quality Scenarios | p. 97 |
End-to-End Thread and Skeletal Systems | p. 97 |
Elements of an Architectural Design Process | p. 98 |
Evaluation | p. 99 |
Architecture Reconstruction | p. 101 |
Conclusions | p. 103 |
References | p. 104 |
5 Rationalize Your Design | p. 105 |
Introduction | p. 105 |
Why Can't We Achieve a Rational Design Process? | p. 106 |
Why Is a Rationalized Design Useful Nevertheless? | p. 108 |
How Do We Produce a Rationalized Design? | p. 109 |
What Documentation Do We Produce? | p. 109 |
Documenting the Requirements | p. 109 |
Documenting the Architecture | p. 112 |
Documenting the Components' Internal Structures | p. 118 |
Documenting the Rationale | p. 118 |
Documentation Principles | p. 120 |
Rationalizing the Design | p. 122 |
References | p. 123 |
6 Building Systems from Pieces with Component-Based Software Engineering | p. 125 |
Background | p. 125 |
The Context for CBSE | p. 127 |
Understanding Component Concepts | p. 129 |
Packaging Perspective | p. 129 |
Service Perspective | p. 131 |
Integrity Perspective | p. 132 |
An Illustrative Example: Microsoft Excel | p. 133 |
Designing Component-Based Solutions | p. 134 |
The Basic Steps of Component Modeling | p. 135 |
The Unified Modeling Language (UML) | p. 138 |
Component Modeling Using the UML | p. 139 |
Choosing a Component Infrastructure | p. 143 |
Component Infrastructure Services | p. 143 |
Component Infrastructure Implementations | p. 144 |
Current Practice in CBSE | p. 149 |
Special Interest Groups | p. 149 |
Vendor-Led User Groups | p. 150 |
Specialist Component Service Providers | p. 150 |
Experience Reports and Advice | p. 151 |
Summary | p. 152 |
Acknowledgments | p. 153 |
References | p. 153 |
Part III Quality Projects | p. 155 |
7 Teamwork Considerations for Superior Software Development | p. 157 |
Introduction | p. 157 |
Teams in Organizational Context | p. 158 |
Avoiding the Chaos Trap | p. 161 |
Combating Chaos with Effective Teamwork | p. 161 |
The Team and Its Lifecycle | p. 163 |
The Team Growth Model | p. 165 |
Formation | p. 166 |
Alignment | p. 166 |
Performance | p. 166 |
Dissolvement and/or Transition | p. 167 |
Formation | p. 168 |
The Software Engineer | p. 172 |
The Chief Software System Engineer/Architect | p. 175 |
The Software Project Manager | p. 176 |
The Software Quality Assurance and Testing (SQAT) Specialist | p. 180 |
The Problem Domain Specialist | p. 182 |
The External Components Acquirer | p. 183 |
Customer and Expectations Manager | p. 186 |
Product Delivery Specialist | p. 187 |
End-User Educator | p. 188 |
Tying It All Together | p. 189 |
Team Alignment | p. 189 |
The Launch and Alignment Workshop | p. 191 |
Periodic Teamwork Performance Review (PTPR) | p. 193 |
Performance | p. 194 |
Conflict Management | p. 196 |
Software Team Groupware | p. 199 |
Transition and/or Closure | p. 202 |
Evaluating Team Growth Effectiveness | p. 203 |
Summary | p. 206 |
References | p. 209 |
8 Use Realistic, Effective Software Measurement | p. 211 |
What Problems Can Measurement Address? | p. 211 |
Using Measurement | p. 212 |
Abusing Measurement | p. 213 |
Applying Measurement Sensibly | p. 216 |
Examining the Measures Themselves | p. 216 |
Models and Measures | p. 219 |
Measuring Process | p. 220 |
Measuring Products | p. 221 |
Measuring Resources | p. 228 |
Storing, Analyzing, and Reporting the Measurements | p. 228 |
Steps to More Effective Measurement | p. 232 |
Further Reading | p. 233 |
Books | p. 233 |
Journals | p. 234 |
Key Journal Articles | p. 234 |
Conferences | p. 235 |
Organizations | p. 235 |
References | p. 236 |
9 Select Tools to Fit the Tasks | p. 237 |
What's the Issue? | p. 237 |
Why Is It Important? | p. 238 |
Software Development and Maintenance Tasks | p. 238 |
Project Planning | p. 238 |
Requirements Gathering and Problem Analysis | p. 239 |
Design | p. 240 |
Implementation: Coding and Debugging | p. 240 |
Testing and Quality Assurance | p. 241 |
Ongoing Evolution | p. 242 |
Coordination | p. 243 |
Projects, Tasks, and Tools | p. 244 |
Tools and Environments | p. 244 |
Horizontal Tools | p. 245 |
Vertical Tools | p. 246 |
Tool Integration | p. 250 |
Data Integration | p. 251 |
Control Integration | p. 251 |
Presentation Integration | p. 251 |
Platform Integration | p. 251 |
Process Integration | p. 251 |
Tool Integration Is Hard | p. 253 |
Tool Integration in Practice | p. 255 |
Tool Selection | p. 257 |
What Next? | p. 262 |
References | p. 264 |
Addendum | p. 265 |
Index | p. 267 |