OpenMRS Architecture activity

From Foss2Serve
(Difference between revisions)
Jump to: navigation, search
(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__
  
{| class="wikitable"
+
{{Learning Activity Overview
|-
+
|title=
| '''Title''' || OpenMRS Architecture case study
+
OpenMRS Architecture case study
|-
+
|overview=
| '''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.
+
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=
| '''Prerequisite Knowledge''' || Design and architecture
+
Design and architecture
|-
+
|objectives=
| '''Learning Objectives''' ||
+
* Identify the architectural pattern used for a given system
* To identify the architectural pattern used for a given system
+
* Get exposed to web applications by studying their architectures
* To get exposed to web applications by studying their architectures
+
* Differentiate between server side technologies and client side technologies  
* To differentiate between server side technologies and client side technologies  
+
* Use software architecture as a starting point to approach an open source project
* To 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)
 
|-
 
|-
| '''Understands what is a Open API and how is different that open source'''
+
| '''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
 
|-
 
|-
| '''Testing FEMA APIs'''
+
| '''Part 2'''
| No testing
+
| Little to no understanding shown; Answers are made up or unrelated; Didn't read material
| Testing with bad results
+
| Limited understanding, showing that they read some, but did not dig very deep
| Testing with good results
+
| Showed that they have done the readings with limited understanding
| Testing multiple APIs with the correct result
+
| Clearly explain the answer to each question with supporting examples
 
|-
 
|-
| '''Create an Android App that retrieves data from a REST API'''
+
| '''Part 3'''
| Did not attempt to create the App
+
| Little to no understanding shown; Answers are made up or unrelated; Didn't read material
| App retrieves data but data is not parsed
+
| Limited understanding, showing that they read some, but did not dig very deep
| App retrieves data and parses the json data
+
| Showed that they have done the readings with limited understanding
| App retrieves data, parses data and displays data
+
| Clearly explain the answer to each question with supporting examples
 
|-
 
|-
| '''An interactive interface is develped to display data'''
 
| Did not attempt to create an interface
 
| Create a limited interface for the app
 
| Create a complete inteface displaying all retrieved data
 
| Create an efficient interface with the ability to search/filter the data
 
 
|}
 
|}
  
Line 74: Line 83:
  
 
=== Additional Information ===
 
=== Additional Information ===
{| class="wikitable"
+
 
|-
+
{{Learning Activity Info
| '''ACM Knowledge Area/Knowledge Unit''' ||[https://www.acm.org/education/CS2013-final-report.pdf#page=146 PBD/Mobile Platforms]
+
|acm unit=
|-
+
|acm topic=
| '''ACM Topic''' || Mobile programming languages
+
Software Engineering
|-
+
|difficulty=
| '''Level of Difficulty''' || Medium- Challenging
+
Medium- Challenging
|-
+
|time=
| '''Estimated Time to Completion''' ||  2 hours
+
2 hours
|-
+
|environment=
| '''Materials/Environment''' ||Internet access
+
Internet access
|-
+
|author=
| '''Author''' || Ruby ElKharboutly
+
Ruby ElKharboutly
|-
+
|source=
| '''Source''' || Ruby ElKharboutly
+
Ruby ElKharboutly
|-
+
|license=
| '''License''' ||Creative Commons CC-BY
+
{{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.
+
 
+
 
+
--------------------
+
This work is licensed under a
+
[http://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0 International License]
+
 
+
[[File:CC_license.png]]
+
  
 
[[Category:Learning Activity]]
 
[[Category:Learning Activity]]
[[Category:Coding and Style]]
+
[[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:
  • 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
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

  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 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

CC-BY.png


Suggestions for the Open Source Project

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

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