51 |
Effective and Appropriate Use of Controlled Experimentation in Software Development ResearchJohnson, Mark Alan 28 October 1996 (has links)
Although there is a large body of research and publication on software development, only a limited amount of this work includes empirical demonstration of its effectiveness. Yet, it is this empirical understanding which will help move software development from a craft to an engineering discipline. Of the empirical methods for research, controlled experiments are the most commonly thought of in scientific studies, and yet the least used to study software development. This thesis begins with a brief review of the different empirical methods commonly used to study software development. This review provides a quick introduction to each empirical method, compares the main advantages and weaknesses of each method, and provides a context for how controlled experimentation compares to other empirical methods for studying software development. Using empirical methods to study software development is not easy or straightforward. There are limitations which appear to be inherent in the nature of software and issues due to the improper understanding or application of empirical methods. These limitations and issues are identified, specifically for controlled experiments, and approaches for dealing with them are proposed. A controlled experiment was designed and conducted to demonstrate the method and explore the limitations and issues for empirical research in software development. This experiment and its results are presented. This example experiment demonstrates that conducting even a simple experiment in software development is challenging. Lessons learned from this experience are reported. Controlled experiments require that the researcher have a high degree of control over the environment where the experiment is carried out. This can be costly and difficult to achieve. This thesis concludes by discussing how controlled experiments can be used effectively in studies of software development.
|
52 |
HOOD : a Higher-Order Object-Oriented Database model and its implementationBrand, Michael Max January 1992 (has links)
Bibliography: pages 133-140. / There is no accepted standard for the object-oriented database paradigm at present, which has led to different definitions of features and conformance requirements. HOOD is a Higher-Order Object-Oriented Database system which defines a meta-data model for specifying the requirements of an Object-Oriented Database, which provides uniformity and extensibility. From this specification and by making use of a comprehensive structure system, an exemplar or implementation model is defined. Among the constructs provided by the model are types, instances, objects, values, methods, base types, generic types and metatypes. The mechanisms of instantiation and subtyping allow for relationships between these constructs. Extensibility is provided in the model for types, base types, structures and methods. Uniformity is achieved by defining all constructs as instances and through the use of messages for all operations. There is only one form of object construct which provides persistence and identities. The complex values and extensibility of the model allow it to adapt in order to model the real world instead of adapting the real world to fit the model. We have implemented a subset of the structures and values defined in the model, provided persistence and identities for object, and included the various constructs mentioned above. The method language allows for the specification of methods, the passing of messages, and the use of complex values. The compiler performs type checking and resolution and generates instructions for an abstract machine which manipulates the database.
|
53 |
An Estelle compilerVan Dijk, Jacques January 1988 (has links)
The increasing development and use of computer networks has necessitated international standards to be defined. Central to the standardization efforts is the concept of a Formal Description Technique (FDT) which is used to provide a definition medium for communication protocols and services. This document describes the design and implementation of one of the few existing compilers for the one such FDT, the language "Estelle" ([ISO85], [ISO86], [ISO87]).
|
54 |
Utilising the Software Engineering Methods and Theory framework to critically evaluate software engineering practice in the South African banking industryLe Roux, Alistair Graham 17 March 2016 (has links)
A research report submitted to the Faculty of Engineering and The Built Environment of the University of Witwatersrand, Johannesburg
In partial fulfilment of the requirements for the Degree of Master of Science in Engineering
September 2015 / In recent years, software has become the cornerstone of banking and new business products are
directly dependant on software. The delivery cycles for new features is now related to market share.
This drive to use software as a vehicle for competitive advantage has created an environment in
which software development of new business systems are increasingly on the critical path of many
projects. An organisation’s portfolio of software intensive projects is situated within this complexity
and organisations attempt to mitigate the risks associated with these complexities by implementing
software development processes and practices. A key problem facing the modern bank is how to
define and build a software development process that caters for both the traditional and
increasingly agile genres of software development characteristics in a consistent and manageable
way.
The banks attempt to address this problem through continuous methodology and process
improvements. Comparing and assessing non-standardised software engineering lifecycle models
without a common framework is a complex and subjective task. A standardised language is
important for simplifying the task for developing new methods and practices or for analysing and
documenting existing practices.
The Software Engineering Methods and Theory (SEMAT) initiative has developed a standardised
kernel of essential concepts, together with a language that describes the essence of software
engineering. This kernel, called the Essence, has recently become an Object Management Group
(OMG) standard. The Essence kernel, together with its language, can be used as the underpinning
theory to analyse an existing method and help provide insights that can drive method
enhancements.
The research report proposes a simple, actionable analysis framework to assist organisations to
assess, review and develop their software engineering methods. The core concepts of the
methodology are identified and mapped to the Essence concepts. The governance model of the
Essence is mapped to the governance model of the industry model and a set of practices is identified
and documented in the Essence language. The mapping and resulting analysis can be used to test
the validity of the Essence theory in practice and identify areas for improvement in both the method
and the Essence standard.
The analysis framework has been applied to an operational software development lifecycle of a large
South African bank. A mapping of the Essence concepts to the governance model and method
documented in the lifecycle was completed. This mapping revealed that the Essence is a valid tool
and can be used to describe a method in practice. Furthermore it is useful as an analysis framework
to assess the governance model that manages and measures the progress of an endeavour in the
Bank.
The case study and resulting analysis demonstrate that the Essence standard can be used to analyse
a methodology and identify areas for improvement. The analysis also identified areas for
improvement in the Essence specification.
|
55 |
Sustainable Software Development: Evolving Extreme ProgrammingSedano, Todd 01 April 2017 (has links)
Context: Software development is a complex socio-technical endeavor that involves coordinating different disciplines and skill sets. Practitioners experiment with and adopt processes and practices with a goal of making their work more effective. Objective: To observe, describe, and analyze software development processes and practices in an industrial setting. Our goal is to generate a descriptive theory of software engineering development, which is rooted in empirical data. Method: Following Constructivist Grounded Theory, we conducted a 2.5 year participant-observation of eight software projects at Pivotal, a software development company. We interviewed 33 software engineers, interaction designers, and product managers, and analyzed one year of retrospection topics. We iterated between data collection, data analysis and theoretical sampling until achieving theoretical saturation and generating a descriptive theory. Results: 1) This research introduces a descriptive theory of Sustainable Software Development. The theory encompasses principles, policies, and practices aiming at removing knowledge silos and improving code quality, hence leading to development sustainability. 2) At the heart of Sustainable Software Development is team code ownership. This research widens our understanding of team code ownership. Developers achieve higher team code ownership when they understand the system context, have contributed to the code in question, perceive code quality as high, believe the product will satisfy the user needs, and perceive high team cohesion. 3) This research introduces the first evidence-based waste taxonomy, identifying eight wastes along with causes and tensions, and compares it with Lean Software Development’s waste taxonomy. Conclusion: The Sustainable Software Development theory refines and extends our understanding of Extreme Programming by adding principles, policies, and practices (including Overlapping Pair Rotation) and aligning them with the business goal of sustainability. One key aspect of the theory is team code ownership, which is rooted in numerous cognitive, emotional, contextual and technical factors and cannot be achieved simply by policy. Another key dimension is waste identification and elimination, which has led to a new taxonomy of waste. Overall, this research contributes to the field of software engineering by providing new insights, rooted in empirical data, into how a software organization leverages and extends Extreme Programming to achieve software sustainability.
|
56 |
Quality management challenges in iterative software product development of a selected software development organisation in Cape Town, South AfricaChipunza, Enciliah January 2018 (has links)
Thesis (MTech (Business Information Systems))--Cape Peninsula University of Technology, 2018. / Many software organisations using iterative software development approach use practices that relate to quality management. However, the quality management process has been inadequate. Despite many research studies conducted on quality management in iterative software product development none have adequately addressed the challenges and mitigation techniques to have an adequate process that leads to a quality software product. The objective of this study was to determine factors that affect the quality management process in iterative software development. The research followed a qualitative approach, a case of software organisation SasTech in Cape Town, South Africa. 22 interviews were conducted on three roles actively involved in the software product development process. These are product management, quality assurance and software developers. Themes were drawn from results and were tabulated. The duality of technology theory was used as a theoretical lens to data analysis.
Several factors were identified to influence the software quality management process. These include planning, documentation, process ownership, technologies, testing, timelines and management support.
Through the general proposed framework, facilities (human resources and technologies), interpretive schemes (architecture) and norms (practices) of software quality management can be institutionalised leading to adequate and effective quality management in iterative development for SasTech as well as other organisations in the same industry.
|
57 |
Knowledge management and throughput optimization in large-scale software developmentAndersson, Henrik January 2015 (has links)
Large-scale software development companies delivering market-driven products have introduced agile methodologies as the way of working to a big extent. Even though there are many benefits with an agile way of working, problems occur when scaling agile because of the increased complexity. One explicit problem area is to evolve deep product knowledge, which is a domain specific knowledge that cannot be developed anywhere else but at the specific workplace. This research aims to identify impediments for developing domain specific knowledge and provide solutions to overcome these challenges in order to optimize knowledge growth and throughput. The result of the research shows that impediments occur in four different categories, based on a framework for knowledge sharing drivers. These are people-related, task-related, structure-related and technology-related. The challenging element with knowledge growth is to integrate the training into the feature development process, without affecting the feature throughput negatively. The research also shows that by increasing the knowledge sharing, the competence level of the whole organization can be increased, and thereby be beneficial from many perspectives, such as feature-throughput and code quality.
|
58 |
Decision support framework for the adoption of software development methodologies.Simelane, Lynette January 2019 (has links)
M. Tech. (Department of Information and Communication Technology, Faculty of Applied and Computer Sciences), Vaal University of Technology. / There are many software development methodologies that are used to control the process of developing a software system. However, no exact system has been found which could help software engineers in selecting the best software development methodology (SDM). The increasing complexity of software development today has led to complex management of software systems.
This complexity increases the challenges faced by professionals in selecting the most appropriate SDM to adopt in a project. This is important because the wrong choice of methodology is costly for the organization as it may impact on deliveries, maintenance costs, budget projects and reliability.
In this study we propose a decision support framework to assist professionals in the selection of appropriate software development methodologies that would fit each organisation and project setting.
The case based reasoning (CBR) methodology was implemented in this study. This methodology focuses on problem solving that centres on the reutilization of past experiences. The CBR methodology was implemented using the SQL programming language.
We tested the precision of the decision support framework by comparing the recommended methodology to the actual software methodology that was adopted for the project. The DS framework recorded an 80% precision result. In addition, the findings contribute to reducing the software crisis faced by today’s professionals. Therefore the framework can be adopted as a reliable tool for methodology selection in software development projects.
|
59 |
Project and team handler (PTH)Alhabashneh, Mohammad Abad Alhameed January 2006 (has links)
There is always a need for easy-to-follow processes that enable accurate and non-time consuming solutions. Nowadays we see a lot of different approaches to development processes in software engineering. This project is concerned with how to manage a software development process in a reliable, secure and efficient way. Software is available which provides some help for project managers / administrators to work more productively, with effective communication. Using such systems, it is possible to keep track of all the phases of development, including task distribution, making maximum use of previous hands-on experience and increasing productivity, to deliver a finished product in minimum time. No existing solution, however, fulfills all the desirable criteria. This paper describes the motivation, design and implementation of an improved development management system using Active Server Pages and Microsoft Internet Information Services with a backend Microsoft Access Database developed using a waterfall software development process. The resulting system is described and evaluated. This system will be beneficial for software houses, because they can communicate on the web, allowing efficiency gains by avoiding the need to call meetings for distribution of tasks among employees, with the additional advantage of location-transparent team management through the Internet.
|
60 |
Towards agile requirement engineeringLouis, Harriet 04 1900 (has links)
Thesis (MBA)--Stellenbosch University, 2015. / ENGLISH ABSTRACT: Software development is a relatively young science and involves certain tools, techniques, documentation aids and processes that are applied to deliver a software project. As hardware, software and business needs advanced, so did the processes used in managing software development. It is a dynamic and complex process and each development environment or project has its own unique characteristics. For this reason the methodologies followed during the development process is very often debated.
Software development teams have a wide array of methodologies to choose from. The development team usually decides what the key success factors are to deliver a software product, and then examines each one within the framework of a list of potential methodologies. This way the team can compare which methodology would best suit their needs.
Factors used to evaluate which methodology to follow, includes the size of the project team, rate of expected changes, the primary goal of the project, how requirements will be managed, communication structures that will be followed, the nature of the relationship with the customer, and the organisational culture in the customer organisation.
This research report takes a comparative look at Waterfall methods versus Agile methods.
|
Page generated in 0.1005 seconds