- Machine & World
- To develop a software is to build a machine, simply by describing it.
- The system is a Machine introduced into the world to have some effect there.
- Te parts of the world that will affect the machine and will be affected by it are its Application Domain.
- What & How
- What: the system does is to be sought in the Application Domain.
- How: the system does is to be sought in the machine.
- The problem is in Application Domain.
- The machine is the solution of the problem.
- Focusing on Problems
- The requirements are located in the Application Domain, where the problem is;
- but in most developments all the serious documents and discussion focuses on the machine which is offered as a solution to the problem.
- Domain Descriptions
- The process of the data flows, or the transactions, or operations, or use-cases is what machine does.
- It is part of the solution, but not part of the problem.
- Modeling
- Common description
- The description that is true only of the machine.
- The description that is true only of the Application Domain.
- Description Technique
- Definition
- Define new terms and using existing terms to make statements.
- Description Scope & Span
- The scope of a description restricts the classes of Phenomena it can talk about.
- The span of a description restricts the area of the world it can talk about.
- Refutable Descriptions
- Most descriptions about the world should be refutable.
- Something precise about the world that can be refuted by a counter-example.
- Partial Descriptions
- It is a way of separate concerns against the complexity of Application Domain.
- Structuring a complex topic as a number of simpler topics that you can consider separately.
- Hierarchical Structure
- It is a way of separate concerns.
- It is the sand on which Top-Down methods are built.
- Moods
- Optative Mood: What you want the system to achieve. (Wish)
- Indicative Mood: How things are regardless the system's behavior. (Fact)
- Method & Problem Frames
- Problem Frame defines a problem class, by providing a ready-made structure of Principal Parts into which all problems of the class must fit.
- Whether a particular problem fits a particular Problem Frame depends on the structure and characteristics of the requirement.
- A good Method addresses only those problems that fit into a particular Problem Frame.
- It exploits the properties of the Problem Frame and its Principal Parts to give systematic and sharply focused help in reaching a solution.
- Principle of Close-Fitting Frames
- The purpose of a Problem Frame is to give you a good grip on the problem.
- The Problem Frame must define and constrain the problem very closely indeed.
- Problem Complexity
- A Multi-Frame Problem
- A problem that cannot be completely accommodated by any available Problem Frame and completely solved by any available Method.
- Requires Problem Decomposition
- Separate out the different Problem Frames in their parallel structure.
- Identify the Principal Parts of each Problem Frame.
- Identify the overlapping parts and aspects of the Application Domain and requirement that they cover.