This development process aim to create workflow from open source development to product development for linux based instrument cluster.  This process aim to be able to certify that it has quality control.  This process must embrace by open source community and industry.  

Attention: This rule applies to Instrument cluster software stack only.

1. Roadmap and Feature Planning

Purpose

Entry Criteria

Tasks

A detailed description about the rules used to build the roadmap and platform functional requirement is in [xx]. These document need to be written in AGL confluence.

The following milestones should be determined at this stage.  In order to complete each milestone, each exit criteria must be achieved and the deliverable released.

M1. Roadmap and feature planning complete (section 1).

M2. Architecture design complete (section 2).

M3. Detail design complete (section 3).

M3-1. Software interface freeze.Architecture Design Template

All interface specification shall final freeze such as interface version, kernel version, compiler version, etc..  Same as current AGL M1 and M2.

M3-2. Software internal design freeze.

        All software internal design shall freeze.

M3-3. Demo software freeze.

       All demo software (ex. demo ui) shall freeze.  The demo software is developed outside this development process.

M4. Unit testing and creating unit test evidence is complete.

M5. Architectural testing and creating evidence is complete.

M6. Release.

M7. End of life.

10 or 5 years after release.


On the AGL Instrument Cluster Expert Group the new features expected for this release are discussed and defined. As a result new version of the platform functional requirement specification will be released.  This spec must be created before architecture development phase.

Verification

The platform functional requirement needs to be approved by at least half of the reviewers.

The roadmap needs to be approved by the Product Manager(Walt?) and the Instrument Cluster Expert Group Leader(Haraki-san?).

Small changes in the roadmap are not communicated, just executed.  But if a delay threatens the release day, an announcement is expected, and if the delay is serious we need to communicate it widely.
When the platform function is dropped from initial platform functional requirement, it must be approved by at least half of the SAT (System Architecture Team) core members.  After that platform functional requirement specification must be update.

Exit Criteria

Deliverable

2. Architecture Design

Purpose

Entry Criteria

Tasks

First step of the architecture design shall create and update software architecture block diagram such as this.  
Typically, adding/removing architecture blocks is only allowed by adding/removing functional requirements or refactoring.  
This block diagram need to be written or stored in AGL confluence.

The software architecture block diagram shall break down to software component list and component block diagram.  
Element of software component list shall be linking to platform functional requirement for tracing.

Each software component will be separated and distinguished into AGL development software and existing opensource software.  
The process for AGL development software is set out in Section 2.1.  The process for reusing existing opensource software is set out in Section 2.2.

Verification

2. 1. Architecture Design for the AGL development software

Purpose

Entry Criteria

Tasks 

Strong recommendation is to use UML for writing diagrams which are mentioned above.

See Architecture Design Template for the AGL development software for the document template.

Verification

Exit Criteria

Deliverable

2.2. Architecture Design for the reusing existing opensource software

Purpose

Entry Criteria

Tasks

Create a use case document to show why the that OSS is needed.  This document shall be including all of assigned platform functional requirement.

OSS assess and certify based on the AGL Instrument Cluster Distribution Criteria.

The major version of the OSS shall be selected with a maintenance lifecycle that meets the roadmap creating in section 1.  When it OSS is not provided Long Term Support/Stable by upstream, should select downstream that is maintained by distribution.

In case of downstream maintenance, AGL shall select and refer to downstream of one distribution (RedHat/CentOS or Debian or Ubuntu or OpenSUSE or other), not select Yocto code base.

Verification

Exit Criteria

Deliverable

3. Detail Design and Code Development/Certification for existing OSS

3.1 Detail Design and Code Development

Purpose

Entry Criteria

Tasks

Verification

Exit Criteria

Deliverable

3.2 Certification and importing for existing OSS

Purpose

Entry Criteria

Tasks

Verification

Exit Criteria

Deliverable

4.Test

4.1 Test for AGL Development Software

4.2 Test for Existing OSS