educational software development challenges
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.