Student Registration System

Educational Systems Products Inc.

Supplier Group Nine

April 7,1996


Group Members:

  • Hugh Arai
  • Sung Chan
  • Ken Chuong
  • Howell Cobb
  • Mike Courage
  • Joe Dinh
  • Bryan Hunt
  • Doug Kaye
  • Pat Michael
  • Colin Poon Tip
  • Doug Thornborough
  • Barb Walrond
  • Final Project Evaluation - Supplier Group 9

    Original Specification Satisfaction

    Our completed project met all originally specified requirements with a couple minor exceptions. The functions "print class list" and "print timetable" were not implemented due to the platform used. Search mechanisms were limited to search on identification number. The original specification requested search on other fields such as a student's name. This functionality was not implemented due to the programming complexity associated with searching on non-key fields. These features could be made available in future versions of the product.

    Usefulness of the Design Process

    The design process used in the production of the software had some advantages and disadvantages. One of the weaknesses of the design process was the fact that there was a specified document size that the group had to achieve. This size was often too large and caused problems in terms of managing the documents. The excessive size of a document made it very difficult to maintain consistency between successive design stages as well as within a certain design stage. Group members had difficulty reading through the documents, due to time constraints, which increased the chance of inconsistencies and/or errors. Also, there were a lot of overlapping requirements for each document in the design stage. For example, in the functional specification, the group was required to include data structures, algorithms, and descriptions of functions. These topics were again covered in the overall design document. This kind of redundancy contributed to the difficulty of managing the documents. If the documents did not have to be a certain size, but rather allowed the group to include enough detail to provide a clear explanation, then consistency could be achieved more effectively.

    Another negative aspect of the design process was a lack of customer involvement during the development stages of the software. In order to design an interface that will satisfy the customer, there has to be more interaction between the developer and the customer. The design process used allowed this kind of interaction only through written documents, with the exception of one very short meeting. Although these documents were helpful, they sometimes created ambiguities or left the concerns of both parties unresolved. With the design process that was used, the customers only really see the software at the very end of the process. If the customer group wanted something changed at this point, it would certainly be harder to do than if the problem was addressed early in the design process.

    An advantage of the design process was that it provided a structured and systematic way to develop the software. Each stage of the design process led the group a step closer to the finished product. The development of a software program is a difficult task. The design process was beneficial since it broke the task down into smaller, more manageable stages. With each stage the group was able to concentrate on doing a more complete job. The documents, with the exception of their size, were also helpful. Every group member had unrestricted access and information from previous design stages could be referenced easily.

    Proposed Changes to the Design Process

    As mentioned in the previous section, we found the page quotas of the design process to be counter productive at times. There were instances where we found ourselves writing "fluffed up" descriptions and adding unnecessary components to our documents in order to reach the page limit for a document. Having to put in so much "fill" annoyed some group members. The page limits may have been set too high for a project of this size. It became increasingly difficult to propagate all the changes in design throughout the entire set of documents. Perhaps just a suggestion of content would be more helpful in the design process.

    The timing of the user manual caused a lot of revisions. It may have been more useful to write this either first or last, rather than after the detailed design document and before the the actual code was completed. If the manual was written before the design documents then all the pseudocode could have been based on the manual. This would have prevented having to revise the pseudocode later and the programmers could have worked directly from it. This would place the emphasis on designing a user friendly system, since it would demand a closer interaction between the programming and user interface teams right from the start of the project. If the user manual was written last then it would be an exact reflection of how the software functioned and would not need a major revision after the system was completed.

    Test Plan

    The test plan was expertly planned out, however it was not at all implemented in this manner by the group. Testing was only accomplished on a case by case basis throughout the coding stage of the project. Those persons doing the coding almost exclusively did the entire testing by themselves. The programming team was so small that a type of buddy system was used by the programmers. They basically just tapped the shoulder of the person working on that stage of the project and told them what they found and that person fixed the problem.

    In general, the difficulties of implementing the test plan resulted from both the time frame of the project and the importance of this stage in the project. If we had two years and/or 100 programmers to develop this system, perhaps the entire test plan would have been implemented as written out. Also, had the system to be designed been a very important real world system where the slightest error would have resulted in drastic consequence, again the full test plan would have been implemented to the letter by the group.

    Even with the limited manner that the test plan was implemented, we are nonetheless quite confident that the majority of the bugs have been eliminated in the project. Major errors, level A and B bugs are relatively unknown in the project, and minor errors such as level C and D errors are few and far between in our experience.

    The test plan also seemed to stress several areas that were outside of the concerns of the programmers. Given that this project was written for the Sun architecture available in the terminal rooms, the version of hardware, the windowing system, and the operating systems were all constant in most respects. If this project had been required to operate on all Unix machines, or (heaven forbid) all the differing PC compatible machines, then the full testing from architecture to architecture, machine to machine would have been necessary.

    Regardless of how far we deviated from the specified test plan, the role of the Bug Manager was fully implemented by the group. This person did end up tracking each stage of the project and was keenly aware of where bugs had been found, and what the status of those bugs were, whether corrected or uncorrected as the case may be. He was also keenly aware of what stage the various modules were at and the stages of their completion, and what stages the testing was at in each component.

    If we were to do this type of project over again, we would perhaps change the test plan to reflect more closely what was actually done. Granted, given more time we would love to do more testing.

    Management: Real vs. Planned

    Our planned management structure consisted of an overall Project Leader and a Chief Programmer. The group was divided into two teams, programming and documenting. The team structure did not change during the life cycle of the project but some members did work on both teams.

    We did not have an autocratic leader but rather a loose oligarchy with no absolute definition of power. Our Project Leader served to organize the group into smaller teams, plan successive stages and provide the focus for the group. Then, in the smaller teams, as needed several people rose to the occasion to lead the team, either they had a good sense of what was required for a section or they saw a need for more control to be exercised. Everyone had a sense of working together to complete the task at hand. The lack of management titles served us well in that it eliminated some of the problems caused by inane or unreasonable requests from a manager who lacked knowledge of what the people in their group were doing. All of our leaders grew from within the teams created, hence their effectiveness. It should be noted that this style would not have worked well if all the members of the group were not self motivated and mature in their attitude. In all, we wound up with more people involved in process management then we had initially planned, but only what was absolutely necessary because we let leaders evolve rather than be assigned.

    Comparison of Actual Times Taken for each Part

    Overall, the due dates given were fairly reasonable in comparison with the actual times taken for each part. The amendments for the 80-100 page Detailed Design Document and the 20-25 page User Manual were especially helpful and fair. We feel that it would be wise to keep these dates for future CPSC451 classes. However, there should be more time provided between the Detailed Design Document and the second logs and report. One suggestion for solving this problem is to move the due date for the second logs and report to two days after the Detailed Design Document is due rather than on the same day. This would create less stress and give better quality logs and report. Also, it doesn't make sense to have the midterm one day before the 40-50 page Overall Design Document is due, this places great stress on us. A suggestion would be that since we would not be covering any new materials during Presentation week, it might be a good idea to have the midterm on the Tuesday after the presentations. This would give us more time to study for the midterm and still provide ample time for the Detailed Design Document.

    How we would have done it differently if it were a "real" project

    The main concern for our group (again) is that in a "real" project there would not be any specified number of pages to write for each of the parts; the amount of pages would depend on the project itself. We feel strongly that because of the demand for certain amount of pages to written, the meaningfulness of the project is greatly reduced. We think the order of the parts were fine and the requirements for each of the parts were a great help as they provide guidelines for the project. However, the amount of pages to write made us, at times, write nothing but "fluff" to meet the minimum requirements. It also caused inconsistencies in the writings and important info to be lost among unimportant info as well as cause confusion for the reader.

    Another concern we have is that in a "real" project, the informal specification of requirements would have much more importance and take up much more time than it was given in the course. We feel it is important that the consumer state clearly what kind of interface they want, what functions they want, how the system will be used, etc. It should not be up to the supplier to come up with these things for the consumer. Our problem during the project was that consumer group 9 did not clearly state that they wanted a graphical interface in their informal specification, so we described a text based interface for them in our functional specification and management plan (because of time restraints, we were unable to get the needed information from the consumer group). In a "real" project there would be a lot more phone calls and interviews before the functional specification and management plan is written. One suggestion for solving this is to provide a more clear and in-depth description of the requirements for the informal specification of requirements so as to provide guidelines for the consumer group.

    How we feel about using the Web

    We all agree that the use of the Web is a great idea. In a course like this with much interaction between groups and group members, the Web provides a good medium for providing information and interaction. Using the Web, also saved a great deal of paper and made the the job of editing much easier. As well, the Web is available at all times to everyone. Some of the cons we came up with were the slow loading time and the health hazards from harmful cathode rays :)

    How to make less work

    Disclaimer: Opinions expressed in this section may not reflect the views of all group members. Over the past three and a half months we have taken on what would be considered an extreme amount of work by conventional standards. To alleviate this problem we have compiled a list of suggestions that may be considered for future developments of Computer Science 451.

  • Redundant documentation
  • Unreasonable Customer group effort
  • Lack of developmental Software on the network
  • Page Quotas
  • Redundant Documentation

    What seemed to place an unnecessary work load upon students involved in this course was the redundant documentation. As students we were asked to develop a chain of documents that simply were expanded in size at a later time. For example, we started with a design document upgraded to an overall design document followed with a detailed design document. From our knowledge of the real process outside of academia this simply does not occur. Each document contains similar yet expanded components that could easily be combined into a one or two step process.

    Unreasonable Customer group effort

    It is obvious why we would be involved in a customer group. This gives us a chance to feel how the process affects both sides in the development of software. Having said that, the efforts placed upon the customer group far exceeded what is necessary to accomplish the above goal.

    One suggestion that we would like to present is involving the customer group in a pseudo lazy evaluation way. This would mean that the customer group should behave as a real business that has minimal time in participating with the development process. Although this may undermine the "Software Engineering Standards" in development, it is fair to say there were no S.E.I standards used in any of the supplier groups development processes. It boiled down to a "get this over with" scenario. Customers should submit documents when there is a problem not be forced to find them. We feel the customer groups acted with too much knowledge and undermined what would really occur.

    Lack of Developmental Software

    A problem that our coding team encountered was that none of us possessed a proper developmental software package. Therefore they had to undertake the use of substandard software (TCL/TK and C with Sybase) that exponentially increased the workload of the coders.

    A simple suggestion would be to install a good package onto the network. This would level out the playing field and provide those with less fortunes a way to quickly and relatively painlessly develop the required software. If that is an unreasonable suggestion then a room of PCs with the stated appropriate software would accomplish the same task.

    Page Quotas

    One of the major parts of this course seemed to revolve around documentation. Although we can see a need for this we do not see a need for quotas. Quotas are, for the most part, a way of reducing quality and increasing workload. By forcing a quota we are forced to fill documents with information that is redundant, unnecessary and ridiculous.

    To dispell this problem a lift on quotas would empower those involved to write quality documents that take as much effort as is needed. Documents can then be judged on the quality and presentation as opposed to meeting the right size, which we lost marks on for the User Manual.

    It is conceivable to us that the work loads could be reduced to make life easier here in Computer Science, but intuitively that is not the goal of this program. The amount of work involved in this course is tremendous, and with a small course load manageable. Unfortunate to most of the students the latter is not the case; yet with the opinions that have been expressed we hope that all of the ideas have not fallen on deaf ears.

    Lessons Learned

    Below are some of brief discussions on some lessons we have learned working on this project:

    It was important to organize our group as soon as possible. This includes choosing a group leader, and breaking down the group into smaller subgroups. A group leader should be able to help others to follow the rules agreed on by all members in the group. Also, he should be able to make the final decision on an issue or discussion. We found that smaller groups are more efficient than a large group. It is very difficult and inefficient to set up a meeting for all group members at one time. Also, if the group contains too many members, communication may become inefficient.

    In order to meet the needs of the customers, it is better to keep the customers involved in the project. We learned that it is very easy to misunderstand what the customers require since we were not in contact with them enough. In fact, we should have had someone dealing with them regularly. If we did this we would not only make sure we produced and implemented what the customers desired, but we would also encourage a more positive customer/supplier relationship.

    Communication was very important in the group work. We had a big problem in the early stages of the project because of a lack of proper communication. The first time the documentation subgroup wrote the specification, the document was full of inconsistent and redundant information. It was because the members in the subgroup worked individually and they did not have enough communication.

    Prepare before meetings. It is wasting time for all present in a meeting if you don't know what to do or what the purpose of the meeting is. Always be aware and understand what needs to be done during a meeting. For example, everyone should read all the requirements on the web page before going to a meeting, not after or reading those requirement during the meeting.