OpenMRS Architecture activity

(Difference between revisions)
Jump to: navigation, search
(Assessment)
(Suggestions for the Open Source Project)
Line 111: Line 111:
  
 
[[Category:Learning Activity]]
 
[[Category:Learning Activity]]
[[Category:Coding and Style]]
+
[[Category:Specification and Design]]
 
[[Category: Good Draft]]
 
[[Category: Good Draft]]

Revision as of 16:18, 7 August 2017


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.
Prerequisite Knowledge Design and architecture
Learning Objectives
  • To identify the architectural pattern used for a given system
  • To get exposed to web applications by studying their architectures
  • To differentiate between server side technologies and client side technologies
  • To use software architecture as a starting point to approach an open source project

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

  1. Identify the basic modules in the architecture. What are the basic components and how do they interact
  2. 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

  1. What technologies are used on the client side?
  2. What technologies are used on the server-side?
  3. What is Spring? (use Google to answer. Include your reference)
  4. What is Hibernate? (use Google to answer. Include your reference)
  5. What language is used for server-side programming in OpenMRS?

Part 3: Design Principles

  1. OpenMRS architecture satisfies design principles such as modularity and information hiding. Explain how does the architecture satisfy these principles?
  2. 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 Knowledge Area/Knowledge Unit [1]
ACM Topic Software Engineering
Level of Difficulty Medium- Challenging
Estimated Time to Completion 2 hours
Materials/Environment Internet access
Author Ruby ElKharboutly
Source Ruby ElKharboutly
License Creative Commons CC-BY

Suggestions for the Open Source Project

Suggestions for an open source community member who is working in conjunction with the instructor.



This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License

CC license.png

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