Requirements - latex4ei/tex4tum GitHub Wiki
This document analyzes and traces the requirements from several stakeholders to the implementation.
Traceability: Req. ↔ Goals ↔ Feat. ↔ Impl
We should ensure bidirectional traceability. That is, every requirement can be traced down to an implementation (we don't miss a feature) and every implementation can be traced up to a requirement (we don't have unnecessary features).
We have three types of Stakeholders: Readers, Authors, Developers
- Readers = Sudents, Engineers, Scientists
- Authors = Sudents, Engineers, Scientists
- Developer = We
Reader Requirements (RR)
[RR_ANSW] Readers want answers to their questions
[RR_SPEC] Readers want specific answers (not just the general case)
[RR_TIME] Readers want the answers as fast as possible
[RR_LEARN] Readers want to learn new facts and concepts
[RR_REAS] Readers want to understand the reasons of some concepts
[RR_RELY] Readers want the information to be reliable
[RR_ANYW] Readers want to access the information anywhere, on any platform, in any format
Author Requirements (AR)
[AR_EASY] Easy to use syntax
[AR_PREV] Authors want a preview
[AR_UNDO] Authors want to undo their changes
Developer Requirements (DR)
[DR_NEW] Developers want the newest technology, if they learn then for the future
[DR_CHEAP] Developers want keep expenses for servers and bandwidth low
Design Goals (DG)
From the Requirements we derive the design goals:
[DG_WEB] Content should be presented as responsive Website <= [RR_ANYW]
[DG_OFFL] Content should also be available offline <= [RR_ANYW]
[DG_FIND] Content should be easy & fast to find <= [RR_ANS, RR_TIME]
[DG_DEMAND] Content should be on-demand <= [RR_SPEC, RR_TIME]
[DG_SHORT] Content should be short <= [RR_TIME]
[DG_IACT] Content should be interactive <= [RR_LEARN, RR_SPEC]
[DG_CONS] Content should have a consistent structure <= [RR_TIME]
[DG_INTU] User interface should be intuitive
Potential Conflicts: [DG_WEB <=> DG_OFFL]
Features (F)
[F_WEBSITE] We provide a webpage <= [DG_WEB]
[F_SEARCH] We provide a fuzzy search bar <= [DG_FIND]
[F_TABB] We provide tab boxes <= [DG_SHORT, DG_IACT, DG_CONS]
[F_EXPAND] We provide expandable sections/boxes <= [DG_DEMAND]
Implementation (I)
[I_HTML_WEB] We implement the webpage in HTML5 + Bootstrap <= [F_WEBSITE: DG_RESP]
[I_JS_SEARCH] We implement the search bar in JS <= [F_SEARCH: DG_OFFL]
[I_GIT] We use git <= [AR_UNDO, DR_CHEAP]