OpenMRS Design Reverse Engineering Activity (Android App)
(First draft in progress) |
(Second draft, in prgress.) |
||
Line 6: | Line 6: | ||
|'''Source''' || Darci Burdge, Steven P. Crain, Ruby ElKharboutly, Barrett Koster, Shamsi Moussavi, Chris Murphy | |'''Source''' || Darci Burdge, Steven P. Crain, Ruby ElKharboutly, Barrett Koster, Shamsi Moussavi, Chris Murphy | ||
|- | |- | ||
− | |'''Prerequisite Knowledge''' || Java, Android, UML | + | |'''Prerequisite Knowledge''' || Java, Android, UML, dynamic and static modeling |
|- | |- | ||
− | |'''Estimated Time to Completion''' || | + | |'''Estimated Time to Completion''' || 6-8 hours |
|- | |- | ||
|'''Learning Objectives''' || | |'''Learning Objectives''' || | ||
− | #Evaluate an existing project and analyze its current documentation | + | # Evaluate an existing project and analyze its current documentation |
− | #Read and understand professionally written code | + | # Read and understand professionally written code |
− | #Appreciate the importance of code documentation and project documentation | + | # Appreciate the importance of code documentation and project documentation |
− | #Develop software architecture and design documentation for an existing project | + | # Develop software architecture and design documentation for an existing project |
− | #Recognize coding conventions and design patterns | + | # Recognize coding conventions and design patterns |
|- | |- | ||
|'''Materials/Environment''' || Access to Internet, installed Eclipse with correct version | |'''Materials/Environment''' || Access to Internet, installed Eclipse with correct version | ||
|- | |- | ||
− | |'''Rights''' || | + | |'''Rights''' ||[[File:Creativecommons-by-nc-sa-40.png]] This activity is licensed under a [http://creativecommons.org/licenses/by-nc-sa/4.0/ Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License]. |
|- | |- | ||
|'''Turn In''' || The architecture, UML of the structure (class diagrams). Also analysis of design-related concepts: coupling, cohesion. Perhaps identifying design patterns.|} | |'''Turn In''' || The architecture, UML of the structure (class diagrams). Also analysis of design-related concepts: coupling, cohesion. Perhaps identifying design patterns.|} | ||
=== Background: === | === Background: === | ||
+ | OpenMRS is... | ||
+ | The OpenMRS Android app allows a user to... | ||
+ | In this assignment, you will familiarize yourself with the implementation of the Android app by reviewing and documenting the software architecture and class design | ||
=== Directions: === | === Directions: === | ||
====IDE installation==== | ====IDE installation==== | ||
− | #Go to: http://developer.android.com/index.html | + | # Go to: http://developer.android.com/index.html |
− | #At the bottom of the page choose the Get the SDK link. | + | ## At the bottom of the page choose the Get the SDK link. |
− | #Click the Download the SDK ADT Bundle for Windows link. | + | ## Click the Download the SDK ADT Bundle for Windows link. |
− | #Extract the files from the .zip file downloaded in step #1. | + | # Extract the files from the .zip file downloaded in step #1. |
− | #Go to: http://developer.android.com/sdk/installing/adding-packages.html. On the second part of #1, use API 19 instead of the most recent API available. | + | # Go to: http://developer.android.com/sdk/installing/adding-packages.html. On the second part of #1, use API 19 instead of the most recent API available. |
− | + | The download and install take some time…be patient!! | |
− | + | Once the download is complete, you can close the SDK Manager. | |
− | #You can follow the directions from - http://developer.android.com/tools/devices/managing-avds.html - to create an AVD. | + | # You can follow the directions from - http://developer.android.com/tools/devices/managing-avds.html - to create an AVD. |
− | ====Installing OpenMRS Android | + | ====Installing OpenMRS Android project==== |
# Download the OpenMRS Android client as an Eclipse project [somewhere here] | # Download the OpenMRS Android client as an Eclipse project [somewhere here] | ||
# Import the project into Eclipse: File -> Import... -> Android -> Existing Android Code into Workspace -> then browse to the directory containing the Eclipse project that you downloaded | # Import the project into Eclipse: File -> Import... -> Android -> Existing Android Code into Workspace -> then browse to the directory containing the Eclipse project that you downloaded | ||
− | # The DashboardActivity project depends on the appcompat , | + | # The DashboardActivity project depends on the appcompat, gridlayout, and odk.collect projects. If Eclipse shows an error message in the DashboardActivity, about these other projects, add them to the Java Build Path of the DashboardActivity project. |
− | + | ====Running the OpenMRS Android app:==== | |
− | When | + | # Create an AVD using Android 4.4.2 (API level 19). When creating it, be sure that you give it an SD card of at least 128MB |
− | http://devtest02.openmrs.org:8080/openmrs | + | # Launch the DashboardActivity project in your AVD. It may take a while for the AVD to start, so be patient! |
− | + | # When the OpenMRS app starts, enter http://devtest02.openmrs.org:8080/openmrs as the URL | |
− | + | # Log in using username "admin" and password "Admin123" | |
==== Early Code Investigation ==== | ==== Early Code Investigation ==== | ||
At this stage of the project I expect you to get an early sense of what the project is about. You should create a report that describes the following: | At this stage of the project I expect you to get an early sense of what the project is about. You should create a report that describes the following: | ||
*Total number of files, packages and package hierarchy | *Total number of files, packages and package hierarchy | ||
− | *Coding convention and available documentation | + | *Coding convention and available documentation |
*Which classes are part of the Model component? the View? the Controller? | *Which classes are part of the Model component? the View? the Controller? | ||
+ | Grading Rubric : | ||
+ | *Project structure is represented concisely and correctly using a diagrammatic representation | ||
+ | *Coding conventions and documentation are correctly identified | ||
+ | |||
+ | ====Detailed Design==== | ||
+ | Produce a report that documents the Detailed Design of the software. Your target audience is to be a junior programmer would like to contribute to the project as well as a developer who is somewhat but not intimately familiar with your project. A junior programmer should be able to correctly implement any package or module given your Detailed Design. | ||
+ | =====Report===== | ||
+ | '''Introduction and Overview''' | ||
+ | About 1 to 3 pages summarizing the purpose of report, its organization, and its salient conclusions. A person should be able to read just the abstract or just the introduction and have a good idea what is in the rest of your report. | ||
+ | '''Detailed Design''' | ||
+ | You are to give, for each module, a clear specification for the module, such that a junior programmer can implement that module. The Detailed Design will include a clear description of the behavior of the module and its externally visible interface. | ||
+ | A complete description of the static and dynamic modeling of the system including class diagrams, sequence for main scenarios. | ||
[[Category: Learning_Activity]] | [[Category: Learning_Activity]] | ||
[[Category: OpenMRS]] | [[Category: OpenMRS]] | ||
[[Category: Specification_and_Design]] | [[Category: Specification_and_Design]] |
Revision as of 16:42, 15 November 2014
Contents |
Preparation:
Description | Expose student to the OpenMRS Android client and have them reverse engineer the design of the module. |
Source | Darci Burdge, Steven P. Crain, Ruby ElKharboutly, Barrett Koster, Shamsi Moussavi, Chris Murphy |
Prerequisite Knowledge | Java, Android, UML, dynamic and static modeling |
Estimated Time to Completion | 6-8 hours |
Learning Objectives |
|
Materials/Environment | Access to Internet, installed Eclipse with correct version |
Rights | This activity is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. |
Turn In | }
Background:OpenMRS is... The OpenMRS Android app allows a user to... In this assignment, you will familiarize yourself with the implementation of the Android app by reviewing and documenting the software architecture and class design Directions:IDE installation
The download and install take some time…be patient!! Once the download is complete, you can close the SDK Manager.
Installing OpenMRS Android project
Running the OpenMRS Android app:
Early Code InvestigationAt this stage of the project I expect you to get an early sense of what the project is about. You should create a report that describes the following:
Grading Rubric :
====Detailed Design==== Produce a report that documents the Detailed Design of the software. Your target audience is to be a junior programmer would like to contribute to the project as well as a developer who is somewhat but not intimately familiar with your project. A junior programmer should be able to correctly implement any package or module given your Detailed Design. =====Report===== Introduction and Overview About 1 to 3 pages summarizing the purpose of report, its organization, and its salient conclusions. A person should be able to read just the abstract or just the introduction and have a good idea what is in the rest of your report. Detailed Design You are to give, for each module, a clear specification for the module, such that a junior programmer can implement that module. The Detailed Design will include a clear description of the behavior of the module and its externally visible interface. A complete description of the static and dynamic modeling of the system including class diagrams, sequence for main scenarios. |