Software Design Architecture Comparison
From Foss2Serve
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 | What topics and tools does the student need to know prior to beginning this activity? |
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:
- https://en.wikipedia.org/wiki/Software_design
- https://en.wikipedia.org/wiki/Software_design_pattern
- http://www.openu.ac.il/personal_sites/download/galezer/SoftwareDesign.pdf
- This paper describes how they had to get students to re-think how they write code. The students needed to think more outside of the syntax of the actual language, and more toward software design / repeatable design patterns that dont depend on the coding language.
- I am looking at this paper and thinking about the various tasks or activities that they show were done in their classroom. I may be able to use these ideas.
- “It should be re-emphasized that practical programming does not play a central role in the unit. At the end of the year students and teachers realized that programming in itself is not the main goal.”
- http://stackoverflow.com/questions/268231/how-to-learn-good-software-design-architecture
- http://cc2e.com/
- Code Complete Book - Design chapter
- ‘Design’ is similar to my definition of ‘software-architecture’, except that design can pervade into lower levels of classes and routines and code
- Gof Design Patterns
- GoF Design Patterns Explained
- Research Paper: Design patterns in open source
- Book: Architecture of Open Source Applications - from Tom
- Openstack Oslo - from email to listserv
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