Tuesday, August 20, 2013

Homework 1 - Software Engineering - CSCI 362-001



1.3 : What are the four important attributes that all professional software should have? Suggest four other attributes that may sometimes be significant.

Four Important:

I. Functionality/Performance
II. Maintainable
III. Dependable
IV. Usable

Four Suggested:

I. Secure
II. Safe (In terms of potentially damaging hardware)
III. Portable
IV. Understandable and Simple


1.8 : Discuss whether professional engineers should be certified in the same way as doctors or lawyers.

    Professional engineers should be certified in a similar way to doctors and lawyers. They should
have to demonstrate some level of competence in regards to knowing a variety of different software
engineering techniques. This would be so that they are capable of making a decision about what techniques should be used for development, as opposed to applying one approach to every problem.



1.9 : For each of the clauses in the ACM/IEEE code of ethics shown in figure 1.3, suggest an appropriate example that illustrates that clause.

I. Public - Do not develop systems designed to harm the public, such as making a program that acts as
mal-ware.

II. Client and Employer - Develop systems that meet client and employer specifications whilst still
preventing harm to the public, such as meeting specifications while maintaining security and performance.

III. Product - Do not create shovel-ware designed to capitalize on a fad whilst disregarding quality, such as creating a bad application to capitalize on the release of a new popular movie.

IV. Judgement - Do not allow yourself to be swayed into violating or ignoring moral or legal problems, such as accepting bribes to let something go or stealing previously developed software for use in your project.

V. Management - Not only should you hold yourself to a code of ethics, but encourage others to do so as well, such as in an office with potentially unethical business practices.

VI. Profession - Do not "paint software engineers black" by attempting to jeopardize the integrity or
reputation of the profession due to a fall-out with employers or colleagues.

VII. Colleagues - Do not belittle colleagues who have failed or are having trouble, and instead help or
give advice and support, even if in direct competition.

VIII. Self - Continue to learn about new software engineering techniques and encourage others to be ethical in their approach to software engineering, as opposed to refusing to use new techniques and sitting idly by whilst others do unethical actions without being encouraged to be ethical.



1.10 : To help counter terrorism, many countries are planning or have developed computer systems to track large numbers of their citizens and their actions. Clearly this has privacy implications. Discuss the ethics of working on the development of this type of system.

 By working on this type of citizen monitoring system several of the clauses above may be breached.
This is somewhat dependent on whether or not the citizens would like to be monitored and whether they agree such a system would be in their best interest, as well as your own thoughts on the matter. It would seem more likely that the citizens would not be in favor of such a system - and therefore, according to the clauses above, your actions potentially unethical.


2 comments:

  1. This is useful for me. I was stack in Q 1.10
    Thank you very much Patrick :)

    ReplyDelete
  2. Thank you very Mr. Patrick! I hope you can help me in my next assignment regarding Software Engineering! God bless po

    ReplyDelete