quinta-feira, 24 de novembro de 2016

Process: SW Construction Process and its main work products

SW Construction Process:

While building your software (aligned with the gathered requirements - SRS - and the software design that your high-level architecture defines - SAS, and eventually the detailed design - DDS) several additional topics are relevant.

For instance:
- Shall the team code against any coding standard (is it a coding standard belonging to the project, to the company or is it external, e.g. imposed by a safety standard or by your contractor)?
- What kind of comments shall the team be producing, and what tags for doc extraction shall the team embed in comments (e.g. Javadoc)?
- Do we have a minimum % of comments to comply with?
- Shall the team also leave traceability hints in the source code (Class - Requirement ID, Class - Component ID, other)?
- What static analysis tool will it be used (and who is responsible to run it and analyze the reports)?
- What other static analysis measures shall the team abide for (cyclomatic complexity < X)?
- What integration tasks shall be configured in the CI server and under what well defined circumstances shall the build fail (e.g. shall it fail if 1 of the 10K unit tests fails or not)?
- What is the coverage goal for Unit Testing (if any - see the unit testing plan)?
- What is the coverage goal for Code Reviews (e.g. only certain well identified critical parts of the code shall be reviewed) and who is doing it? And so on.

While programming:
- Remember to keep on checking that "your code does not smell" and try not to follow the wrong guidelines and/or practices (e.g. "how to write unmaintainable code").
- And if the code "smells" (be it yours or from other programmer) you can always refactor it now or later on, "when the fire stops burning" - just make sure to take note of the need somewhere persistently (tip: "issue tracker").

The main work products and documents resulting after the phase where this process is being more heavily used are:
- The code (that could not be a deliverable - you could be delivering binaries only); includes unit test code;
- Updated end-user documentation: Manuals (administration, installation, user, etc.), online help.

Further Information:

Further information can be found in the following links in the DIGEST (some are INTERNAL):
http://silvaonsoftware.blogspot.com/2016/11/digest-sw-construction-further-reading_49.html