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
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.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.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.1 Methods, Tools and Techniques
4.2 Software Documentation
4.3 Project Support Functions
4.4 Work Elements, Schedule and Budget4.4.1 Overall Project Plan
4.4.2 Team Plans
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.
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).
|
|
|
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) |
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.
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.
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 |
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.
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.
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.
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.
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.
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.
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.
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.
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.
The focus of this activity is on coding the individual objects described in the object design document.
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.
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.
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.
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.
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.
Below is the organizational chart of the people involved in the development of the PAID system:
|
|
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
This section describes the teams working on the PAID subsystems and their tasks:
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 |
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.
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 |
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.
The project management function has the following responsibilities:
The coach has the following responsibilities:
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:
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:
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:
The editor in each team is responsible for producing the documentation of the current project phase and:
The responsibilities of the configuration manager in each team are:
The responsibilities of the toolsmith in each team are:
The responsibilities of the CASE tool manager in each team are:
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 |
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 |
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.
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.
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.
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.
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.
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.
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.
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.
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 |
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
PAID had the following support functions that were provided from outside the main PAID team:
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.
The overall project plan follows the sawtooth model, a modified waterfall model. 3 prototypes have to be delivered:
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.
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