CS 415 -- Software Engineering II -- Spring 2003

Exam 2 Answers

1. [5 points]

What is "work-for-hire"? How does it affect patents and copyrights?

Work-for-hire is any work performed as part of one's normal duties of a job. For example, preparing and giving lectures are "work-for-hire" tasks of professors at Rose. Anything created as work-for-hire belongs to the employer first, then the creator. The employer has first rights of copyright and patent.

2 [5 points]

What is "fair use"? How does it affect patents and copyrights?

Fair use limits copyright protection. It is not a violation of copyright if one does not:

· use the material for commercial gain

· use too much of the work

· harm the commercial value of the work

Fair use has no effect on patent protection.

3. [10 points]

Consider the following case study:

Dilbert Adams likes Beatles music, and he owns all of their CDs. Unfortunately, he left all of them at home. While he is at work he searches the internet for Beatles music and downloads several MP3s from a coworker's site.

a) Has Dilbert broken any patent or copyright laws? If so, how? If not, why not?

Yes, Dilbert has broken copyright law by copying a work that is protected by the creators (the Beatles). One could argue that his actions are allowed under fair use. Also, the courts have allowed "space shifting"---making copies of one's CDs to play somewhere else.

b) Has Dilbert violated any of the principles of the Software Engineering Code of Ethics? If so, which ones?

Not exactly. He might be considered to be in violation of acting in the public interest, though his actions were not part of his software work. Also, as a professional he should obey all laws related to his work, though this may not be considered part of his work.


4. [10 points]

Consider the following case study:

Dilbert's coworker Wally is a well-known slacker. Dilbert's boss gives Wally the job of testing all software produced in Dilbert's group. Instead of testing it, Wally passes all code.

a) Has Wally violated any of the principles of the Software Engineering Code of Ethics? If so, which ones?

1. Public

2. Client and employer

3. Product

4. Judgment

b) Has Dilbert's boss violated any of the principles of the Software Engineering Code of Ethics? If so, which ones?

5. Management

5. [10 points]

Consider the following case study:

Dilbert Adams used to work for a small firm, MiniSoft, that makes software testing tools. He was a principal contributor to their main product, ShowBugs. When MiniSoft was first created they envisioned making their money from consulting rather than sales of their software. So, they did not ask their employees to sign an agreement that software produced while under employment belonged to MiniSoft.

Dilbert changed jobs a few years ago and has now decided to file a patent application for ShowBugs.

a) Under what conditions would Dilbert be entitled to obtain a patent for ShowBugs?

· MiniSoft did not consider it work-for-hire.

· Dilbert was the sole creator. (Otherwise he would have to share the patent.)

· No prior art existed.

b) Under what conditions would Dilbert not be entitled to obtain the patent?

· MiniSoft considered it work-for-hire.

· Dilbert was not the sole creator.

· Prior art existed.

· A previous patent had been given for this invention.

· The invention was considered obvious.

· The invention was not considered useful.


6. [10 points]

Why is the certification of software professionals somewhat less controversial than the licensing of software engineers?

There are several reasons; two of them are that certification is voluntary, while licensing is mandated by a government authority; certification can often be more specific to a particular operating system, application area or type of job.

7. [5 points]

Why is taking the Fundamentals of Engineering exam a problem for software engineering graduates?

The morning section of the FE includes several subjects not pertinent to software engineers (unless programming in a certain application area), such as statics, thermodynamics, and strength of materials.

8. [5 points]

Some people have argued that the certification of the software itself (i.e. determining that a piece of software meets certain reliability criteria) by the government is more appropriate than the licensing of software engineers. Do you agree or disagree? Explain your answer.

You can argue either side of this question with some positive points. The certification of software can act in the same manner as, say, FDA drug approval. However, one area that would be better served by the licensing of engineers is with consulting. Many PEs are consultants (sometimes self-employed) who offer engineering services to companies. The certification of software would not be (directly) effective in helping to decide whether or not to employ a particular consultant.

9. [10 points]

Despite the ineptness of their pointy-haired boss, Dilbert’s development team has finally had a software product reach the beta testing stage. Users report that they learn how to use the software quickly and the software rarely crashes. There is also uniform satisfaction of the beta test users among the supported platforms. From this description, what three external quality attributes are most present in the software?

Usability, reliability/correctness and either adaptability or robustness

10. [10 points]

What is the difference between the Quality Assurance Plan and those parts of the Project Plan dedicated to quality assurance?

The Quality Assurance Plan contains what types of reviews and testing are to be done for this particular project, and what type of metrics will be used. The Project Plan provides a schedule for when these quality assurance activities will be done, and who will do them.
11. [10 points]

A software organization currently determines the accuracy of its estimates of the number of person-hours expended (effort) at any point in the project with a metric of

| estimated total effort – actual total effort | / actual total effort

where | | is the absolute value function. A software quality assurance manager suggests that the following metric might be more accurate:

n

( Σ | estimated effort for taski – actual effort for taski | ) / actual total effort

i=1

How should this metric be evaluated to see if it is superior to the old one?

If properly archived, historical data should be able to determine whether the newer metric would have provided better estimates in the past, and which of the two metrics did better over the life of a particular project, and from project to project. The new metric could then be tried out for a small number of pilot projects. Note that the additional effort required to track the newer (and more detailed) metric should be factored into its evaluation.

12. [10 points]

A software organization has as one of its goals to eliminate all unit testing while improving reliability and decreasing total development costs. Using the Goal-Question-Metric method, provide three relevant questions, and an appropriate metric corresponding to each question.

Question: Will the additional effort needed to eliminate unit tests be less than the effort required when using the tests?

Metric: (Additional inspection effort + Effort for debugging errors found in testing) /

Effort required for unit testing

(if metric value < 1, then there are less development costs)

Question: Will reliability be increased?

Metric: Defects/KLOC after release using both methods.

Question: What will be the costs of conversion to the new process?

Metric: Effort expended in developing the new quality assurance model +

Effort expended in training software developers to use the new model

1