Note that the information presented here does not necessarily reflect the most up to date syllabus or course information. Rather this information is intended to provide a general overview of course content from previous offerings.
Lectures: Tuesday/Thursday 1-2:30pm in Agriculture 2C71
Tutorials: Wednesdays, 4-5:20pm in Physics 127
Class Instructor: Nathaniel Osgood, Thorvaldson 280.6, 966-6102, osgood@cs.usask.ca
Office Hours: Thursday 3:30 – 5pm and by appointment.
Tutor & Marker: Yudi Xue, yudi.xue@usask.ca
Because of the diversity of material and topics covered, there are two recommended texts for CMPT 371, one required and one recommended. Each of the books listed is an outstanding reference for future work, and students are recommended to acquire both of the texts, although neither is required.
McConnell, S. (1998). Software Project Survival Guide. Redmond, Wash, Microsoft Press. ISBN 1-57231-621-7.
Available through the U of S library.
DeMarco, T. and Lister, T. Peopleware: productive projects and teams. Dorset House, 1999, 2nd edition. ISBN:
0932633439.
Available through the U of S library.
Additional readings from a variety of sources will be provided as PDFs on the course website.
The course follows up some of the software engineering issues discussed in CMPT 370. The focus is on the critical human side of software engineering: coordination and management of the software development process, project planning and estimation, risks and risk analysis, team building, contract design and negotiation, testing and software quality assurance, productivity, behavioral considerations, software configuration management, deployment and maintenance, training and help, software process standards, and software process improvement.
The completion of a significant group project, and the management and documentation of this project, and the staged delivery of quality products, are an essential part of the class. The project is focused on planning and measurement, the later stages of the software development process, as well as maintenance and deployment issues. Assignments and class participation will also contribute significantly to students’ grades.
All students must be properly registered in order to attend lectures and receive credit for this course.
The project will continue the design and implementation of a course project from CMPT 370 or CMPT 371. As described more fully in the final section of this document, the project will be carried out in large project groups. There will be several stages in the development of the project (note that several of the stages are on-going throughout the project and some may be done in parallel):
The anticipated due dates and weighting for submissions for Project Related Deadlines and Other Assignments are as below; all dates indicate a deadline of midnight at the close of the specified day.
| Deliverable | Detail | % Mark | Due Date |
|---|---|---|---|
| Infrastructure Presentation | Description of chosen project, process components: issue tracking, wiki pages, continuous integration , smoke test and status reporting mechanisms, version control structure, tools (e.g. for mocking, GUI testing, persistence, etc.) | 0 | Jan 19 |
| Incremental Deliverable 1 | Design documentation of requirements & any changes to software design or architecture. Testing plan. | 8 | Feb 1 |
| ID1 Presentation | Presentation on Incremental Deliverable 1. Reflects work planned for Incremental Deliverable 2. | 0 | Feb 2 |
| Incremental Deliverable 2 | Fully working version of system with modifications to support best practices and plans for Incremental Deliverable 2. Identifies work to be accomplished by Incremental Deliverable 2. | 8 | Feb 15 |
| ID2 Presentation | Presentation on Incremental Deliverable 2. Reflects work accomplished since Incremental Deliverable 1, and work planned for Incremental Deliverable 3. | 0 | Feb 16 |
| Incremental Deliverable 3 | Fully working version of system with added features. | 8 | Mar 1 |
| ID3 Presentation | Update on Incremental Deliverable 3. Reflects work accomplished since Incremental Deliverable 2, and no need to work planned for Incremental Deliverable 4. | 0 | Mar 2 |
| Incremental Deliverable 4 | Fully working version of deliverable incorporating new features. | 8 | Mar 15 |
| ID4 Presentation | Reflects work accomplished since Incremental Deliverable 3, and no need to work planned for Incremental Deliverable 4. | Mar 16 | |
| Incremental Deliverable 5 | Fully working version of system incorporating all features | 8 | Apr 5 |
| ID5 Presentation | Final Status: State of project near the end and deployment plan; should summarize progress over work over entire | Apr 6 | |
| Post-Mortem | 10 | To be submitted at final exam |
| Deliverable | Detail | % Mark | Due Date |
|---|---|---|---|
| Pop Quizzes | Throughout term, in class | 15 | Feb 19 |
| Final Exam | Closed book | 30 | TBD |
In addition to the above deliverables, a significant fraction (5%) of students’ grades will be based on participation. In recognition of differences in communication styles and interests among students, this participation score will reflect interaction in lecture, tutorials, in project meetings at the beginning of class, and in office hours.
While it is understood that occasional absence from lectures is unfortunately sometimes necessary for health or other extraordinary considerations, students who are absent from class will be missing both course material of importance to functioning productively in the project and the team meetings to be held in the first 10 minutes of class (please see below). Students who are chronically absent from class sessions will naturally be at a great disadvantage when it comes to learning (and the marks that reflect it), but can expect both to receive very poor scores for participation, and will also be viewed as contributing less to the team project.
Participation in the team project is mandatory for all students. Students deemed to have inadequately contributed to the mandatory course project will receive an escalating pair of warnings, beginning with the receipt of a yellow (virtual) warning card from the instructor. It is the obligation of a student who receives a yellow warning card to make immediate efforts to arrange for a meeting with the professor or teaching assistant to discuss and resolve their situation. Failure by the student to adequately resolve the underlying concerns regarding participation can be expected to lead to the issuance of a red warning card from the instructor. Students receiving such a red card are at imminent risk of failure of the course, and it is incumbent open them to act immediately to make a meeting with the instructor to address these concerns, and to make all efforts to contribute to the project. Failure of a student to respond to either of these warnings will be taken as an indication that they agree that they are failing to contribute adequately to the project.
Students must have at least one artifact undergo a peer deskcheck review (either with or without the author present) for each deliverable. These artifacts may be pieces of code, but could also be other substantial components for the project, including design elements (including class diagrams), requirements documents, a risk management plan, tests, a testing plan, etc. The reviewer and author must sign off on a form that indicates the results of the review (including brief description of defects found or rework to be performed) when the review is complete. These reports must be submitted with the deliverable. In addition, each student is required to be present as a reviewer or other participant in at least two formal inspections during the term:
These inspections must be documented and signed off on by the inspection team. Students whose artifacts are not inspected for the term will have marks deducted. Students will be expected to participate in other reviews of artifacts produced by their peers during the course of the project. We suggest the use of the doodle scheduler for scheduling peer reviews.
Please note that some of the most critical of these meetings must be held prior to the first milestone, with the results reflected in that milestone and milestone presentation:
Finally, may be management meetings, to be held at a mutual agreeable time for students, instructor and (especially) TAs.
Lecture slides will be provided via the course website when possible but are not guaranteed for all classes. Selections from the textbook and other readings distributed electronically are shown below. Additional readings and URLs will be shown in the notes for the topic in question. There will also be some guest lectures scattered through the term, and frequent meetings with project management. There will also be tutorials as particular topics warrant (see below). A substantial portion of the class grade will reflect student participation, so, students should come to recitation (as well as lecture) prepared to discuss the assigned readings.
A preliminary lecture schedule is included below. The schedule has been designed to provide students with knowledge and skills that will enhance project success. Students are strongly advised to apply the techniques covered within class within their projects.
Please note that the schedule below is tentative and we expect that it will be revised throughout the term. Updated versions will be posted on the WebCT/Blackboard site, and the class notified via email.
| Date | Topic | Readings |
|---|---|---|
| Jan 6 | Introduction and Overview, Best Practices: Greatest Hits 1 | @.4,@.5 |
| Jan 11 | Best Practices: Risk Management 1, Risk-Driven Incremental Delivery with mini-Milestones | @.95-101, R.3, R.16, @.pp173-179, @.pp161- 169,@.pp179-185, RAD.7 |
| Jan 13 | Best Practices: Meetings: Reviews & Inspections And Audits | F.113-114, W3.17 |
| Jan 18 | Guest Lecture (Vendasta; Tentative) | |
| Jan 20 | Best Practices: Daily Build & Smoke Test & Continuous integration | DB & CI, S11,A.14 |
| Jan 25 | Best Practices: Estimation: Decomposition | @.pp155-161 B.22-24,W3.13, EST.4 |
| Jan 27 | Guest lecture | |
| Feb 1 | Best Practices: Testing & Debugging Process 1 & triage | @.9, @.15, Q2.15, @.16 |
| Feb 3 | Guest Lecture (Point 2; Tentative) | |
| Feb 8 | Best Practices: Scheduling | G.4, M.2, M.4, M.7 |
| Feb 10 | Best Practices: Assertions, Exceptions & Return Codes | |
| Feb 15 | Best Practices: Clean Coding & Style Conventions 2 | |
| Feb 17 | Best Practices: Clean Coding & Style Conventions 3 | |
| Feb 22 | Vacation | |
| Feb 24 | ||
| Mar 1 | Best Practices: Change & Software Configuration Managements | |
| Mar 3 | Best Practices: Creating Tests before the Code | |
| Mar 8 | Testing 2 | |
| Mar 10 | Testing 3 | |
| Mar 15 | Testing 4 | |
| Mar 17 | Testing 5 | |
| Mar 22 | Project Control | |
| Mar 24 | Human Capital & Team Building | W3.pp18-22,P.16,P.18 |
| Mar 29 | Managing teams & behavioral considerations I | P.21, PP, P.20,P.31, Q2.9 |
| Mar 31 | Systems thinking 1 | |
| Apr 5 | Systems thinking 2 | |
| Apr 7 | Pressure, Efficiency and Effectiveness | S.7, S.9, P.3, P.27,F.pp23-24, F.17-19, P.7-9 |
NB: The schedule above – including the contents and dates of both lectures and management meetings – is subject to change. On occasion, updated schedules may be provided.
“X.n” denotes chapter number n within the source abbreviated by X (as described by the section on readings below). “X.ppN-M” denotes page numbers N through M within the source abbreviated by X.
Tutorials in CMPT 371 serve a variety of functions. These include review of topics raised in readings, guest lectures, discussion of examples of concepts raised in lecture, student presentations. Because of this variety of goals and the likelihood of changes in guest lecturers’ schedules, the schedule for topics to be discussed in recitation is particularly variable.
| Date | Topic | |
|---|---|---|
| Jan 12 | Student Meeting | |
| Jan 19 | Student presentation: Infrastructure Briefing | |
| Jan 26 | Student Meeting | |
| Feb 2 | Student presentation: Milestone 1 Briefing | |
| Feb 9 | Project Case studies: Risk Management & “Project from Hell” | ADI, PFH |
| Feb 16 | Student presentation: Milestone 2 Briefing | |
| Feb 23 | Vacation | |
| Mar 2 | Student presentation: Milestone 3 Briefing | |
| Mar 9 | Case Study: Denver Airport | DNV |
| Mar 16 | Student presentation: Milestone 4 Briefing | |
| Mar 23 | Project Case Study: Confirm | CFM, LAX, RRL (Review) |
| Mar 30 | Project Case Study: MCC & Orbitz | IRS, MCC |
| Apr 6 | Student presentation: Final Briefing |
Readings for the course will be drawn from a variety of sources. The schedule above uses the abbreviations shown in the first column.
| Abbrev. | Source |
|---|---|
| @ | McConnell, S. Software Project Survival Guide. Microsoft Press. 1009. ISBN-13 978-57231-621-8. |
| ADI | McGee, M. and Bartholomew, D. Meltdown -- Adidas warehouse distribution system was supposed to be start of the art, but things went from bad to worse. InformationWeek. Mar 11, 1996, p.14 |
| JUN | Chapter on JUnit from Fowler, “Refactoring” |
| DNV | BAE Automated Systems (A) & BAE Automated Systems (B) on the Baggage- Handling System at the Denver International Airport from Glass, Software Runaways |
| IRS | IRS Project Failures Cost Taxpayers $50B Annually and IRS: Tough to Get Any Respect from Glass, Software Runaways |
| FAA | Miscellaneous news articles on Federal Aviation Administration (FAA) Flight Traffic Control System |
| A | Berkun, S. The Art of Project Management. |
| B | Pressman, R. Software Engineering: A Practitioner’s Approach. |
| C | Berczuk, S. Software Configuration Management Patterns. |
| CLD | Sterman, J. Causal Loop Diagrams. Chapter 5 of Business Dynamics.2000. McGraw-Hill. ISBN-10: 007238915X. ISBN-13: 978-0072389159. |
| PFH | Stanford, J. The project from hell. Computerworld. Sep 4, 1995. pg. 81 |
| DRK | Hoffman,The Darker Side of Metrics |
| F | Glass, Robert. Facts and Fallacies of Software Engineering. |
| G | Stellman, A. and Greene, J. Applied Software Project Management. |
| M | Moder, Philips, and Davis. Project Management with CPM, PERT, and Precedence Diagramming. |
| EST | McConnell, S. Software Estimation. Microsoft Press. 2006. ISBN-10 0735605351. ISBN-13 978-0735605350. |
| DB | McConnell, S. Daily Build and Smoke Test. http://www.stevemcconnell.com/ieeesoftware/bp04.htm |
| PP | McConnell, S. Dealing with Problem Programmers. http://www.stevemcconnell.com/ieeesoftware/bp14.htm |
| RAD | McConnell, S. Rapid Development. Microsoft Press. 1996. ISBN 1556159005 |
| N | Thompson, Leigh. The Mind and Heart of the Negotiator. |
| BSA | Hohmann, L. Beyond Software Architecture. Addison Wesley. 2003. ISBN 0201775948. |
| P | DeMarco, T. and Lister, T. Peopleware. |
| R | DeMarco, T. and Lister, T. Dancing with Bears |
| S | DeMarco, T. Slack. |
| T | Brown, W., McCormick, H., and Thomas, S. AntiPatterns in Project Management. |
| CC | McConnell, S. Code Complete, Second Edition. Microsoft Press. 2004. ISBN 0735619670. |
| JUN | JUnit Chapter of Fowler, M. Refactoring: Improving the Design of Existing Code. 1999. Addison-Wesley. |
| DRK | Hoffman, D. The Darker Side of Metrics |
| U | Garton, C. Fundamentals of Technology Project Management. |
| CI | Fowler, M. Continuous Integration |
| RRR | Moore, Jo Ellen, and Burke, Lisa A. (2004). Reluctance to Report Reality in Troubled Technology Projects. In M. Igbaria and C. Shayo (Eds.), Strategies for Managing IS/IT Personnel, 282-299. Hershey PA: Idea Group Publishing. |
| LAX | Oz, Effy. When Professional Standards are Lax: The CONFIRM failure and its lessons. Communications of the ACM. Association for Computing Machinery. 37(10), Oct. 1994. p29 |
| CFM | The Collapse of Confirm. InformationWeek October 19, 1992. pp12-14. |
| SVN | Nagel, W. Subversion Version Control: Using the Subversion Version Control System in Development Projects. Prentice Hall, 2005. ISBN-13: 978-0131855182 |
| S1 | Spolsky, J.: “Daily Builds are Your Friends” |
| S5 | Spolsky, J.: “Five Worlds” |
| MAH | Abdel-Hamid, T. K. and Madnick, S. E. “The Elusive Silver Lining: How We Fail to Learn from Software Development Failures,” Sloan ManagementReview, 32:1, Fall 1990, pp. 39-48 |
| Wx | Weinberg, Gerald. Quality Software Management, Vol. x |
All homework will be distributed and submitted electronically using the WebCT/Blackboard System.
Completed assignments and other deliverables are to be submitted before 12 MIDNIGHT on their respective due dates also shown in the course outline. Because feedback on the answers provided will be provided directly in the submitted file, it is important that you submit your homework in a form that is editable by MS Word or Excel. If you do not have access to the appropriate software, please submit in PDF format.
The grade of the course will be assigned on an individual and team basis. For the term project, the work is done by a set of students working together as a company. The team grade of the term project is obtained from the term project documents. From the term project grade, each member will get an individual term project grade depending on her/his efforts and contributions as evaluated by her/his peers in the group. Each individual will receive a grade equal to the term project grade times a multiplier. This multiplier can be lower or greater than one. The average of the individual grades will be equal to the team grade. Working effectively in a team is a precondition to get a good grade, but in the case that circumstances on the team create a difficult environment, individuals will not be blamed for the fault of others.
Problem sets that are prepared by a team will also be graded accordingly. The term project, problem sets, class participation and final exam collectively account for 100% of the grade.
10% per day may be deducted from late term project phases up to a maximum of seven days. Term project phases received more than seven days late may not receive any credit. Under certain circumstances extensions may be granted. Please contact the instructor or tutor prior to the due-date if an extension is required. Failure to complete the assigned course work will result in failure of the course.
Collaboration among students on problem sets or term project phases to be completed individually is limited to discussing concepts and clarifying issues. Nonetheless, each student is expected to produce his or her own solutions to the homework problems. For a further discussion, please see the section on Academic Honesty.
Collaboration among students on problem sets or term project phases to be completed as a team is encouraged. The team needs to submit only one document for the whole team.
As mentioned before, project grades are adjusted for each individual based on each individual’s contribution to the project. To establish individual contributions, a peer evaluation is performed during the final project phase. This evaluations will ask each team member to distribute a financial “bonus” among the team members, provide a recommendation for each member of the team, evaluate the effect of each member to the morale of the team, evaluate the contribution of the team member to the term project and assign a “title” to each member of the team including the person filling out the form. There is the expectation that such evaluation will remain confidential. It is also expected that team members will behave professionally and honestly while filling the evaluation. No consultation is permitted with other team members when or before filling out the evaluation.
It is worth emphasizing that because this coefficient influences the points accrued to the student from across the entire group project, a student’s level of involvement in the project may have a substantial impact on their final grade.
In addition to the above, the course includes a final exam. Failure to write the final exam will result in failure of the course. The final exam will include both a take-home and an in-class portion.
Students are expected to adhere to University of Saskatchewan Academic Honesty policy.
CMPT 371 is a course about the management of the software development process. Participation in a real-world project is important in helping students internalize course material.
The project in CMPT 371 will continue the design and implementation of one of the course projects from the Fall 2007 version of CMPT 370. The CMPT 371 project will be carried out in randomly selected larger (7-10 member) groups. Effective management of such a large group to achieve stated project objectives will be critical to the success of the project. After the group has been put together, the first order of business will be to decide which CMPT 370 project to further develop and to get formal permission from those who built it to continue to work on it. Original CMPT 370 project objectives will then have to be revisited and possibly new objectives set.
A plan will have to be devised and put into effect to achieve the stated objectives. It is expected that the plan will include a number of elaboration cycles each delivering a highly stable version of the software, and incorporating increasingly sophisticated functionality. As the project proceeds, the plan will guide activities, but will always be subject to updating as circumstances change, so it will likely be quite specific only for the immediately approaching development cycles and fairly general for later iterations. In the end, the final project will be a high quality working system, fully documented and tested and measured, complete with a deployment plan (although it won’t actually have to be deployed!)
The emphasis for this deliverable will be on quality and not on quantity of features – the final deliverable should be as close to “industrial strength” as you can make it, and include adequate documentation to permit extension by another team if so required. The higher quality that is expected will require extra levels of care and planning. For example, each person in the class will be required to have all significant artifacts peer reviewed (see below), and we expect formal defect tracking and defect removal estimation. Please scope your projects accordingly.
In addition to outside arrangements made amongst themselves, students can plan on holding brief time-
boxed project “scrum” meetings will be held in the first 5 minutes of each day of class, unless otherwise
noted. To make best use of these meetings, we suggest that students refer to the following reference:
http://www.martinfowler.com/articles/itsNotJustStandingUp.html
There will be three presentations and four project major milestones during the course, and regular meetings with management. The requirements for each of these are now outlined.
Existing system with source code repository, daily build and smoke tests, a mini-milestone list, list of risks, risk report, requirements, documentation of team personnel roles (which may include more than one role per individual), tests and hooks, documentation of code reviews. Statement of requirements to incorporate in successive deliverables throughout the semester should be clearly spelled out. A report of testing results should be included, including a defect reports for defects found.
Paper or simple GUI prototypes should be presented to describe user-oriented functionality for the Incremental Deliverable 2. The deliverable should also include a detailed plan for achieving the next milestone objectives. This plan should include a project CPM schedule outlining steps (mini-milestones) in carrying out the project and a critical path through this network. The plan may have sub-plans, corresponding to sub-goals established by the various work units into which the project has been sub- divided. An initial estimate of the size of the software for Incremental Deliverable 2 and the effort required to produce it should also be made.
The first milestone should include an activity report summarizing work undertaken by each group member to date, and the activity log (giving time estimates).
Initial analysis and design artifacts for Deliverable 2 should also be described. Some of these may have been inherited from the CMPT 370 project, others will be modifications of CMPT 370 artifacts, and still others will be freshly built.
The first presentation will provide a project overview to management and other class members of Milestone 1, and should include a demonstration of the system as it is currently present, as well as a demonstration of status report information.
In milestone 2 all project artifacts created or modified since the first milestone should be handed in, including updated planning, analysis, and design artifacts, as well as new artifacts: updated risk analysis (including results of new scanning), the version control strategy, the test strategy and testing done to date (including test results), and the latest measurements of software quality (e.g. results of code reviews). Code and interfaces should also be included. In a manner similar to what was done for milestone 1, you should indicate in detail what is planned to accomplish between now and milestone 3.
Unless special arrangements have been made with the instructor, the system should be in a working and stable state for this and other milestones. It is important for this presentation that you summarize not only what has been accomplished for the work products, but also for refining the development process – what you have learned or changed in the development or management process.
[NB: In order to inform the measurements of software quality, you may find it useful to get an early head start on some of the required readings on testing and QA processes, despite the fact that the due date for these readings lies only shortly before the Milestone 2 due date.]
The second presentation will provide a summary of milestone 2, and a demonstration of the milestone 2 deliverable.
Milestone 3 is similar to milestone 2 in contents and should include detailed discussion of the lessons learned from the project.
The third presentation will provide a summary of milestone 3, and a discussion of what is planned for milestone 4.
Milestone 4 is similar to milestone 3 in contents, except that it summarizes work to be completed by milestone 5.
This presentation will provide a summary of milestone 4, and a demonstration of the working system.
Milestone 5 is similar to milestone 4 in contents, except that no summary of work to be accomplished prior to the next milestone is included. Milestone 5 should, however, include detailed discussion of the lessons learned from the project.
This presentation will provide a summary of milestone 4, and a demonstration of the final, completed system.
Each member of a team is expected to have at least one significant artifacts they create undergo peer review via a peer deskcheck per milestone. Artifacts to be reviewed include requirements specifications, design specifications, tests, code, bug fixes, etc. This review will require signoff by both parties involved, plus an indication of any issues that were identified that require changes (and subsequent peer review).
Each person must also have at least one artifact inspected via a formal process described in class and in the readings during the course of the term. This process will involve pre-inspection review of documents by team members, rigorous note-taking, and follow-up. A tutor (TA) should be present at each such session, which will be graded on a pass-fail basis.
Your group should divide the tasks in the project appropriately so that each member can work independently or in a smaller sub-group much of the time. However, effective group interactions will still be mandatory to complete the project successfully, as in CMPT 370 only more so! You are encouraged to communicate electronically using your mechanism of choice in a private area. Each lecture meeting will provide an opportunity to meet during the first 10 minutes of class (12:55-1:05), but you should all also physically meet separately (at least once a week) to make sure that everybody is on the same page. An agenda for each such meeting should be prepared beforehand, and minutes of the meeting should be kept. If group problems (e.g. caused by personality conflicts, slackers, etc.) start to occur, they should be nipped in the bud before they develop into real obstacles to success. You should try to solve the problems yourselves, perhaps at the regular meetings. As a last resort, you should approach the “higher management” (tutor, and – if absolutely necessary – the professor). Remember that managing such a large group has its own special disadvantages (too many cats, all going their own direction) but also its own special advantages (one problem worker doesn’t usually bring down the whole group). While experience suggests that some members of the class may not participate fully at all times throughout the semester, they do so at their own peril, and it is important that the project members welcome those individuals when and if they choose to make an effort to contribute.
As noted below, the final exam will survey individuals in your team as to the roles played and levels of effort expended by yourself and your teammates.
Each of the presentations will be scheduled for a full hour during a tutorial period. There should be 5 minutes at most for set up, 30-35 minutes for the presentation, and a 5-10 minute question period. Not all members of the team need to take part in any given presentation, but over the term everybody should stand in front of the class at least once.
At each project milestone, and in the final project, all appropriate artifacts should be handed in, using the same system used for course problem sets. The project should be appropriately packaged so each component is clear. There should be some sort of overview document and/or index to help the marker to understand the various parts of the project (and in the final project this should also contain instructions for running the system). Critically, these should involve a readme file in the main folder to direct the reader to the appropriate starting point.
The marking of term work in the course will be based upon meeting the objectives set above for each presentation, milestone, and the overall project. We will be looking for realistic outlook, sensible and responsive planning, comprehensible documentation aimed at practical communication for future teams that will extend this project, appropriate (communicational) use of the analysis and design techniques explored in earlier computer science courses (in particular CMPT 370), and in the later presentations and milestones also a solid risk analysis, thorough testing and measurement, good deployment planning (including training and help material). These artifacts should all be continuously updated as the project proceeds. The system developed at each milestone will be judged for its robustness, maintainability, usability, utility, and adherence to requirements.
Although all members of the group will share in the overall group mark for each presentation, at each milestone, and in the final project, it is possible that group members who do not contribute equally will be assigned only a portion of the group mark. Each of you will be asked on the final exam to indicate in both a qualitative and quantitative fashion the contribution of each member of the group contributed during the year. This information will be combined with the activity tables handed in during the course and appropriate adjustments will be made.