Book description
Providing a framework to guide software professionals through the many aspects of development, Building Software: A Practitioner's Guide shows how to master systems development and manage many of the soft and technical skills that are crucial to the successful delivery of systems and software. It encourages tapping into a wealth of cross-domain and legacy solutions to overcome common problems, such as confusion about requirements and issues of quality, schedule, communication, and people management. The book offers insight into the inner workings of software reliability along with sound advice on ensuring that it meets customer and organizational needs.
Table of contents
- Cover
- Half Title
- Title Page
- Copyright Page
- Dedication
- Table of Contents
- Preface
- Acknowledgments
- Introduction
- About the Authors
- 1 Failure
- 2 Systems
- 3 Strategies
- 4 Requirements
- 5 Architecture and Design
- 6 Data and Information
-
7 Life Cycles
- Everything Sequential Is Not a Life Cycle
- Coarse-Grained Process Models
- Standard Software Life Cycles
- Using Life Cycle as a Model
- Choosing the Right Life Cycle
- Prototypes Are Important
- Life-Cycle Phases
- Some Places in the Life Cycle Are Better Suited to Terminate a Project
- Software Shelf Life
- Data Shelf Life
- Movies versus Software
- Summary
- 8 The Semantics of Processes
- 9 Off-the-Shelf Software
-
10 Customization
- Customization versus Enhancements
- Customization and Configuration
- Customization and Ground-Up Creation
- Customization Requirements
- Customization Facilities
- Handling Upgrades to Customization
- Why Customization Projects Fail
- Dominance of the Customization Model
- Need for a Customization Framework
- Pros and Cons of Customization
- Customization and Management
- Summary
- 11 Migration
-
12 Quality and Testing
- The Definition of Quality
- Quality as Feedback
- Products and Processes
- Quality under Constraints
- QA Effort Sizing
- Dealing with Poor Specifications
- Test Plans and Cases
- Types of Testing
- Scope of Testing
- Automation in Testing
- Test Environments
- Quality Improvements over Time
- Bugs
- Classification of Bugs
- Push and Pull: The Equation between Development and QA
- Multiple Views of Quality
- Quality Assurance (QA) and Testing Skills
- Summary: Quality Matters
-
13 Communication
- The Objectives of Communication
- Communication Models
- The Problem of Miscommunication
- Information Dynamics
- Modes of Communication
- Communication Tools
- Channels
- Demos
- Other Aspects of Communications
- Communicating across Fault Lines
- Escalation
- Communication Techniques
- Content
- Status
- The Three Popular Vectors
- Summary
- 14 Reports
- 15 Documentation
-
16 Security
- The Demand for Security
- Security Crosses Conventional Application Boundaries
- The Weaker Links
- Security Is Linked to Value and Ownership
- Identifying the Correct Entities to Protect
- The Business Perspective
- The Technical Perspective
- Learning from the Human Security System
- A Counter-Intuitive Approach from Field Sports
- The Human Perspective
- Processes and Procedures
- Summary
- 17 Conclusion
- Bibliography
-
Appendix A Discussion of Terms
- Logical versus Physical
- Products, Projects, and Processes
- Critical versus Important
- Horizontal versus Vertical
- Upstream versus Downstream
- Import versus Export
- Push versus Pull
- Roles versus Responsibilities
- Scale Up versus Scale Out
- Validation versus Verification versus Testing
- Asynchronous versus Synchronous
- Hierarchical versus Structured
- Task versus Activity
- Online, Real-Time, Interactive, Batch, Offline
- Internationalization versus Localization versus Multilingual
- High Availability versus Fault Tolerance
- Index
Product information
- Title: Building Software
- Author(s):
- Release date: September 2007
- Publisher(s): Auerbach Publications
- ISBN: 9781000654462
You might also like
book
Developing Safety-Critical Software
As the complexity and criticality of software increase and projects are pressed to develop software faster …
book
Software Engineering
This book addresses basic and advanced concepts in software engineering and is intended as a textbook …
book
Software Engineering
Software Engineering covers both function oriented as well as object oriented (OO) approach and emphasises on …
book
Beginning Software Engineering
A complete introduction to building robust and reliable software Beginning Software Engineering demystifies the software engineering …