Wednesday, August 21, 2013

Homework #1 - 8/22

Problem set:

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

The four main attributes all professional software should have are:

  • Maintainability - The software should be written in a fashion that it may be easily modified to meet any future needs.
  • Dependability and security - This software should not cause any physical or economic damage in the event of a failure and it should not allow malicious users to access or damage the system.
  • Efficiency - The software should not waste system resources and should be responsive.
  • Acceptability - The software has to be accepted by the customer for which it was designed.
1.8) Discuss whether professional engineers should be certified in the same way as doctors or lawyers.

I am somewhat torn on this subject, but I think I'm leaning towards no. The reason being, is that lawyers or doctors don't really do much testing in their related fields. Software engineers provide their skills to build a product, but then they must rigorously test and debug it. The medication strategies that doctors use to treat patients are surely not experimental. Nor are the rules a lawyer must follow in order to have a valid case. This means that software engineers are really kind of the researchers that precede the medication strategies, or the senate and congressman who pass laws before they are in use. I may be wrong here, but I don't think congressman are certified to do their job.

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.


  • Public - An example of this clause would be a software engineer pointing out flaws that would allow malicious users to infiltrate a camera system to monitor traffic.
  • Client and employer - A software engineer, say for a health monitoring system, will not publish or take the patient data for personal use.
  •  Product - The software engineer should not skip any testing or release an unstable version of the product.
  • Judgment - If the engineer thinks they see a design flaw in the product, they should bring it up with the supervisors early instead of later in the development process.
  • Management - Team leaders should not encourage engineers to cut corners and sacrifice performance or security in order to meet a deadline.
  • Profession - If an engineer were to intently submit a program with a bug in it that caused significant repercussions, imagine the distrust it would create for other clients looking to hire a developer.
  • Colleagues - If a colleague were to suggest a solution to a problem, or offer a piece of code, the software engineer should recognize them instead of taking credit for it.
  • Self - As new hardware, technologies, and developing methods become available, the developer should try and learn and familiarize themselves with it. They should also keep any certifications they do have up to date.
1.10) To help counter terrorism, many countries are planning or have developed computer systems that 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.

This scares me a lot. If you're on the development team, it's not a matter of just collecting statistical data and keeping the user specifics hidden like in, say, obesity in children. The whole point of a project like this would be to know exactly who is doing what kind of activities. I think there is a lot of room for error in a project like this. I feel it would lead to even more racial and economical profiling. What happens if they're wrong when they call someone a terrorist? That person goes to prison for nothing? Or perhaps they send them to a secret "correctional" facility? There has to be some other way of preventing terrorism that doesn't invade our privacy so much. After all, what good is a right to privacy if we don't exercise it? We almost may as well not have one.

No comments:

Post a Comment