Preface
Acknowledgements
1 Introduction
1.1 History of Computing
1.1.1 Information Theory
1.1.2 Turing Machine
1.1.3 Von Neumann Machine
1.2 Software Development
1.2.1 Complexity
1.2.2 Is Software Development Science or Art, Engineering or Craft?
1.2.3 The Search for Silver Bullet
1.2.4 The Art of War
1.2.5 Build or Buy?
1.2.6 The Art of Software Development
1.3 Case Study: SimpleCRM Application
2 Principles
2.1 KISS Principle
2.1.1 Partition
2.1.2 Abstraction
2.1.3 Generalization
2.2 Knowledge Factory
2.2.1 Data, Information and Knowledge
2.2.2 Knowledge Factory
2.3 Prototype
2.3.1 User Interface Prototyping
2.3.2 Application Prototyping
2.3.3 Data Prototyping
2.4 Technology, Process and People
2.4.1 Technology
2.4.2 Process
2.4.3 People
2.5 Summary
3 Requirements
3.1 Requirements Elicitation
3.1.1 Joint Application Development (JAD)
3.1.2 Other Elicitation Techniques
3.2 Requirements Definition
3.2.1 Use Case
3.2.2 Business Rule
3.2.3 User's Role and Permission
3.3 Requirements Validation