-
Notifications
You must be signed in to change notification settings - Fork 244
Providing design documentation with code changes
Elisey Zamakhov (GitHub) edited this page Aug 26, 2016
·
3 revisions
| Term | Definition |
|---|---|
| SAD | Software Architecture Document - contains SDL functional and technical overview for newcomers and support engineers |
| Architecture | Set of High-level design solutions and approaches |
| SDD | Software Detail-design Document - describes SDL components design solutions |
| Doxygen | Documentation generator, a tool for writing software reference documentation |
SDL is a complex embedded system, which provides cross- platform and cross- environment integration mechanisms. Specter of cross-platform, protocol, API and business functionality requires architectural and design specification for swift introduction.
- Architectural and design solutions shall to be documented and easy maintained
- SDL technical documentation shall be easy reviewed by SDL integrations for further SDL maintenance and update
- Open-source contributors could deliver own design solutions
All OpenSDL changes need to be delivered in PR with up-to-date Architectural and Design documentation.
Each SDL functional and non-functional changes have to follow next steps:
- Analisys Architectural changes (see checklist and help table)
- Analisys SW Detail Design changes (see checklist and help table)
- Create or update Component(s) SDD
- Commit SDD changes
- Source code implementation
- Verify that changes from p.4 follow documentation from p.1 and p.2
- Repeat p.1-2 according to final implementation
- Send Pull Request with
- link to SAD updates PR (if applicable)
- Design document commit (if applicable)
- Source code changes
-
Doc Down (extension of MarkDown) format is used for SAD documentation
- It allows to automatically generate fancy documentation on the Ford Developers Portal.
-
SAD source are being updated simultaneously with SDL Core source according to GitFlow
- It's guaranty source and documentation consistence in master and release branches.
- Note: One of the expected Ford portal features is showing Documentation by specific releases version.
-
Doxygen format is used for SDD documentation
- It allows to generate local stand-alone version of the all Detail-Design documentation with all interfaces and classes descriptions
- The same Doxygen format will be used for documentation page on the Portal.
- SDD output contains following
- Detail design according to SDD template: UML diagrams, SW patterns and approaches
- Auto-generated Doxygen comments from the Component source files
- For end user SAD is available on the Ford Developers Portal.
- Source files in Doc Down format is open for enhancement by sending PRs to SDL Core guides repository.
- Note: After sending PR you will be able to see you changes with temporary link to the Portal.
- For end user SDD can be generated from core source
cd sdl_coredoxygenchromium-browser docs/html/index.html
- Each SDL component need to have an own SDD document as following
/src/components/COMPONENT
docs/FORD.OpenSDL.SDD.COMPONENT.dox
src/...
include/...
...
- There is available SDD Template, which contains chapters for most of possible design aspects and initial document version creation instruction.
- Please, follow instructions at the top of the SDD Template
- Link to SAD update (in case of CRQ or Feature implementation)
- Commits with SDD update is provided (in case of CRQ and signification bug-fix)
- Commits with source code according to COMMITTERS.md agreements
- Do we affect Architecture?
- Adding new functional component?
- New global interface for inter-components communication?
- Provides new high-level functionality for component?
- New system state?
- New cross-layer data type?
- Do we change Design?
- Adding new internal interface or implementation?
- Changed significant component sequence?
- New Component data-type?
Following table shows design documentation changes in terms of Core changes:
| Core \ Document change | SAD update required | SDD changes required | Source Code changes required |
|---|---|---|---|
| Feature | + | + | + |
| Change Request | - | + | + |
| Bug-fix | - | - | + |