Skip to:Content
|
Bottom
Cover image for Constructing Superior Software
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

Introductionp. 1
Part 1 Quality Systemsp. 9
1 The System Is the Keyp. 11
Systems, Systems, Systems!p. 12
A Simple Messagep. 13
What Is a Software Development System? (SDS)p. 14
Objectives for a Specific Development Activityp. 14
Policiesp. 16
Peoplep. 16
Proceduresp. 17
Toolsp. 18
Informationp. 19
Broader System Issuesp. 20
Objectives for the Entire SDSp. 21
Environmentp. 21
Resourcesp. 22
Managementp. 23
Using the Keyp. 23
Summaryp. 24
Referencesp. 25
2 Engineer the Reliabilityp. 27
Software Reliability Engineeringp. 28
Basic Definitionsp. 28
What SRE Is and Why It Worksp. 29
A Proven, Standard, Widespread Best Practicep. 30
SRE Process and Fone Follower Examplep. 32
List Associated Systemsp. 33
Define "Just Right" Reliabilityp. 33
Develop Operational Profilesp. 35
Prepare for Testp. 36
Execute Testp. 37
Guide Testp. 37
Collect Field Datap. 39
Summaryp. 39
To Explore Furtherp. 40
Booksp. 40
Conferencep. 40
Coursesp. 40
Internet Resourcesp. 40
Journalsp. 41
Professional Organizationp. 41
Referencesp. 41
3 User-Centered Design and Developmentp. 43
What Is User-Centered Design?p. 43
Usabilityp. 45
Cost-Justifying Usabilityp. 45
Traditional Versus User-Centered Approachp. 46
The Five Principles of UCDp. 51
Principle 1 Understand Usersp. 52
Principle 2 Design the Total User Experiencep. 52
Principle 3 Evaluate Designsp. 54
Principle 4 Assess Competitivenessp. 55
Principle 5 Manage for Usersp. 56
The UCD Processp. 58
How UCD Fits into the Software Development Processp. 58
Development Process Activitiesp. 60
Designp. 61
Prototypingp. 61
Evaluationp. 61
Implementationp. 61
Development Teamp. 61
Determining System Requirementsp. 64
Functional Requirementsp. 64
User Requirementsp. 65
User Interface Designp. 67
Prototypingp. 69
Usability Evaluationp. 74
Reasons for Conducting User Evaluationsp. 74
Types of User Evaluationsp. 75
Field Evaluationp. 75
Walkthrough/Inspectionp. 76
Formal Lab Testp. 77
Summaryp. 78
Referencesp. 79
Part II Quality Designsp. 81
4 Software Architecture and Qualityp. 83
What Is Software Architecture and Why Is it Important?p. 83
Qualities and Their Relationship to Software Architecturep. 88
Understanding Quality Attributesp. 93
A Quality-Based Design Processp. 93
Architectural Drivers, Requirements, and Choicesp. 95
Refining the Functional Structurep. 96
Refining the Concurrency Structurep. 96
Use Cases and Quality Scenariosp. 97
End-to-End Thread and Skeletal Systemsp. 97
Elements of an Architectural Design Processp. 98
Evaluationp. 99
Architecture Reconstructionp. 101
Conclusionsp. 103
Referencesp. 104
5 Rationalize Your Designp. 105
Introductionp. 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 Requirementsp. 109
Documenting the Architecturep. 112
Documenting the Components' Internal Structuresp. 118
Documenting the Rationalep. 118
Documentation Principlesp. 120
Rationalizing the Designp. 122
Referencesp. 123
6 Building Systems from Pieces with Component-Based Software Engineeringp. 125
Backgroundp. 125
The Context for CBSEp. 127
Understanding Component Conceptsp. 129
Packaging Perspectivep. 129
Service Perspectivep. 131
Integrity Perspectivep. 132
An Illustrative Example: Microsoft Excelp. 133
Designing Component-Based Solutionsp. 134
The Basic Steps of Component Modelingp. 135
The Unified Modeling Language (UML)p. 138
Component Modeling Using the UMLp. 139
Choosing a Component Infrastructurep. 143
Component Infrastructure Servicesp. 143
Component Infrastructure Implementationsp. 144
Current Practice in CBSEp. 149
Special Interest Groupsp. 149
Vendor-Led User Groupsp. 150
Specialist Component Service Providersp. 150
Experience Reports and Advicep. 151
Summaryp. 152
Acknowledgmentsp. 153
Referencesp. 153
Part III Quality Projectsp. 155
7 Teamwork Considerations for Superior Software Developmentp. 157
Introductionp. 157
Teams in Organizational Contextp. 158
Avoiding the Chaos Trapp. 161
Combating Chaos with Effective Teamworkp. 161
The Team and Its Lifecyclep. 163
The Team Growth Modelp. 165
Formationp. 166
Alignmentp. 166
Performancep. 166
Dissolvement and/or Transitionp. 167
Formationp. 168
The Software Engineerp. 172
The Chief Software System Engineer/Architectp. 175
The Software Project Managerp. 176
The Software Quality Assurance and Testing (SQAT) Specialistp. 180
The Problem Domain Specialistp. 182
The External Components Acquirerp. 183
Customer and Expectations Managerp. 186
Product Delivery Specialistp. 187
End-User Educatorp. 188
Tying It All Togetherp. 189
Team Alignmentp. 189
The Launch and Alignment Workshopp. 191
Periodic Teamwork Performance Review (PTPR)p. 193
Performancep. 194
Conflict Managementp. 196
Software Team Groupwarep. 199
Transition and/or Closurep. 202
Evaluating Team Growth Effectivenessp. 203
Summaryp. 206
Referencesp. 209
8 Use Realistic, Effective Software Measurementp. 211
What Problems Can Measurement Address?p. 211
Using Measurementp. 212
Abusing Measurementp. 213
Applying Measurement Sensiblyp. 216
Examining the Measures Themselvesp. 216
Models and Measuresp. 219
Measuring Processp. 220
Measuring Productsp. 221
Measuring Resourcesp. 228
Storing, Analyzing, and Reporting the Measurementsp. 228
Steps to More Effective Measurementp. 232
Further Readingp. 233
Booksp. 233
Journalsp. 234
Key Journal Articlesp. 234
Conferencesp. 235
Organizationsp. 235
Referencesp. 236
9 Select Tools to Fit the Tasksp. 237
What's the Issue?p. 237
Why Is It Important?p. 238
Software Development and Maintenance Tasksp. 238
Project Planningp. 238
Requirements Gathering and Problem Analysisp. 239
Designp. 240
Implementation: Coding and Debuggingp. 240
Testing and Quality Assurancep. 241
Ongoing Evolutionp. 242
Coordinationp. 243
Projects, Tasks, and Toolsp. 244
Tools and Environmentsp. 244
Horizontal Toolsp. 245
Vertical Toolsp. 246
Tool Integrationp. 250
Data Integrationp. 251
Control Integrationp. 251
Presentation Integrationp. 251
Platform Integrationp. 251
Process Integrationp. 251
Tool Integration Is Hardp. 253
Tool Integration in Practicep. 255
Tool Selectionp. 257
What Next?p. 262
Referencesp. 264
Addendump. 265
Indexp. 267
Go to:Top of Page