Flexible Software Design: Systems Development for Changing Requirements

Published:
Author(s):

Purchasing Options

Hardback
$104.95
Add to cart
ISBN 9780849326509
Cat# AU2650
 

Features

  • Enables the design of software that empowers business staff to make functional changes to their systems with little or no IT intervention
  • Offers "how-to" techniques from seasoned professionals with more than 50 years of combined experience
  • Focuses mainly on the flexibility characteristics of systems themselves rather than on methodology
  • Refutes pervasive IT myths with flexibility concepts
  • Contains numerous exhibits and examples that clearly illustrate flexibility techniques and benefits
  • Summary

    A developer's knowledge of a computing system's requirements is necessarily imperfect because organizations change. Many requirements lie in the future and are unknowable at the time the system is designed and built. To avoid burdensome maintenance costs developers must therefore rely on a system's ability to change gracefully-its flexibility. Flexible Software Design: Systems Development for Changing Requirements demonstrates the design principles and techniques that enable the design of software that empowers business staff to make functional changes to their systems with little or no professional IT intervention.

    The book concentrates on the design aspects of system development, the area with the most flexibility leverage. Divided into four parts, the text begins by introducing the fundamental concepts of flexibility, explaining the reality of imperfect knowledge and how development participants must change their thinking to implement flexible software. The second part covers design guidelines, stable identifiers, stable information structures, the Generic Entity Cloud concept, and regulatory mechanisms that give business staff control over system modifications. Part three relates strategic information systems planning to flexible systems. It examines the elicitation of requirements and the relevance of agile methods in a flexible systems environment. It also discusses practical aspects of stable identifier design and compares the testing of traditional and flexible software. In part four, the book concludes with details of the flexible UniverSIS system and an explanation of the applications and extensions of the Generic Entity Cloud tools.

    The combination of smart design and smart work offered in Flexible Software Design can materially benefit your organization by radically reducing the systems maintenance burden.

    Table of Contents

    INTRODUCTION TO FLEXIBILITY
    The Serious Problems with IT Today
    The Industrywide Maintenance Problem
    What Is Wrong with Nonflexible Systems? Two Cautionary Tales
    The Typical IT Environment: No Time to Do It Right - Time
    to Do It Over!
    Summary

    The Reality of Imperfect Knowledge
    Flexibility: An Improved Way of Thinking
    What Is Flexible Software?
    Change or Die
    Evolution of Flexibility
    IT Misconceptions and Flexibility Concepts
    Summary

    Outcome, Not Methodology
    Mired in Methodology
    Software Engineering Shifts
    Summary

    Realignment of Roles
    Roles and Responsibilities in Traditional and Flexible
    Development
    Flexibility Attitudes
    Summary

    UniverSIS: a Flexible System
    Background
    Success Stories
    Two System Features
    Summary

    WHAT IS REQUIRED TO ACHIEVE FLEXIBILITY
    Guidelines for Flexible Software Design
    Treat "Design" as a Noun
    Design for the Long Haul
    Observe Consistent Standards
    Use N-Tiered Architecture
    Employ Individual Data Objects
    Take Advantage of Reusable Logic
    Code General-Purpose Routines
    Recognize the Limits of Flexibility
    Summary

    The Importance of Stable Identifiers
    Information-Free Stable Identifiers
    Types of Unstable Identifiers
    Identifiers and the Relational Data Model
    Summary

    Regulation: Managing Artificial Limits
    Business Rules as Artificial Limits
    General Regulation of Business Rules
    Cardinality Regulation: Variable Cardinality, Many-to-Many
    Associations
    Summary
    Appendix: Using Regulation to Make a Flexible System
    Appendix: Business Rules Manifesto

    Stable Information Structures
    Structure/Process Differentiation: Generic Structures
    Recursive Relationships
    Typing and Generic Entities
    Recognizing Certain Forms of Data
    Bottom-Up Derivation of Generic Entities
    Summary

    The Generic-Entity Cloud (GEC)
    What Is a Generic-Entity Cloud?
    Three-Node Generic-Entity Cloud
    Externals
    Six-Node Generic-Entity Cloud
    GECs, Attributes, and Flexibility
    Externals Connected to Generic-Type Node
    Summary

    HOW TO DESIGN FLEXIBLE SOFTWARE
    SYSTEMS
    Flexibility and Strategic Systems Planning
    The Myth of the Isolated System
    Traditional Planning Approach
    Stable Enterprise Model
    Strategic Systems Planning for Flexibility
    Summary

    Requirements Determination for Flexible Systems
    Myth of Perfect Knowledge
    Definition of Effective Requirements
    Identifying Dynamic Requirements
    Agile Methodologies
    Summary

    System Design with an Eye on Flexibility
    Structure-Oriented Techniques for Flexible Software Design
    Process-Oriented Techniques for Flexible Software Design
    Summary
    Appendix: Dynamic Condition Search Program Listing (in Java)

    Implementing Stable Identifiers
    The Basic Rule
    Applying the Basic Rule
    Circumvention Paths - Back to the Beginning
    Summary

    Testing and Maintenance of Flexible Software
    Errors Encountered in Testing
    Two Phases of Testing
    Summary

    Identifying, Managing, and Acquiring Quality Flexible
    Software
    Flexibility and Quality
    Managing System Development/Acquisition to Achieve Flexibility
    Procuring Flexible Software
    Summary

    FLEXIBILITY: DELVING DEEPER
    A Closer Look at UniverSIS
    Navigation and Security
    Documents
    Required Admission Credentials
    Contact Management
    Correspondence
    Correspondence Tracks
    Selected-ID Lists
    Tests
    Employee Profile
    Grades
    Summary

    Evaluator: a Flexible Tool for Maintaining Business Rules
    Record Rules
    Evaluate
    Evaluator: the Details
    Working through Examples
    Summary

    Tuition-Remission Case Study: Traditional versus
    Flexible
    Traditional Approach
    Flexible Approach
    Comparison of Traditional and Flexible Approaches
    Summary

    Regulatory GECs (Generic Entity Clouds)
    Attached versus Detached Regulation
    GEC Validation Tables
    Generic Validation Table GECs
    When to Use Attached or Detached Regulation
    Value-to-Value Translation
    Summary

    GEC Applications and Extensions
    Developing a GEC
    GEC with Business Rules
    Multi-Ring GEC
    The Atomic GEC
    SubGECs
    Summary

    GEC Aids
    The GECAnalyzer
    The GECBuilder
    The GECPhazer
    Summary

    Appendix A: Bibliography and References

    Related Titles