Lib:Roadmap
From GNUpdf
The Project Plan (TM)
We maintain a project plan that defines all the planned tasks we think
we need to perform in order to achieve the goals of the project. The
project plan is stored in the
libgnupdf.tjp
file in the CVS repository.
The project plan is used to:
- Define a roadmap.
- Identify the critical path of the project.
- Provide planned tasks to the tasks pool (see below).
- Estimate effort.
- Define milestones.
That said, please note that the project plan is an ideal one: the real
world is another history. There are delays, plan changes and a quite
variable availability of resources (developers). So if you read the
project plan please do it with caution.
The GNU PDF Library is composed by several layers. Each layer is in turn composed by several modules. The combination of the modules provide the functionality to layers. See the architecture of the library for more information.
The development of the library involves the design of the overall architecture (determination of the layers that composes the library), the development of each layer and the design and implementation of system tests.
Library Development Procedure
The development of each library layer involves the design of the overall architecture of the layer (determination of the modules that composes the layer), the development of each module and the design and implementation of subsystem tests.
Layer Development Procedure
The development of each module involves the design of the API offered by the module and the architectural details, the definition of development tasks needed to complete the implementation of the module and the design and implementation of unit tests.
Module Development Procedure
The detailed planification of the development is in the project plan.
Please note that the implementation tasks are not contained in the project plan file: the tasks are continuously generated and inserted into the tasks pool. See the tasks management section for more details.
Status of the Development
There is a resume of the actual status of the main tasks in the development.
For detailed information about the status of development tasks please see the flyspray tasks tracker.
For detailed information about the status of planned tasks below the module level please see the list of reports. These reports are automatically updated nightly.
Base Layer
Layer Development
- 20% Architecture design.
- 80% Modules development.
- 90% Subsystem tests design.
- 100% Subsystem tests implementation.
Modules Development
- 20% API design.
- 40% Architecture design.
- 50% Tasks design.
- 70% Implementation.
- 80% Unit tests design.
- 100% Unit tests implementation.
Object Layer
Layer Development
- 20% Architecture design.
- 80% Modules development.
- 90% Subsystem tests design.
- 100% Subsystem tests implementation.
Modules Development
- 20% API design.
- 40% Architecture design.
- 50% Tasks design.
- 70% Implementation.
- 80% Unit tests design.
- 100% Unit tests implementation.
Document Layer
Layer Development
- 20% Architecture design.
- 80% Modules development.
- 90% Subsystem tests design.
- 100% Subsystem tests implementation.
Modules Development
Page Layer
Layer Development
- 20% Architecture design.
- 80% Modules development.
- 90% Subsystem tests design.
- 100% Subsystem tests implementation.
Modules Development