Submitted:
10 July 2026
Posted:
13 July 2026
You are already at the latest version
Abstract
Keywords:
1. Introduction
2. Background and Related Work
3. More on Formula E, S ⊢ R
- The description of EI is indicative: its properties are given and cannot be changed.
- The description of R is optative: it represents the users’ goals, which can be negotiated and possibly changed: the constraint is that the final formulation of R represents a satisfactory solution of users’ problems.
- The descriptions of ED and S are designed. We can decide the behaviour of the machine and of the part of environment we control.
4. Waterfall Life Cycle
4.1. Requirements Analysis and Specification
4.2. Solution Specification and Requirements Validation
- 1.
- If we can build a convincing argument that E, S ⊢ R, then we have verified that R can actually be satisfied. In fact, it may happen that formula (3) has no solution at all: in such a case, requirements R have to be modified.
- 2.
- The specification S is the input for the design phase.
4.3. Implementation (Design and Coding) Phases
4.4. Verification
4.5. Validation
4.6. Representing the Waterfall life Cycle
4.7. Development Activities as Learning Processes
5. Prototype Life Cycle
- a)
- The part of RPP that has been approved by the user and was already in R is retained.
- b)
- The part of RPP that has been approved by the user and was not in R is added.
- c)
- The part of RPP that was in R but has been disapproved by the user is suitably changed. In fact, a strong point of the prototype life cycle is that usually the user does not just reject parts of RPP: instead he/she provides indications on how to change the system’s behavior to make it acceptable.
- d)
- The user may also identify missing requirements, i.e., requirements that are neither in RPP nor in R: these are added.
6. Iterative Incremental Development
- a)
- Satisfying more requirements;
- b)
- Correcting defects found in previous implementations;
- c)
- Taking into considerations changes of already implemented requirements.
7. Definitions of Agile Processes and Related Techniques
7.1. Refactoring
7.2. Dealing with Changes
- 1.
- In the environment E.
- 2.
- In the user requirements R (e.g., the user “changes his/her mind”).
- 3.
- In the specification S, i.e., in the way requirements R will be satisfied.
- 4.
- In the way S is implemented, that is, in P, assuming that the hardware/software platform M is not changed.
- 5.
- In the platform M.
7.3. Test Driven Development
- 1)
- Building the program making reference to the requirements is exceedingly complex and error prone (in fact, this is why specifications are introduced in the classical waterfall life cycle).
- 2)
- In any case, the program has to be tested, to verify if it complies with the given requirements. To this end, we have to design a set of test cases that exercise the program in a representative set of conditions for all requirements (as discussed in Section 4.4).
7.4. More on Refactoring
- 1)
- M, PR ⊢ Sj, and
- 2)
- Building Pi+1 so that M, PR ∪ Pi+1⊢ Sj∪ Si+1 is relatively easy.
8. Explanatory Power of the Proposed Approach
8.1. Verification vs. Validation
- Validation: Are we building the right product?
- Verification: Are we building the product right?
- Verification deals with proving that MR, PR ⊢ S
- Validation deals with proving that ER, MR, PR ⊢ R
8.2. The “What” and the “How”
8.3. Explaining the Difference Between Proofs and Actual Behaviour
8.4. Reasoning About Software Development Organization
8.5. Extending the Model Scope Beyond the Software Life Cycle
9. Supporting Management
9.1. What Should Be Defined in a Software Development Contract?
- The machine M that will be “configured” by means of P is usually described in the contract. I.e., it is said on which platform the program P is expected to run.
- Some characteristics of P are often constrained. For instance, P should use an existing database or interface with an existing system.
- The environment in which the program has to contribute to the achievement of the requirements should be specified as well.
- The acceptance test of P is also generally described. This involves specifying EVT (see Section 4.5).
9.2. Effort Estimation
9.3. Project Monitoring
- 1)
- Measuring the partial implementation Pp. In this case we can produce a measure m(Pp), where the function m to be applied to Pp depends on the technology used to implement Pp: it could be lines of code, the number of classes and methods, etc. The limit of this approach is that it provides only absolute indications, not relative ones: for instance, we may know that 10,000 LoC have been coded, but we still do not know if we are close to finish the coding or if we are just half way through the coding, since we do not know the size in LoC of the final product P.
- 2)
- Measuring the progress in terms of how much of S has been satisfied. In this case we can provide a suitable measure m(Sp); for instance, we could measure how many function points are currently implemented by Pp. We could also provide the measure of m(Sp)/m(S), which tells us what fraction of the specifications has been implemented.
10. Reasoning About Life Cycles’ Activities
11. Software Properties and Measures
11.1. Robustness
- E specifies that no more than 10 users are ever simultaneously connected to the system;
- R prescribes that the response time of the system is not greater than 0.5 s.
- dist(Ex,E) indicates the number of connected users (in Ex) exceeding the maximum number stated in E (i.e., 10).
- Acceptable(Ex, E, Rx, R) indicates that when the number of users in Ex is greater than the maximum number of users in E, the maximum tolerable response time is 0.55.
11.2. External Properties of Software: The Case of Usability
- Some operating conditions, as described in EI,
- People that operate as described in ED, to achieve one of the goals as described in R,
- People that operate as described in ED, interacting with the machine as described in S.
12. Conclusions
Funding
Conflicts of Interest
Abbreviations
| MDPI | Multidisciplinary Digital Publishing Institute |
| HW | Hardware |
| SW | Software |
| UAT | User Acceptance Test |
| TDD | Test Driven Development |
| YAGNI | “You Aren’t Gonna Need It ” |
| SEMAT | Software Engineering Methods and Theory |
| ISO | International Organization for Standardization |
| IEEE | Institute of Electrical and Electronics Engineers |
| LoC | Lines of Code |
| COCOMO | Constructive Cost Model |
References
- Royce, W.W. Managing the development of large software systems: concepts and techniques. In Proceedings of the Proceedings of the 9th international conference on Software Engineering, 1987; pp. 328–338. [Google Scholar]
- Sommerville, I. Software engineering – 10th Edition; Pearson, 2016. [Google Scholar]
- Jackson, M. The meaning of requirements. Ann. Softw. Eng. 1997, 3, 5–21. [Google Scholar] [CrossRef]
- ISO. Systems and Software Engineering, Software Life Cycle Processes ISO/IEC/IEEE 12207 First edition; International Organization for Standardization, 2017. [Google Scholar]
- McConnell, S. Rapid development: taming wild software schedules; Pearson Education, 1996. [Google Scholar]
- Washizaki, H. Guide to the Software Engineering Body of Knowledge v4.0a; IEEE Computer Society, 2025. [Google Scholar]
- Johnson, P.; Ekstedt, M.; Jacobson, I. Where’s the theory for software engineering? IEEE Softw. 2012, 29, 96–96. [Google Scholar] [CrossRef]
- Jacobson, I.; Ng, P.W.; McMahon, P.E.; Spence, I.; Lidman, S. The essence of software Engineering: applying the SEMAT kernel; Addison-Wesley, 2013. [Google Scholar]
- Hall, J.G.; Rapanotti, L. Beauty in software engineering. Computer 2013, 46, 85–87. [Google Scholar] [CrossRef]
- Jackson, M. Software Specifications and Requirements: a lexicon of practice, principles and prejudices; Addison-W esley: New York, 1995. [Google Scholar]
- Jackson, M. Problem Frames: Analyzing and structuring software development problems; Addison-Wesley Longman Publishing Co., Inc., 2000. [Google Scholar]
- Benington, H.D. Production of large computer programs. Ann. Hist. Comput. 2008, 5, 350–361. [Google Scholar]
- Theofanos, M.F.; Pfleeger, S.L. Wavefront: a goal-driven requirements process model. Inf. Softw. Technol. 1996, 38, 507–519. [Google Scholar] [CrossRef]
- Lavazza, L. Business goals, user needs, and requirements: A problem frame-based view. Expert Syst. 2013, 30, 215–232. [Google Scholar]
- Gunter, C.A.; Gunter, E.L.; Jackson, M.; Zave, P. A reference model for requirements and specifications. IEEE Softw. 2002, 17, 37–43. [Google Scholar]
- Fowler, M.; Highsmith, J.; et al. The agile manifesto. Softw. Dev. 2001, 9, 28–35. [Google Scholar]
- Project Management Institute (PMI). The Future of Project Work: Pulse of the Profession® 2024, 2024. [CrossRef]
- Takeuchi, H.; Nonaka, I.; et al. The new new product development game. Harv. Bus. Rev. 1986, 64, 137–146. [Google Scholar]
- Boehm, B.W. Verifying and validating software requirements and design specifications. IEEE Softw. 1984, 1, 75. [Google Scholar] [CrossRef]
- Knuth, D. Comment to Peter van Emde Boas. Available online: http://www-cs-faculty.stanford.edu/.
- Lions, J.L.; Luebeck, L.; Fauquembergue, J.L.; Kahn, G.; Kubbat, W.; Levedag, S.; Mazzini, L.; Merle, D.; O’Halloran, C. Ariane 5 flight 501 failure report by the inquiry board, 1996. Available online: https://www.csm.ornl.gov/.
- Pratt, V. Anatomy of the Pentium bug. In Proceedings of the Colloquium on Trees in Algebra and Programming, 1995; Springer; pp. 97–107. [Google Scholar]
- Boehm, B.W. Software engineering economics. IEEE transactions on Software Engineering, 1984; pp. 4–21. [Google Scholar]
- Albrecht, A. Function-Point Method (Measuring Applications Development Productivity). In Proceedings of the IBM Application Development Joint Share and Guide Symposium, Monterey, 1979. [Google Scholar]
- Boehm, B.W.; Abts, C.; Brown, A.W.; Chulani, S.; Clark, B.K.; Horowitz, E.; Madachy, R.; Reifer, D.; Steece, B. Software Cost Estimation With Cocomo II; Prentice Hall, 2000. [Google Scholar]
- IEEE. Std 610.12 - IEEE Standard Glossary of Software Engineering Terminology; 1990.
- ISO/IEC. ISO/IEC 14143-1:2007; Information technology – Software measurement – Functional size measurement – Part 1: Definition of concepts. 2007.






Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2026 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).