Question

In: Computer Science

Should Software Engineers question the Honesty of Functional Requirements? Ethical and Professional Viewpoints

Should Software Engineers question the Honesty of Functional Requirements?

Ethical and Professional Viewpoints

Solutions

Expert Solution

YES Every Software Engineers should question the Honesty of Functional Requirements.

Requirements honesty is the adherence to certain requirements principles. I argue that the quest for faster and faster ways of developing software may impair the satisfaction of these principles. The argument starts with the

consideration of two questions: “why would someone want a functionality in one to three weeks time?” and “why that same person is unwilling to wait two to three months to have the same functionality, if the resulting software is proved to be more appropriate, stable, or easier to maintain?”. Several answers can be given. One could stress the point that is very difficult to assure appropriateness, stability, and other quality factors. If no guarantee can be given that these quality factors are better preserved in a two months development time, then there is no point in taking the longer path to get similar uncertainties. Another answer could note that for some systems the cost of assuring quality factors in a longer time-scale outweighs the benefits. This line of reasoning does not diminish the importance of producing quality products. It just recognises that there are costs involved and difficulties to overcome, and that these should be taken into consideration when deciding the amount of effort devoted to assure quality.
A second line of reasoning takes the market as the driving force. The need to produce in a short time is derived
from the need to be the first in the market. It is a business requirement and a very strong one because it is perceived as related to survivability. I present time-to-market as a mandatory requirement, implying a trade-off between development speed and other quality characteristics that are also important to business survival.

Requirements principles

Purposefulness. There should be an objective to be fulfilled.
Appropriateness. Requirements should be appropriate to
the system. They should express what is necessary to
achieve the system’s objectives.
Truthfulness. Requirements should express what is actually
required.

Purposefulness We build software for some reason. If that reason is fulfilled then the software is successfully built. Of course this idea of success is subjected to ethical considerations. One may, as I do, reject as successful a system built to satisfy unethical or immoral objectives. The point here is that there is always a purpose. Software requirements express part of what is necessary to achieve the system’s objectives by means of software — we may say that software requirements express the software’s contribution to the achievement of these objectives. The determination of the system’s objectives is a difficult task, aggravated in situations in which they are not, or cannot be, clearly stated. Usually there are several objectives satisfying different interests, and determining the right ones is hard. To complicate things a bit more, the system may have unclear or no absolute goals. However, there always will be a negotiated construction of the objectives and the system will always serve some purpose.

Appropriateness Software is just a piece of larger systems; thus, it has to be appropriate to the system in which it is inserted. Determining the software appropriateness amounts to getting the right requirements. In situations in which the objectives are unclear or there are no absolute objectives, the determination of the right requirements is more diffi- cult. In those situations, defining what is needed for a software to contribute to the accomplishment of the objectives comes pari pasu with the determination of the objectives themselves. One of the consequences for the development process is that no user may be regarded as having all the necessary information. Negotiation is usually necessary to define the appropriate requirements and this involves listening to all parties playing a role in the negotiation process.

Truthfulness The assurance that we have the right requirements and subsequently the assurance that we get the requirements right are paramount for the development of software. For complex systems the number of mistakes and errors, and the number of them that may go unnoticed, is large. There are two ways to deal with those mistakes and errors on requirements: one is through requirements analysis and the other is through a process of verification and validation. Requirements analysis try to establish the presence of desirable attributes like consistency, precision, and completeness, among others. Although these desirable properties are no guarantee that the requirements are correct, their presence is a good indication in that direction and the lack of them is a sign that something is wrong or improperly stated.


Related Solutions

Discuss Professional Responsibility of engineers in a situation of ethical dilemma.
 1. Discuss Professional Responsibility of engineers in a situation of ethical dilemma. CLO1(2.5) 2. How individualism effect the situation when whistle blowing is going on? CLO2 (2.5) 3. Why safety is important in state of practicing whistle blowing? CLO3 (2.5) 4. How much the impact of personality and cultural norms effect on engineer's responsibilities in society? CL04 (2.5) CLO 1: Discuss awareness of professional, social and ethical responsibility in engineering practice CLO 2: Distinguish between individual behavior and behavior in a group CLO 3: Choose different...
be the chief Software Engineer, and your mission is to describe functional and non-functional requirements, as...
be the chief Software Engineer, and your mission is to describe functional and non-functional requirements, as good and detailed as possible. When you are missing data, you have to make assumptions (sometimes wild ones). No one can really answer your questions, and you have a presentation to the higher management in 45 min sharp. By then, you have to construct a document, with a very small ( no more than 10 lines) executive description, and no more than two A4...
Subject: Professional ethics in computing Question You lead a group of five software engineers involved in...
Subject: Professional ethics in computing Question You lead a group of five software engineers involved in the testing of a new product. Your manager tells you that because of a company-wide layoff, you need to give notice to one member of your team. From your interactions with the team members, you can easily identify the two members who are least productive, but you are not sure which of them you should lay off. You know that the company keeps track...
The National Society of Professional Engineers (NSPE) has established guidelines for the ethical practice of engineering....
The National Society of Professional Engineers (NSPE) has established guidelines for the ethical practice of engineering. Discuss how these guidelines would apply to (a) an engineering company, and (b) an individual engineer working for an industrial firm.
Do a software evaluation of "MICROSOFT POWERPOINT" using the following criteria: General Requirements and Design Functional...
Do a software evaluation of "MICROSOFT POWERPOINT" using the following criteria: General Requirements and Design Functional and Interface Specifications Conventions Requirement Traceability Structures and Interfaces Logic Performance Error Handling and Recovery Testability and Extensibility Coupling and Cohesion
The “Software Engineering Code of Ethics And Professional Practice” states that a responsible software engineer should
The “Software Engineering Code of Ethics And Professional Practice” states that a responsible software engineer should “Approve software only if they have well-founded belief that it is safe, meets specifications, passes appropriate tests. . .” (sub-principle 1.03) and “Ensure adequate testing, debugging, and review of software. . .on which they work” (sub-principle 3.10).The software engineering code of ethics also states that a responsible software engineer should “Treat all forms of software maintenance with the same professionalism as new development.”(a) Explain...
Engineers must perform under a standard of professional behaviour that requires adherence to the highest principles of ethical conduct.
 5. Engineering Ethics  5.1 (3 points) What is Ethics: 5.2 (3 points) Engineers must perform under a standard of professional behaviour that requires adherence to the highest principles of ethical conduct. The National Society of Professional Engineers (NSPE) Ethics Reference Guide lists six Fundamental Canons for engineers to follow in the fulfillment of their professional duties, list the first three (3) Fundamental Canons in order: 5.2.1 Canon #1: 5.2.2 Canon #2: 5.2.3 Canon #3: 5.3 (4 points) List any four of the typical ethical issues that...
Question 6 UML is a modeling language that enables software engineers to document and exchange their...
Question 6 UML is a modeling language that enables software engineers to document and exchange their designs with colleagues. One of the Agile principles states that documentation should be barely good enough. In your opinion, do you feel that creating UML diagrams is a waste of time or contrary to the agile principles? Do we need to do UML diagramming at all in Agile? If not, why? If so, how much and how often should we leverage UML?
Compare and contrast security functional requirements and functional securiydesign principles.
Compare and contrast security functional requirements and functional securiydesign principles.
Ethical professional judgement should not take into account: a) the users of financial statements, and their...
Ethical professional judgement should not take into account: a) the users of financial statements, and their specific information needs. b) the performance targets for the quarter's earnings. c) the nature of the organization's operations. d) the organization's reporting constraints.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT