Software Project Management Plan

 

PAID Project

15-413 Software Engineering

Fall 1998

Carnegie Mellon University

Pittsburgh, PA 15213

 


Revision History:

Version 0.9 9/22/1998 Robin Loh. Created.
Version 1.0 12/7/1998 Swati Gupta. Edited.
Version 1.01 12/8/98 Dan McCarriar. Final cleanup.

Preface:

This is the controlling document for the PAID project. It specifies the technical and managerial approaches to develop the software product. As such it is the companion document to Requirements Analysis Document (RAD). Changes in either may imply changes in the other document. All technical and managerial activities required to turnover the deliverables to the client are included. This includes scheduling, identification of tasks, and factors that may impact the project and planning.

Target Audience:

This document is intended for the members of the PAID project, clients, designers, and project management.

PAID Members:

Bernd Bruegge, Elizabeth Bigelow, Elaine Hyder, Robin Loh, Jack Moffett, Eric Stein, Keith Arner, Swati Gupta, Russell Heywood, Joyce Johnstone, Luis Alonso, Orly Canlas, David Garmire, Jonathan Hsieh, James Lampe, Yun-Ching Lee, Wing Ling Leung, Kent Ma, Georgios Markakis, Richard Markwart, Dan McCarriar, Reynald Ong, Adam Phelps, Arnaldo Piccinelli, Euijung Ra, Qiang Rao, William Ross, Pooja Saksena, Rudy Setiawan, Timothy Shirley, Michael Smith, Barrett Trask, Ivan Tumanov, Anthony Watkins, Jonathan Wildstrom, Brian Woo, Stephane Zermatten, Andrew Zimdars


Table of Contents

1. Introduction

1.1 Project Overview
1.2 Project Deliverables
1.3 Evolution of the Software Project Management Plan
1.4 Reference Materials
1.5 Definitions and Acronyms

2. Project Organization

2.1 Process Model
2.1.1 Project Planning
2.1.2 Requirements Analysis
2.1.3 System Design
2.1.4 Analysis Review
2.1.5 Client Project Review
2.1.6 Functional Prototype Demonstration
2.1.7 Object Design Phase
2.1.8 System Integration Prototype Demonstration
2.1.9 Implementation
2.1.10 Unit Testing
2.1.11 System Integration
2.1.12 System Testing
2.1.13 Manual Integration
2.1.14 Client Presentation
2.2 Organizational Structure
2.2.1 Teams and Tasks
2.3 Organizational Boundaries and Interfaces
2.3.1 Electronic BBoard Communication
2.3.2 Meeting Times
2.4 Project Responsibilities
2.4.1 Project Management
2.4.2 Coach
2.4.3 Group Leader
2.4.4 Architecture Liaison
2.4.5 HCI Liaison
2.4.6 Documentation Editor
2.4.7 Configuration Manager
2.4.8 Toolsmith
2.4.9 CASE Tool Manager
2.4.10 Webmaster

3. Managerial Process

3.1 Management Objectives and Priorities
3.2 Assumptions, Dependencies and Constraints
3.2.1 Assumptions
3.2.2 Dependencies
3.2.3 Constraints
3.3 Risk Management
3.4 Monitoring and Controlling Mechanisms

4. Technical Process

4.1 Methods, Tools and Techniques
4.2 Software Documentation
4.3 Project Support Functions
4.4 Work Elements, Schedule and Budget 4.4.1 Overall Project Plan
4.4.2 Team Plans


1. Introduction

This project is aimed toward the worldwide dealer network of Mercedes-Benz. It transforms the current information distribution channels within the dealer network. PAID, the Platform for Active Information Dissemination, transfers relevant information to the dealers in a timely, secure and efficient manner. The PAID project described in this document covers the development of a prototypical application that allows the dealers of Mercedes-Benz to access relevant information on their current information system architecture.

1.1 Project Overview

This document is intended for the members of the project describing the managerial aspects and technical aspects. The document is intended for planning and scheduling purposes, and serves as a summary of the deliverables expected from each of the teams.

The schedule of project phases and milestones is shown below in Table 1. Each phase results in a document that must be approved by project management and the client liaison before it is baselined. (The baselined document is placed under configuration management).

Date
Project Phases
Project Milestones
Jul. 17 - Aug. 24 Requirements Elicitation   
Jul. 17 - Aug. 24    Project Presentation by Clients 
Aug. 27 - Oct. 1  Project Planning   
Sept. 8 - Oct. 20  Requirements Analysis   
Oct. 22 - Oct. 27    Analysis Review 
Oct. 6 - Oct. 27  System Design   
Oct. 28 - Nov. 13  Object Design   
Nov. 5    Project Review with Client (via Internet & video conference)
Nov. 3 - Nov. 19  Implementation & Unit Testing   
Nov. 24    Object Design Review 
Nov. 17    Project Agreement 
Nov. 22 - Dec. 4  System Integration & System Testing   
Nov. 25    Internal Project Review (functional prototype) 
Dec. 10    Project Acceptance by Client (via video conference) 

Table 1. Project Schedule

 

1.2 Project Deliverables

The project will a produce a running system that allows intelligent and reliable dissemination of information from Daimler-Benz to their dealers worldwide.

The following items will be produced by the PAID System:

The PAID System documentation will describe the principles of operation. The delivery consists of a presentation of the system, a demonstration of the working system and the successful passing of the acceptance test. The client expects the acceptance test to be successfully demonstrated remotely via the Internet on Dec. 10, 1998 from 9:00 am to 11:00 am. All work deliverables will be provided online on a project home page. The work products will also be delivered on a CD-ROM, Dec 12, 1998.

The PAID acceptance test will consist of the supported scenarios that will be demonstrated using the network system developed for the purpose of demonstration.

1.3 Evolution of the Software Project Management Plan

The software project management plan is under version control. Proposed changes and new versions of the plan are announced on the course bulletin board 15-413 announce and are made available to all the project members.

1.4 Reference Materials

1.5 Definitions and Acronyms

API Applications Programming Interface
CASE Computer Aided Software Engineering
CVS
Concurrent Version Software
GUI Graphical User Interface
PAID Platform for Active Information Dissemination
JDK Java Development Kit
ODD Object Design Document
OMT Object-Oriented Modeling Technique
RAD Requirements Analysis Document
TOGETHER-J Visual modeling tool for Java
SDD System Design Document
SPMP Software Project Management Plan
IOU Ingo's Object Update
UML Unified Modeling Notation

 

2. Project Organization

2.1 Process Model

The project is initiated on Aug. 26, 1998 and terminated with the end of the semester on Dec 10, 1998. Major milestones are the Client Project Review on Nov. 5, 1998 and the Client Acceptance Test on Dec 10, 1998.

The project uses an object-oriented design methodology based on the Objectory lifecycle process and uses UML for the development of the software. The development process is organized in several activities. The members of the project are organized in teams. At the end of each activity up to and including testing, each team submits documents describing the achievement of the activity. The individual approved documents produced by the teams are considered work products and are part of the software documentation. The team documents are under version control using CVS running on a PC platform. Links to the team documentation are available from the team home pages and the course electronic bulletin boards. The links to the major documents on the CVS server are also available from the project home page. The activities and milestones are described in the next following sections.

2.1.1 Project Planning

Project planning includes description of project tasks, activities and functions, dependencies, resource requirements and a detailed schedule. This activity results in the software project management plan for the PAID System. Another output of the planning phase is the project agreement, which is issued after the design activity is completed.

2.1.2 Requirements Analysis

The requirements analysis activity takes the problem statement and reviews it in terms of consistency, completeness and feasibility. During this activity, a set of models of the proposed system is determined by interacting with the clients resulting in the requirements model. The main part of the requirements model are four models: the use case model describing the complete functionality of the system, the object model, the functional model and the dynamic model.

2.1.3 System Design

The purpose of the system design activity is to devise a system architecture that maps the analysis model to the chosen target environment. The major part of the system design phase is the design of subsystems, that is, the decomposition of the system with respect to the chosen target platform. The system design activity also refines the use cases from the analysis model and describes in terms of interaction diagrams how the objects interact in each specific use case.

2.1.4 Analysis Review

Review of software project management plan, requirements analysis and design. The meetings will take place on Oct. 22 and Oct. 27 from 9:00 - 10:20 in WeH 5409. The Analysis Review consists of a set of presentations given by members of the PAID project. Project Management will review these slides and post their comments on the 15-413 discuss bboard.

2.1.5 Client Project Review

This will consist of a review of project plan, requirements analysis and design decisions. The client liaison will be present at the meeting. The meeting will take place on Nov. 5 from 9:00-10:20 in WeH 5409. The Client Project Review presentation slides will be made available to the client.

2.1.6 Functional Prototype Demonstration

This activity involves successful execution of a functional prototype of the PAID System using stubs. The functional prototype of the PAID system will be presented during the internal review Nov. 25 1998.

2.1.7 Object Design Phase

The object design phase specifies the fully typed API for each subsystem. New classes are added to the analysis object model if necessitated by the system architecture. Attributes and methods for each object are fully typed. Each team will submit the API by posting it on CVS. This ensures that other teams have access to APIs and can configure their code to be consistent with the other subsystems.

2.1.8 System Integration Prototype Demonstration

This activity involves the demonstration of a fully functional system prototype based on the subsystem decomposition. Each subsystem is represented by its service. All service operations can be called by other subsystems using remote method invocation. The implementation of the services can be stubbed out. The prototype will consist of an implementation of all the scenarios being demonstrated.

2.1.9 Implementation

The focus of this activity is on coding the individual objects described in the object design document.

2.1.10 Unit Testing

During unit testing, test suites are designed and executed for objects or collections of objects in each subsystem. Unit testing enables the individual subsystems to be tested independent from the status of the other subsystems. The result of this activity is part of the test manual that describes how to operate the test suite and how to interpret the test results. The test cases are a part of the Test Manual.

2.1.11 System Integration

During this activity an integration strategy is devised that specifies the order in which the subsystems of the PAID system are integrated and tested with respect to the use cases defined in the analysis model. The system integration strategy and the subsystem tests are described in the Test Manual.

2.1.12 System Testing

Structural Testing: This activity tests the major data paths in the complete PAID System.

Functional Testing: Tests the major functionality (use cases) with the complete PAID System. The basis for the functional testing activity is the test manual which is revised according to the results of the system testing phase.

Alpha-test (Client Acceptance Test): The system is tested to make sure it passes the client acceptance criteria as defined in the project agreement. The test schedule is posted as a part of the overall project schedule.

2.1.13 Manual Integration

During this activity, the project deliverables are revised. As a result, a complete set of documents consisting of the software project management plan, requirements analysis document, software design document, test manual and source code is made available on the project home page. The system documentation will also be printed on a CD. Each of the students taking the course as well as the clients will receive a CD.

2.1.14 Client Presentation

At the Client Presentation, a slide presentation and software demonstration will be given in the Intelligent Workplace at Carnegie Mellon University. The software developed during the project will be demonstrated for the client acceptance test. The clients will attend the client acceptance test in person or via video conference. The demonstration will have different presenters for each of the scenarios being supported.

2.2 Organizational Structure

Below is the organizational chart of the people involved in the development of the PAID system:
Figure 1. Organization Chart for PAID Project

The clients of the PAID project are:
Helmuth Ritzer, Stephen Wolf

The project managers are:
Bernd Bruegge, Elizabeth Bigelow

The infrastructure team consists of:
Joyce Johnstone (Web Master and Lab Management) and Eric Stein (Lotus Notes and Demo Machines)

The project consultants are:
Guenter Tuebner

2.2.1 Teams and Tasks

This section describes the teams working on the PAID subsystems and their tasks:

 

 

 

 

2.3 Organizational Boundaries and Interfaces

2.3.1 Electronic BBoard Communication

The Lotus Notes Databases shown in Table 1 will be used for electronic communication in the PAID project. Note that these databases are intended to replace Andrew bulletin boards academic.cs.15-413 that have been set up for this course (The Andrew bboards are neither used nor read by project management).

Announcements  Lecture and project announcements 
Discuss  Group discussion 
Issues  Structured discussion providing for Issues, Proposals, Arguments, and Resolutions 
Client Discuss  Primary forum for interchange with the clients 
Handin  For electronic submission of homework 
Help  Request for assistance in course material, software applications 
Architecture Team Discuss  Discussion about the Architecture 
User Interface Team Discuss  Discussion about the User Interface Assistant 
Network Team Discuss  Discussion about the Network 
Event Service/Learning Team Discuss  Discussion about the Event Service/Learning 
Database  Discussion about the Database 
Authentication Discuss  Discussion of the Authentication 
Documentation Discuss  Discussion of Documentation 

Table 2. Electronic BBoards for PAID Project

Every team member must:

Communication with the client is primarily via the Client bboard. As the need arises direct e-mail and/or telephone contact is set up with specific consultants within the client organization.

2.3.2 Meeting Times

There is a weekly project meeting for each group. The initial meeting times are:

Group Day Time Location
Database Thursday 4:30-6:30pm Wean 8220
Learning and Event Service   Monday 6:30-7:50pm Smith 101
Authentication Thursday 4:00-6:00pm Smith 101
Network Wednesday   3:30-4:30pm BOM 154A
User Interface Tuesday 5:30-7:00pm BOM 154A
Architecture Thursday 8.30-10.00pm   Wean 8220
 

2.4 Project Responsibilities

Management of the PAID System is done with the following roles: project management, coach, group leader, Architecture liaison, HCI liaison, documentation editor and liaison, configuration manager, toolsmith, CASE tool manager, webmaster.

2.4.1 Project Management

The project management function has the following responsibilities:

2.4.2 Coach

The coach has the following responsibilities:

2.4.3 Group Leader

The group leader leads an individual team. The main responsibility of the group leader is to manage the action items of the group. In addition he or she has the following responsibilities:

2.4.4 Architecture Liaison

The liaison interacts with the liaisons of the other teams and with the project management. Each team has a liaison to the Architecture Team. The responsibilities of the liaison are:

2.4.5. HCI Liaison

The liaison interacts with the liaisons of the other teams and with the project management. Each team has a liaison to the HCI Team. The responsibilities of the liaison are:

2.4.6 Documentation Editor

The editor in each team is responsible for producing the documentation of the current project phase and:

2.4.7 Configuration Manager

The responsibilities of the configuration manager in each team are:

2.4.8 Toolsmith

The responsibilities of the toolsmith in each team are:

2.4.9 CASE Tool Manager

The responsibilities of the CASE tool manager in each team are:

2.4.10 Webmaster

The responsibilities of the webmaster in each team are:

Table 2 describes the group leader assignments and Table 3 indicates the other team assignments.

Task Database Learning Authentication Network User Interface
Requirements Analysis   Jonathan Hsieh Pooja Saksena    
System Design Ivan Tumanov Andrew Zimdars Luis Alonso    
Object Design Richard Markwart Rudy Setiawan Arnaldo Piccinelli    
Implementation Tim Shirley Jon Wildstrom Qiang Rao    
Testing George Markakis Wing Leung David Garmire    

Table 3. Team Leader Assignments

 

 

Role Database Learning Authentication Network User Interface
CASE Tool Manager Wing Leung Ivan Tumanov Luis Alonso Barrett Trask Stephane Zermatten
ToolSmith   Yun-Ching Lee David Garmire William Ross Brian Woo
Architecture Liaison Georgios Markakis Andrew Zimdars Luis Alonso Anthony Watkins Kent Ma
Configuration Manager Richard Markwart Jon Wildstrom Qiang Rao William Ross Reynold Ong
Webmaster Tim Shirley Rudy Setiawan Pooja Saksena Adam Phelps Eujung Ra
Documentation Editor Tim Shirley Jonathan Hsieh Arnaldo Piccinelli Orly Canlas Stephane Zermatten
Coach Keith Arner Eric Stein Rus Heywood Robin Loh Elaine Hyder
Jack Moffet

Table 4. Team Role Assignments

 

3. Managerial Process

3.1 Management Objectives and Priorities

The philosophy of this project is to provide a vehicle for students to get hands-on experience with the technical and managerial aspects of a complex software problem. The emphasis is on team work and encouraging individual teams to work together towards the goal of implementing the PAID system completely.

3.2 Assumptions, Dependencies and Constraints

The functionality of the PAID System is achieved when the client acceptance test can be executed.

Each software development activity results in one or more documents to be submitted to the project management before the deadline. Each document is reviewed at least once by the project management before it is accepted and becomes a baseline document.

The following documents will be graded: SPMP, RAD, SDD, ODD, TM and are worth each 10 points. The agenda, minutes, action items and issues for each weekly team meeting have to be posted. The complete set of these is also worth 10 points. We will give a project A to everybody who participates in the project if all the project deliverables are delivered and the PAID system passes the client acceptance test as defined in the requirements analysis document.

The PAID System is a project that puts emphasis on collaboration, not competition between the students. We will not accept a system that is done by one team alone.

3.2.1 Assumptions

3.2.1.1 Database
3.2.1.2 Learning and Event Service
3.2.1.3 Authentication
3.2.1.4 Network
3.2.1.5 User Interface

3.2.2 Dependencies

3.2.2.1 Database
3.2.2.2 Learning and Event Service
3.2.2.3 Authentication
3.2.2.4 Network
3.2.2.5 User Interface

3.2.3 Constraints

3.2.3.1 Database
3.2.3.2 Learning and Event Service
3.2.3.3 Authentication
3.2.3.4 Network
3.2.3.5 User Interface

 

3.3 Risk Management

3.3.1 Database

Risk: Database compatibility with JDBC. Because the system will be written in Java, database access must be via JDBC, thus, we must determine if the database used can support Java.
Contingency: If the database cannot support JDBC directly, we will see if it can be accessed using a protocol which is available to JDBC. For example, if the database is ODBC compatible, it may be possible to use a JDBC-ODBC bridge to access the database. If this is not possible, then a different database will have to be used.

Risk: JDBC support of SQL. We must determine the exact SQL supported by JDBC, and determine if this is sufficient to implement the Database subsystem.
Contingency: If JDBC does not support a desired feature, we must implement the feature ourselves using either the SQL that JDBC does support or outside of JDBC entirely

Risk: Size of car info. If a car's info is too large, it will not fit onto the Smart Card or PDA that we use.
Contingency: We can attempt to compress the data, if this is not practical or successful, then a different PDA or Smart Card will have to be used.

Risk: Detection of Updates/Changes to remote data. Detection of changes to data may be quite expensive, and is an important part of the problem statement.
Contingency: If Detection of Changes cannot be done cheaply we will have to either settle for a slow system or redesign the system so that only a small portion of the data is replicated locally.

Risk: Grouping of data. The problem statement requires that some subset of "frequently used" data be stored locally. We must determine if there is any simple means of categorizing the data, so that we can simply specify a "rule" about what data to store locally (e.g. store data locally for all cars sold in the dealer's state).
Contingency: If there is no way to categorize the data, then we must specify the local data on a per car basis, making this specification quite cumbersome and expensive.

3.3.2 Learning

Risk: Code could be computationally intensive
Contingency: Fundamentally, the learning system should be written with fast algorithms and fast 3rd party code. The data mining process will be performed off-line, since it will be the most costly of all the learning operations. Finally, to avoid increased iterations, there will be a default, less intelligent behavior, that the system will recommend when appropriate.

Risk: No ability to use 3rd party code
Contingency: A decision tree algorithm will yield a sub optimal solution for all the scenarios and will take a relatively shorter time to implement. The learning system, therefore, will not over apply the various learning techniques available. When looking for 3rd party code, however, we will not search for too much domain specific code; but rather we will try to modify the code we find.

Risk: No 3rd party packages in Java available
Contingency: In this case we will write Java "wrappers" to implement code written in other languages. We can also obtain source code for packages that enable cross-compiling.

Risk: Need more than 1 learning algorithm for optimal performance
Contingency: We could either use multiple learning methods (most likely using multiple 3rd party packages). Otherwise, we must accept a suboptimal but nonetheless effective single solution.

Risk: Assumptions change because of other teams assumptions
Contingency: This problem can be resolved in the systems design phase.

Risk: Subsystem assumptions invalidated
Contingency: We will start from the beginning and revise our plans.

3.3.3 Authentication

Risk: Local data can not be securely stored.
Contingency: Attempt to make it hard for the local data to be found or understood.

Risk: Can't get SmartCard to work, either because of hardware or software failure.
Contingency: Write a Java card simulator that simulates the behavior of a real Java card system. An alternate plan is to implement a password mechanism that can be used to authenticate the user.

Risk: Failure to deliver the correct interface by other groups.
Contingency: Attempt to use the given interface.

3.3.4 Network

Risk: For some reason the network becomes unreliable or goes down during the transmission of data.
Contingency: We will cancel the request and notify both ends of the transmission that the network has gone down and the request has been canceled.

Risk: Our system may not be scalable.
Contingency: We are operating under the assumption that the dealer to server ratio will be about 150:1. If this changes dramatically, our system needs to be adaptable to handle other ratios.

Risk: The client fails to clarify issues completely or in time for us to be able to make the appropriate changes.
Contingency: We can re-post to the client bboard. If that does not elicit further response, we should talk to the coaches and make a best guess as to what functionality is needed and expected.

3.3.5 User Interface

Risk:  Because of previous experience with the systems at the dealership, people may not want to take time to learn the new interface.
Contingency: We must strive to make our interface as comprehensive as possible while still maintaining a high level of user friendliness and intuitive design. We must work with Daimler-Benz to assure end users of the worthiness of our system and its ease of use.

Risk: The user-friendliness of our design may be compromised by our dependency on other subsystem designs (double login, etc.).
Contingency: The ease and comfort of use by potential end users should carry heavy weight against other concerns (i.e. security). The subsystems must work together so that the right balance is found.

Risk: As the vision for PAID get clearer, the requirements for user interface could change drastically. Some of the assumptions we have been basing our work on may turn out to be wrong. New and completely different interfaces might be needed (maybe one for a palm PC, maybe one for ordering parts, maybe a new language, etc.)
Contingency: Be flexible in design and leave room for later adjustments in case of changes in conditions and requirements.

3.4 Monitoring and Controlling Mechanisms

For each project meeting each team produces an agenda and the minutes of the meeting. The minutes have to contain explicitly the action items assigned during the meeting. The agenda and minutes are posted on team specific bulletin boards by the minute taker of the meeting.

The baseline documents are reviewed by the project management. It is expected that each document undergoes one or more iterations.

4. Technical Process

4.1 Methods, Tools and Techniques

Our development methodology is based on a combination of use cases (from the OOSE methodology) [Jacobsen 92] combined with the OMT methodology [Rumbaugh 1991].The following tools are available to support the management and development of the PAID project:

 

Code Warrior A set of Java tools for the "back end" of software development, compilation, editing and debugging of Java programs.
Netscape Communicator Internet browser
Adobe PageMill 2.0, Claris Home Page 2.0, FrontPage HTML editors
Together-J CASE tool for UML by Object International
Adobe Acrobat 3.0 Portable Document Format software reader
PowerPoint 4.0 Slide presentation program
VOYAGER Supports event hierarchy
Macromedia Director 6.0 Prototype presentation

 

4.2 Software Documentation

The following activities result in a project deliverable:
Project Planning: Software Project Management Plan (SPMP)
Requirements Analysis: Requirements Analysis Document (RAD)
Analysis Review: Analysis Review Slides
System Design: System Design Document (SDD)
Client Review: Client Review Slides
Object Design: Object Design Document (ODD)
Reviews: Review Presentation Slides
Implementation and Unit Testing: Code
System Integration and System Testing: Test Manual
Delivery: Client Acceptance Test Slides

4.3 Project Support Functions

PAID had the following support functions that were provided from outside the main PAID team:

4.4 Work Elements, Schedule and Budget

The schedule for the PAID project is as shown in the table above. The class material was structured in such a way that each class covers material that was needed in the next stage of the PAID project.

4.4.1 Overall Project Plan

The overall project plan follows the sawtooth model, a modified waterfall model. 3 prototypes have to be delivered:

  1. A graphical user interface
  2. A functional prototype
  3. A system integration prototype.

Analysis is started before project planning is finished. System Design is followed by Object Design. Important Milestones are the Analysis Review on Oct. 16, the Project Status on Oct. 23, the Project Review on Oct. 30 and the Object Design Review on Nov. 13 and Nov. 15. Implementation and Unit Testing are scheduled to overlap significantly. System Integration is scheduled to immediately follow Unit Testing. System Testing starts immediately after system integration and leads to the Client Acceptance Test on Dec. 10.

4.4.2 Team plans

The common team plan is shown in the following GANTT chart:

TIME ----------------->

Planning
      Analysis ( RAD)
                                System Design( SDD)
                                                            Object Design ( ODD)
                                                                                            Implementation
                                                                                                          Unit Testing
                                                                                                                    Integration Testing
                                                                                                                                                Client Acceptance

 

 

 


This page is hosted by the Chair for Applied Software Engineering of the Technische Universität München.
Imprint (Impressum)