OpenMRS Architecture activity
(Created page with "__NOTOC__ {| class="wikitable" |- | '''Title''' || OpenMRS Architecture case study |- | '''Overview''' || In this activity students use OpenMRS Architecture as a case study ...") |
|||
(5 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | {| | + | {{Learning Activity Overview |
− | + | |title= | |
− | + | OpenMRS Architecture case study | |
− | | | + | |overview= |
− | + | In this activity students use OpenMRS Architecture as a case study to identify the architecture pattern used and study the components of web architecture. | |
− | | | + | |prerequisites= |
− | + | Design and architecture | |
− | | | + | |objectives= |
− | + | * Identify the architectural pattern used for a given system | |
− | * | + | * Get exposed to web applications by studying their architectures |
− | * | + | * Differentiate between server side technologies and client side technologies |
− | * | + | * Use software architecture as a starting point to approach an open source project |
− | * | + | |process skills= |
− | |} | + | }} |
=== Background === | === Background === | ||
Line 23: | Line 23: | ||
Study the architectural diagram and answer the following questions: | Study the architectural diagram and answer the following questions: | ||
+ | |||
+ | ==== Part 1: General Architecture ==== | ||
+ | |||
+ | # Identify the basic modules in the architecture. What are the basic components and how do they interact | ||
# What architecture style is used in Open-MRS architecture? Justify your answer. | # What architecture style is used in Open-MRS architecture? Justify your answer. | ||
(Grading criteria: your answer should explain how the Open-MRS architecture satisfies the constraints and rules for the chosen architecture style) | (Grading criteria: your answer should explain how the Open-MRS architecture satisfies the constraints and rules for the chosen architecture style) | ||
+ | |||
+ | ==== Part 2: Server and client technologies ==== | ||
+ | |||
# What technologies are used on the client side? | # What technologies are used on the client side? | ||
# What technologies are used on the server-side? | # What technologies are used on the server-side? | ||
# What is Spring? (use Google to answer. Include your reference) | # What is Spring? (use Google to answer. Include your reference) | ||
# What is Hibernate? (use Google to answer. Include your reference) | # What is Hibernate? (use Google to answer. Include your reference) | ||
− | # What language is used for server-side programming in OpenMRS? | + | # What language is used for server-side programming in OpenMRS? |
+ | |||
+ | ==== Part 3: Design Principles ==== | ||
+ | |||
+ | # OpenMRS architecture satisfies design principles such as modularity and information hiding. Explain how does the architecture satisfy these principles? | ||
+ | # Why does the architecture follow design principles ? (Find the answer in the reading) | ||
+ | |||
=== Deliverable === | === Deliverable === | ||
+ | |||
* A report including answers | * A report including answers | ||
− | ==Notes for Instructors== | + | == Notes for Instructors == |
− | + | ||
=== Assessment === | === Assessment === | ||
+ | |||
{| class="wikitable" | {| class="wikitable" | ||
! Criteria | ! Criteria | ||
Line 45: | Line 59: | ||
! Level 4 (exceptional) | ! Level 4 (exceptional) | ||
|- | |- | ||
− | | ''' | + | | '''Part 1''' |
| Little to no understanding shown; Answers are made up or unrelated; Didn't read material | | Little to no understanding shown; Answers are made up or unrelated; Didn't read material | ||
| Limited understanding, showing that they read some, but did not dig very deep | | Limited understanding, showing that they read some, but did not dig very deep | ||
Line 51: | Line 65: | ||
| Clearly explain the answer to each question with supporting examples | | Clearly explain the answer to each question with supporting examples | ||
|- | |- | ||
− | | ''' | + | | '''Part 2''' |
− | | | + | | Little to no understanding shown; Answers are made up or unrelated; Didn't read material |
− | | | + | | Limited understanding, showing that they read some, but did not dig very deep |
− | | | + | | Showed that they have done the readings with limited understanding |
− | | | + | | Clearly explain the answer to each question with supporting examples |
|- | |- | ||
− | | ''' | + | | '''Part 3''' |
− | | | + | | Little to no understanding shown; Answers are made up or unrelated; Didn't read material |
− | | | + | | Limited understanding, showing that they read some, but did not dig very deep |
− | | | + | | Showed that they have done the readings with limited understanding |
− | | | + | | Clearly explain the answer to each question with supporting examples |
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
Line 74: | Line 83: | ||
=== Additional Information === | === Additional Information === | ||
− | {| | + | |
− | | | + | {{Learning Activity Info |
− | + | |acm unit= | |
− | + | |acm topic= | |
− | | | + | Software Engineering |
− | + | |difficulty= | |
− | + | Medium- Challenging | |
− | | | + | |time= |
− | + | 2 hours | |
− | | | + | |environment= |
− | + | Internet access | |
− | | | + | |author= |
− | + | Ruby ElKharboutly | |
− | | | + | |source= |
− | + | Ruby ElKharboutly | |
− | | | + | |license= |
− | + | {{License CC BY}} | |
− | + | }} | |
=== Suggestions for the Open Source Project === | === Suggestions for the Open Source Project === | ||
− | + | ''Suggestions for an open source community member who is working in conjunction with the instructor.'' | |
− | Suggestions for an open source community member who is working in conjunction with the instructor. | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
[[Category:Learning Activity]] | [[Category:Learning Activity]] | ||
− | [[Category: | + | [[Category:Specification and Design]] |
− | [[Category: Good Draft]] | + | [[Category:Good Draft]] |
Latest revision as of 10:48, 8 September 2018
Title |
OpenMRS Architecture case study |
---|---|
Overview |
In this activity students use OpenMRS Architecture as a case study to identify the architecture pattern used and study the components of web architecture. |
Prerequisites |
Design and architecture |
Learning Objectives |
After successfully completing this activity, the learner should be able to:
|
Process Skills Practiced |
Background
Open-MRS is an open source electronic medical record system (EMR) originally designed for developing countries. Go the open MRS website https://wiki.openmrs.org/display/docs/Technical+Overview and http://write.flossmanuals.net/openmrs-developers-guide/architecture/ . The architectural design of the Open MRS system is described in these pages.
Directions
Study the architectural diagram and answer the following questions:
Part 1: General Architecture
- Identify the basic modules in the architecture. What are the basic components and how do they interact
- What architecture style is used in Open-MRS architecture? Justify your answer.
(Grading criteria: your answer should explain how the Open-MRS architecture satisfies the constraints and rules for the chosen architecture style)
Part 2: Server and client technologies
- What technologies are used on the client side?
- What technologies are used on the server-side?
- What is Spring? (use Google to answer. Include your reference)
- What is Hibernate? (use Google to answer. Include your reference)
- What language is used for server-side programming in OpenMRS?
Part 3: Design Principles
- OpenMRS architecture satisfies design principles such as modularity and information hiding. Explain how does the architecture satisfy these principles?
- Why does the architecture follow design principles ? (Find the answer in the reading)
Deliverable
- A report including answers
Notes for Instructors
Assessment
Criteria | Level 1 (fail) | Level 2 (pass) | Level 3 (good) | Level 4 (exceptional) |
---|---|---|---|---|
Part 1 | Little to no understanding shown; Answers are made up or unrelated; Didn't read material | Limited understanding, showing that they read some, but did not dig very deep | Showed that they have done the readings with limited understanding | Clearly explain the answer to each question with supporting examples |
Part 2 | Little to no understanding shown; Answers are made up or unrelated; Didn't read material | Limited understanding, showing that they read some, but did not dig very deep | Showed that they have done the readings with limited understanding | Clearly explain the answer to each question with supporting examples |
Part 3 | Little to no understanding shown; Answers are made up or unrelated; Didn't read material | Limited understanding, showing that they read some, but did not dig very deep | Showed that they have done the readings with limited understanding | Clearly explain the answer to each question with supporting examples |
Comments
Android Development, JSON data model
Additional Information
ACM BoK Area & Unit(s) |
|
---|---|
ACM BoK Topic(s) |
Software Engineering |
Difficulty |
Medium- Challenging |
Estimated Time to Complete |
2 hours |
Environment / Materials |
Internet access |
Author(s) |
Ruby ElKharboutly |
Source |
Ruby ElKharboutly |
License |
This work is licensed under a Creative Commons Attribution 4.0 International License |
Suggestions for the Open Source Project
Suggestions for an open source community member who is working in conjunction with the instructor.