Software Design Architecture Comparison

(Difference between revisions)
Jump to: navigation, search
(pasted in background reading (from research))
(added research that I did into various communities to appendix)
Line 6: Line 6:
 
|'''Overview''' || Students will research existing software design documents and resources for both projects and then write a report detailing their differences and helpfulness to various levels of developers.
 
|'''Overview''' || Students will research existing software design documents and resources for both projects and then write a report detailing their differences and helpfulness to various levels of developers.
 
|-  
 
|-  
|'''Prerequisite Knowledge''' || What topics and tools does the student need to know prior to beginning this activity?
+
|'''Prerequisite Knowledge''' ||  
 +
* A CS1 course (Introduction to Programming) is highly recommended.
 +
* The students should have already learned syntax and the basics of a programming language.
 
|-
 
|-
 
|'''Learning Objectives''' || What should the student be able to do after completing completed this activity?.
 
|'''Learning Objectives''' || What should the student be able to do after completing completed this activity?.
Line 122: Line 124:
 
[[Category: Specification_and_Design]]
 
[[Category: Specification_and_Design]]
 
[[Category: Coding_and_Style]]
 
[[Category: Coding_and_Style]]
 +
 +
 +
=== Appendix ===
 +
Note: Can be removed later, or kept as a resource to teaches looking into other communities.
 +
 +
Software design - Potential communities to look into:
 +
* Look at openshift’s software architecture
 +
** Software architecture?
 +
** Talk to someone on the team - get someone who is an expert and quiz them
 +
* GNOME Shell - graphical environment - UI of Fedora - public iterative design to implementation
 +
* GNOME Documents and Photos - iterative design
 +
* Inkscape community
 +
* Hacking and Contributing files
 +
** https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#-coding-rules
 +
** https://github.com/openshift/origin/blob/master/HACKING.md
 +
** https://github.com/colah/ImplicitCAD/blob/master/hacking.md
 +
** https://github.com/openstack-dev/hacking/blob/master/HACKING.rst
 +
* Openstack design process - blueprints idea, where you write feature and how you want to do it, get sign off from community and then patches are reviewed and go through significant revision
 +
** Developers Guide - http://docs.openstack.org/infra/manual/developers.html
 +
*** http://docs.openstack.org/project-team-guide/project-setup/python.html
 +
*** https://www.python.org/dev/peps/pep-0008/
 +
*** http://docs.openstack.org/project-team-guide/open-community.html#technical-committee-and-ptl-elections
 +
*** https://github.com/openstack-dev/hacking/blob/master/HACKING.rst
 +
*** hacking.md files, Style Guides, Pep8,
 +
** http://docs.openstack.org/project-team-guide/open-design.html
 +
** https://wiki.openstack.org/wiki/Blueprints
 +
** https://review.openstack.org/#/q/status:open
 +
** http://docs.openstack.org/infra/manual/developers.html
 +
** https://review.openstack.org/Documentation/intro-quick.html
 +
** http://docs.openstack.org/infra/system-config/gerrit.html

Revision as of 17:25, 4 February 2016

Title Software Design and Architecture Comparison (Eclipse vs Openstack)
Overview Students will research existing software design documents and resources for both projects and then write a report detailing their differences and helpfulness to various levels of developers.
Prerequisite Knowledge
  • A CS1 course (Introduction to Programming) is highly recommended.
  • The students should have already learned syntax and the basics of a programming language.
Learning Objectives What should the student be able to do after completing completed this activity?.

Background:

Is there background reading material?

Are there other activities the student should have done first?

What is the rational for this activity?

Include helpful hints to faculty here.


Background reading:


Directions:

What should the student do?


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)
The purpose of the project
Why the project is open source

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 What ACM Computing Curricula 2013 knowledge area and units does this activity cover? ACM_Body_of_Knowledge
ACM Topic What specific topics are addressed? The Computing Curriucula 2013 provides a list of topics - https://www.acm.org/education/CS2013-final-report.pdf
Level of Difficulty Is this activity easy, medium or challenging?
Estimated Time to Completion How long should it take for the student to complete the activity?
Materials/Environment What does the student need? Internet access, IRC client, Git Hub account, LINUX machine, etc.?
Author Nick Yeates
Source Is there another activity on which this activity is based? If so, please provide a link to the original resource.
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


Appendix

Note: Can be removed later, or kept as a resource to teaches looking into other communities.

Software design - Potential communities to look into:

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