Requirements Analysis

(Difference between revisions)
Jump to: navigation, search
(added link for proj mgmt answer from manageiq)
(Directions on Examples expanded; More links; Another Pre-req added)
Line 7: Line 7:
 
|-  
 
|-  
 
|'''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.
 
|'''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.
 +
Having a knowledge of Cloud-Computing will help in the ManageIQ example, but teachers could easily use other projects, or tell students to ignore the details of cloud computing for now.
 
|-
 
|-
 
|'''Learning Objectives''' || Upon completion, students should:
 
|'''Learning Objectives''' || Upon completion, students should:
Line 32: Line 33:
  
 
* Have students document and explain a timeline of how a requirement progressed across the life of a particular feature within an OSS project
 
* 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)
+
** Give the students a template question/answer sheet that they must fill out (make a simple PDF)
 
** Where did the requirement start its life? What did it look like? Who reported it?
 
** 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)
 
** Repeat this for each major step of the life (talk forum to github issue to code)
Line 39: Line 40:
 
** What did one method gain or lose over the other?
 
** What did one method gain or lose over the other?
  
 
+
=== Links ===
 
* ManageIQ (RH Cloudforms)
 
* ManageIQ (RH Cloudforms)
 
** ManageIQ [https://github.com/ManageIQ/manageiq/issues/ Github Issues] and [http://manageiq.org/community/issues/ Creating new Issues]
 
** ManageIQ [https://github.com/ManageIQ/manageiq/issues/ Github Issues] and [http://manageiq.org/community/issues/ Creating new Issues]
Line 46: Line 47:
 
** ManageIQ [http://manageiq.org/community/team/ team] (if I want to mention it in passing - just a neat resource to show)
 
** ManageIQ [http://manageiq.org/community/team/ team] (if I want to mention it in passing - just a neat resource to show)
 
** Forum question/answer around [http://talk.manageiq.org/t/how-are-project-mgmt-activities-done-here how ManageIQ does Project Management]
 
** Forum question/answer around [http://talk.manageiq.org/t/how-are-project-mgmt-activities-done-here how ManageIQ does Project Management]
 +
* [https://www.youtube.com/playlist?list=PLQAAGwo9CYO-SEH9SW7IEwDF6-IzlB_mx Sprint Review Meetings (taped on youtube!)]
 +
* [https://gemnasium.com/ManageIQ/manageiq Ruby Gem Dependencies]
 +
 +
=== 2 Requirements Examples: ===
 +
 +
Listed below are two features that the ManageIQ open source project took on and implemented (or are still implementing). ManageIQ is a cloud-enabled management platform that lets you monitor, start/stop, and analyse a corporate cloud infrastructure. So, for example, a company decides to make its own set of cloud resources inside their own company, in a big data-room. They have hundereds of machines helping their employees to run servers and web applications. They might use ManageIQ to help keep it all under control and running smoothly. ManageIQ is made in a communal open source fashion. Keep in mind, that this community ''used'' to be proprietary and closed - when Red Hat acquired them, they have slowly been moving toward open and communal ways. It is a good ongoing lesson in how to "go open".
 +
 +
Read the various links that follow two feature examples.
  
 +
** Git Integration Feature
 +
*** [http://talk.manageiq.org/t/version-control-integration/414 Initial Discussion],
 +
*** [https://github.com/ManageIQ/manageiq/issues/1199 They created a Github Issue (bug)],
 +
*** [https://github.com/ManageIQ/manageiq/pull/1204 Code that was implemented] - Just take a look here, no need to understand it
 +
*** [https://github.com/mkanoor/manageiq/commit/9c889c0269f25e3823dbae2b93b1120ea3e70538 More code] - Again, just peak; Notice how the code links to the Issue
 +
*** There is even more code, and more to come, that will link back to this Feature. Take note that this code is implemented across a pretty lengthy time-period
  
* 2 Requirements Examples:
+
** Chargeback Feature
** Git Integration Feature [http://talk.manageiq.org/t/version-control-integration/414 discussion], [https://github.com/ManageIQ/manageiq/issues/1199 bug], [https://github.com/ManageIQ/manageiq/pull/1204 code 1], [https://github.com/mkanoor/manageiq/commit/9c889c0269f25e3823dbae2b93b1120ea3e70538 2], more?
+
***[http://talk.manageiq.org/t/chargeback-open-discussion/440/10 discussion], [https://github.com/rhus/charging-docs/wiki/Requirements:-Collection-and-Mediation requirements], [https://bugzilla.redhat.com/show_bug.cgi?id=1052106 bug?]  
** Chargeback Feature [http://talk.manageiq.org/t/chargeback-open-discussion/440/10 discussion], [https://github.com/rhus/charging-docs/wiki/Requirements:-Collection-and-Mediation requirements], [https://bugzilla.redhat.com/show_bug.cgi?id=1052106 bug?]  
+
  
  

Revision as of 21:50, 29 January 2016

Title Requirements Analysis
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.

Having a knowledge of Cloud-Computing will help in the ManageIQ example, but teachers could easily use other projects, or tell students to ignore the details of cloud computing for now.

Learning Objectives Upon completion, students should:
  • understand what requirements gathering means in context with a wider software development life cycle.
  • be able to explain what common methods and tools are used in open source requirements gathering.
  • be able to track requirements and issues and code from forums, to issue trackers, through code bases.

Background:

Background reading material:

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.


Directions:

  • 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 question/answer sheet 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?

Links

2 Requirements Examples:

Listed below are two features that the ManageIQ open source project took on and implemented (or are still implementing). ManageIQ is a cloud-enabled management platform that lets you monitor, start/stop, and analyse a corporate cloud infrastructure. So, for example, a company decides to make its own set of cloud resources inside their own company, in a big data-room. They have hundereds of machines helping their employees to run servers and web applications. They might use ManageIQ to help keep it all under control and running smoothly. ManageIQ is made in a communal open source fashion. Keep in mind, that this community used to be proprietary and closed - when Red Hat acquired them, they have slowly been moving toward open and communal ways. It is a good ongoing lesson in how to "go open".

Read the various links that follow two feature examples.


Deliverables:

What will the student hand in?


Assessment:

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

Comments:

What should the instructor know before using this activity?

What are some likely difficulties that an instructor may encounter using this activity?


Additional Information:

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
Materials/Environment Internet access
Author Nick Yeates
Source N/A
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

Personal tools
Namespaces
Variants
Actions
Events
Learning Resources
HFOSS Projects
Evaluation
Navigation
Toolbox