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...
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.
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...
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.
Q:Make a requirements document highlighting all functional and non-functional requirements as per the case above. Your...
Q:Make a requirements document highlighting all functional and non-functional requirements as per the case above. Your requirements must be validated for conciseness, completeness, non-ambiguity, verifiability, feasibility, and traceability: Register for the system by providing their name, Student ID and email address and a password Log in to the system by entering their Student ID and password Search for textbooks (by title or ISBN number or author) and scroll through the results of their search. The results of their search should...
Create a list of the top 10 software engineering requirements for the organization. This list should...
Create a list of the top 10 software engineering requirements for the organization. This list should address requirements that are common to most of the software development projects rather than specific project requirements. Include descriptions for each of the requirements that provide sufficient information to align the requirements with architectural strategies that were defined in the previous week. Add the subtitle: Architecture Strategy Evaluation Discuss the pros and cons of the architectural strategy.
Why are honesty, confidentiality, informed consent and codes of ethics essential components of a professional role?...
Why are honesty, confidentiality, informed consent and codes of ethics essential components of a professional role? What effect does it have on a profession when a member does not follow its high standards? What effect could it have on society?
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT