This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
project-wiki:tools:software_projects [2021/11/12 12:51] 127.0.0.1 external edit |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | <-Safety Plans^.: | ||
- | ====== Software Projects ====== | ||
- | |||
- | |||
- | While software is certainly an essential engineering activity, it has characteristics that can make it different than the hardware-focused projects that have been traditionally sponsored in BYU Capstone. Every year more and more projects incorporate more software components or have objectives that are entirely software products. | ||
- | |||
- | Because of the ability to rapidly prototype changes and the fact that your prototype can actually become the product, the nature of software projects is more iterative than most hardware design projects and follows the process outlined in [[https:// | ||
- | |||
- | You should use software to manage software. Appropriate use of [[https:// | ||
- | |||
- | ===== Stages of Software Development ===== | ||
- | |||
- | |||
- | A mapping of the stages of project development for a software project may look more like this (1.0 constitutes a major or public release): | ||
- | |||
- | Opportunity Development -> Software Requirements Specification V 0.8; Software V 0.1 | ||
- | |||
- | Concept Development -> Software Requirements Specification V 1.0; Software backend V 0.3 with GUI V 0.1 | ||
- | |||
- | Architecture Development -> Software Requirements Specification V 1.1; Software backend V 0.5 with GUI V 0.5 | ||
- | |||
- | Subsystem Engineering -> Software Requirements Specification V 1.5; Software backend V 0.9 with GUI V 0.9 | ||
- | |||
- | System Refinement -> Software Requirements Specification V 2.0; Software backend V 1.2 with GUI V 1.2 | ||
- | |||
- | ===== Artifacts ===== | ||
- | |||
- | |||
- | Throughout the software development process, you will need to show that your product does what it is supposed to do, does not do what it is not supposed to do, and is able to be updated, refined, and deployed by future engineers. In this way, the principles of desirability and deliverability (transferability) apply to these types of projects. Generally, software projects will not produce the diversity of artifacts of hardware projects, but the artifacts they produce will be updated much more frequently as coding progresses. Major artifacts that describe the software product deliverables are the following: | ||
- | |||
- | ====Desirability ==== | ||
- | |||
- | Software Requirements Specification ([[https:// | ||
- | * Whether or not you use a particular template or form, the key is that you know, your sponsor knows, and Capstone knows what your software product is supposed to do (and not do) when you are finished. | ||
- | * The requirements should be unambiguous in the sense that a third-party could verify if your design meets/does not meet them. | ||
- | * This document will go through many versions as you progress through your project. | ||
- | * An [[http:// | ||
- | * A [[https:// | ||
- | * An [[https:// | ||
- | |||
- | Market Response (from market about the desirability of your product) | ||
- | * Remember that the design team is not the market and so outside feedback is absolutely necessary to judge the success of the design. | ||
- | |||
- | Release Notes/Bug Testing Report (showing appropriate code coverage and successful test passing) | ||
- | * These are critical to evaluate the progress your team is making and also allows future developers to know what needs to be addressed. | ||
- | ==== Transferability ==== | ||
- | |||
- | |||
- | |||
- | User Manual - use something like [[https:// | ||
- | |||
- | Software bill of materials ([[https:// | ||
- | |||
- | Repository | ||
- | |||
- | Software architecture/ | ||
- | |||
- | Appropriately commented code | ||