educational software development challenges

59
Educational Software Development Challenges 1 Colorado Technical University CS698-1602A-01 Capstone Project Educational Software Development Challenges IP5 – Technical Report Tamaro J. Green 5/9/2016

Upload: esc

Post on 30-Nov-2023

0 views

Category:

Documents


0 download

TRANSCRIPT

Educational Software Development Challenges 1

Colorado Technical University

CS698-1602A-01

Capstone Project

Educational Software Development Challenges

IP5 – Technical Report

Tamaro J. Green

5/9/2016

Educational Software Development Challenges 2

Abstract

This project highlights techniques for identifying and solving certain problems in

educational software development. Noted challenges in software engineering projects that have

been well documented include object relational impedance, building systems for users with

limited system resources, creating a consistent and familiar user experience, and data security.

My research reviews the history of some of these challenges and lists some common tactics that

have been used in the educational software industry to address these situations.

This document identifies techniques on how to address these issues and how to control

common problems that arise in the development of educational software. My research also

provides best practices in analyzing problems in software development and managing

educational software projects. The results provide methods of evaluating costs, risks, benefits,

and constraints for software projects. They also examine some of the emerging technologies and

how they are affecting educational software development with suggestions for approaches to

improvement.

I received guidance from educators and students on successful educational software tools

and practices. The Computer Aided Software Engineering (CASE) Tools implemented for

analyzing and recording data and modeling include Microsoft® Project, Microsoft® Excel,

Oracle® Jdeveloper, and Modeliosoft Modelio. I also received guidance from software

specialists, developers, testers, and trainers from companies in the educational software arena.

Educational Software Development Challenges 3

Table of Contents

1 Introduction.............................................................................................................................7

1.1 Project Outline...............................................................................................................7

1.1.1 Object Relational Impedance..........................................................................8

1.1.2 Limited System Resources..............................................................................8

1.1.3 Data Security...................................................................................................9

1.1.4 User Experience..............................................................................................9

1.2 Problem Identification...................................................................................................9

1.2.1 Other Object Relational Mapping Solutions available..................................12

1.2.2 Improving System Resource Usage..............................................................13

2 Topic Research......................................................................................................................14

2.1 Research Execution......................................................................................................14

2.2 Research Results..........................................................................................................14

2.2.1 Research Summary........................................................................................15

2.2.2 Measurable Results.......................................................................................15

2.2.3 Effectiveness of Research.............................................................................18

3 Topic Solution........................................................................................................................19

3.1 Proposed Solution........................................................................................................19

3.2 Solution Justification...................................................................................................22

3.3 Other Methods for Statistical Analysis........................................................................24

4 Project Plan...........................................................................................................................25

4.1 Project Timeline and Resources...................................................................................26

Educational Software Development Challenges 4

4.2 Risk Analysis...............................................................................................................38

4.2.1 Major Risks and Mitigation Strategies..........................................................38

4.3 Cost Benefit Analysis...................................................................................................39

4.3.1 Break Even Analysis.....................................................................................43

4.3.2 Project Expenses...........................................................................................43

4.4 User Focused Interactions............................................................................................46

4.5 Resource Management.................................................................................................47

5 Technical Report...................................................................................................................48

5.1 Financial Analysis........................................................................................................48

5.2 Emerging Trends..........................................................................................................49

5.3 Concurrent Programming.............................................................................................50

5.4 Cybersecurity...............................................................................................................50

5.4.1 Securing Data at Rest....................................................................................51

5.4.2 Securing Data in Motion...............................................................................52

5.5 Educational Software Quality Assurance.....................................................................52

5.5.1 Conclusion and Future Research...................................................................54

6 Service Marks and Trademarks..........................................................................................55

7 References..............................................................................................................................56

Educational Software Development Challenges 5

Table of Figures

Figure 1: Sub Categories of Challenges.............................................................................18

Figure 2: Weighted Values for Sub Categories..................................................................19

Figure 3: Simple Multiattributes Rating Technique (SMART).........................................20

Figure 4: Replacement or Retirement Analysis.................................................................21

Figure 5: Simplex Method.................................................................................................21

Figure 6: Project Schedule.................................................................................................25

Figure 7: Agile Sprints.......................................................................................................25

Figure 8: Agile Project Gantt Chart...................................................................................25

Figure 9: Software Challenges Sub Categories.................................................................26

Figure 10: Project Timeline...............................................................................................27

Figure 11: Burndown Chart...............................................................................................28

Figure 12: Cost Overview..................................................................................................29

FIgure 13: Resource Overview..........................................................................................30

Figure 14: Cash Flow.........................................................................................................31

Figure 15: Work Overview................................................................................................32

Figure 16: Overallocated Resources..................................................................................33

FIgure 17: Cost Overruns...................................................................................................34

Figure 18: Earned Value.....................................................................................................35

Figure 19: Task Cost Overview.........................................................................................36

FIgure 20: Milestone Report..............................................................................................37

Educational Software Development Challenges 6

Figure 21: Risk Analysis....................................................................................................39

Figure 22: Project Breakeven Analysis..............................................................................43

Figure 23: Profit from Purchases.......................................................................................49

Figure 24: Security Considerations....................................................................................51

Table of Tables

Table 1: Problem Sub Categories.......................................................................................17

Table 2: Project Expenses Table........................................................................................46

Educational Software Development Challenges 7

1 Introduction

Revision Table

Revision Date Author Description

IP1 4/11/2016 Tamaro Green Introduction

IP2 4/18/2016 Tamaro Green Topic Research

IP3 4/25/2016 Tamaro Green Topic Solution

IP4 5/4/2016 Tamaro Green Project Plan

IP5 5/9/2016 Tamaro Green Technical Report

1.1 Project Outline

Throughout the software development life cycle, problems can arise that may impede a

software systems project. In previous courses, I have highlighted how software engineering can

be applied to solve various software problems in the development of educational software. Some

of the challenges that often occur for software engineering teams include (a) translating object

data to tables, (b) making software available to users with limited system resources, (c) providing

a user experience that is familiar and consistent, and (d) securing data in transit and data in

motion (Harris, 2013; Krishna et al, 2014; Reinbach, 1997). These are the areas of software

engineering that will be addressed in this document.

I have chosen to address problems found with educational software development

organizations because of the following attributes:

Complexity - Applications and databases for educational software are complex systems

that usually integrate with a large number of other systems and require compliance with

local, state, and federal regulations (Data Quality Campaign, 2013).

Educational Software Development Challenges 8

Scope - The project will be limited to the analysis and design phases for these

particular problems and will focus on approaches to solutions and not the solutions

themselves.

Domain Knowledge - I have several years of experience working in companies

and organizations that provide educational software. I am familiar with the processes and

procedures of these organizations and software development in the area of education. I

have also studied many of the peculiarities of educational software in previous courses.

Accessibility - I have communication with technology professionals and

educators that I can contact for research and information in the domain of education and

have started research in this area which has influenced my topics and content (Canada,

2014; Cianca, 2012; Seyoum, 2011).

1.1.1 Object Relational Impedance

One challenge in developing a client server architecture is the mapping of object oriented

program languages to relational database management systems. This is often the case with

educational software as relational databases are the databases of choice for most applications

because of their structure and security (Kieth and Stafford, 2008).

1.1.2 Limited System Resources

Often users of educational software have less system resources than mainstream users

especially in rural communities (Cianca, 2012; Seyoum, 2011). Classroom computers are

frequently outdated. Additionally, educators, students, and faculty may like to access software

on other platforms such as tablets and mobile devices (Haslett., McHugo, Bond, & Drake,

Educational Software Development Challenges 9

2014). Building software with target platforms in mind that may have less CPU, storage

capacity, and bandwidth are also factors that might influence the success of the application.

1.1.3 Data Security

The US Department of Education and other federal organizations have regulated the

development of software applications and student privacy. The Family Educational Rights and

Privacy Act (FERPA) plays an integral role in the regulations of educational software (Data

Quality Campaign, 2013). Additionally, the software industry has also created certain standards

regarding compliance to federal, state, and local regulations.

1.1.4 User Experience

Over the years, educational software has made developments to the extent that there are

standards in place that create common interfaces for users and programs to follow when

communicating with one another (Xin-hua, 2007). Standards such as Advanced Distributed

Learning (ADL) and the Sharable Content Object Reference Model (SCORM) provide

guidelines for the development of educational software (Letts, 2002). Educational software can

include instructional aids, learning platforms, administrative applications, and assessment

programs. Additional guidelines can include organizational policies and standards that can be

applied to improve the experience of users and create interfaces for other applications to

integrate successfully (Caravantes & Galán, 2011).

1.2 Problem Identification

Three broad methods for solving software problems include analysis, decision support

methodologies, and optimization. Software problems vary throughout the various stages of the

software system life cycle. Problems solved early in the software development life cycle can

cost significantly less than problems found after a software system is in production. Methods for

Educational Software Development Challenges 10

identifying potential problems in the design and analysis stage can greatly improve the chances

of success for a software project (Gonsalves, Kawabata, & Itoh, 2009).

There are many types of software analysis methods including tradeoff analyses,

sensitivity analyses, and other qualitative and quantitative analysis methods. A tradeoff analysis

determines the feasibility of alternative solutions when encountering a software problem. A

sensitivity analysis describes the potential for errors in a software system. There are many

quantitative analysis methods available including fault analysis, statistical analysis, static code

analysis, and dynamic code analysis (Box, Hunter, & Hunter, 1978; ESL Tool Suite Beefs Up Its

Software Analysis Side, 2005; Fleisher, 1984; Kulinich, 2014; Wai Chung et al, 2014).

Decision support systems can assist developers when choosing between various options

for solving a software problem (Kulinich, 2014). Decision support systems provide quantitative

methods for evaluating the options by isolating the problem from other factors that might

influence the software and then creating functions and weights for the factors that directly

influence the problem. Decision support systems can be useful if the possible solutions to the

problem are already identified and the problem can be defined in terms of functions for the

problem and goals for solving the problem.

Optimization methods are beneficial when the solution to a software problem is an

improvement of the existing software (Chen et al, 2015). Optimization of the design or coding

of a software problem can be approached differently depending on the area of the software

application or system that needs to be improved. For databases, optimization could mean

optimizing the queries, indexes, or tables for a database system. For an application, optimization

could mean improving the performance of the code by reducing the complexity, code size, and

Educational Software Development Challenges 11

fault tolerance of the code. Application optimization can also improve the performance,

modularity, efficiency, or other quality attribute of the code.

Wai Chung et al. (2014) describe how a sensitivity analysis can be used to find optimal

solutions to an economic problem. A sensitivity analysis allows developers to find quantitative

measures for both qualitative and quantitative factors. Similar methods of finding the sensitivity

to various inputs can be used in a software systems problem. Chen et al. (2015) provides a

strategy for how the optimization of sensitivity and complexity analyses can be applied to

software defined networks. Solving software problems also includes testing, verification, and

validation of system requirements and the software system. There are additionally many

methods for verification and validation of a software system. For example, Munro and Clark

(2013) suggest an assessment application for assessing and testing a software system.

For solving software problems, decision, analysis, and optimization methods provide

quantitative and qualitative information about the problem. Finding ways to isolate the problem

and finding visual or mathematical models for the problem are software engineering techniques

that with practice, can be an adequate methodology for approaching any software problem.

It is important for developers to understand that objects exist in a relationship to other

objects (Kieth & Stafford, 2008). An object or entity can be represented as a table in a database.

For example, the objects student, classroom, teacher, and book are all individual objects that

have relationships to one another. These relationships must be represented in the application as

well as in the database.

Transactions also play a role in how objects are bound to the database. Transactions can

have an effect on objects state, whether the transaction has been committed or the transaction has

been rolled back. Transactions takes place in a transaction manager in a cache before being

Educational Software Development Challenges 12

written to the database. Caches increase performance of the system by allowing transactions to

occur locally or on a business layer prior to being written to the database. Caches increase

performance of the system by allowing transactions to occur locally or on a business layer prior

to being written on the database layer. Strategies for maintaining isolation in transactions

include (Kieth & Stafford, 2008):

implicit copy-on-read – Copy information to cache when the user accesses the object

implicit copy-on-write – Copy information to cache when user writes to the object

explicit copy – copy information explicitly by user before writing to object

1.2.1 Other Object Relational Mapping Solutions available

Hibernate is one of the more popular tools that assist in performing Object Relational

mapping. It is primary used for mapping Java Objects to Relational Database mapping systems.

In a comparison of Hibernate to the native Java Database Connector (JDBC). Ghandeharizadeh

and Mutha (2014) noted that Hibernate uses more Structured Query Language (SQL) queries and

query optimizations could help Hibernate to perform better.

Snyder and O'Conner (2005) also highlight some advantages of SimpleORM in that it

does not use extensible Markup Language (XML) and can be compiled in Java and J#. Some

approaches to the object relational impedance problem have been attempts at storing objects in

the database. Seng (2003) benchmarked object oriented, relational, network, and hierarchical

database systems. Seng also developed a framework for the analysis of these systems based on

the workload. A framework presents a model for which to approach various problems in

software development. These databases have notable differences, however more recently, there

have been some improvements on object oriented and object relational databases.

Educational Software Development Challenges 13

There is also the option of programming queries to object oriented programming

languages. .Net Language Integrated Query is one example for Microsoft® .Net programming

languages (Torgerson, 2006). LINQ works with mapping both SQL and XML. For Oracle®

Java there are similar tools for programming queries .

Object oriented databases and object relational databases have not dominated traditional

relational database management systems (Lodhi & Ghazali, 2007). Lodhi and Ghazali (2007)

suggest three properties that need to be addressed by object relational mapping which are

attributes, inheritance, and relationships. Attributes are properties of an object. Inheritance is

how the properties of a child object contain the properties of the parent object. Relationships are

how the objects are linked to one another. Additional frameworks for managing object relational

mapping include Java Persistence API (Java), CakePHP (PHP), Django (Python), and Sequalize

(NodeJS).

1.2.2 Improving System Resource Usage

Refining the software development methodologies have led to a maturity of the software

development process. Product LifeCycle Management (PLM) is the management of product

development from conception to final product (Bilello, 2012). Gathering requirements for

educational software has always been a challenge but there has been increasing demand for this

type of software and growing research showing the effectiveness of educational software. Hui,

C., and Kanhua, Y. (2015) identify how distance learning allows professors to reach more

students.

Educational Software Development Challenges 14

2 Topic Research

1.3 Research Execution

Three researching techniques that can assist in gathering information, defining needs, and

defining requirements are documenting research, design based research, and evidence based

software engineering. These techniques can be implemented for a variety of software projects

and have the possibility of assisting in the improvement of the quality and functionality of

software products.

1.4 Research Results

Documentation and training is essential throughout the project life cycle. Adequate

documentation provides non-technical and technical personnel to understand the project and adds

the capability of making changes to the software system if necessary. Research in the concept of

operations and needs and analysis stage should be documented to ensure that the requirements

definition are aligned with the needs of the stakeholders.

Research from the needs and analysis stage should be defined into requirements that can

be traced throughout the project life cycle. Training and help documentation is part of the user

experience. Good documentation also improves security and compliance of the application.

Champney et al. (2010) identify tasks that can be implemented before, during, and after training.

Some of the pre-training tasks performed by training developers and training instructors can be

automated to improve training readiness (Champney et al., 2010).

Documentation and training planning can take place in the design phase to prepare the

information and artifacts necessary to provide user and technical documentation necessary later

in the project life cycle. Documentation and training during software development assists

Educational Software Development Challenges 15

managers in allocating resources and provides artifacts for future projects. Training for both the

developers and the end users can increase the effectiveness of the project teams. Zendler and

Dieter (2012) identify some strengths and perceptions of computer science training. They discuss

two approaches to computer science training, principle based and concept based training. These

approaches to training can also be applied to problems in computer science.

Van Wyck and de Villiers (2014) compare various research methods including

Development Research, Design Science Research, and Design Based Research. These stages

generally include analysis of the problem, design or develop a solution, reflection or conclusion

of the solution. Van Wyck and de Villiers (2014) suggest an iterative approach to design based

research that leads to both real world solutions and theoretical documentation. (Dybå, T,

Kitchenhern, B., and Jorgensen, M. (2005) suggest evidence based software engineering as

software engineering based on scientific research whereas software engineers only implement

tools that have proven scientific results for completing necessary tasks.

1.4.1 Research Summary

Incorporating documentation and training in the project life cycle, design based research,

and evidence based software engineering are techniques that can improve the research and

analysis phases for the software product. These techniques can be implemented alongside formal

research and analysis methods to improve organizational processes and standardized to create

policies for future projects.

1.4.2 Measurable Results

The research of the various problems has allowed for the identification of sub categories

of each area for which the initial problems can be addressed. The following lists of the

subcategories that were addressed from the research are as follows:

Educational Software Development Challenges 16

Object Relational Impedance Traditional RDBMS Object Relational Mapping Object Relational DBMS Object Oriented DBMS System Resources Operating System Network Bandwidth Application level resource management Multi-threading Data Security Authentication Authorization Data in Motion Data at Rest User Experience User Interface User Experience Software Assurance Quality Management

Table 1: Problem Sub Categories

Educational Software Development Challenges 17

The subcategories were then placed in a spreadsheet to add quantitative indexes for reference and

priority ordering and then organized in a visual diagram. First the rankings were qualitatively

ranked based on past experiences. More research can be conducted in this area getting

cumulative information from educational software projects and weighing how certain challenges

affected outcomes for the projects. Table 1 displays the initial spreadsheet and weights. Figure 1

displays the factors in a class diagram and Figure 2 displays the weights in a visual chart to keep

as a reference for the areas of which to apply research.

Educational Software Development Challenges 18

1.4.3 Effectiveness of Research

Sinric (2014) explains how to break up a problem into smaller problems and solve the

smaller individual problems, a process called step wise refinement. Formal methods can be

combined with techniques to improve problem solving. Using stepwise refinement, the original

research topics are divided into children classes of the original four areas identified.

Figure 1: Sub Categories of Challenges

Educational Software Development Challenges 19

3 Topic Solution

1.5 Proposed Solution

After dividing the problem into subcategories and prioritizing the subcategories the following

charts were created to monitor the progress of research in each area:

Figure 2: Weighted Values for Sub Categories

Educational Software Development Challenges 20

A statistical analysis will be conducted to determine feasible solutions for each area.

There are many ways to evaluate multiple attributes of a software system. One technique is the

Simple Multiattributes Rating Technique (SMART) (Oyetunji, & Anderson, 2006). The first step

in SMART is to (I) identify the decision makers, then identify, (ii) the issues, (iii) identify the

attributes of the problems. Next is to (iv) rank the attributes, (v) rate the attributes, (vi)

normalize the ranks by weight, (vii) construct value curves, and (viii) calculate the weighted

scores. Once the weighted scores are calculated a quantitative decision can be made based on

the weighted scores.

For existing software components a decision

must be made whether to keep the existing

component, retire the component, or replace

the component with another. If there is no

decision to replace the component and the

component can be retired then there is a

simple retirement of the existing component.

If the component to replace the existing

component is similar to the original the

evaluation of the costs and benefits should be

identical to the existing component. If all the components compared to be replaced are identical

then the retirement can be compared with similar cost and benefits. The most difficult

Figure 3: Simple Multiattributes Rating Technique

(SMART)

Educational Software Development Challenges 21

comparison will be if all the replacement models are different. This requires a dynamic

comparison of costs and benefits.

Another method for evaluating solutions to a

problem is the simplex method (Simplex method, 2008).

When trying to find an optimal solution a basic solution

is first evaluated. If the first solution is the optimal

solution then the solution is found. If there is no better

solution found and the first solution is not optimal then

there is no solution. If a better solution is found then this

solution is checked to be the optimal solution. The

Simplex Method is commonly used in algorithms

(Simplex method, 2008).

Figure 5: Simplex Method

Figure 4: Replacement or Retirement

Analysis

Educational Software Development Challenges 22

1.6 Solution Justification

In developing educational software requirements may be derived from a variety of areas

including standards, policies, students, educators, faculty, administrators, developers,

organizational management, software testers, and data management personnel. After discussing

challenges with at least one member in each of these areas, there are many of challenges in

developing educational software. Two challenges discovered during my research were in

gathering user requirements and creating a design that meets the requirements in a sustainable

manner.

The first challenge pertains to gathering requirements from the users of the system. There

are various stakeholders involved when gathering requirements. The stakeholders include the

organization that desires the software and the technology team that is building the software.

Sometimes, the stakeholders that desire the software do not adequately represent the intended use

of the software system. If users of the system are not involved in the requirements stage then it is

difficult to represent their needs in the requirements stage.

In certain industries it is difficult to represent the needs of the user, such as in medicine,

education, or the military where the actual users are not always available in the conceptual stages

of the software life cycle. In these industries, a third party of subject matter experts have often

represented the user during needs analysis and provided guidance on what the user should expect

of the software system. This third party often has expertise in their field but may not have

technical expertise on the user systems available.

With advances in technology this gap between subject matter experts and technology

solutions is an area that requires more attention. As client side technologies become more

Educational Software Development Challenges 23

complex and more varied, some new fields of technology are beginning to develop. Research in

this area has created standards and techniques available for bridging this gap. For example,

Knowledge Forum Japan Research Group and Oshima (2005) explore how to transfer

pedagogical methods of knowledge . building into design elements for educational software.

Wegner, Hansen, and Kronberger (2004) also provide techniques for gathering cultural metrics

for developing software.

The second problem which relates to the first, is in taking the requirements and designing

an application in a sustainable manner. When designing a robust and sustainable software

system, it is necessary to conduct research into the tools available and analyze them thoroughly

enough to ensure that the software system will not require a great amount of maintenance five,

ten, or twenty years from now. The development team developing the software now will most

likely not be the same team maintaining the software years from now (Bertrand, 2016).

Therefore it is necessary to provide adequate and accurate documentation and design for

modularity and sustainability.

Further obstacles that may arise when attempting to address these problems are creeping

and changing requirements. One technique for dealing with changing software systems is aspect

oriented design. Focusing on aspects of a design, allows designers to focus on specific uses that

may change such as security or business rules as opposed to having to redesigning the whole

system when a requirement changes. Singh and Sangwan (2013) suggest a framework which

includes quality value metrics in the design process. The aspect oriented framework that they

developed includes concerns and descriptions in the initial artifact developing stage. They then

evaluate the metrics statically and dynamically and develop a quality model.

Educational Software Development Challenges 24

The requirements analysis and system design stages are critical in ensuring that the

project is going in the right direction. User focused design and aspect oriented design are two

techniques that can assist align the project with the needs of the system user.

1.7 Other Methods for Statistical Analysis

Other methods for statistical analysis include Potentially all pairing ranking of Possible

Alternatives. (PAPRIKA) and Multi-criteria decision making (MCDM).

Educational Software Development Challenges 25

4 Project Plan

The project plan for educational software development is generally aligned with the project

methodology. For large, complex projects a waterfall approach may be applied. For rapid

application development or smaller projects, an agile methodology might suit the project. Figure

6 describes a project schedule for a waterfall project. Figures 7 and 8 show the project schedule

for agile projects.

Figure 6: Project Schedule

Figure 7: Agile Sprints

Figure 8: Agile Project Gantt Chart

Educational Software Development Challenges 26

1.8 Project Timeline and Resources

The adjusted class diagram after evaluating the problem and various solutions appears in Figure

9:

A life cycle for this project appears as follows. The project schedule is generic so that it does not

apply to a specific date but can be reused as a model for additional projects. The periods are in

weeks. The main stages of the life cycle are displayed in Figure 10:

Figure 9: Software Challenges Sub Categories

Educational Software Development Challenges 27

In Agile project development there are many artifacts that can assist project management in

developing small components of a large scale application in short sprints. Figures 11 to 20 were

generated by reporting templates in Microsoft® Project.

Figure 10: Project Timeline

Educational Software Development Challenges 28

Figure 11: Burndown Chart

Figure 11 displays a burndown chart of the remaining tasks for the project. The blue line is the

remaining cummulative work and the orange line is the remaining actual work remaining for the

project. The first chart is the work remaining and the second chart is the tasks remaining.

Educational Software Development Challenges 29

Figure 12: Cost Overview

Figure 12 displays the cost, remaining cost, and percent complete for the prokect. The

table lists the actual costs, remaining costs, and variance for each stage of the project.

Educational Software Development Challenges 30

FIgure 13: Resource Overview

Figure 13 lists the resources for the project. The resources listed for this project include

management, software engineers, DevOps, and TestOps. The table shows the remaining hours

for each resource to complete their tasks.

Educational Software Development Challenges 31

Figure 14: Cash Flow

Figure 14 displays the remaining cost, actual cost, cost, actual cost of work performed,

budgeted cost of work performed, and budgeted cost of work schedules. The top level tasks for

this project are the stages of the life cycle, (I) Requirements Analysis, (II) Software Design, (III)

Software Development, (IV) Verification and Validation, and (V) Operation and Maintenance.

Educational Software Development Challenges 32

Figure 15: Work Overview

Figure 15 displays an overview of the work for each resource. The blue line displays the

actual work completed and the orange line displays the remaining work. The availability chart

displays the hours of availability for each resource.

Educational Software Development Challenges 33

Figure 16 displays overallocated resources for this project. This chart displays an

overallocation of DevOps and TestOps in this particular project. The second chart identifies an

overallocation of TestOps for certain dates throughout the project.

Figure 16: Overallocated Resources

Educational Software Development Challenges 34

FIgure 17: Cost Overruns

This chart displays cost overruns for various resources and stages of the project. It

displays the costs completed and cost remaining.

Educational Software Development Challenges 35

Figure 18: Earned Value

Figure 18 shows the Estimate at Completion (EAC), Actual Cost of Work Performed

(ACWP), and Budgeted Cost of Work Performed (BCWP). It also shows chart for cost and

schedule variance(CV, SV) as well as performance indices for cost and schedule (SPI, CPI).

Educational Software Development Challenges 36

Figure 19: Task Cost Overview

Figure 19 shows the task cost overview. The table shows the actual costs, remaining

costs, and cost variance for the project. The chart shows the cost distribution for the various

stages of the project.

Educational Software Development Challenges 37

FIgure 20: Milestone Report

Figure 20 shows late and upcoming milestones for the project. It also shows the completed

milestones for the project. The chart displays the remaining tasks and the remaining actual tasks.

The slope for the remaining tasks should be negative or the project is at risk of being late.

Educational Software Development Challenges 38

1.9 Risk Analysis

For each feature there are possible risks and constraints that exist for a modern

educational software project. Increasing the data security may have an effect on system

performance. Auditing and logging may require additional network and database resources.

Implementing new data storage techniques may have a risk to the security.

1.9.1 Major Risks and Mitigation Strategies

Figure 21 displays a risk assessment for the project. It displays the initial risks as High (H),

Medium (M), and (L). It also shows mitigation strategies for each risk. It then shows the final

risk after implementing the mitigation strategy.

Educational Software Development Challenges 39

1.10 Cost Benefit Analysis

When making an analysis of software project costs, at times it is necessary to analyze

dependent and independent variables that could be factors in the cost of the project. A software

project has various stages and each stage has many elements that can affect cost. The cost of

developers, software tools, licenses, hardware, network infrastructure, and commercial software

can have varying costs in different stages of the project life cycle.

It is difficult to predict the cost of a software project as the time and resources to develop

the software can be unknown. The development team might encounter obstacles such as (a) the

product might not meet the design, (b) there might be errors that take longer than anticipated to

resolve, (c) personnel changes could make training take longer than anticipated, (d) the

Figure 21: Risk Analysis

Educational Software Development Challenges 40

requirements could change. There are many factors that could potentially influence a software

project and some factors have a high probability of occurring.

To evaluate these many factors univariate or bivariate statistics may not be sufficient. To

examine multiple factors multivariate statistics allow project managers the ability to observe how

multiple variables can affect the software project (Tabachnick & Fidell, 1996).

When studying variance of a factor on a dependent variable, one common method is

analysis of variance (ANOVA). When analyzing multiple variables, analysis of covariance

(ANCOVA) can be applied (Tabachnick & Fidell, 1996). There are many types of analysis that

are influenced by the number of independent and dependent variables: One-way ANOVA,

factorial ANOVA, factorial ANCOVA, One-way MANOVA, factorial MANOVA, and factorial

MANCOVA.

For two variables the correlation and regression can be found. The correlation between

the two variables is the association between the two variables. The regression is the disparity

between the two variables. The sum of the squares takes the deviation of the means and the sum

of products is the deviants multiplied and the sum of the products.

A checklists for structural equations modeling includes (Tabachnick & Fidell, 1996):

Issues Sample size and Missing Data Normality of Sampling Distribution Outliers Linearity Adequacy of covariance Identification Path diagram Estimation Method Major Analyses Assessment of fit Residuals Model Chi Square

Educational Software Development Challenges 41

Fit Indices Significance of specific parameters Variance in a variable accounted for by a factor

The interest rate is also a factor when calculating project costs. If the project duration is

over a year the interest rate could influence costs at various stages of the project (Fleischer,

1984). The process of calculating investments with the interest rate is called the Minimum

Attractive Rate of Return (MARR). The Benefit-Cost Ratio analysis shows the values of the

positive cash flow to the negative costs. Retirement of existing assets or replacements assets can

be decided by calculating the present worth.

To control the risk of a new project some adjustments are often made to the calculations

(Fleischer, 1984):

Increasing the Minimum Attractive Rate of Return Differentiating Rates of Return by Risk Classes Decreasing the Expected Project Life

There are also some statistical techniques with decreasing risks (Fleischer, 1984):

Sensitivity Analysis Decisions under Risks Decisions under uncertainty Digital Computer Simulation

Consequences that are not measured in monetary terms can be termed as an intangible or

an irreducible. There are many intangibles in educational software such as security or

accessibility. Educational software has many regulations and there are many needs and benefits

that do not have a cash value but are not necessary either for the organization, the customer, or

for another organization. When calculating intangible, measurements to observe are (Fleischer,

1984):

Educational Software Development Challenges 42

Economic Efficiency Cost-Effective Analysis Measures of Effectiveness (MOEs)

Educational Software Development Challenges 43

1.10.1 Break Even Analysis

1.10.2 Project Expenses

Table 2 displays an expense report for the project. The table shows all direct costs and indirect costs associated with the project.

CS698 – Capstone ProjectColorado Technical

University

PROJECT EXPENSES

BUILDINGS/REAL ESTATE AMOUNT

Purchase $24,500.00

Construction $3,500.00

Remodeling $11,200.00

Other $3,800.00

Total $43,000.00

Figure 22: Project Breakeven Analysis

Educational Software Development Challenges 44

NETWORK EQUIPMENT AMOUNT

Servers $23,500.00

Cabling $1,400.00

Routers $13,500.00

Access Points $12,400.00

Total $50,800.00

CAPITAL EQUIPMENT LIST AMOUNT

Furniture $14,000.00

Equipment $22,400.00

Fixtures $11,000.00

Machinery $12,000.00

Other $2,300.00

Total $61,700.00

LOCATION AND ADMIN EXPENSES AMOUNT

Rental $15,000.00

Utility deposits $840.00

Legal and accounting fees $11,000.00

Prepaid insurance $45,000.00

Pre-opening salaries $340,000.00

Other $22,450.00

Total $434,290.00

OPENING INVENTORY AMOUNT

Computer Equipment $22,400.00

Software Licenses $240,000.00

Software Packaging $1,210.00

Cloud Services $50,000.00

Storage $12,500.00

Total $326,110.00

ADVERTISING AND PROMOTIONAL EXPENSES

AMOUNT

Advertising $22,000.00

Signage $12,500.00

Printing $46,000.00

Travel/entertainment $12,000.00

Other/additional categories $24,000.00

Educational Software Development Challenges 45

Total $116,500.00

OTHER EXPENSES AMOUNT

Other expense 1 $1,200.00

Other expense 2 $1,100.00

Total $2,300.00

Reserve for Contingencies $100,000.00

Working Capital $0.00

SOURCES OF CAPITAL

OWNERS' INVESTMENT (NAME & OWNERSHIP %)

AMOUNT

Your name and percent ownership $25,000.00

Other investor $25,000.00

Other investor $0.00

Other investor $0.00

Total $50,000.00

BANK LOANS AMOUNT

Bank 1 $10,000.00

Bank 2 $25,000.00

Bank 3 $0.00

Bank 4 $0.00

Total $35,000.00

OTHER LOANS AMOUNT

Source 1 $25,000.00

Source 2 $25,000.00

Total $50,000.00

SUMMARY STATEMENT

SOURCE OF CAPITAL TOTALS

Owners' and other investments $50,000.00

Bank loans $35,000.00

Other loans $50,000.00

Total $135,000.00

STARTUP EXPENSES TOTALS

Buildings/real estate $43,000.00

Educational Software Development Challenges 46

NETWORK EQUIPMENT $50,800.00

Capital equipment $61,700.00

Location/administration expenses $434,290.00

Opening inventory $326,110.00

Advertising/promotional expenses $116,500.00

Other expenses $2,300.00

Contingency fund $100,000.00

Working capital $0.00

Total $1,134,700.00

SECURITY AND COLLATERAL FOR LOAN PROPOSAL

COLLATERAL FOR LOANS DESCRIPTION VALUE

Real estate $250,000.00

Other collateral $200,000.00

Other collateral $200,000.00

Other collateral $20,000.00

Total $670,000.00

OWNERS

Owner 1

Owner 2

Owner 3

LOAN GUARANTORS (OTHER THAN OWNERS)

Loan guarantor 1

Loan guarantor 2

Loan guarantor 3

Table 2: Project Expenses Table

1.11 User Focused Interactions

The study of user interaction is a field called Human Computer Interaction.. Research

and innovation share different characteristics (Mori, 2014). There are certain elements of the

design that can increase the value of the user experience. Some features that enhance the user

experience are making the system status available, allowing the user control and freedom of the

Educational Software Development Challenges 47

experience, providing consistency throughout the user experience, and applying user interface

standards. Design heuristics can be applied to the user experience to apply engineering and

science to the design (Daly et al., 2012). There are also many cultural implications that may

affect the educational experience. (Green, 2012). There are also social and economic factors that

may affect education (Canada, 2014). These factors must be taken into account when developing

educational software.

1.12 Resource Management

Pottage (2001) explains how the Java virtual machine shares resources by using a

compiler for frequently used code and an interpreter for rarely used code. Automated Software

Testing assists in testing code for performance. Automated Software Testing has some

advantages over manual testing (Pottage, 2001):

Faster than manual testing Repeatable for regression testing Can test line code Protection from human factors

Other methods for improving on resource management are improving on the performance

of the processor. Nimmagadda (2013) studied how the design of processors can be improved by

vector mathematics. With the advancement of multiple core and multiple processor technologies

there is more research that can be conducted in processor performance.

Educational Software Development Challenges 48

5 Technical Report

1.13 Financial Analysis

Figure 23 displays the profits from the purchases of computer equipment for this project. The

computer equipment can earn value by being utilized for other projects and sharing resources

throughout the organization. The equipment and the software that is built with the equipment

can then be sold once the projects are completed. The earnings from the equipment and software

sold are displayed in the chart. The cost of the resources for the project are not included in the

chart. The worth is estimates of the value of the equipment and the software built on the

equipment. The worth is an estimate of the profit gained from the sale of the software. The

profit shows the profit from the selling of the equipment and software. The prospective sale of

the software will fund the resources allocated on the project.

Educational Software Development Challenges 49

1.14 Emerging Trends

Many advances have been made in software engineering over the past five to ten years.

These advances have globally improved the effectiveness of technology in education. Some of

Figure 23: Profit from Purchases

Educational Software Development Challenges 50

the emerging trends that have improved educational software engineering include concurrent

programming, cybersecurity, and software assurance programs.

1.15 Concurrent Programming

Many educational software programs follow the client server model. The server provides

resources and services to the client. Most transactions in the client server model consist of the

client requesting a transaction request and the server providing a response (Bryant and

O'Hallaron, 2003). These communications generally occur over a network. The network could

be an internal network such as a Local Area Network (LAN) or an external network that travels

across the Internet. The Hypertext Transfer Protocol (HTTP) is the protocol by which web

clieints and servers transfer information over the Internet.

When running applications on multiple processors, It may be advantageous to do

computing in parallel. Concurrent programming allows applications to be partitioned to run in

parallel work processes to perform computation faster (Bryant amd O'Hallaron, 2003).

Concurrent programming allows for clients and servers to handle multiple threads of an

application in a distributed manner. Concurrent programming also spares client and server

system resources.

1.16 Cybersecurity

Security is an important feature of educational software. Security can span across many

attributes of a software application. Security can include reliability, vulnerability, availability,

safety, and others. Internet security is becoming an increasing necessity as more and more

information travels over the Internet. The field of cybersecurity is becoming more and more

valuable not only for educational software, but for all software (Nsoh, 2015). Tools to increase

the security of an application, or the infrastructure that they run on, include firewalls, SSH

Educational Software Development Challenges 51

communications, network monitors, and host monitors. Security can include many areas such as

access control, network security, risk management, security governance, and compliance (Harris,

2013).

The three main principles of security are Availability, Integrity, and Confidentiality.

Another aspect of security that is critical for educational software is identity management.

Account and password management is essential for authenticating that users say who they claim

to be and authorizing users into certain areas of the application. Figure 20 displays some of the

considerations for software security (Harris, 2013).

1.16.1 Securing Data at Rest

Securing data centers is a critical part of software security (Bonnet, 2010). For some

education products, data security is a high priority. Security measures must be taken to ensure

the privacy of the data and there are also regulations for how and how long data at rest can be

Figure 24: Security Considerations

Educational Software Development Challenges 52

stored. A security framework can be of assistance in designing security parameters for

educational software. An example of a security framework that can assist in security design is

Secure TROPOS (Giorgini, Massacci, Mylopoulos, & Zannone, 2006). Another example of a

security framework is National Institute of Standards and Technology (NIST) Cybersecurity

Framework.

1.16.2 Securing Data in Motion

For securing data in motion, secure socket layer provides a protocol for encrypting

transactions over the Internet and is becoming an industry standard. Secure Socket Layer (SSL)

implements certificates for the communication of data between clients and servers (Krishna,

Misra, Joshi, Gupta, and Obaidat, 2014). Encrypting data in transit is one measure that can

increase the security posture of a web based application.

Another security measure is Single Sign On (SSO). Single Sign On allows end users to enter one

username and password for multiple applications. There are many additional measures that can

be taken to increase security posture. It is necessary to always keep up with the latest threats and

vulnerabilities (Elkhannoubi & Belaissaoui,b2016).

1.17 Educational Software Quality Assurance

Technology can assist countries with large rural populations achieve educational goals

such as increasing literacy rates, school enrollments, and teacher certification (Sani, Tasisa &

Panigrahi, 2013). Clear., Lance, and Sakar (2013) studied how students learn in a computer

science by identifying goals and needs. Lavers (2008) also studied the goals and needs of rural

communities in Ethiopia to learn what methods work best in improving the quality of life.

Cianca (2012) emphasized student centered learning on improving reading levels of students in

rural communities.

Educational Software Development Challenges 53

Many countries are striving to improve their education systems with quality standards

and accreditation programs (Alemu, 2010). Ethiopia plans to institute a life long learning system

that is coupled with a education transformation plan (Abiy, Kabeta, & Mihiretie, 2014). Ethiopia

also plans to improve their assessments and evaluations programs (Kassahun, 2008). Additional

emerging trends in software engineering include green computing, big data analytics, and

machine learning. These trends influence the development of educational software globally

(Seyoum, 2011). Lemard (2004) stresses the need to increase literacy and education for global

health. Green (1997) emphasizes the importance of humanity in education. Technology may be

able to assist in improving worldwide education systems.

Educational Software Development Challenges 54

1.17.1 Conclusion and Future Research

From my research, I learned various techniques for solving computer science problems. I found

that there are many problems faced in educational software development that are common

throughout the software engineering industry. The proposed solution of analyzing the problem

creating a project plan utilized statistical problem solving techniques, financial analyses, and

researching current trends in computer science. For further research in this area, I would like to

conduct a cost analysis of implementing various database management systems, a cost analysis

of software security framework implementations, and a quantitative analysis of research on how

system resources impact project and organizational costs. I intend for this research to increase

the quality of educational software products.

Educational Software Development Challenges 55

6 Service Marks and Trademarks

Microsoft® Project, Microsoft® Excel, and Microsoft .Net Framework are trademarks of the

Microsoft Corporation in the U.S. and other coutnries. MODELIOSOFT is a trademark of

SOFTEAM. Node.js® is an official trademark of Joyent. Oracle® and Java are registered

trademarks of Oracle and/or its affiliates. Linux® is the registered trademark of Linus Torvalds

in the U.S. and other countries. All other product and service names mentioned are the

trademarks of their respective owners.

Educational Software Development Challenges 56

7 References

Abiy, D., Kabeta, G., and Mihiretie, D. (2014). Developing a lifelong learning system in Ethiopia: Contextual considerations and propositions. International Review Of Education / Internationale Zeitschrift Für Erziehungswissenschaft, 60(5), 639-660.

Alemu, D. S. (2010). Expansion vs. Quality: Emerging Issues of For-Profit Private Higher Education Institutions in Ethiopia. International Review Of Education / Internationale Zeitschrift Für Erziehungswissenschaft, 56(1), 51-61.

Arend, D., Lange, M., Chen, J., Colmsee, C., Flemming, S., Hecht, D., & Scholz, U. (2014). e!DAL--a framework to store, share and publish research data. BMC Bioinformatics. 15:214.

Ballis, P., Fekete, A., Franklin, M., Ghodsi, A. Hellenstein, J., and Stoica, I. (2015). Ferrel Concurrency Control: An Emperical Investigation of Modern Application Integrity. SIGMOD' 15 Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data. 1327-1342.

Barnett, R. and Ziegler, M. (1995). Applied Calculus with Linear Programming: For Business, Economic Life Sciences, and Social Sciences. Englewoods Cliffs: Macmillan College Publishing Company, Inc.

Belhaones, T, Bensebou T, Abdessemed, M., and Bey. A. (2016). AlgoSkills: An Ontology of Algorithmic Skills for Exercises Description and Organization. Je-LKS Journal of e-Learning and Knowledge Society.

Bertrand, B. (2016). CS698 _01_288_6_3_0_2_Unit 3 . [Live Chat]. Retrieved from Colorado Technical University, Virtual Campus, Computer Science Capstone (CS698-1602A-01). http://ctuadobeconnect.careeredonline.com/p8v0y2ylpij/?session=breezv734t4p56kw85evn

Bilello, P. A. (2012). Critical Information. Mechanical Engineering, 134(6), 32.

Blair-Early, A. and Zender, M. (2008). User Interface Design Principles for Interaction Design. Massachusetts Institute of Technology. 24(1) 85-107.

Bonnett, B. (2010). Securing virtualized data centres. Credit Control, 31(5), 83-90. Retrieved from http://search.proquest.com/docview/835060162?accountid=144789

Box, G., Hunter, W., and Hunter, J. (1978) Statistics for Experimenters. An Introduction to Design, Data Analysis, and Model Building. New York: John Wiley & Sons.

Bryant, R. and O'Hallaron D. (2003). Computer Systems: A Programmer's Perspective. Upper Saddle River, NJ: Pearson Education, Inc.

Canada, N. (2014, October 16). Socio-econoomic conditions and cultural factors influence education and skills performance in the territories. Canada Newswire.

Caravantes, A., & Galán, R. (2011). Generic Educational Knowledge Representation for Adaptive and Cognitive Systems. Journal Of Educational Technology & Society, 14(3), 252-266.

Chen, H., Li, L., Ren, J., Wang, Y., Zhao, Y., Wang, X., and Xu, S. (2015). A Scheme to Optimize Flow Routing and Polling Switch Selection of Software Defined Networks. Plos ONE, 10(12), 1-22.

Champney, R., and Milham, L., Parrish, T., Kokini, C., and Stanney, K. (2010). Automating Instruction Support: Insights From Field Research. Spring Sim '10 Proceedings of the 2010 Spring Simulation Multiconference. Article No. 31.

Educational Software Development Challenges 57

Cianca, S. (2012). Cross-Age Reading Buddies and Cultural-Sensitive Literature: Student-Centered English Language Instruction in an Ethiopian Budget School. Journal Of Research In Childhood Education, 26(4), 392-417.

Clear, A., Lance, M., and Sakar, A. (2013). How Students Learn: Ripples in Computer Science/Software Engineering Curriculum. Proceeding of the 44th ACM Technical Symposium on Computer Science Education. 738.

Daly S., Yilmaz, S., Christian, J., Seifert, C., and Gonzalez, R., (2012). Design Heuristics in Engineering Concept Generation. Journal of Engineering Education. 101(4), 601-629.

Dybå, T, Kitchenhern, B., and Jorgensen, M. (2005, Jan). Evidence-Based Software Engineering for Practicioners. IEEE Software 22.1. 58-65.

Data Quality Campaign. (2013, March). Complying with FERPA and Other Federal Privacy and Security Laws and Maximizing Appropriate Data Use: A State Policymakers' Guide. Data Quality Campaign.

Defoe, D. (2011). Teaching Garbage Collection with Open Source Virtual Machine. Proceedings of the 2011 Conference on Information Technology Education. 197-202.

Elkhannoubi, H, and Belaissaoui, M. (2016). A framework for an effective cybersecurity strategy implementation. Journal Of Information Assurance & Security, 11(4), 233-241.

ESL Tool Suite Beefs Up Its Software Analysis Side. (2005). Electronic Design, 53(25), 30.

Fleisher, G. (1984). Engineering Economy: Capital Allocation Theory. Boston: PWS Publishers.

Harris, S. (2013). All-in-One-CISSP Exam Guide: Sixth Edition. New York: McGraw Hill Education.

Haslett, W., McHugo, G, Bond, G, and Drake, R. (2014, July). Use of Software for Tablet Computers to Promote Engagement with Supported Employment: Results from an RCT. 65(7) 954-956.

Hui, C., & Kanhua, Y. (2015). Design and Application of SCORM-Based Distance Education Management System. International Journal Of Emerging Technologies In Learning, 10(2), 58-62.

Ghandezhariazadeh, S. and Mutha, A. (2014). An Evaluation of the Hibernate Object-Relational Mapping for Processing Interactive Social Networking Actions. 'ii WAS' 14.

Grunavardena, A. and Shani, G. (2009). A Survey of Accuracy Evaluation Metrics of Recommendation Task. Journal of Machine Learning Research. 10(2009) 2935-2962.

Gil, J. and Leng, K. (2007, September 23). Eliminating Impedance Mismatch in C++. VDLB '07. 1386-1389.

Green, J. E. (1997). Kant's Copernican Revolution: The Transcendental Horizon. UPA.

Green, Z. (2012). Christianity and Black Oppression: Duppy Know Who Fe Frighten. St, Vincent and the Grenadines: Kings-SVG Publishers.

Gonsalves, T., Kawabata, R., and Itoh, K. (2009). Optimizing Cost in Software Development Projects. Journal Of Integrated Design & Process Science, 13(4), 35-44.

Kassahun, D. (2008). Standardization techniques for grade-inflation problems at higher educational institutions of Ethiopia: the case of Addis Ababa. Assessment & Evaluation In Higher Education, 33(1), 33-44.

Kieth, M. and Stafford, R. (2008 May/June). Exposing the ORM Cache. Queue - Object Relational Mapping. 6(3) 38-47.

Educational Software Development Challenges 58

Knowledge Forum Japan Research Group and Oshima, J. (2005). Progressive Refinement of CSCL-Based Lesson Plan for Improvising Student Learning as Knowledge Building in the Period for the Integrated Study. Proceedings of CSCL '05 Conference on Computer Support for Collaborative Learning. Learning 2005: the next ten years! 321-330.

Krishna, P. V., Misra, S., Joshi, D., Gupta, A., & Obaidat, M. S. (2014). Secure socket layer certificate verification: alearning automata approach. Security & Communication Networks, 7(11), 1712-1718.

Kulinich, A. (2014). Software systems for situation analysis and decision support on the basis of cognitive maps: Approaches and methods. Automation & Remote Control, 75(7), 1337-1355.

Lavers, T. (2008). Reconciling the needs and wants of respondents in two rural Ethiopian communities. Social Indicators Research, 86(1), 129-147.

Lemard, G. A. N. (2004). Violence as a global health challenge: A case analysis of jamaica using an interdisciplinary approach (Order No. 3125365). Available from ProQuest Dissertations & Theses Global. (305179265).

Letts, M. (2002). ADL and SCORM: Creating a Standard Model For Publishing Courseware. Seybold Report: Analyzing Publishing Technologies, 2(1), 3.

Lodhi, F. and Ghazali, M. (2007). Design of a Simple and Effective Object-to-Relational Mapping Technique. Proceedings of the 2007 ACM symposium on Applied computing. 1445-1449.

Mylopoulos, J., Castro, J., and Kolp, M.(2000). Tropos: A Framework for Requirements-Driven Software Development. Information Systems Engineering: State of the Art and Research Themes.

Mori, K. (2014, March 17). Concept-Oriented Research and Development in Information Technology. John Wiley &Sons.

Munro, A., and Clark, R. E. (2013). Cognitive Task Analysis-Based Design and Authoring Software for Simulation Training. Military Medicine, 7-14.

Nimmagadda, S. (2013). Design and implementation of high speed multiplier using vedic mathematics (Order No. 1550729). Available from ProQuest Dissertations & Theses Global. (1496773163).

Nsoh, M. W. (2015). Information security systems policy violation: An analysis of management employee interpersonal relationship and the impact on deterrence (Order No. 3687315). Available from ProQuest Dissertations & Theses Global. (1668130382).

Oyetunji, A. A., and Anderson, S. D. (2006). Relative Effectiveness of Project Delivery and Contract Strategies. Journal Of Construction Engineering & Management, 132(1), 3-13.

Pottage, D. (2001, Nov 5). Automated Testing Speeds Effective Deployment of Java Functionality. Electronic Design. 65.

Reinbach, A. (1997, Sep 08). CYBER TERRORISM strikes could as easily be perpetrated for kicks by a kid as by a terrorist once trained by the CIA in afghanistan, whose intent is to harm america by attacking its lifeblood. American Banker Retrieved from http://search.proquest.com/docview/249566396?accountid=144789

Sani, D., Tasisa, W., and Panigrahi, M. (2013). Information Communication Technology for Educational Quality: Challenges, Prospects in Ethiopian Context. Turkish Online Journal Of Distance Education (TOJDE), 14(4), 235-251.

Schiffe, Henry. (2012, Apr 11). An Analysis of Variance for Paired Comparisons. Journal of American Statistical Association. 47 (259). 1952. 381-400.

Educational Software Development Challenges 59

Seng, J. (2003). A Study on Industry and Synthetic Standard Benchmarks in Relational and Object Databases. S16.

Seyoum, Y. (2011). Revitalizing Quality Using Guidance Counseling in Ethiopian Higher Education Institutions: Exploring Students' Views and Attitudes at Haramaya University. International Journal Of Instruction, 4(2), 161-192.

Silliman, B. R. (2004). The use of federal college tuition tax credits at public community colleges: A capacity-building policy analysis (Order No. 3124964). Available from Accounting & Tax. (305167313). Retrieved from http://search.proquest.com/docview/305167313?accountid=144789

Simplex method. (2008). In D. Nelson (Ed.), The Penguin dictionary of mathematics. London, United Kingdom: Penguin. Retrieved from http://search.credoreference.com/content/entry/penguinmath/simplex_method/0

Simric, Danijela. (2015, October 1). Using Small-Step Refinement for Algorithm Verification in Computer Science Education. The International Journal for Technology in Mathematics Education.

Singh, P. and Sanwam, O. (2013, Sep 26). Aspect Oriented Software Metrics Based Maintainability Assessment: Framework and Model. IET Conference Proceedings. The Institution of Engineering and Technology. 35-40.

Snyder, M. and O'Conner, T. (2005, Dec). Object-Relational Mapping in Java with SimpleORM. Dr Dobb's Journal.

Torgerson, M. (2006). Language Integrated Query. Unified Querying across Data Sources and Programming Languages. OOPSLA '06 - Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications.

Tianyin, X., and Yuanyuan, Z. (2015). Systems Approaches to Tackling Configuration Errors: A Survey. ACM Computing Surveys, 47(4), 70:1-70:41.

Wegner, W., Hansen, K., and Kronberger, N. (2014, May 9). Quantitative and Qualitative Research across Cultures and Languages: Cultural Metrics and their Application. Integ. Psych Behav. 48:418-434.

Wenzel, S. (2014). Unique Identification of Elements in Evolving Software Models. Software & Systems Modeling, 13(2), 679-711.

van Wyck, E. and de Villiers, M. (2014). Applying Design-Based Research for Development Virtual Reality Training in the South African Mining Industry. SAICSIT '14 Proceedings of the Southern African Institute for Computer Scientist and Information Technologists Annual Conference on SAICSIT 2014 Empowered byTechnology.

Walpole, R. and Myers, R. (1985). Probability and Statistics for Engineers and Scientists. New York: Macmillan Publishing Company.

Wai Chung, Y., Chong Khoo, M. B., Jia Kit, C., Shun Jinn, L., and Wei Lin, T. (2014). The Sensitivity Analysis of the Economic and Economic Statistical Designs of the Synthetic X Chart. AIP Conference Proceedings, 1635(1), 940-947.

Xin-hua, Z. (2007). Extending the SCORM Specification for references to the Open Content Object. Journal Of Educational Technology & Society, 10(1), 248-264.

Zar E. and Venaya T. (nd) Computer Science Teacher Training – Exposure to Academic Research. Mathematics and Computer Edication 80-90.

Zendlu, A. and Dieter K. (2012) Central Computer Science Concepts to Research Based Teacher Training in Computer Science: AN Experimental Study. J. Educational Computing Research. 46(2) 153-172.