rent-now

Rent More, Save More! Use code: ECRENTAL

5% off 1 book, 7% off 2 books, 10% off 3+ books

9780471970477

The Cognitive Dynamics of Computer Science Cost-Effective Large Scale Software Development

by ;
  • ISBN13:

    9780471970477

  • ISBN10:

    0471970476

  • Edition: 1st
  • Format: Hardcover
  • Copyright: 2006-07-31
  • Publisher: Wiley-IEEE Computer Society Pr
  • Purchase Benefits
List Price: $156.74 Save up to $0.16
  • Buy New
    $156.58
    Add to Cart Free Shipping Icon Free Shipping

    PRINT ON DEMAND: 2-4 WEEKS. THIS ITEM CANNOT BE CANCELLED OR RETURNED.

Summary

A groundbreaking, unifying theory of computer science for low-cost, high-quality software The Cognitive Dynamics of Computer Science represents the culmination of more than thirty years of the author's hands-on experience in software development, which has resulted in a remarkable and sensible philosophy and practice of software development. It provides a groundbreaking ontology of computer science, while describing the processes, methodologies, and constructs needed to build high-quality, large-scale computer software systems on schedule and on budget. Based on his own experience in developing successful, low-cost software projects, the author makes a persuasive argument for developers to understand the philosophical underpinnings of software. He asserts that software in reality is an abstraction of the human thought system. The author draws from the seminal works of the great German philosophers--Kant, Hegel, and Schopenhauer--and recasts their theories of human mind and thought to create a unifying theory of computer science, cognitive dynamics, that opens the door to the next generation of computer science and forms the basic architecture for total autonomy. * Four detailed cases studies effectively demonstrate how philosophy and practice merge to meet the objective of high-quality, low-cost software. * The Autonomous Cognitive System chapter sets forth a model for a completely autonomous computer system, using the human thought system as the model for functional architecture and the human thought process as the model for the functional data process. * Although rooted in philosophy, this book is practical, addressing all the key areas that software professionals need to master in order to remain competitive and minimize costs, such as leadership, management, communication, and organization. This thought-provoking work will change the way students and professionals in computer science and software development conceptualize and perform their work. It provides them with both a philosophy and a set of practical tools to produce high-quality, low-cost software.

Author Biography

SZABOLCS MICHAEL de GYURKY retired from the Jet Propulsion Laboratory after twenty-five years of service, and is now employed as a consultant and writer. He was responsible for the design, programming, testing, installation, and documentation of approximately 2,500,000 lines of code. An equally important focus of his work has been the reduction of cost and the increased modularity and portability of software. Mr. de Gyurky is the recipient of the NASA Exceptional Achievement Medal.

The volume is richly illustrated with computer artwork renditions of de Gyurky's visualizations by associate Mark Tarbell.

Table of Contents

List of Figures xv
Acknowledgments xvii
Chapter 1 Introduction 1(10)
1.1 The Retention of Software Jobs
2(1)
1.2 Depth of Experience
2(1)
1.3 The Scope of This Book
3(1)
1.4 The Nature of Computer Science
4(1)
1.5 The Future of Computer Science
4(1)
1.6 The Essence of Philosophy
5(1)
1.7 Why Autonomy?
6(2)
1.8 An Architecture for Autonomy
8(1)
1.9 Other Notes
9(2)
Chapter 2 Prologue 11(12)
2.1 How This Book Originated
11(1)
2.2 The Importance of Management
12(1)
2.3 The Tie-in with Autonomy
13(1)
2.4 Major Themes of This Book
14(1)
2.5 The Challenge of a New Idea
14(1)
2.6 The Importance of Visualization
15(1)
2.7 The Move Toward Autonomy
16(1)
2.8 Why I Wrote This Book
17(1)
2.9 Merging Theory and Practice
18(1)
2.10 The Pace of Computer Science
19(2)
2.11 The Importance of Cognitive Dynamics
21(2)
Chapter 3 The Philosophical Foundations of Computer Software Design 23(13)
3.1 The Philosophical Origins of Computer Science
23(2)
3.2 Influence of the Cognitive Philosophers
25(2)
3.3 Abstracting the Human Thought System
27(1)
3.4 The Philosophical Foundations of Software Development
28(1)
3.5 The Phenomenon of Reality
29(1)
3.6 The Phenomenon of Subjectivity
30(1)
3.7 Low-Cost Software Development
31(2)
3.8 "On Budget and On Schedule"
33(1)
3.9 The Time to Completion: Schedule
34(1)
3.10 Philosophy and Successful Design
35(1)
Chapter 4 The Philosophical Imperatives of Architectural Design 36(18)
4.1 The Manager as Architect
36(1)
4.2 The Manager as Teacher
37(1)
4.3 The Manager as Social Worker
38(1)
4.4 The Manager as Axman
39(1)
4.5 The Philosophical Imperatives of Architectural Design
39(1)
4.6 Availability of the Manager
40(1)
4.7 Project Manager: 10 Key Attributes and Responsibilities
40(3)
4.8 Philosophical Aspects of Engineering
43(1)
4.9 The Importance of Finishing the Job
44(1)
4.10 Visualizing an Architecture
44(3)
4.11 The Role of Intuition in Design
47(1)
4.12 "Sufficient Reality" and Inference in the Design Process
48(1)
4.13 Dialectics in the Achievement of Sufficient Reality
49(1)
4.14 The Relationship of Logic to Software Architectures
50(3)
4.15 The Logic of the Systems Design
53(1)
Chapter 5 Project and Task Organization 54(26)
5.1 The Role of Organization
55(2)
5.2 The Ability to Organize
57(3)
5.2.1 Traditional Hierarchical Project Organization
57(3)
5.3 The Difficulty of Communication
60(1)
5.4 The Title of "Manager"
61(1)
5.5 The Flat, Nonhierarchical Organization
61(4)
5.6 Projects, Tasks, and Work Units
65(1)
5.7 Large Organizations and Staffing
66(3)
5.8 Staffing Up: The Initial Team
69(4)
5.8.1 The Initial Team
69(1)
5.8.2 Phase One Team Expansion
70(2)
5.8.3 Phase Two Team Expansion
72(1)
5.9 Balancing Hardware and Software
73(2)
5.10 Incremental Deliveries
75(1)
5.11 Functional Organization
76(1)
5.12 Interface Protocols of the Organization
77(1)
5.13 Completion of the Task
77(1)
5.14 Detecting the "Fraud"
78(2)
Chapter 6 The Philosophy of Communication 80(11)
6.1 "Sanity Is an Achievement!"
81(1)
6.2 Gauging Understanding
82(1)
6.3 Internal Team Communication Protocols
82(2)
6.4 External Team Communication Protocols
84(1)
6.5 Technical English as the Medium
85(2)
6.6 Engineers as Technical Writers
87(1)
6.7 Documentation: Articulation of the Requirements and Design
87(1)
6.8 The SRD: Software Requirements Document
88(3)
Chapter 7 Software Management Standards 91(7)
7.1 Three Good Standards
91(2)
7.1.1 JPL-STD-D-4000
92(1)
7.1.2 MIL-STD-498
92(1)
7.1.3 DOD-STD-2167A
92(1)
7.2 Aspects Addressed by a Standard
93(1)
7.3 Preparing to Select the Standard
94(2)
7.4 Standards for Implementation
96(2)
7.4.1 Waiving the Standard
97(1)
Chapter 8 The Estimation of Software Cost 98(10)
8.1 Sponsor Costing Issues
99(2)
8.2 Types of Cost Estimates
101(1)
8.3 "Lines of Code" Metrics
101(2)
8.4 The Major Work Areas, Functions, and Tasks that Must be Included in the Estimation of Cost
103(2)
8.5 The Detailed Cost Estimate
105(1)
8.6 The SRD as a Contract
106(2)
Chapter 9 The Exercise of Project Control 108(17)
9.1 The Functions of Project Control and Oversight
109(1)
9.2 The Requirements Phase
110(1)
9.3 Contents of the Software Requirements Document
111(2)
9.4 The Design Phase
113(1)
9.5 The Implementation Phase
113(2)
9.6 The Test and Integration Phase
115(1)
9.7 Personnel Issues
116(2)
9.8 The Hacker and Other Personalities
118(1)
9.9 The Buck Stops at the Top
119(2)
9.10 How People Think, Pay Attention, and Remember
121(4)
Chapter 10 The Development Process Methodology 125(11)
10.1 The "Design Hub" as Implementation Tool
126(1)
10.2 The Architecture Definition Process
127(2)
10.3 The Use of Large-Scale Representations
129(1)
10.4 Design Team Meetings
130(1)
10.5 Rapid Development versus Prototyping
131(1)
10.6 The Traditional Development Methodology
132(2)
10.7 Action Items, Change Requests, and Software Discrepancy Reports
134(1)
10.8 Resolving Problems and Impasses
134(2)
Chapter 11 The Development of System Architectures 136(10)
11.1 Pushing the Architecture
137(1)
11.2 The Point of "Acceptable Reality"
138(2)
11.3 The Importance and Imperative of Visualizing Phenomena
140(1)
11.4 Traditional Architectures
141
11.5 The Inferred Architecture
112(32)
11.6 The Redesign or Upgrading of Existing Systems
144(1)
11.7 The Approach to New Systems
145(1)
Chapter 12 The Impact of Leadership on Software Development 146(26)
12.1 Recognizing Good Leadership
146(2)
12.2 The Concepts of Management and Leadership,
148(1)
12.3 Rewarding Failure
149(2)
12.4 The Leader's Subordinate
151(1)
12.5 Indications of Poor Leadership
152(1)
12.6 Leadership and Ethics
153(1)
12.7 The Attributes of Leadership
153(11)
12.7.1 Unselfishness
154(1)
12.7.2 The Welfare of Others
154(1)
12.7.3 Ambition
154(1)
12.7.4 Integrity
154(1)
12.7.5 Loyalty
155(1)
12.7.6 Knowledge
155(1)
12.7.7 Tact
156(1)
12.7.8 Judgment
157(1)
12.7.9 Initiative
157(1)
12.7.10 Bearing
158(1)
12.7.11 Courage
158(1)
12.7.12 Decisiveness
159(1)
12.7.13 Dependability
159(1)
12.7.14 Dynamic Energy
160(1)
12.7.15 Enthusiasm
161(2)
12.7.16 Empowerment
163(1)
12.8 The Ramifications of Failure
164(1)
12.9 The Absence of Leadership
165(3)
12.9.1 Absenteeism
166(1)
12.9.2 Hidden Agendas
166(1)
12.9.3 Communication Gap
167(1)
12.9.4 Poorly Defined Goals
167(1)
12.10 The Basis in Leadership for Failure
168(1)
12.10.1 Personal Struggles
168(1)
12.10.2 The "Machiavellian Prince"
169(1)
12.11 The impact of Poor or Nonexistent Leadership
169(3)
12.11.1 Conquering the Organization
170(2)
Chapter 13 Management of Software Systems Development 172(28)
13.1 Self-Respect in the Manager
173(1)
13.2 The Ethical Workplace
173(1)
13.3 Narcotics Use in the Workforce
174(3)
13.4 Spotting Narcotics Addicts
177(1)
13.5 Courage and Dynamic Energy in Management
178(2)
13.6 The Traveling Manager
180(1)
13.7 The Manager as Architect
181(1)
13.8 The Phenomenon of Decision Making
182(4)
13.9 The Concept of "Ability"
186(1)
13.10 Manager: Administrator or Leader?
187(2)
13.11 Authority, Responsibility, and Accountability
189(1)
13.12 The Issue of Contempt
189(2)
13.13 Management: The Fulcrum of Project Execution
191(1)
13.14 The Ascendance of Mediocrity
191(2)
13.15 The Pitfalls of Staffing Up
193(2)
13.16 Salary Issues
195(1)
13.17 Contracting Out Work
196(1)
13.18 Evaluating Proposals
197(1)
13.19 Cost Bidding too Early
198(2)
Chapter 14 Four Case Studies of Low-Cost Systems 200(57)
14.1 Case Study One: The Joint Theater Level Simulation (JTLS)
202(9)
14.1.1 The Beginnings of JTLS
204(1)
14.1.2 Estimating the Cost of War
205(3)
14.1.3 Starting up the Effort
208(1)
14.1.4 Costly Lessons Learned
209(2)
14.2 Case Study Two: The Global Decision Support System (GDSS)
211(22)
14.2.1 GDSS System Size
211(1)
14.2.2 The History and Background of GDSS
212(1)
14.2.3 Expediting the System
213(1)
14.2.4 The Euler Sphere
214(1)
14.2.5 Beyond State of the Art
214(1)
14.2.6 A Replicated, Survivable, Synchronous Database Management System
214(1)
14.2.7 The Ultra Large Screen Display System
215(1)
14.2.8 The Local Area Networks
215(1)
14.2.9 The Wide Area Network
215(1)
14.2.10 Distributed Client/Server Technology
215(1)
14.2.11 Message Bus
215(2)
14.2.12 The GDSS Software Architecture
217(3)
14.2.13 Accepting the Challenge
220(1)
14.2.14 Initial Conditions
220(1)
14.2.15 Rapid Development: A Totally Different Approach
221(2)
14.2.16 There Can Be Only One!
223(1)
14.2.17 GDSS End-to-End Architecture
224(1)
14.2.18 Architecting the Development Effort
224(1)
14.2.19 Inferential Systems Architecture
225(1)
14.2.20 The GDSS System Software Layer
226(1)
14.2.21 Applications Language Selection
227(1)
14.2.22 Project Documentation
228(1)
14.2.23 Finding an Ada Expert
228(1)
14.2.24 Testing and Database Design
229(2)
14.2.25 Additional Difficulties
231(2)
14.3 Case Study Three: The Topex TCCS System
233(13)
14.3.1 The Topex TCCS System
233(1)
14.3.2 System Description
233(2)
14.3.3 The Initial Conditions
235(1)
14.3.4 Project Constraints
235(1)
14.3.5 Implementation Considerations
236(1)
14.3.6 Development of TOPEX TCCS
237(1)
14.3.7 Agreeing to Do the Job
238(1)
14.3.8 Ground Truth
239(1)
14.3.9 Start of Project Development
239(2)
14.3.10 Architecting the Environment
241(1)
14.3.11 Hardware Procurement, Software Procurement
242(2)
14.3.12 The Relationship with the Contractor
244(1)
14.3.13 Test Plan Scheduling
245(1)
14.3.14 Adherence to a Standard
246(1)
14.4 Case Study Four: The Jason 1 TCCS System (JTCCS)
246(11)
14.4.1 The Jason 1 TCCS System
247(1)
14.4.2 System Description
247(1)
14.4.3 The Initial Conditions
248(1)
14.4.4 Implementation Considerations
249(2)
14.4.5 The JTCCS Architecture
251(6)
Chapter 15 Operations, Operators, and Users: Their Impact on Cost 257(9)
15.1 The Operational Requirement
258(1)
15.2 The Lack of an Operational Requirement
259(1)
15.3 The Operations Scenario
259(1)
15.4 The Cost of Operators and Analysts
260(1)
15.5 The Voyager Project Operations Center
261(1)
15.6 War Gaming
262(2)
15.7 The Value of Simulation
264(1)
15.8 Funds: A Perspective
264(2)
Chapter 16 The Autonomous Cognitive System 266(13)
16.1 Introduction
266(1)
16.2 The Scale of Autonomy
267(3)
16.2.1 Category IV Autonomous Cognitive System: Superman
267(1)
16.2.2 Category III Autonomous Cognitive System: Perseus
268(1)
16.2.3 Category II Autonomous Cognitive System: Robot
269(1)
16.2.4 Category I Autonomous Cognitive System: Automaton
269(1)
16.3 "I Will, Because I Can"
270(1)
16.4 Toward Cognitive Dynamics
271(1)
16.5 Building an Autonomous System
271(1)
16.6 An Appropriate Model
272(1)
16.7 System-Level Requirements for Autonomy
273(1)
16.8 Architectural Domains for Autonomy
274(3)
16.8.1 Domain I: The Human Thought Architecture Model (Functional Architecture)
274(1)
16.8.2 Domain II: The Human Thought Process Model (Common Software Services)
275(2)
16.9 In Summary
277(2)
Epilogue 279(4)
The Science of Computer Science
279(1)
The Professional Software Manager
279(1)
Cognitive Philosophy in a Modern Technical Context
280(1)
Cognitive Dynamics is the Unifying Theory
281(1)
The Issue of Software Cost
281(1)
The Paradigm Shift of Cognitive Dynamics
282(1)
Glossary of Acronyms 283(4)
Index 287

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program