Assumptions provide presumed real world facts that systems are guaranteed to operate correctly. Although software processes have existed for many years now, domain knowledge should be applied throughout every phase of the software development process. An appreciation of the assumptions underlying software engineering can lead to a better understanding of the applicability of structure and quality of work produced. Software plays an important role in business decision-making, and because of its growing importance, assumptions should not be excluded.
Its seems increasingly clear that unorganized structures can be a problem in software requirements. What determines whether these problems are important in our decision-making? In business sense, we should focus more on improving the quality of decisions by linking problem solving and decision-making. This paper examines major assumptions in the real world and how they affect decision-making in environmental behavior.
This paper also identifies limitations that may arise from these assumptions and how the implementation approach is incorporated in the software development of architecture and tools. In addition, I will explain where we are headed in Software Engineering. ? We make various assumptions is software requirements and specification. They can either weaken or strengthen the achieved goal. Characteristics of requirements should be clear, complete and consistent. Clear requirements must be understood and specific so we know we are getting what we ask for.
These assumptions are about the process itself, its behavior and how software development will operates in the environment. Many questions arise such as, “How well a developer will work in order to increase productivity” or, “How many developers actually work in idealistic conditions”. The production in an environment has an important role in a developer’s career. For instance, the developing and testing phase should be placed in two separate environments.
Having different environments allow room for mistakes and errors can be detected before a problem arises. Catherine Mobley explains in her article The Influence of Environmental Literature and Environmental Behavior (2010) that it is often assumed that individuals who are knowledgeable and concerned about the environment will engage in environmentally responsible behavior. It is the responsibility of software developers to ensure that both desired and existing behaviors are in accordance with the proposed system.
A system behaves as it is programmed and it’s the developer’s job to find out its desired behavior. Jackson’s advice (Jackson 1995) to ground the requirements in the real world goes beyond the message about expressing the requirements and the specification in terms of the proposed system’s environment. Jackson argues that any model of the requirements will include primitive terms that have no formal meaning and that the only way to establish the meaning of a primitive term is to relate it to some phenomenon in the real world.
If a model is to have any meaning with respect to real-world behavior, its primitive terms must be clearly and precisely tied to the real world, and its designations “must be maintained as an essential part of the requirements documentation” (Zave and Jackson 1997). There were a few environmental behaviors I covered, next I will explain how assumptions play a role in the decision making process. The decision-making process is also heavily influenced by assumptions.
Decision-making models have traditionally identified a series of steps that help the decision maker arrive at the best solution out of a field of alternative solutions. Such a rational model is based on a linear decision-making process that includes the steps summarized by Bazerman (1994), as follows: 1. Define the problem. 2. Identify the criteria or objectives of the decision. 3. Weight or prioritize the criteria or objectives of the decision. 4. Generate alternative courses of action to solve the problem.
5. Evaluate the alternatives against each criterion or objective. 6. Compute the optimal decision. There are many important decisions a developer will make. The choices made will lead to either failure or success. It is the job of the developer to put his/her egoless views aside and keep the customer’s needs first. Decision making stems from core assumptions seldom realized in practices. Benjamins, Fensel & Straatman (1996) provides knowledge with the assumptions of problem solving methods.
Benjamins, Fensel & Straatman explains the method as a reasoning process that efficiently achieved a goal by applying domain knowledge. They distinguish two types of assumptions based on the architecture. One is strengthening the problem and the other is to weaken the goal to be achieved. Pfleeger & Atlee (2010) explains how there are two distinct steps in decision-making. First individual choices are made. We explore individual choices by examining different alternatives and assessing different approaches.