1,217 research outputs found
Speak Clearly, If You Speak at All; Carve Every Word Before You Let It Fall: Problems of Ambiguous Terminology in eLearning System Development
This paper addresses issues associated with the development of eLearning software systems. The development of software systems in general is a highly complex process, and a number of methodologies and models have been developed to help address some of these complexities. Generally the first stage in most development processes is the gathering of requirements which involves elicitation from end-users. This process is made more complex by problems associated with ambiguous terminology. Types of ambiguous terminology include homonymous, polysemous and inaccurate terms. This range of ambiguous terminology can cause significant misunderstandings in the requirements gathering process, which in turn can lead to software systems that do not meet the requirements of the end-users. This research seeks to explore some of the more common terms that can be ambiguously interpreted in the development of eLearning systems, and suggests software engineering approaches to help alleviate the potentially erroneous outcomes of these ambiguities
Recommended from our members
An empirical investigation into contributory factors of change and fault propensity in large-scale commercial object-oriented software
This thesis was submitted for the degree of Doctor of Philosophy and was awarded by Brunel UniversityObject-Oriented design and development dominates both commercial and open source software projects. One of the principal goals of object-oriented design is to aid reuse, and hence, reduce future maintenance efforts of software systems. However, the on-going maintenance of large-scale software systems (both changes and faults) continues to be a significant proportion of the lifecycle of the system and the total investment cost. Understanding and thus being able to predict - or even reduce - the impact of the contributing factors of future maintenance efforts of a software system is thus highly beneficial to software practitioners. In this Thesis we empirically study a large, commercial software system with the principal aim to determine the contributing factors to the change and fault propensity over a three-year period. We consider the object-oriented design context of the software, specifically its inheritance characteristics, coupling and cohesion properties, object-oriented design pattern participation, and size. We also explore the effect of refactoring and test classes in the software. Our results show that several aspects of the design context of a class have an impact to the change and fault-proneness of the software. Specifically, we show that classes with high afferent or efferent coupling are more change and fault-prone; we also identify a number of design patterns whose participants tend to have a higher change and fault propensity than non-participants and we identify a range of inheritance characteristics (in terms of depth of inheritance and number of children) that result in an increase to change and fault-proneness. Furthermore we show that refactoring is a commonly occurring maintenance activity, although it is largely limited to simpler types of refactorings. Finally, we provide some insight into the co-evolution of production and test code during refactoring
A critical analysis of two refactoring tools
This study provides a critical analysis of refactoring by surveying the refactoring tools in IDEA and Eclipse. Ways are discussed to locate targets for refactorings, via detection of code smells from static code analysis in IDEA and during the compilation process in Eclipse. New code smells are defined as well as the refactorings needed to remove the code smells. The impacts the code smells have on design are well documented. Considerable effort is made to describe how these code smells and their refactorings can be used to improve design. Practical methods are provided to detect code smells in large projects such as Sun’s JDK. The methodology includes a classification scheme to categorise code smells by their value and complexity to handle large projects more efficiently. Additionally a detailed analysis is performed on the evolution of the JDK from a maintainability point of view. Code smells are used to measure maintainability in this instance.Dissertation (MSc (Computer Science))--University of Pretoria, 2008.Computer Scienceunrestricte
Recommended from our members
Web information systems: A study of maintenance, change and flexibility
This thesis was submitted for the degree of Doctor of Philosophy and awarded by Brunel University.Information Systems (IS’s) have provided organisations with huge efficiency gains and benefits over the years; however an outstanding problem that is yet to be successfully tackled is that of the troublesome maintenance phase. Consuming vast resources and thwarting business progression in a competitive global market place, system maintenance has been recognised as one of the key areas where IS is failing organisations. Organisations are too often faced with the dilemma of either replacement or the continual upkeep of an unwieldy system. The ability for IS’s to be able to adapt to exogenous influences is even more acute today than at any time in the past. This is due to IS’s namely, Web Information Systems (WIS’s) increasingly and continually having to accommodate the needs of organisations to interconnect with a plethora of additional systems as well as supporting evolving business models. The richness of the interconnectivity, functionalities and services WIS’s now offer are shaping social, cultural and economic behaviour on a truly global scale, making the maintenance of such systems and evermore pertinent issue. The growth and proliferation of WIS’s shows no sign of abating which leads to the conclusion that what some have termed as the ‘maintenance iceberg’ should not be ignored.
The quandary that commercial organisations face is typically driven by two key aspects; firstly, systems are built on the cultural premise of using fixed requirements, with not enough thought or attention being paid to systems abilities to deviate from these requirements. Secondly, systems do not generally cope well with adapting to unpredictable change arising from outside of the organisations environment. Over the recent past, different paradigms, approaches and methods have attempted to make software development more predictable, controllable and adaptable, however, the benefits of such measures in relation to the maintenance dilemma have been limited. The concept of flexible systems that are able to cope with such change in an efficient manner is currently an objective that few can claim to have realised successfully.
The primary focus of the thesis was to examine WIS post-development change in order to empirically substantiate and understand the nature of the maintenance phase. This was done with the intention to determine exactly ‘where’ and ‘how’ flexibility could be targeted to address these changes. This study uses an emergent analytical approach to identify and catalogue the nature of change occurring within WIS maintenance. However, the research framework design underwent a significant revision as the initial results indicated that a greater emphasis and refocus was required to achieve the research objective. To study WIS’s in an appropriate and detailed context, a single case study was conducted in a web development software house. In total the case study approach was used to collect empirical evidence from four projects that investigated post-development change requests in order to identify areas of the system susceptible to change. The maintenance phases of three WIS projects were considered in-depth, resulting in the collection of over four hundred change requests. The fourth project served as a validation case. The results are presented and the findings are used to identify key trends and characteristics that depict WIS maintenance change. The analytical information derived from the change requests is consolidated and shown diagrammatically for the key areas of change using profile models developed in this thesis. Based on the results, the thesis concludes and contributes to the ongoing debate that there is a discernable difference when considering WIS maintenance change compared to that of traditional IS maintenance. The detailed characteristics displayed in the profile models are then used to map specific flexibility criteria that ultimately are required to facilitate change. This is achieved using the Flexibility Matrix of Change (FMoC) tool which was developed within the remit of this research. This tool is a qualitative measurement scheme that aligns WIS maintenance changes to a reciprocal flexibility attribute. Thus, the wider aim of this thesis is to also expand the awareness of flexibility and its importance as a key component of the WIS lifecycle
Bioinformatic Investigations Into the Genetic Architecture of Renal Disorders
Modern genomic analysis has a significant bioinformatic component due to the high volume of complex data that is involved. During investigations into the genetic components of two renal diseases, we developed two software tools. // Genome-Wide Association Studies (GWAS) datasets may be genotyped on different microarrays and subject to different annotation, leading to a mosaic case-control cohort that has inherent errors, primarily due to strand mismatching. Our software REMEDY seeks to detect and correct strand designation of input datasets, as well as filtering for common sources of noise such as structural and multi-allelic variants. We performed a GWAS on a large cohort of Steroid-sensitive nephrotic syndrome samples; the mosaic input datasets were pre-processed with REMEDY prior to merging and analysis. Our results show that REMEDY significantly reduced noise in GWAS output results. REMEDY outperforms existing software as it has significantly more features available such as auto-strand designation detection, comprehensive variant filtering and high-speed variant matching to dbSNP. // The second tool supported the analysis of a newly characterised rare renal disorder: Polycystic kidney disease with hyperinsulinemic hypoglycemia (HIPKD). Identification of the underlying genetic cause led to the hypothesis that a change in chromatin looping at a specific locus affected the aetiology of the disease. We developed LOOPER, a software suite capable of predicting chromatin loops from ChIP-Seq data to explore the possible conformations of chromatin architecture in the HIPKD genomic region. LOOPER predicted several interesting functional and structural loops that supported our hypothesis. We then extended LOOPER to visualise ChIA-PET and ChIP-Seq data as a force-directed graph to show experimental structural and functional chromatin interactions. Next, we re-analysed the HIPKD region with LOOPER to show experimentally validated chromatin interactions. We first confirmed our original predicted loops and subsequently discovered that the local genomic region has many more chromatin features than first thought
Adaptive object management for distributed systems
This thesis describes an architecture supporting the management of pluggable software components and evaluates it against the requirement for an enterprise integration platform for the manufacturing and petrochemical industries. In a distributed environment, we need mechanisms to manage objects and their interactions. At the least, we must be able to create objects in different processes on different nodes; we must be able to link them together so that they can pass messages to each other across the network; and we must deliver their messages in a timely and reliable manner. Object based environments which support these services already exist, for example ANSAware(ANSA, 1989), DEC's Objectbroker(ACA,1992), Iona's Orbix(Orbix,1994)Yet such environments provide limited support for composing applications from pluggable components. Pluggability is the ability to install and configure a component into an environment dynamically when the component is used, without specifying static dependencies between components when they are produced. Pluggability is supported to a degree by dynamic binding. Components may be programmed to import references to other components and to explore their interfaces at runtime, without using static type dependencies. Yet thus overloads the component with the responsibility to explore bindings. What is still generally missing is an efficient general-purpose binding model for managing bindings between independently produced components. In addition, existing environments provide no clear strategy for dealing with fine grained objects. The overhead of runtime binding and remote messaging will severely reduce performance where there are a lot of objects with complex patterns of interaction. We need an adaptive approach to managing configurations of pluggable components according to the needs and constraints of the environment. Management is made difficult by embedding bindings in component implementations and by relying on strong typing as the only means of verifying and validating bindings. To solve these problems we have built a set of configuration tools on top of an existing distributed support environment. Specification tools facilitate the construction of independent pluggable components. Visual composition tools facilitate the configuration of components into applications and the verification of composite behaviours. A configuration model is constructed which maintains the environmental state. Adaptive management is made possible by changing the management policy according to this state. Such policy changes affect the location of objects, their bindings, and the choice of messaging system
A VISUAL DESIGN METHOD AND ITS APPLICATION TO HIGH RELIABILITY HYPERMEDIA SYSTEMS
This work addresses the problem of the production of hypermedia
documentation for applications that require high reliability, particularly
technical documentation in safety critical industries. One requirement of this
application area is for the availability of a task-based organisation, which
can guide and monitor such activities as maintenance and repair. In safety
critical applications there must be some guarantee that such sequences are
correctly presented. Conventional structuring and design methods for
hypermedia systems do not allow such guarantees to be made. A formal
design method that is based on a process algebra is proposed as a solution
to this problem. Design methods of this kind need to be accessible to
information designers. This is achieved by use of a technique already
familiar to them: the storyboard. By development of a storyboard notation
that is syntactically equivalent to a process algebra a bridge is made
between information design and computer science, allowing formal analysis
and refinement of the specification drafted by information designers.
Process algebras produce imperative structures that do not map easily into
the declarative formats used for some hypermedia systems, but can be
translated into concurrent programs. This translation process, into a
language developed by the author, called ClassiC, is illustrated and the
properties that make ClassiC a suitable implementation target discussed.
Other possible implementation targets are evaluated, and a comparative
illustration given of translation into another likely target, Java
A meta-semantic language for smart component-adapters
The issues confronting the software development community today are significantly different from the problems it faced only a decade ago. Advances in software development tools and technologies during the last two decades have greatly enhanced the ability to leverage large amounts of software for creating new applications through the reuse of software libraries and application frameworks. The problems facing organizations today are increasingly focused around systems integration and the creation of information flows.
Software modeling based on the assembly of reusable components to support software development has not been successfully implemented on a wide scale. Several models for reusable software components have been suggested which primarily address the wiring-level connectivity problem. While this is considered necessary, it is not sufficient to support an automated process of component assembly. Two critical issues that remain unresolved are: (1) semantic modeling of components, and (2) deployment process that supports automated assembly. The first issue can be addressed through domain-based standardization that would make it possible for independent developers to produce interoperable components based on a common set of vocabulary and understanding of the problem domain. This is important not only for providing a semantic basis for developing components but also for the interoperability between systems. The second issue is important for two reasons: (a) eliminate the need for developers to be involved in the final assembly of software components, and (b) provide a basis for the development process to be potentially driven by the user. To resolve the above remaining issues (1) and (2) a late binding mechanism between components based on meta-protocols is required. In this dissertation we address the above issues by proposing a generic framework for the development of software components and an interconnection language, COMPILE, for the specification of software systems from components. The computational model of the COMPILE language is based on late and dynamic binding of the components\u27 control, data, and function properties. The use of asynchronous callbacks for method invocation allows control binding among components to be late and dynamic. Data exchanged between components is defined through the use of a meta- language that can describe the semantics of the information but without being bound to any specific programming language type representation. Late binding to functions is accomplished by maintaining domain-based semantics as component metainformation. This information allows clients of components to map generic requested service to specific functions
- …