|Overview||Students will create and explain a timeline of how a requirement progressed across the life of a particular feature within an OSS project.|
|Prerequisite Knowledge||It would be helpful for students to be familiar with the Software Development Life Cycle (SDLC), and its various models and phases, which often includes Requirements. The difference between plan-based methods like Waterfall, and iterative approaches like Agile will allow students to see the very different methods of requirements gathering.|
|Learning Objectives|| Upon completion, students should:
Background reading material:
- https://www.acm.org/education/CS2013-final-report.pdf#page=178 Bottom of Page 178 (Page 181 marked in the PDF)
What is the rational for this activity? As software development migrates from Waterfall to Agile / Iterative development models, it will be important to understand how requirements fits into each. Open source projects often have a less formal requirements gathering process than say a government contract job, but it is still there behind the covers. Students should be aware of how requirements are gathered in a distributed diverse community, versus a single central authority.
- After reading background docs, have students explain how requirements are held and managed in both traditional waterfall SDLC methods and agile / iterative SDLC methods
- Now, show students the two requirements / features / issue tracker. Give context so that they know was community and one was an offshoot team
- Have students document and explain a timeline of how a requirement progressed across the life of a particular feature within an OSS project
- Give the students a template paper that they must fill out (make a simple PDF)
- Where did the requirement start its life? What did it look like? Who reported it?
- Repeat this for each major step of the life (talk forum to github issue to code)
- Have students compare the two requirement examples given
- Why do you think requirements were done in a different way?
- What did one method gain or lose over the other?
- ManageIQ (RH Cloudforms)
- 2 Requirements Examples:
What will the student hand in?
How will the activity be graded?
How will learning will be measured?
Include sample assessment questions/rubrics.
|Criteria||Level 1 (fail)||Level 2 (pass)||Level 3 (good)||Level 4 (exceptional)|
|Understanding of requirements in context of wider SDLC|
|Explains common methods and tools in oss req. gathering|
|Can track requirements from initial sources through to code|
What should the instructor know before using this activity?
What are some likely difficulties that an instructor may encounter using this activity?
|ACM Knowledge Area/Knowledge Unit||SE - Software Engineering / SE Requirements Engineering from ACM_Body_of_Knowledge|
|ACM Topic||Requirements tracing; Describing functional requirements; Evaluation and use of requirements specifications; from https://www.acm.org/education/CS2013-final-report.pdf|
|Level of Difficulty||Easy|
|Estimated Time to Completion||2-3 hrs|
|License||Creative Commons CC-BY|
Suggestions for Open Source Community:
Suggestions for an open source community member who is working in conjunction with the instructor.
This work is licensed under a Creative Commons Attribution 4.0 International License