What Is Scientific Requirements Engineering?
Scientific requirements engineering is a discipline that is based on three theoretical foundations: systems thinking, mature fundamentals of design, and the methodology of deductive science.
Systems thinking reconceptualize enterprise software and requirements. The high waste resulting from failed projects in the software industry, especially that associated with large-scale systems failures, indicates that the system of beliefs that supports thoughts about systems design is grossly underdeveloped and underconceptualized. These underconceptualized definitions and models are the direct results of the assumptions held by the discipline. Those assumptions largely determine what the practitioners assume to be reality and “facts,” establish what to focus on, and indeed determine what the discipline is all about. The transition from a paradigm in crisis to a new one is a reconstruction of assumptions and resulting methods. When the transition is complete, the profession will have changed its view of the field, its methods, and its goals. When paradigms change, the world itself changes with them. Systems thinking offers the new concepts from which the new paradigm can be easily conceptualized.
Mature fundamentals of design common to all branches of engineering prove to be an effective starting point for a field in its immaturity. Once the mature fundamentals are found, the new discipline of software engineering that complies with these fundamentals of engineering design can be constructed. This in turn will solve the problem of theory being decoupled from practice in current practice of software engineering. For any branch of established engineering, the main task of engineers is to apply their scientific knowledge, the knowledge of the design constituents and their governing laws, to their technological knowledge, the knowledge of design, to implement required functions and to solve technical problems. For enterprise software, the scientific knowledge is a business model that has to be created real time.
The methodology of deductive science is the methodology to create scientific disciplines such as mathematics. Different from today’s civil engineers whose scientific knowledge (natural sciences) is given and taught in their school years, software engineers would have to create organizational science (business model) on their own each time they work on a project. For anyone who intends to study or advance some science, it is undoubtedly important to be conscious of the methodology employed in the construction of that science, and we shall see that, in the case of organizational science, the knowledge of that methodology is of particular far-reaching importance, for lacking such knowledge makes it impossible to comprehend the nature of social organizations. The principles with which we shall get acquainted in the methodology serve the purpose of securing the knowledge acquired in the business model of the enterprise software at the highest possible degree of clarity and certainty. From this point of view, a systematic methodology of structuring and visualizing the enterprise software requirements is both necessary and sufficient to revolutionize the software engineering from guesswork to scientific work. This methodology is the realization of the methodology of deductive science in the context of enterprise software.