Skip to content

Commit 196094d

Browse files
committed
Updated with review comments fixes
1 parent 65433fb commit 196094d

File tree

11 files changed

+23
-19
lines changed

11 files changed

+23
-19
lines changed

docs/design-documents/README.md

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
# Design Process for Mbed-OS
2-
This document defines the software design process for Mbed-OS. Anyone developing for Mbed-OS should use this process to submit the design to get it reviewed from the broader Mbed-OS developer community.
1+
# Design Process for Mbed OS
2+
This document defines the software design process for Mbed OS. Anyone developing for Mbed-OS should use this process to submit the design to get it reviewed from the broader Mbed-OS developer community.
33

44
## Design documents location and organization
5-
* It's suggested to write one design document per change, which could be a new feature, defect fixes, tools changes etc. Do not try to address multiple changes in the same document.
6-
* It's up to the judgement of developer to decide whether a change warrant a design document to go with it. For example, minor changes/small localized defect fixes may not need a design document.
75
* The design document will follow the format represented in [Design Document Template](https://github.com/ARMmbed/mbed-os/blob/master/docs/design-documents/design_template.md)
8-
9-
* For each design submission, create a folder under *https://github.com/ARMmbed/mbed-os/docs/design-documents/{AREA OR COMPONENT}*. The area/component would be Drivers, Platform, Connectivity, Security, Peripherals etc.
6+
* For each design submission, create a folder under *https://github.com/ARMmbed/mbed-os/docs/design-documents/* at the appropriate level. The directory structure under design-documents is organized to align with mbed-os directory structure.
7+
It is ok to create new sub-directories to organize similar items together.
108
If your implementation is creating new APIs, you should try to match the folder name directly to the new API, otherwise
119
use the title of the feature as the folder name.
1210
For example, if your implementation is adding new EMAC API, you may name the folder as **New_EMAC_API** or if you are creating a new Serial Driver for Mbed-OS you may name the folder as **Serial_driver_for_Mbed-os**.
@@ -19,26 +17,23 @@ This document defines the software design process for Mbed-OS. Anyone developing
1917
Its highly encouraged to create diagrams to depict your software design. The [Design Document Template]((https://github.com/ARMmbed/mbed-os/blob/master/docs/design-documents/design_template.md) provided here uses diagrams generated using draw.io. draw.io generates XMLs for each diagram and those corresponding XMLs are also provided under the diagrams folder, and you are free to use that as your reference for generating your own diagrams. And, when you are generating your own diagrams it would be better to provide the metadata/other files(e.g, if you are using draw.io provide XMLs from draw.io) required for future editing of those diagrams.
2018

2119
## Design Process
22-
* Developer generates a design document located under *https://github.com/ARMmbed/mbed-os/docs/design-documents/{AREA OR COMPONENT}* and generates a pull-request to Mbed-OS.
23-
* NOTE: If you are part of an organization and would like to do design review within your organization before landing the pull-request, its ok to do so.
24-
* The pull request may also include the initial code implementation. It's upto to the develper to decide if the initial implementation comes along with the design document or later.
25-
* Although, if you are planning a large change, its encoraged to start the design review early before the implementation. This also help to avoid major re-work of your implementation if required by the design review.
20+
* Developer generates a design document located under *https://github.com/ARMmbed/mbed-os/docs/design-documents/* and generates a pull-request to Mbed-OS.
21+
* It's upto to the develper to decide if the initial implementation comes along with the design document or as separate PRs.
22+
* Although, if you are planning a large change, its encouraged to start the design review early before the implementation. This also helps to avoid major re-work of your implementation if required by the design review.
23+
* The initial submission of the design document doesn't need to be complete or refined in terms of capturing all the details, as you may use the design document itself to brainstorm and discuss on your idea or new feature being proposed.
2624
* Design review follows the same process as code review. Please refer contribution process as outlined in [Contributing to Mbed-OS](https://os.mbed.com/contributing/) for more information.
2725
* Once the design is approved, implementation is completed/adjusted according to the latest design document. Developer can create the pull-request with the final implementation, if its coming separately.
2826

2927
## Capturing future changes to design
30-
If your implementation changes in future, corresponsding design documents may be updated to capture the new design.
28+
If your implementation changes in future, corresponding design documents should be updated to capture the new design.
3129
It's possible that a new implementation may require changes to some previous implementations. In that case, capture
32-
the new changes in the original design document as well. Also create references to other(or older) design documents in the
33-
References section for the new design document.
30+
the new changes in the original design document as well.
3431

3532
## General guidelines for creating design documents
36-
Its up to the developer to make a judgement on whether a design docucment is required for a change. It may not be required for minor fixes and small localized changes. But for changes with lot of code turmoil across multiple components or if its new feature or functionality being added its best to have a backing design document. Its also ok for developers to gather initial feedback on some idea before they decide to implement. Its also not absolutely necessary that implementation should be started only after design document review. The caveat here is if the proposed design is changed significantly in the process of review it will impact your implementation as well. Thus for large features where lot of design feedbacks are expected it's advisable to start your implementation once major feedbacks are captured. For example, API designs can invite lot of feedbacks. In such cases, its best to capture those feedbacks before starting the implementation cycle. But for very localized implementations not impacting other parts of the system/APIs it may be ok to provide an initial implementation(in the same PR) as a reference along with design document.
33+
It's up to the developer to make a judgement on whether a design document is required for a change. It may not be required for minor fixes and small localized changes. But for changes with lot of code turmoil across multiple components or if it's new feature or functionality being added it's best to have a backing design document. Its also not absolutely necessary that implementation should be started only after design document review. The caveat here is if the proposed design is changed significantly in the process of review it will impact your implementation as well. Thus for large features where lot of design feedback are expected it's advisable to start your implementation once major feedback are captured. For example, API designs can invite lot of feedback. In such cases, it's best to capture those feedback before starting the implementation cycle. But for very localized implementations not impacting other parts of the system/APIs it may be ok to provide an initial implementation(in the same PR)as a reference along with design document.
3734

3835
## Reference documents
3936
[Design Document Template](https://github.com/ARMmbed/mbed-os/blob/master/docs/design-documents/design_template.md)
40-
4137
[Example Design Document](https://github.com/ARMmbed/mbed-os/blob/master/docs/design-documents/example_feature_design/example_feature_design.md)
42-
4338
[Design process](https://github.com/ARMmbed/mbed-os/blob/master/docs/design-documents/README.md)
4439

docs/design-documents/design_template.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Write your feature title above, in this case its "Mbed-OS Design Document"
2020
- [Custom Headings Here](#custom-headings-here)
2121

2222
### Revision history
23-
1.0 - A brief description for this version, e.g. Initial revision - Author name - Date
23+
1.0 - A brief description for this version, e.g. Initial revision - Author name - Date. NOTE: You may also specify the Mbed OS version this revision of design-document applies to.
2424
1.1 - Added new section - Author name - Date
2525

2626
# Introduction
@@ -45,8 +45,8 @@ for a communication peripheral/device then the high level design goals could be
4545
* `Reading from and Writing to the device` - Read and Write interfaces should be implemented to support sending single/multiple bytes.
4646
* `Resetting the device` - Functionality to reset the device should be provided.
4747

48-
**NOTE: If you already have supporting architecture documentation in the form of technology documents or other existing documents
49-
feel free to link them here and use that, you don't have to replicate the same documentation here.**
48+
**NOTE: If you already have publicly available supporting architecture documentation in the form of technology documents or other existing documents
49+
feel free to link them here and use that, you don't have to replicate the same documentation here. **
5050

5151
For each high level design goal, provide detailed software design under [Detailed Design](#detailed-design) section providing more details on implementation.
5252

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Design Documents - Drivers
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Design Documents - Connectivity
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Design Documents - Filesystem
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Design Documents - Security
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Design Documents - Storage

docs/design-documents/hal/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Design Documents - Hardware Abstraction Layer
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Design Documents - Platform

docs/design-documents/rtos/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Design Documents - RTOS

docs/design-documents/tools/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Design Documents - Tools

0 commit comments

Comments
 (0)