Umu logo Umeå University
Faculty of Science and Technology
Department of Computing Science

OOPU COURSE PAGE


OOPU--Goals and Contents

Contents


Introduction

Course TDBC18 is a team project oriented software engineering course. The course focuses on object-oriented approaches to software development. Preliminary knowledge on software engineering is required. Proficiency in object-oriented programming is recommended. Each team consists of 5-7 students. Each team plays four roles during the course.

During the course all teams have to attend lectures and formal intra-team meetings. All teams must produce specific sets of deliverables and present their projects from time to time.

There is no written exam at the end of the course.

Project Proposals and Project Selection

A list of project proposals is provided. Each team may add proposals to this list. Any non-trivial problem may be added. The effort required for the project should be about 6-8 person months. The target size of the final system should be between three and ten thousand lines of (new and changed) code. Good candidates are renting systems, simulations, games, etc.

No team must select its own proposal.

Development Approach

Development follows a work product oriented approach (see [OOTC]). That means that the development process focuses on the production of certain work products. This approach is also taken in the Unified Software Development Process (see [USDP]), which gains more and more popularity.

The course lectures introduce the Unified Modeling Language (UML, see [UML]) for object-oriented analysis and design. You will use UML during the analysis and design phases of your project.

Subcontracting

No team must completely and solely program its own system. At the end of the design phase each team must contract with another team for some part of the (prototype) implementation.

Prototype Evaluation

Each team is required to thoroughly evaluate another team`s prototype.

Languages and Third Party Software

Any popular programming language is accepted (e.g. (Turbo-) Pascal, Modula-2/3, Ada, Eiffel, C/C++, Java, ...). Third party or embedded packages (e.g. class libraries) are allowed, but only as a subset of the final prototype.

Usage of Tools

A tool (Rational Rose) supporting the Unified Modeling Language (UML) is available on the lab-machines. We have licences for RS6000, Solaris, and Windows NT. Rational Rose supports analysis, design, and code generation. We have code generators for Java, C++ and Ada95. The use of Rational Rose (or an equivalent) is mandatory.

In addition we provide further tools to support your project work. Besides GUI-, programming-, configuration management- (CVS), and publishing tools, we do even provide tools for projekt planning, tracking, and control (MS Project). The usage of these tools is is recommended, but not mandatory. You are free to use your preferred editors, compilers, etc.

To support teamwork we recommend the usage of a tool that supports shared workspaces or collaborative editing, like BSCW or Swiki.net.

Deliverables

Each team has to maintain a www-based project workbook with up-to-date information on the team and its project(s).

Although all deliverables should be available electronically (in some form) we do also require certain hard copy deliverables (i.e. paper) for practical reasons. Hard copies make it easier to comment on your work and/or give suggestions for improvements. Furthermore it makes it easier to control deadlines.

The deadlines for all deliverables must be listed in the schedule of each team (the schedule is a part of the project management document). Many deadlines can be negotiated to fit a team's actual project and available resources. Deadlines listed in the course schedules are mandatory and cannot be negotiated. Renegotiation should be avoided. Please do not forget to keep your web pages up-to-date.

Detailed descriptions of the purposes and contents of all deliverables listed in the table below are available in a separate document.

All documentation (paper as well as electronic versions) of a team should conform to a common format. Each team can define its own guidelines to achieve that.

Please note that paper deliverables must be self-contained. Simple print-outs of web-pages are not acceptable! To avoid duplicate work we recommend to focus on high quality paper deliverables and put those on-line via PDF. OOPS! The web-pages must still be browsable, i.e. a few big PDF documents are no good solution either.

No Deliverable Type of submission Comments
wwwpapere-mail
D1Team DescriptionX-X-
D2Project ProposalXX-Obsolete, if enough (external) proposals are available
D3Project WorkbookX--See [OOTC]
.
D3.0Project Workbook Outline
X--We use a revised version of [OOTC]
D3.1Project Management
XX-Updates will be checked on-line
D3.2Requirements Document
XX--
D3.3GUI Design
XX--
D3.4Object-Oriented
Analysis & Design
XX -Two paper versions (initial/final)
D3.5Implementation
X--Includes the prototype user manual
D3.6Testing
X--Only the subcontract part
D4Subcontract(X)X--
D5Prototype Evaluation(X)X--
D6Weekly Reports(X)-XOnce a week
D7Final Report-X-A compilation of previous deliverables, plus some additional stuff

(X) - optional

Examples of complete project documentations from previous courses are available as hard copies. Some of them are even available on-line via the course's home page.

Presentations

The course contains three presentation tracks. At the beginning of the course each team presents itself and describes its proposal. In the second presentation each team gives an overview of the project they actually pursue. At the end of the course all teams present their prototypes in a demo session.

Some information about the purposes and contents of the presentations are available in a separate document.

Meetings and Reporting

Each team has to carry out weekly meetings. Such meetings are very important to get all team members involved in all tasks and to control the progress of the project. Minutes of all meetings have to be kept (to be included into the final project report).

Each team must send weekly reports to its supervisor(s) to keep them informed about the current status of the project.

Project Team Organization

Each team member has one or more specialist roles. We recommend to assign at least two team members to each role to make shure that each team member has a knowledgable partner to discuss problems with.

Each role is accompanied by a set of special resposibilities. Beeing responsible for something does not mean that you have to do it all by yourself, but it is your responsibility that it is done. Please note that a specific specialist role does not free you from your overall responsibility to contribute to the project as a whole.

The roles together with their special responsibilities are listed below. Please note that some responsibilities are assigned to several roles.

  1. Team Manager
    • Tracks and controls the project
    • Maintains contact to upper management (i.e. supervisors)
    • Organizes the project team meetings
    • Organizes the subcontracting
    • Is responsible for the meeting minutes
    • Is responsible for the weekly reports
    • Is responsible for the presentations
    • Is responsible for deliverables D1, D2, D3.1, D4, and D7
  2. Requirements Specialist
    • Maintains contact to "client"
    • Is responsible for deliverables D3.2 and the initial version of D3.4
  3. GUI Specialist
    • Is responsible for the graphical user interface of the system
    • Is responsible for the prototype evaluation
    • Is responsible for deliverables D3.3, D3.5, and D5
  4. Design Specialist
  5. Code Production Specialist
  6. Quality Assurance Specialist
  7. Documentation Specialist
Each team can assign additional specialist roles to support project management (see [OOTC] for example roles).

Responsibilities of all Specialists

All team members are expected to familiarize themselves with the methods, languages, and tools for object-oriented analysis and design covered in the course.

The responsibilities of all specialists are:

Please note: Taking a specific specialist role does neither mean that you have to do all the listed tasks by yourself, nor does it free you from doing other work in your team. This project is a team effort and you cannot complete the project alone.

Grading

We apply individual grading on the scale U (not passed), 3, 4, 5 (best grade). Grading is based on a credit syatem. The team earns credits throughout the project depending on its performance. At the end of the course each team can freely (more or less) distributed earned credits among its team members. More details on the grading scheme are available in a separate document.

References

[OOTC]
IBM's Object-Oriented Technology Center, Developing Object-Oriented Software, An Experience-Based Approach, Prentice Hall, 1997. Check http://www.prenhall.com/allbooks/ptr_0137372485.html for more information on the book.
[UML]
Grady Booch, James Rumbaugh and Ivar Jacobson, The Unified Modeling Language User Guide, Addison-Wesley, 1999. Check http://cseng.awl.com/bookdetail.qry?ISBN=0-201-57168-4&ptype=0 for more information on the book.
[USDP]
Ivar Jacobson, Grady Booch, and James Rumbaugh, The Unified Software Development Process, Addison-Wesley, 1999. Check http://cseng.awl.com/bookdetail.qry?ISBN=0-201-57169-2&ptype=0 for more information on the book.

http://www.cs.umu.se/kurser/TDBC18/CourseDescription.html
Last modified: Thu Aug 24 10:47:07 MET DST 2000 by jubo@cs.umu.se
Copyright © 1995-2000, jubo