Business Requirements
Reference number:
Document Control
Change Record
Date |
Author |
Version |
Change Reference |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Reviewers
Name |
Position |
|
|
|
|
|
|
|
|
Table of Contents
2Document Control
1 Business Requirements 4
1.1 Project Overview 4
1.2 Background including current process 4
1.3 Scope 4
1.3.1 Scope of Project 4
1.3.2 Constraints and Assumptions 5
1.3.3 Risks 5
1.3.4 Scope Control 5
1.3.5 Relationship to Other Systems/Projects 5
1.3.6 Definition of Terms (if applicable) 5
1 Business Requirements
1.1 Project Overview
Provide a short, yet complete, overview of the project.
1.2 Background including current process
Describe the background to the project, (same section may be reused in the Quality Plan) include:
This project is
The project goal is to
The IT role for this project is
1.3 Scope
1.3.1 Scope of Project
The scope of this project includes a number of areas. For each area, there should be a corresponding strategy for incorporating these areas into the overall project.
Applications In order to meet the target production date, only these applications will be implemented:
Sites These sites are considered part of the implementation:
Process Re-engineering Re-engineering will
Customization Customizations will be limited to
Interfaces the interfaces included are:
Architecture Application and Technical Architecture will
Conversion Only the following data and volume will be considered for conversion:
Testing Testing will include only
Funding Project funding is limited to
Training Training will be
Education Education will include
1.3.2 Constraints and Assumptions
The following constraints have been identified:
The following assumptions have been made in defining the scope, objectives and approach:
1.3.3 Risks
The following risks have been identified as possibly affecting the project during its progression:
1.3.4 Scope Control
The control of changes to the scope identified in this document will be managed through the Change Control, with business owner representative approval for any changes that affect cost or timeline for the project.
1.3.5 Relationship to Other Systems/Projects
It is the responsibility of the business unit to inform IT of other business initiatives that may impact the project. The following are known business initiatives:
1.3.6 Definition of Terms (if applicable)
List any definitions that will be used throughout the duration of the project.
5
Phase Five Individual Project
03-11-2016
Revision History
Author |
Revision |
Date |
Sections changed |
Description |
Reason |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Table of Contents
1 Project Outline 5
1.1 Description: 5
2 Software Reengineering 5
2.1 Purpose: 5
2.2 Functionality: 5
2.3 General Architecture: 6
2.4 Reengineering Plan: 8
3 API Evaluation 9
3.1 API Designs 9
3.1.1 SCORM APIs 9
3.1.2 Tin Can APIs 10
3.1.3 The Java General APIs 11
3.1.4 Web Services APIs 12
3.1.5 Java EJB APIs 13
4 API Efficiency, Reliability, and Maintainability 14
4.1 SCORM APIs 14
4.1.1 Efficiency Strengths: 14
4.1.2 Efficiency Weaknesses: 14
4.1.3 Maintainability Strengths: 14
4.1.4 Maintainability Weaknesses: 14
4.1.5 Reliability Strengths: 14
4.1.6 Reliability Weaknesses: 14
4.2 Tin Can APIs 15
4.2.1 Efficiency Strengths: 15
4.2.2 Efficiency Weaknesses: 15
4.2.3 Maintainability Strengths: 15
4.2.4 Maintainability Weaknesses: 15
4.2.5 Reliability Strengths: 15
4.2.6 Reliability Weaknesses: 15
4.3 The Java General APIs 16
4.3.1 Efficiency Strengths: 16
4.3.2 Efficiency Weaknesses: 16
4.3.3 Maintainability Strengths: 16
4.3.4 Maintainability Weaknesses: 16
4.3.5 Reliability Strengths: 16
4.3.6 Reliability Weaknesses: 16
4.4 Web Services APIs 17
4.4.1 Efficiency Strengths: 17
4.4.2 Efficiency Weaknesses: 17
4.4.3 Maintainability Strengths: 17
4.4.4 Maintainability Weaknesses: 17
4.4.5 Reliability Strengths: 17
4.4.6 Reliability Weaknesses: 17
4.5 Java EJB APIs 18
4.5.1 Efficiency Strengths: 18
4.5.2 Efficiency Weaknesses: 18
4.5.3 Maintainability Strengths: 18
4.5.4 Maintainability Weaknesses: 18
4.5.5 Reliability Strengths: 18
4.5.6 Reliability Weaknesses: 18
5 Recommendations for Improvement 19
5.1 SCORM API 19
5.1.1 Efficiency Improvements: 19
5.1.2 Maintainability Improvements: 19
5.1.3 Reliability Improvements: 19
5.2 Tin Can API 19
5.2.1 Efficiency Improvements: 19
5.2.2 Maintainability Improvements: 19
5.2.3 Reliability Improvements: 19
5.3 The Java General APIs 20
5.3.1 Efficiency Improvements: 20
5.3.2 Maintainability Improvements: 20
5.3.3 Reliability Improvements: 20
5.4 Web Services APIs 20
5.4.1 Efficiency Improvements: 20
5.4.2 Maintainability Improvements: 20
5.5 Java EJB API 20
5.5.1 Efficiency Improvements: 20
5.5.2 Maintainability Improvements: 20
5.5.3 Reliability Improvements: 20
6 Configuration and Change Management 21
6.1 Change Management Process 21
6.2 Configuration Change requirements tools 23
7 Software Construction Tools and Technique 24
5
Section 1 Project Outline
1.1 Description:
CourseMill is a Learning Management System (LMS) which allows a corporation to manage and track the results of online training given and received by the company. The CourseMill application utilizes utilises the JavaScript, java, SQL, and html programming languages. It also provides LDAP (Lightweight Directory Access Protocol) connections which integrate with the customer’s configuration to achieve SSO (Single Sign On) capability when generating user accounts.
Section 2 Software Reengineering
2.1 Purpose:
The primary purpose of the CourseMill application is to manage, track, and display in a usable format the results and content of online training solutions. To produce online training content housed in CourseMill the desktop authoring tool Lectors Inspire is used. This tool provides a graphical environment which allows developers to create mobile courses once and then store the content in the CourseMill application allowing to be accessed and used by all students and teachers who are authorized.
2.2 Functionality:
The primary features that the application provides are as follows:
1. Advanced Reporting. Information regarding a student’s progress, classroom locations, courses offered, and other pertinent information can be easily created using advanced reporting. Advanced reporting provides drag and drop functionality to allow users to create visual reports with charts and graphs. No SQL programming experience is required as you are able to use a graphical interface to develop SQL queries and commands.
2. Compliance Management. When a student is registered in the CourseMill application they are assigned a curriculum, which contains courses they are required to complete and the sessions which the student can be enrolled in to complete the course. Deadlines for completing the completing the course along with the completion status of the student are included in the course table. Compliance training is also available for instructors which ensures they are properly qualified to teach the courses to which they are assigned.
3. Graphical User Interface. A graphical user interface is provided to allow all users to navigate through the application. Every user is uniquely identified and can only view content for which they are authorized.
2.3 General Architecture:
An online application server is used to house the database and data is exchanged through client server requests. Figure 1 displays the basic Client/Server communications scheme.
Figure 1 Client Server Communications
The application houses data through the use of an SQL database whose tables, columns, and rows can be modified and viewed through SQL queries and commands. The Java API’s used are java server pages which are created through a Java web application. Within the .jsp files the javascript programming language is used to create Database Scripts whose primary purpose is displaying data retrieved from the database in a usable format. Figure 2 is an example of the tables and columns contained within the SQL database.
Figure 2 Interact table and columns
interact |
CourseID VARCHAR(255) |
SessionID INT(11) |
ScoID VARCHAR(255) |
StudentID VARCHAR(255) |
INTER_ID VARCHAR(255) |
INT_TIME VARCHAR(13) |
STUDENT_RESPONSE VARCHAR(255) |
RESULT VARCHAR(16) |
LATENCY VARCHAR(13) |
RECORD_TIME DATETIME |
Indexes |
stud_crs_sess_idx cr_sco_int_rs_idx |
2.4 Reengineering Plan:
Software re-engineering involves the use of specialized tools and procedures which allow us to break down a program into its original binary code and view the inner details. The reengineering plan will consist of the following phases:
1. Implementation Recovery - This stage involves determining the purpose of the software. By looking at the behavior of a program and how it is built you can predict its rules. As the observation becomes more in-depth and involved the prediction becomes more accurate. The steps involved in in the implementation recovery stage are as follows:
· Browse the existing documentation. This step allows you to learn the original design of the program and its intended purpose (Blaha, 2014)
· Create a modeling tool. This step allows you to determine the development style and the database structure.
2. Design Recovery – During this stage you break down the mechanics of the program. This allows you to break down the source code into a binary format.
3. Analysis Recovery – This stage involves refining the existing model based upon the
observations you have made. The steps involved in analysis recovery are as follows:
· Clarify the design. This step involves removing any design artifacts.
· Eliminate redundancy. This step involves removing duplicate sets of data.
4. Iteration – As is common throughout all software engineering endeavors the design will not be perfect and you will need to backtrack to correct mistakes and oversights
(blaha, 2014).
Some of the benefits of software re-engineering include enhancing features, and fixing bugs, increasing the robustness and security of the design, and helping software testers study viruses and other malicious code. The objectives of the reengineering plan for the CourseMill application will consist of the following:
1. Refactoring the design to provide increases transparency to system administrators. CourseMill stores javascript pages on the application server however currently those scripts cannot be created or viewed by system administrators.
2. Updating the JDBC (Java Database Connection) interface. The current interface produces SQLExceptions on valid SQL queries.
3. Increasing the robustness and security of the design by identifying possible malware and viruses (Richa, 2014).
Section 3 API Evaluation
3.1 API Designs
In the following section the common API’s used in the CourseMill application will be reviewed. In the evaluation the completeness, suitability, and overall design quality will be critiqued. Additionally, diagrams will be created which show illustrate the designated API’s design and identify the entry points into the application. And finally there will be an assessment of the API documentation to include the overall clarity, completeness, and ease of use.
SCORM APIs
The SCORM (Sharable Content Object Reference Model) API provides a set of technical standards for online learning software. These standards guide programmers to write code that plays well with other learning software. These standards set by SCORM also govern the way the LMS (the CourseMill application) and the software learning products communicate. This allows the CourseMill database to accept a wide variety of software learning products which can be uploaded to the database and then used by others within the CourseMill Application.
The following figure 3 SCORM API Interface class diagram shows the integration architecture which identifies the entry points into the application. The first class is the integration layer which is the interface between the SCORM engine and the CourseMill application. This layer facilitates communications and acts as a buffer to keep the systems separate. The integration layer is the only part of the SCORM API which customizable for the specified LMS. In this class all of the methods are defined but not implemented. The DefaultIntegration class in the middle provides all of the default methods which are standard for all implementations. Finally, you have the ClientIntegration classes which allow you to customer design methods for each client though usually only the default methods are used.
Figure 3 SCORM API Interface
The SCORM API documentation reflects the fact that SCORM isn’t truly a set of standards that were written from the ground up. Instead, the API referenced the industry standards that were already in place and solved part of the problem and then added to the standards to create a complete solution. This complete solution essentially told developers the proper way to use the standards that were already in place. SCORM is widely used and very well documented, however it does have a shortage of features which has caused CourseMill to migrate to a more modern API known as the Tin Can API.
Tin Can APIs
While SCORM is still the most widely used online learning standard, the Tin Can API Which is also known at the Experience or xAPI is quickly replacing it due to the enhanced features and simplified architecture. All of the SCORM content can still be used in a xAPI environment through the SCORM Engine interface architecture which is shown in figure 3. Essentially the xAPI is an evolved SCORM API which is backwards compatible and retains all of the features of its predecessor while adding additional features to include application security, mobile application features, and the ability to transition from a stationary to a mobile platform.
The documentation for the Tin Can API is complete, thorough, and easy to understand. It provides increased encapsulation thereby increasing the simplicity of the standard while increasing the functionality at the same time. As the internet grows from specified desktops and laptops to mobile devices and finally to most electronics (i.e the IOT “Internet of Things”) cross platform becomes vital to a modern API and it is that feature which makes it suitable for the CourseMill Application.
The Java General APIs
The java API is a general API which provides a full set of interfaces that utilize the Java programming language. In Java the utilization of Interface objects provides a set of common methods that can be called upon by unrelated classes to perform an action with the intricacies of that action being defined by the class that called upon the interface (Jensen, M. 2009). Programming to an interface allows a developer to utilize the object oriented principle of Abstraction which is when only the essential pieces of logic needed to accomplish an action are analyzed and all else is ignored. Achievement of abstraction occurs when the object oriented principle of Encapsulation is followed. Encapsulation is when an interface object represents, and is only tasked with representing, what an object can do while the details of how it does it are ignored. This compartmentalization of logic greatly simplifies programming methods and allows for an easier understanding of complex programs.
The Figure 4 class diagram shows a person wishing to enroll in Coursemill who “is” either a student or professor and “has” an address. In java this is known as the inheritance hierarchy which is a concept in object oriented programming where a new class is created by acquiring a parent class’s existing capabilities. Documentation regarding the Java interfaces can be found at oracle.com with Java arguably being the most well documented API in existence. The Java API is well suited for any application and is the most one of the most widely used programming languages.
Figure 4 Java Inheritance Hierarchy Diagram
Web Services APIs
In addition to general APIs there are also web APIs which are known as web services. Web Services are a form of communication which allows us to share data between different programs on separate computers which may reside on different platforms. They are composed of multiple pieces of customer developed code and allow two or more web applications to communicate with each other. The advantage of web services is that they allow organizations to reuse code built by others which in turn allows them to be used by IT Systems as services provided over the internet.
To allow these different web services to communicate a set of standards which spells out the interaction between these services has been developed. The most common of these standards is known as SOAP (Simple Object Access Protocol). The SOAP API is a standard for making XML requests online, which defines what the request and response in XML looks like and how to share those messages back and forth. The activity diagram shown below in figure 6 illustrates the activities of a SOAP API.
Figure 5 SOAP API Activity Diagram
3.1.5 Java EJB APIs
EJB Enterprise JavaBeans which is also known as enterprise bean allows for the accounting of data relationships, error handling, transactions, security, scalability, and connectivity. Common problems can be resolved with common solutions through the use of a framework, and JBE was designed to be that framework. It handles the component deployment to let you focus on writing applications. Each EJB can act on its own it contains an interface, performs services for clients, and tracks its own data. The following figure 6 diagram shows the interaction between the EJB API on the client and server side applications.
Figure 6 Java EJB Diagram
The Advantages of EJBs are that they are a common model for building code, they solve many problems in a common manner, and they provide an easy solution for managing components. The disadvantages are the requirement of an expensive application server, often more than is needed for the application, and there are many more flexible alternatives. An expensive application server is already required for the CourseMill application and the flexibility is more than compensated for by the ease of configuration and thorough documentation.
Section 4 API Efficiency, Reliability, and Maintainability
The three attributes that define an API are efficiency, reliability, and maintainability. Efficient APIs allow developers to produce complicated code in less time. Reliable APIs ensure a steady exchange of information between applications. And maintainable APIs allow developers in the maintenance phase of a project to continue to improve the application through updates and patches while maintaining compatibility with other programs. There are factors which both hinder and improve these attributes.
4.1 SCORM APIs
|
|
SCORM APIs |
|||
Efficiency Strengths |
Efficiency Weakness |
Maintainability Strengths |
Maintainability Weakness |
Reliability Strengths |
Reliability Weakness |
Once content is published it can play on multiple platforms.
|
Use of JavaScript is a limiting communication technique.
|
Publicly defined and direct vocabulary.
|
SCORM API adapter implements complex rules for reporting errors and tracking data this requires the availability of java technology on the host machine.
|
Well Documented concepts with thorough examples
|
Requires constant internet communications.
|
Well defined packaging model allowing courses to be uploaded using a simple zip file.
|
Dynamic content is not permitted requiring all files used by the LMS to be created ahead of time.
|
|
Content must be stored within an LMS.
|
Use of the JavaScript architecture means no reliance on plug-ins, Active X controls, or applets which means very few environmental support issues
|
|
4.2 Tin Can APIs
|
|
Tin Can APIs |
|||
Efficiency Strengths |
Efficiency Weakness |
Maintainability Strengths |
Maintainability Weakness |
Reliability Strengths |
Reliability Weakness |
Provides transparent debugging.
|
Not all LMS’s have adopted the specification. Dynamic content is not permitted requiring all files used by the LMS to be created ahead of time.
|
Content can be stored and accessed within the cloud and does not need to reside within the LMS database. |
New features increase the complexity and while increased encapsulation helps developers to integrate the new features, it can be a hindrance during troubleshooting. |
Created in a software cooperative environment allowing for testing in more environments against more content. |
LMS’s will need to build new reporting capabilities to take advantage of the new features. The compatibility of those capabilities will have to be developed and refined. |
Expanded functionality through the use of web services.
|
There is a learning curve associated with the new standard.
|
|
|
Supports session less communications. |
|
4.3 The Java General APIs
|
|
The Java General APIs |
|||
Efficiency Strengths |
Efficiency Weakness |
Maintainability Strengths |
Maintainability Weakness |
Reliability Strengths |
Reliability Weakness |
Java programs can be Written once and ran on any machine with the use of the Java Virtual Machine. |
Java required a designated port. |
Most commonly used programming language with the most extensive documentation meaning most issues have already been encountered, resolved, and the solutions documented. |
Object oriented methodology has a steep learning curve. Often times code is functional and efficient but lacks clarity. |
Platform independent due to the Java Virtual Machine interpreting the java methods in the runtime environment. |
Java hides the relationship between the hardware and the code. Because of this it is difficult to determine the relationship between the code and what the hardware actually does. |
Java can be interpreted at run time by the virtual machine providing flexibility however it can also be compiled at runtime to run directly on the native machine. When compiled directly Java is one of the fastest language platforms. |
Dynamic content is not permitted requiring all files used by the LMS to be created ahead of time.
|
JIT (just in time) compiler and JVM (java virtual machine) interpreter compile and interpret the code alleviating the possibility of version mismatches.
|
Java does not have the ability to automatically self-update meaning Java updates must be applied manually. |
Use of the JavaScript architecture means no reliance on plug-ins, Active X controls, or applets which means very few environmental support issues
|
|
4.4 Web Services APIs
|
|
Web Services APIs |
|||
Efficiency Strengths |
Efficiency Weakness |
Maintainability Strengths |
Maintainability Weakness |
Reliability Strengths |
Reliability Weakness |
allows organizations to reuse code built by others which in turn allows them to be used by IT Systems as services provided over the internet. |
The use of the XML wrapper causes an increased strain on bandwidth. |
Uses standard HTML forms which are less complex than XML. |
High degree of verbosity within the syntax which results in a specification that inherently lacks clarity. |
Easy to operate and use and allows the use of legacy standards. |
None found |
Provides the use of a common framework. |
|
Can be used with any programming model. |
Relies on XML which is being replaced by URL (Universal Resource Locator) calls. |
|
|
4.5 Java EJB APIs
|
|
Web Services APIs |
|||
Efficiency Strengths |
Efficiency Weakness |
Maintainability Strengths |
Maintainability Weakness |
Reliability Strengths |
Reliability Weakness |
allows for the accounting of data relationships, error handling, transactions, security, scalability, and connectivity. |
Lacks Descriptors forcing the developer to specify SQL information. |
Provides a framework where common problems can be resolved with common solutions. |
Lacks backwards compatibility with previous versions |
Provide a common model for building code which results in robust applications. |
Methods display inconsistent behaviour. The create method for does not return an error when trying to create an entity with a primary key that already exists (Suleiman, 2004). |
Handles the component deployment allowing the developer to focus on writing applications. |
|
|
|
|
|
Section 5 Recommendations for Improvement
5.1 SCORM API
SCORM API |
||
Efficiency Improvements |
Maintainability Improvements |
Reliability Improvements |
Updating to the newer Tin Can API will allow for the use of web services over JavaScript though JavaScript can still be used when desired.
|
The SCORM API adapter implements complex rules for reporting errors and tracking data this requires the availability of java technology on the host machine.
|
Updating to the Tin Can API will allow session less communication.
|
Dynamic content will be permitted with the implementation of the Tin Can API.
|
Updating to the newer Tin Can API will allow users to access developed content wherever it is stored.
|
|
5.2 Tin Can API
Tin Can API |
||
Efficiency Improvements |
Maintainability Improvements |
Reliability Improvements |
The learning curve for adopting a new standard can be mitigated either through a focused effort on training developers or the hiring or developers who already have a familiarity with the standard.
|
Training which provides a comparison between the SCORM and Tin Can API will allow developers to identify areas where the new standards are likely to cause issues. This will provide a good starting point for troubleshooting.
|
The gradual implementation of the new standard along verified backups which are updated daily will allow developers to more easily recover if an integration issue occurs.
|
5.3 The Java General APIs
The Java General APIs |
||
Efficiency Improvements |
Maintainability Improvements |
Reliability Improvements |
Java continually improves in efficiency with every release. To maintain maximum efficiency, use the latest versions of the JVM and the JIT (Just in Time) compiler.
|
An organization must make a commitment to either hire experienced programmers or provide ongoing training for new hires.
|
comments which describe the overall purpose of the class, the individual purpose of the methods, and how the class is integrated with other classes should be included in every class.
|
|
Because Java does not provide automated updates a documented procedure should be developed which outlines the necessary steps to update the version of java. |
|
5.4 Web Services APIs
Web Services APIs |
||
Efficiency Improvements |
Maintainability Improvements |
Reliability Improvements |
If bandwidth is a concern, then use of the REST API which wraps data in bare XML elements should be considered.
|
The REST API is simpler, less verbose and relies on URL calls.
|
|
5.5 Java EJB API
Java EJB API |
||
Efficiency Improvements |
Maintainability Improvements |
Reliability Improvements |
The development of descriptors will alleviate the burden of developing specific SQL information in the source file.
|
Adding the feature of backwards compatibility for future releases should be developed.
|
Method behaviour should be standardized and tested in future releases.
|
Section 6 Configuration and Change Management
6.1 Change Management Process
The requirements of every project will change over time and flexibility is needed to allow room for requirements enhancements and corrections. The goal of the Agile methodology is to manage change rather than prevent it because implementing change coincides with improving the product. To provide this change we will use a framework which addresses the different factors responsible for software project failures. In the following diagram we will show how changes will be introduced based upon their categorization as defective repair or enhancements to a functioning system. All defect repair requests will go through an approval process which determines the cost and time of repair along with the impact to the system. If the impact is of minimal value or not visible to the end user, it will likely be listed very low on the priority list
6.2 Configuration Change requirements tools
Verification of the software will be achieved through functional testing by assigned test engineer. Functional testing utilizes the provided input by the user to receive the output of the system. The expected output of the system is then compared to the actual output to determine the quality of the output. Performance testing will ensure the provided hardware is able to handle the assigned workload and not have a catastrophic failure. It will also bring to light issues that would not be detected under normal circumstances ensuring an unacceptable behavior or loss of network service does not occur during operating conditions. Some of the verification and validation techniques employed include simple checks, prototyping, functional test design, and model based verification and validation.
Requirements verification includes checks for the following conditions. If any of these requirements are met a requirement change is needed:
· The product is built right.
· Each step of the process yields the correct product.
· The software requirements are consistent with the specification.
Requirements validation checks for the following conditions:
· The right product is being built.
· The software will satisfy the customer needs.
· The software requirements are consistent with the goals and requirements of the project.
Configuration and change management is critical especially when deploying a Learning Management System. Because technology changes at a faster rate, and change is inevitable developers need to adapt for this change. A balanced framework usually focusses on both stakeholders and technology. In the process of achieving LMS, five methodologies are considered. For this project, the technology work-streams comprise of system policies, course migration and system administration. (Rustici, 2009). The stakeholder work-streams include communication, training and support. These phases are:
6.3 Initiate:
this is the first phase and essentially involves starting up the LMS project. The LMS project is initiated by defining its purpose and scope, which is previously done. Clear justification for initiation is required. The phase is comprised of a cooperative team, with members of administration, IT, and faculty working to together to ensure the following:
• Identification and engagement of stakeholders.
• Team identification structure and roles.
• Project facilitation kick-off meeting.
• Jointly ensure development of the Project Charter.
• Develop high-level project plan by using the Work Breakdown Structure.
6.4 Plan
The Plan phase entails thorough description the developers take to plan the project in detail. Informed decisions are made during the project development, for instance, training and education programs. Any other support model is defined in details. The objective here will include:
• Definition of the LMS system requirements and scope.
• Develop detailed project plans.
• Identification of support resources.
Develop: This is the development phase where the execution of the plan is laid-out. The developing team does it during the planning phase of the project. Here the objectives of the development phase include:
• Developing and launch communications.
• Create training and education materials.
• Document admin and all the support procedures.
Pilot: A pilot project is usually a small-scale and short-term project that assists project team members learn and gain understanding on how a large-scale LMS implementation might work in practice. Others use it as a purpose of modeling and simulation. A good pilot provides a platform for the stakeholders and organization to test and prove the existing assumptions. It is critical before actual spending to a real project especially on time and money as major resources. Objectives of the pilot include:
• Conducting a controlled live test.
• Conduct pilot participant training.
• Deliver communications deliverables.
• Conduct course conversion, cleanup and review.
• Obtain feedback and comments hence make revisions.
• Complete admin procedures.
Deploy- This is the final phase, where the LMS configuration is deployed. The support network should be completed and set the fundamentals for the initial launch to support the entire LMS project. The objectives here include:
• Refine configuration, support and training.
• Conduct post-pilot review
• Complete phased migration.
• Support the system.
Section 7 Software Construction Tools and Technique
7.1 SCORM API
SCORM being one of the important of standards for the software development, it ensures constant and continued growth, expansion of all LMS, and above all the evolution of E-learning. Standards ensures the aspect of efficiencies and synergies is achieved.
Since it stands for Sharable Content Object Reference Model (SCORM), it therefore allows learning content from any vendor to play a significant role especially in ensuring SCORM conformant in systems and applications. It thus works well with the Learning Management System (LMS). SCORM API consolidates the functions of ARIADNE, IMS, IEEE’s and AICC into one unified reference model that works bet to achieve a common stipulated goal. It can focus on the Run-Time Environment, which specifies how best the content should function the moment it is launched by the LMS. On the other hand, other than the Run-Time Environment, Content Aggregation Model focusses on the packaging the content for the purposes of importing into an LMS. It therefore involves massive creation of XML files that a Learning Management System (LMS) can read and learn everything it needs to know about the designated content.
7.2 Construction Tool
SCORM can also achieve its goals by use of the API Adapter. This project, the API Adapter should operate in a window that acts like an opener window or a parent frame of the window, which contains the intended content. This means that it is possible for the LMS to launch the content either in a frameset of a new window. The API Adapter must work in by applying the ECMAScript (JavaScript). The API object will be accessible though the DOM. The Adapter must implement the following functions: (LEARNING MANAGEMENT SYSTEMS (LMS), 2015)
LMSInitialize ()
LMSGetValue ()
LMSFinish ()
LMSSetValue ()
LMSGetLastError ()
LMSGetDiagnostic ()
LMSCommit ()
LMSGetErrorString ()
SCORM will ensure the Learning Management System (LMS) accomplished the listed functions:
Efficiency Improvements:
· Updating to the newer Tin Can API will allow the use of web services over JavaScript. Even if JavaScript can be help on the same functionality when need be.
· Dynamic content can be incorporated especially with the implementation of the Tin Can API.
· SCORM usually provide great opportunities for significant improvements in business in which the software is intended to run. It is more cost-effective since it enables reuse of the content for faster development. The Content can develop once then, reusing it for multiple audiences and contexts, this at the far end strives to reduce development time.
It also enables sharing of content between systems
—Moving to
· SCORM fosters the aspect of integration to be much easier between existing and future systems, hence protecting the company’s infrastructure.
· SCORM learning content can be integrated with, and make deliverables with the past and future SCORM compliant systems in operations.
Reduce cost of content maintenance
· This is possible by enabling the organization to maintain content in-house especially by use of the tool chosen regardless of system or content vendor, It therefore, lowers the maintenance cost.
Maximize technology investments
· SCORM content can be launched comfortably, operated on, and tracked by any SCORM-enabled compliant. It does not matter whether a third party of in-house developed the content.
It train developers at a faster rate
· It is achieved when the SCORM adoption continues to expand the talent diversity
Leverage on best practices
· It usually utilizes the advantage of collective knowledge and expertise of the growing SCORM community which, continually evolving.
Maintainability Improvements:
· The SCORM API adapter ensures total implementation on the rules for reporting errors and tracking data. It calls for the availability of java technology on the host machine.
References:
Blaha, Michael (October 19, 2001) Reverse Engineering for the Product Assessment Retrieved on February 20, 2016 from http://www.informit.com/articles/article.aspx?p=23692&seqNum=6
Deitel, P., & Deitel, H. (2015). Object-Oriented Programming: Inheritance. In Java How to
Program (Early Objects) (10th ed., p. 361). Upper Saddle River: Pearson Custom Publishing.
“Jensen, M” (2009). Program to an interface, not an implementation. Retrieved from
http://www.fatagnus.com/program-to-an-interface-not-an-implementation/
Richa (2014). Reverse engineering tutorial: how to reverse engineer any software. Retrieved from: https://blog.udemy.com/reverse-engineering-tutorial/
Ostyn, Claude (2003). A bried introduction to SCORM. Retrieved from
http://scorm.com/wp-content/assets/cookbook/SCORM%201_2%20Overview.htm
SCORM, E (2014). SCORM Engine Integration Architecture. Retrieved from
http://rustici-docs.s3.amazonaws.com/engine/2014.1.x/6-integrationarchitecture.html
Suleiman, H (2004). A Critique of EJB 3. Retrieved from
http://www.theserverside.com/news/1377073/A-Critique-of-EJB-3
+requestData() +setDataType(dataType)() +writeObject(request)() +flush() +close()
-Client connection: Socket = "localhost", port 55 -ObjectOutputStream:type -ObjectInputStream:type
Server
+requestData() +setDataType(dataType)() +writeObject(request)() +flush() +close()
-Client connection: Socket = "localhost", port 55 -ObjectOutputStream:type -ObjectInputStream:type
Client
Document and Submit Change
request
Workflow Diagram depicting Change Requests
NO
Notify initiator CR is
opened
Yes
Notify initiator modification
of CR required
Assign CR to analyst
Identify Change Type
Establish Impact
Valid
Request?
Verify type Enhancement
or Defect
Does the
Change meet
the Criteria?
YesYes
YES
Implement the specified
Change
NO
Document CR implement
when Criteria is met
Text
�
Document and Submit Change request
Workflow Diagram depicting Change Requests
NO
Valid Request?
Verify type Enhancement or Defect
Notify initiator CR is opened
Yes
Notify initiator modification of CR required
Assign CR to analyst
Identify Change Type
Establish Impact
Does the Change meet the Criteria?
Yes
Yes
YES
Implement the specified Change
NO
Document CR implement when Criteria is met
+requestData()
+setDataType(dataType)()
+writeObject(request)()
+flush()
+close()
-Client connection: Socket = "localhost", port 55
-ObjectOutputStream:type
-ObjectInputStream:type
Client
+requestData()
+setDataType(dataType)()
+writeObject(request)()
+flush()
+close()
-Client connection: Socket = "localhost", port 55
-ObjectOutputStream:type
-ObjectInputStream:type
Server

Get help from top-rated tutors in any subject.
Efficiently complete your homework and academic assignments by getting help from the experts at homeworkarchive.com