Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010252057 | QA76.758 J645 2010 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
Publisher's Note: Products purchased from Third Party sellers are not guaranteed by the publisher for quality, authenticity, or access to any online entitlements included with the product.
Proven techniques for software engineering success
This in-depth volume examines software engineering topics that are not covered elsewhere: the question of why software engineering has developed more than 2,500 programming languages; problems with traditional definitions of software quality; and problems with common metrics, "lines of code," and "cost per defect" that violate standard economic assumptions. The book notes that a majority of "new" projects are actually replacements for legacy applications, illustrating that data mining for lost requirements should be a standard practice. Difficult social engineering issues are also covered, such as how to minimize harm from layoffs and downsizing.
Software Engineering Best Practices explains how to effectively plan, size, schedule, and manage software projects of all types, using solid engineering procedures. It details proven methods, from initial requirements through 20 years of maintenance. Portions of the book have been extensively reviewed by key engineers from top companies, including IBM, Microsoft, Unisys, and Sony.
Manage Agile, hierarchical, matrix, and virtual software development teams Optimize software quality using JAD, OFD, TSP, static analysis, inspections, and other methods with proven success records Use high-speed functional metrics to assess productivity and quality levels Plan optimal organization, from small teams through more than 1,000 personnelAuthor Notes
Capers Jones is president and CEO of Capers Jones Associates LLC. He was the founder and chairman of Software Productivity Research (SPR). He is the author of Estimating Software Costs, Second Edition and Applied Software Measurement. Mr. Jones was awarded a lifetime membership in the International Function Point Users Group (IFPUG), and he is a Distinguished Advisor to the Consortium of IT Software Quality (CISQ).
Table of Contents
Foreword | p. xv |
Acknowledgments | p. xvii |
Introduction | p. xix |
Chapter 1 Introduction and Definitions of Software Best Practices | p. 1 |
What Are "Best Practices" and How Can They Be Evaluated? | p. 7 |
Multiple Paths for Software Development, Deployment, and Maintenance | p. 10 |
Paths for Software Deployment | p. 12 |
Paths for Maintenance and Enhancements | p. 14 |
Quantifying Software Development, Deployment, and Maintenance | p. 16 |
Critical Topics in Software Engineering | p. 19 |
Overall Ranking of Methods, Practices, and Sociological Factors | p. 23 |
Summary and Conclusions | p. 36 |
Readings and References | p. 36 |
Chapter 2 Overview of 50 Software Best Practices | p. 39 |
1 Best Practices for Minimizing Harm from Layoffs and Downsizing | p. 41 |
2 Best Practices for Motivation and Morale of Technical Staff | p. 45 |
4 Best Practices for Selection and Hiring of Software Personnel | p. 50 |
5 Best Practices for Appraisals and Career Planning for Software Personnel | p. 50 |
6 Best Practices for Early Sizing and Scope Control of Software Applications | p. 51 |
7 Best Practices for Outsourcing Software Applications | p. 53 |
8 Best Practices for Using Contractors and Management Consultants | p. 58 |
9 Best Practices for Selecting Software Methods, Tools, and Practices | p. 59 |
10 Best Practices for Certifying Methods, Tools, and Practices | p. 64 |
11 Best Practices for Requirements of Software Applications | p. 70 |
12 Best Practices for User Involvement in Software Projects | p. 72 |
13 Best Practices for Executive Management Support of Software Applications | p. 74 |
14 Best Practices for Software Architecture and Design | p. 75 |
15 Best Practices for Software Project Planning | p. 77 |
16 Best Practices for Software Project Cost Estimating | p. 79 |
17 Best Practices for Software Project Risk Analysis | p. 81 |
18 Best Practices for Software Project Value Analysis | p. 83 |
19 Best Practices for Canceling or Turning Around Troubled Projects | p. 84 |
20 Best Practices for Software Project Organization Structures | p. 87 |
21 Best Practices for Training Managers of Software Projects | p. 89 |
22 Best Practices for Training Software Technical Personnel | p. 91 |
23 Best Practices for Use of Software Specialists | p. 92 |
24 Best Practices for Certifying Software Engineers, Specialists, and Managers | p. 94 |
25 Best Practices for Communication During Software Projects | p. 97 |
26 Best Practices for Software Reusability | p. 99 |
27 Best Practices for Certification of Reusable Materials | p. 101 |
28 Best Practices for Programming or Coding | p. 107 |
29 Best Practices for Software Project Governance | p. 109 |
30 Best Practices for Software Project Measurements and Metrics | p. 110 |
31 Best Practices for Software Benchmarks and Baselines | p. 112 |
32 Best Practices for Software Project Milestone and Cost Tracking | p. 115 |
33 Best Practices for Software Change Control Before Release | p. 117 |
34 Best Practices for Configuration Control | p. 119 |
35 Best Practices for Software Quality Assurance (SQA) | p. 120 |
36 Best Practices for Inspections and Static Analysis | p. 124 |
37 Best Practices for Testing and Test Library Control | p. 128 |
38 Best Practices for Software Security Analysis and Control | p. 132 |
39 Best Practices for Software Performance Analysis | p. 134 |
40 Best Practices for International Software Standards | p. 136 |
41 Best Practices for Protecting Intellectual Property in Software | p. 136 |
42 Best Practices for Protecting Against Viruses, Spyware, and Hacking | p. 139 |
43 Best Practices for Software Deployment and Customization | p. 154 |
44 Best Practices for Training Clients or Users of Software Applications | p. 156 |
45 Best Practices for Customer Support of Software Applications | p. 157 |
46 Best Practices for Software Warranties and Recalls | p. 158 |
47 Best Practices for Software Change Management After Release | p. 160 |
48 Best Practices for Software Maintenance and Enhancement | p. 161 |
49 Best Practices for Updates and Releases of Software Applications | p. 164 |
50 Best Practices for Terminating or Withdrawing Legacy Applications | p. 166 |
Summary and Conclusions | p. 167 |
Readings and References | p. 167 |
Chapter 3 A Preview of Software Development and Maintenance in 2049 | p. 177 |
Introduction | p. 177 |
Requirements Analysis Circa 2049 | p. 179 |
Design Circa 2049 | p. 182 |
Software Development Circa 2049 | p. 184 |
User Documentation Circa 2049 | p. 186 |
Customer Support In 2049 | p. 188 |
Deployment and Customer Training in 2049 | p. 190 |
Maintenance and Enhancement in 2049 | p. 191 |
Software Outsourcing in 2049 | p. 195 |
Software Package Evaluation and Acquisition in 2049 | p. 204 |
Technology Selection and Technology Transfer in 2049 | p. 207 |
Enterprise Architecture and Portfolio Analysis in 2049 | p. 210 |
A Preview of Software Learning in 2049 | p. 213 |
Due Diligence in 2049 | p. 216 |
Certification and Licensing In 2049 | p. 218 |
Software Litigation in 2049 | p. 221 |
Summary and Conclusions | p. 225 |
Readings and References | p. 225 |
Chapter 4 How Software Personnel Learn New Skills | p. 227 |
Introduction | p. 227 |
The Evolution of Software Learning Channels | p. 228 |
What Topics Do Software Engineers Need to Learn Circa 2009? | p. 230 |
Software Engineering Specialists Circa 2009 | p. 233 |
Varieties of Software Specialization Circa 2009 | p. 236 |
Approximate Ratios of Specialists to General Software Personnel | p. 241 |
Evaluating Software Learning Channels Used by Software Engineers | p. 243 |
Software Areas Where Additional Education Is Needed | p. 266 |
New Directions in Software Learning | p. 267 |
Summary and Conclusions | p. 268 |
Curricula of Software Management and Technical Topics | p. 268 |
Readings and References | p. 273 |
Chapter 5 Software Team Organization and Specialization | p. 275 |
Introduction | p. 275 |
Quantifying Organizational Results | p. 276 |
The Separate Worlds of Information Technology and Systems Software | p. 277 |
Cotocatfon vs. Distributed Development | p. 278 |
The Challenge of Organizing Software Specialists | p. 281 |
Software Organization Structures from Small to Large | p. 284 |
One-Person Software Projects | p. 284 |
Pair programming for software development and maintenance | p. 286 |
Self-Organizing Agile Teams | p. 289 |
Team Software Process (TSP) Teams | p. 293 |
Conventional Departments with Hierarchical Organization Structures | p. 298 |
Conventional Departments with Matrix Organization Structures | p. 304 |
Specialist Organizations in Large Companies | p. 308 |
Software Maintenance Organizations | p. 309 |
Customer Support Organizations | p. 322 |
Software Test Organizations | p. 328 |
Software Quality Assurance (SQA) Organizations | p. 342 |
Summary and Conclusions | p. 348 |
Readings and References | p. 349 |
Chapter 6 Project Management and Software Engineering | p. 351 |
Introduction | p. 351 |
Software Sizing | p. 359 |
Software Progress and Problem Tracking | p. 403 |
Software Benchmarking | p. 408 |
Summary and Conclusions | p. 433 |
Readings and References | p. 434 |
Chapter 7 Requirements, Business Analysis, Architecture, Enterprise Architecture, and Design | p. 437 |
Introduction | p. 437 |
Software Requirements | p. 439 |
Statistical Analysis of Software Requirements | p. 442 |
Business Analysis | p. 468 |
Software Architecture | p. 470 |
Enterprise Architecture | p. 475 |
Software Design | p. 479 |
Summary and Conclusions | p. 484 |
Readings and References | p. 485 |
Chapter 8 Programming and Code Development | p. 489 |
Introduction | p. 489 |
A Short History of Programming and Language Development | p. 490 |
Why Do We Have More than 2500 Programming Languages? | p. 492 |
Exploring the Popularity of Programming Languages | p. 495 |
How Many Programming Languages Are Really Needed? | p. 499 |
Creating a National Programming Language Translation Center | p. 501 |
Why Do Most Applications Use Between 2 and 15 Programming Languages | p. 504 |
How Many Programmers Use Various Programming Languages? | p. 506 |
What Kinds of Bugs or Defects Occur in Source Code? | p. 509 |
Logistics of Software Code Defects | p. 512 |
Preventing and Removing Defects from Application Source Code | p. 518 |
Forms of Programming Defect Prevention | p. 520 |
Forms of Programming Defect Removal | p. 529 |
Economic Problems of the "Lines of Code" Metric | p. 537 |
Summary and Conclusions | p. 552 |
Readings and References | p. 552 |
Chapter 9 Software Quality: The Key to Successful Software Engineering | p. 555 |
Introduction | p. 555 |
Defining Software Quality | p. 558 |
Measuring Software Quality | p. 585 |
Defect Prevention | p. 600 |
Software Defect Removal | p. 613 |
Software Quality Specialists | p. 619 |
Summary and Conclusions on Software Specialization | p. 632 |
The Economic Value of Software Quality | p. 633 |
Summary and Conclusions | p. 642 |
Readings and References | p. 643 |
Index | p. 645 |