Information Systems Management
CARNEGIE MELLON UNIVERSITY

95-706 Spring 2000

FINAL EXAMINATION/PAPER

Your paper is to be turned in electronically in the usual way not later than 5:00 PM on Friday, May 5, 2000.

While writing your paper you may consult your own notes and any published material that you find useful. You may not consult the work of other students.

If you use ideas from some source, you should identify the source in your paper. If you include quotations from the writings of others, the included text must be enclosed in quotation marks and acknowledged with a specific reference.

A paper that consists of extensive quotations from other sources instead of the writing of the author is considered unacceptable. The use of extensive quotations from a copyrighted work in another document is usually taken to be a violation of the copyright unless written permission from the copyright owner is secured.

The above statements are simply an elaboration of the basic policy of the course which says "You cheat if you represent someone else's work as your own."

1. Introduction

During the entire semester, we used a combination of project work, reading, classroom discussion and lectures to learn about object oriented analysis and design and to apply it to practical examples. This study was supplemented by outside speakers from the Software Engineering Institute to provide an overview of other software development topics.

For approximately the first half of the semester, our project work was used to expand our programming skills and to learn about the complexities associated with larger programs. Our classroom work, reading and homework was devoted to learning some ideas about object oriented analysis and design and the graphical modeling language UML.

Our project work in the second half of the semester was used to apply the ideas about object oriented analysis and design to a specific re-engineering problem. That is, we started with an existing program and modified the program to meet new needs described by our customer. We also gained some experience merging multiple solutions to a problem into a single solution. An important new component of our work was to work in a team and learn more about the problems that come up when highly motivated people are working together on a single problem.

Our classroom work and homework was devoted to learning some of the skills needed by and used by project managers so as to prepare for moving into a leadership role in our future employers organizations.

The purpose of this assignment is for you to integrate this wide range of ideas into a single whole in your own mind and to reflect on what you learned from doing the projects.

There are two questions to be addressed in your paper. They are intended to serve as a way for you to organize the work you have done this semester in your mind and then write down what you have learned.

2. Questions to address

The concrete example that will be used in both questions is your work on sparse matrix programs. The actual purpose of the program is irrelevant -- it merely serves as an example for our thinking.

When you write your paper, don't assume that your reader knows the background information provided in the questions below. Give your description of the situation as you consider appropriate.

Question 1. New Software

Place yourself in the position of having just appointed the manager of a team that is to create the sparse matrix program that you wrote for projects 1 and 3. At the start, there are no team members and you may select team members by the skills they bring to the effort. Your prior experience indicates that a few people are needed to successfully complete this project but that a large team will make it very difficult to complete the project on schedule and on budget.

Assume that you are given the use cases implied by the text of the project 1 specifications document.

Describe how you would organize the work to complete the project and what kinds of skills are needed to complete the project.

What milestones would you set to assure yourself that work is proceeding on schedule and that the required work has been completed?

Describe the test cases you would use to make sure that the software works correctly. How would you determine the scope of the required tests?

Question 2. Existing Software

Your company has just completed a merger with another company that provides sparse matrix software and you have just been appointed a manager with the task of merging the two software products and then adding new features to the result of merging the two products. You may select the staff to work on the project by skills.

The two software products are written in C++ and the two development teams did not create models while building the software and there is no global documentation. The documentation that exists is included in the class declarations and may be described as follows.

Each class declaration contains a global comment that describes the role of the class in the system and the functions or services it provides to it's clients.

There is a functional description of each method of the class.

Most of the documentation is well written but there are some very obscure classes.

For unexplained reasons, the test cases and data used by both predecessor companies has been lost.

One of the motivations for the merger was that the customers of both companies wanted a new version of the product to provide a GUI and additional function and the effort required was beyond the resources of each company. Resources in the new (merge) company are sufficient.

The new features that are desired are the ones you worked with in project 4.

Describe the team you would assemble by skills, e.g., analysts, designers, coders, human factors, testers, technical writers, etc.

Describe how you would organize the work of the teams. Where, if anywhere, would you introduce parallel work?

What milestones would you set and what would you do to assure yourself that the work has been completed as described? Simply because there is too much material, you can't check all of the work.