HistoryViewLinks to this page 2012 September 24 | 12:42 pm

REST API main topics: Architecture, Design, Data Model, Standard URIs


  • Packaging the EM Service with Products
  • Tool Collaborations

  • Status

    This document is a Draft Specification.


    This specification defines a REST API that provides estimation and measurement capabilities. Web applications may either implement or use these interfaces. We refer to an implementation of these interfaces as a service provider and user of these interfaces as a service consumer.

    In practice, PPM and software estimation tools may be either service consumers or providers. That decision is up to the tool architect. For example, a desktop-based tool may be a consumer while a server-based tool may be either a consumer or a provider.

    The EM Service

    In order to separate tool architecture concerns from the specification of the EMS 1.0 REST API, it is useful to imagine that a standalone Web application is the service provider. We will refer to such an application simply as an EM service. The following diagram illustrates the context of an EM service:

    EM Service Context Diagram

    Estimation and Measurement Service Context Diagram

    Packaging the EM Service with Products

    The above diagram treats all collaboratoring tools on an equal footing with respect to the EM service and the EMS 1.0 REST API is described from the point of view of the EM service. However, as noted above, it is likely that the EM service would be included as part of a more comprehensive product, either integrated with a single tool or shared among a suite of related tools. For example, the following context diagram illustrates a software estimation product that includes an EM service:

    Software Estimation Product Context Diagram

    Software Estimation Product Context Diagram

    Tool Collaborations

    The following discussion briefly illustartes how PPM and software estimation tools might use an EM service to collaborate.

    The portfolio management tool initiates projects. A portfolio manager creates the project proposal, which includes all relevant project contraints such as size, duration, or peak staffing, sends them to the EM service, and requests an estimate. The software estimator receives this request, launches the software estimation tool, produces an estimate, sends it back to the EM service, and notifies the portfolio manager. The portfolio manager then gets estimate from the EM service, completes the project business case, and submits the project proposal to the approval process. The EM service maintains a persistent record of the project proposal and estimates for future use. If the project gets approved, the portfolio management system hands off the project to the project management system.

    The project management tool plans, monitors, and controls projects. As the project executes, measurements are collected by the performance management tool. The project manager runs reports from the performance management tool that show the measurements relative to the estimates. If the measurements vary too much from the estimates, the project manager takes corrective action. Periodically, the project manager sends revised project constraints to the EM service and requests the software estimator to reestimate the project to completion, taking into account the measurements to date. The new estimates become part of the project baseline and the project manager continues on to the next phase of the project.

    The performance management tool collects measurements from the software development and PPM tools, and provides a business intelligence user interface for managers and other team members to view and explore the data, e.g. to diagnose problems. The performance management tool also collects estimates from the EM service so that the measurements can be compared to the estimates. The performance management system can display dashboards, scorecards, control charts, and other presentations of the data to allow team members to track the performance of the project. The performance management tool also provides measurements to the EM service to enable both reestimation of project plans and calibration of software estimation models based on past completed projects.

    The software estimation tools get project contraints and measurements from the EM service, and send it estimates. Software estimation tools are used for calibrating models, providing initial cost estimates and plans, and reestimating project plans.

    In practice, performance management tools use Extract-Transform-Load (ETL) processes to collect data. A REST API can act as a source of data for ETL, and the EM service will provide a REST API that is suitable for use by ETL processes, mainly so that the performance management tool can load the estimates and make them available for use in reports. Performance management tools provide reporting mechanisms for accessing data. In principle, any application could access measurement data directly from the performance management tool through its reporting interface, however that approach would result in a replication of business logic. A better approach is to use the EM service as a proxy to the performance management tool.

    Given the above considerations, software estimation, portfolio management, and project management tools will be read-write consumers of the EM service, but the performance management tool will be a read-only consumer. The EM system will be a consumer of the performance management tool’s native reporting interface in order to access measurements.

    Category:Rest API main topics