Flexible Software Design: Systems Development for Changing Requirements

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...

Mô tả đầy đủ

Đã lưu trong:
Chi tiết về thư mục
Những tác giả chính: Johnson, Bruce, Woolfolk, Walter, Miller, Robert, Johnson, Cindy
Định dạng: Sách
Ngôn ngữ:English
Được phát hành: CRC Press 2009
Truy cập trực tuyến:http://scholar.dlu.edu.vn/thuvienso/handle/DLU123456789/1428
Các nhãn: Thêm thẻ
Không có thẻ, Là người đầu tiên thẻ bản ghi này!
Thư viện lưu trữ: Thư viện Trường Đại học Đà Lạt
id oai:scholar.dlu.edu.vn:DLU123456789-1428
record_format dspace
institution Thư viện Trường Đại học Đà Lạt
collection Thư viện số
language English
description 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.
format Book
author Johnson, Bruce
Woolfolk, Walter
Miller, Robert
Johnson, Cindy
spellingShingle Johnson, Bruce
Woolfolk, Walter
Miller, Robert
Johnson, Cindy
Flexible Software Design: Systems Development for Changing Requirements
author_facet Johnson, Bruce
Woolfolk, Walter
Miller, Robert
Johnson, Cindy
author_sort Johnson, Bruce
title Flexible Software Design: Systems Development for Changing Requirements
title_short Flexible Software Design: Systems Development for Changing Requirements
title_full Flexible Software Design: Systems Development for Changing Requirements
title_fullStr Flexible Software Design: Systems Development for Changing Requirements
title_full_unstemmed Flexible Software Design: Systems Development for Changing Requirements
title_sort flexible software design: systems development for changing requirements
publisher CRC Press
publishDate 2009
url http://scholar.dlu.edu.vn/thuvienso/handle/DLU123456789/1428
_version_ 1757659090583027712
spelling oai:scholar.dlu.edu.vn:DLU123456789-14282009-12-02T07:34:39Z Flexible Software Design: Systems Development for Changing Requirements Johnson, Bruce Woolfolk, Walter Miller, Robert Johnson, Cindy 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. 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 A CRCnetBASE Product Copyright © 2009 Taylor and Francis Group, LLC 2009-12-02T07:34:39Z 2009-12-02T07:34:39Z 2005 Book http://scholar.dlu.edu.vn/thuvienso/handle/DLU123456789/1428 en application/rar CRC Press