Software Project Management Plan
OWL Project
15-413 Software Engineering
Fall 96
Carnegie Mellon University
Pittsburgh, PA 15213
Revision History:
Version 1.0 03/16/97 Bernd Bruegge. Created by Ricardo Pravia
Preface:
This document describes the managerial aspects and technical aspects of
the OWL project.
Target Audience:
Project management, team members
OWL Members:
Bernd Bruegge, Sjeongu, Truman Fenton, Benedict Fernandes, Tae, Ricardo
Pravia, Aseem Sharma
Location of machine-readable file:
http://cascade1.se.cs.cmu.edu/15-499/
1. Introduction
The central goal of the Center for Building Performance and Diagnostics
is to design workplaces that offer healthy, productive environments for
these workers, and that are energy effective and environmentally sustainable
additions to the built environment. The Intelligent Workplace (IW), a project
that evolved from these goals, is a testbed of advanced building products
and systems. The OWL (Object-Oriented Workplace Laboratory) project described
in this document is to be used by personnel for facility management, building
control and maintenance of the Intelligent Workplace.
1.1 Project Overview
This document is intended for the members of the OWL project describing
the managerial aspects and technical aspects.The document is intended for
planning and scheduling purposes, and serves as a summary document of the
deliverables expected from each of the teams.
The schedule with project phases and milestones is shown below in Table
1. Each phase results in a baselined document. (A baselined document is
placed under configuration management).
1.2 Project Deliverables
The OWL project will a produce a running system that
works in a platform independent environment using a Netscape based user
interface. The system must also pass the acceptance suit test as described
in the requirements analysis document.
The following items will be produced by the OWL System:
A Software Project Management Plan defining the technical and
managerial processes necessary for the development and delivery of the
OWL system.
A Project Agreement between client and developers, representing
a contract between the client and the developers of what is going to be
delivered.
A Requirements Analysis Document describing the functional and
global requirements of the system as well as 4 models - the use case model,
the object model, the functional model and the dynamic model. This document
is created in interaction with the application domain experts.
A System Design Document describing the design goals, trade-offs
made between design goals, the high level decomposition of the system,concurrency
identification, hardware/software platforms, data management, global resource
handling, software control implementation and boundary conditions. This
document forms the basis of the object design. This document is read by
the analyst as well as the object designer.
A Object Design Document describing the system in terms of refined
object models, in particular the chosen data structures and algorithms
as well as full signatures for all public methods. this document results
in the detailed specification of each class used by the programmers during
the implementation phase.
A Test Manual describing the unit and system tests performed
on the OWL system before delivery along with expected and actual results.
This document is used by the developers and maintainers
A User Guide describing the client acceptance test of the OWL
System
Source code for all subsystems of the OWL System.
The OWL 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 above scenario to be successfully demonstrated in a
field trial in the Intelligent Workplace, Margaret Morrison Hall on Dec.
5, 1996, at 3:00pm-4:20pm. A set of documents and files will be provided
on a CD-ROM.
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 home page
and are made available to all the project members.
1.4 Reference Materials
The following technical documentations are used by the project:
[Rumbaugh 91] J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, W. Lorensen:
Object-Oriented Modeling and Design, Prentice Hall 1991, ISBN 0-13-629841-9
[Gamma 96] Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: Design
Patterns, Addison-Wesley, 1996, ISBN 0-201-63361-2
[Jacobson 92] Ivar Jacobson, Magnus Christerson, Patrik Jonsson, Gunmar
Övergaard, Object-Oriented Software Engineering, Addison Wesley,
1992, SB 0-201-54435-0
[Flanagan 96] David Flanagan, Java in a Nutshell, O'Reilly &
Associates, Inc., ISBN 1-56592-183-6
[Booch 91] Grady Booch, Object-Oriented Design with Applications,
Benjamin Cummings, 1991.
[Graham 91] Ian Graham, Object Oriented Methods, Addison Wesley,
1991.
[Otte 1996] Understanding CORBA, The Common Object Request Broker Architecture,
Prentice Hall
[Kayser 90] T. A. Kayers, Mining Group Gold, Serif Publishing, 1990
[Pfleeger 91] Sharie Pfleeger, Software Engineering: The Production
of Quality Software, MaxMillan Publishing Company, 1991
[Schach 96] Stephen R. Schach, Classical and Object-Oriented Software
Engineering, 3rd Edition, Richard Irwin Company, 1996
[Yourdon 92] Edward Yourdon, Rise & Resurrection of the American
Programmer, Yourdon Press, 1992
[IEEE 828] IEEE Standard for Software Configuration ManagementPlans, ANSI/IEEE
Std. 828-199
[IEEE 1058] IEEE Standard for Software Project Management ANSI/IEEEStd.1058.1-1987
[IEEE 1074] IEEE Standard for Developing Software Life CycleProcesses,
ANSI/IEEE Std. 1074-1991
1.5 Definitions and Acronyms
SPMP - Software Project Management Plan
OOSE - Object Oriented Software Engineering
RCS - Revision Control System
OTE - Object Team Enterprise
JDK1.1 - Java Development Kit version 1.1
GUI - Graphical User Interface
UI - User Interface
2. Project Organization
2.1 Process Model
The project is initiated on Jan 22, 1996 and terminated with the end of
the semester on May 5, 1996.
The project uses an object-oriented design methodology for the development
of the software and is organized in several activities. At the end of each
activity each team submits documents describing the achievement of the
activity. The individual documents produced by each activity are considered
to be part of the software development documentation.
There are three major activities in the OWL project. These are: Resource
Analysis, System Engineering, and System Integration & Testing.
These activities are separate because they must be executed in the order
in which they were mentioned since every activity depends on the outcome
of the previous one.
The fourth activity is the Prototype activity. This activity is always
present during the other three activities. It is an acitivity that influences
all of the activities, in particular, it has great impact on System Engineering.
This activity starts with the Resource Analysis and ends with System Testing.
In this process model the intention is to perform as many activities in
parallel as is possible. The first three activities are the only activities
which cannot be performed concurrently. In the description of each activity,
great care is taken to paralellize as many sub-activities as possible.
During the system integration activity the system is tested as a whole
and the individual documents are integrated into a project binder. The
system documentation will also be made available on a floppy disk. The
activities and milestones are described in the next following sections.
2.1.1 Resource Analysis
This activity is responsible for researching, testing
and documenting all available resources for the project. This activity
has two sub activities: Technology Survey and Software Archaelogy. The
former is responsible to researching new technologies which might be important
for the OWL project; the latter consists of recovering the Design and Implementation
of the previous OWL project in order to determine what canbe reused.
Both of these activites will be perfomed concurrently
since they do not depend on each other. Furthermore, since the Prototype
activity is part of every activity, each of these two activities should
produce prototypes that demonstrate the necessary functionality.
This activity will have been performed by Feb 18.
2.1.2 System Engineering
The system engineering phase is responsible for the actual design and implementation
of the system. This activity consists of the classic Software Engineering
activities: Requirements Analysis, System Design, Object Design, and Implementation.
Nevertheless, some of these activities will be performed concurrently as
follows:
-
Requirements Analysis and System Design, though conceptually separate,
are tightly coupled activities and should thus be performed concurrently.
This activity will be finished by March 18.
-
Object Design should already arise in the System Design phase, particularly
in regards to adapter objects whose need may become apparent while desinging.
This activity should be finished at the latest by April 4.
-
Implementation, actually an instantiation of the prototype activity,
should always be present to help test certain design decisions and implement
system parts that are already known to be needed (such as adaptors). Implementation
should be finished by May 3.
It is important note that this model inherently encourages iterations in
the design because of the prototyping involved.
The current prototypes know for this activity are:
- LUXMATE Server Adaptor Prototype: Finished
- LUXMATE Server Final Adaptor: March 23
- Remote Control Applet Prototype: Finished
- Remote Control Full Applet Prototype: March 23 (Earliest time: March
20)
- Full Communication Infrastructure Demo (to the extent possible): April
8 or 10
In addition, every subsystem defined in the SDD is encouraged to rapid
prototype as soon as possible.
2.1.3 System Integration and Testing
For the OWLproject, we intend to perform sandwich
testing and integration. The system integration and testing phase consists
of the following activities: unit integration and system integration. Unit
integration is the first activity performed in this phase followed later
by System integration. This activity may have some overlap with the previous
activity, that is, it may start before the formal start of this phase which
is: April 25.
It is known that System Integration and Testing can
become severe bottlenecks for Software Development with great potential
for crisis. Due to this fact, the OWL project should start integration
as soon as is possible. To this end, a prototype has been scheduled for
April 8 or 10 which will consist of a stubbed out integration of as many
systems as possible. This means that by the time this demo is performed
the basic services provided by each subsystem will be known and the implementation
of its framework almost completed. Thus, Unit and/or System Integration
may begin as early as April 8 with the full Communication Infrastructure
demo.
The systems integration activity also includes all
user and test manuals.
2.1.4 Prototype Activity
This activity is the generic activity that is present during the entrire
OWL project. This activity is responsible for slowly producing prototypes
for the OWL system that will eventually lead to the Deliverable.
2.4 Project Responsibilities
The limitations on the OWL project and the requirement for fast implementation
require a very flat management hierarchie. Therefore, management of the
OWL System is done with the following roles: project management, team leaders,
configuration manager, and webmaster.
2.4.1 Project Management
The project management function has the following responsibilities:
-
Review weekly team reports
-
Attend weekly team meetings
-
Schedule and prepare meetings with clients
-
Insist that guidelines are followed
-
Assign presentations (In-class Project meetings, client review, client
acceptance test) to project members
-
Resolves conflicts if they cannot be resolved otherwise
-
Listening to gripes from the individual teams
The Project Manager for the OWLproject is Bernd Bruegge.
2.4.2 Configuration Manager
The responsibilities of the configuration manager in each team are:
-
Coordinate change requests
-
Provide version control for group's working directory
-
Coordinates configuration management issues with other groups
-
Installation of group specific software and hardware
This role should be distributed among the project members, however,
the top person responsible for this is Benedict Fernandes.
2.4.3 WebMaster
-
Maintain the Team Homepage
-
Coordinate team page with course Webmaster
-
Link Meeting Agendas, Minutes, Action Items and Issues to the team
homepage
The WebMaster for the OWLproject is Aseem Sharma.
2.4.4 Team Leaders
For every subsystem described and planned to be implemented in theSDD,
there is a key member responsible for that group
-
Notification: Ricardo
-
UI (and 2D visualization): Tae
-
3D Visualization: Truman
-
Control: Sjeongju
-
Database: Benedict
Secondary Activity:
-
LUXMATE Wrapper: Aseem (and Tae)
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 OWL project:
OTE A case tool for the preparation of object models.
Netscape Navigator and Communicator Internet browser used
for electronic communication.
JDK1.1 Java Development Kit version 1.1
Adobe PageMill 2.0 Beta WYSWYG html page editor (for Macintosh).
Claris Home Page 1.0b.1 WYSWYG html page editor (for Macintosh).
FrontPage WYSWYG html page editor (for PC)
Now Contact Personal Management Assistant (for PC and Macintosh).
ObjectTeam Enterprise CASE tool for OMT by Cayenne (Cadre).
Framemaker 5.1 Word processor (for Unix, PC and Macintosh).
Word 6.01 Word processor (PC and Macintosh).
Adobe Acrobat 2.1 Portable Document Formatter (PC and Mac).
Adobe Acrobat Reader (Unix, PC and Mac).
Powerpoint 4.0 Presentation program (PC and Mac).
WebCamToo Live Video Streamer
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)
-
Implementation and Unit Testing: Code
-
System Integration and System Testing: Test Manual
5 Critical Subsystems
These are the subsystems that are critical to the development of the
OWL project and should therefore rapid prototype sooner than any other
system:
-
Notification Subsystem: Event notification is part of the backbone
of the OWLproject, this subsystem should be defined and implemented by
April 5
-
UI GUI: The GUI part of the UIsubsystem is crucial also to the OWL
project. Furthermore, the current enhancements of the JDK1.1 AWT (Abstract
Window Toolkit) create a clean separation between the Visual Interface
the and underlying application, making this task now possible. Earliest
Time: April 8 (with the Communication Infrastructure Demo) up to April
15.
-
Database: The most crucial aspect of the Database is its Object Design
and API. These should be finished by April 8 (along with the Communications
Infrastructure Demo)
This page is hosted by the Chair for Applied Software Engineering of the Technische Universität München.
Imprint (Impressum)