Spelling suggestions: "subject:"8oftware evolution"" "subject:"5oftware evolution""
1 |
Studying Software Evolution Using the Time Dependence of Code ChangesAlam, Omar 06 August 2010 (has links)
Constructing software bears many similarities to constructing buildings. In a building project, each floor builds on the
previous structures (walls of the previous floors) with some structures being more
foundational (i.e. essential) for other structures and some periods of construction being more foundational (i.e. critical) to the final structure. In a software project, each change builds on the structures
created by prior changes with some changes creating foundational structure and with some time periods of changes being more
foundational than others.
This thesis is inspired by this similarity between constructing buildings
and constructing software. The thesis makes use of the similarity to study the evolution of software projects. In particular, we develop the concept of time dependence between code changes to study software evolution through empirical studies on two large open source projects (PostgreSQL and
FreeBSD) with more than 25 years of development history.
We show that time dependence can be used to
study how changes build on prior changes and the impact of this building process on the quality of a project. We show how
a development period impacts the development of future periods in a project. We also show how a subsystem (module) of a project builds on other subsystems and we identify the subsystems that have high impact on a project's development. Using this knowledge, managers can better monitor the progress of the projects and better plan for future
changes. / Thesis (Master, Computing) -- Queen's University, 2010-05-29 11:25:39.005
|
2 |
Studying the Evolution of Build SystemsMCINTOSH, SHANE 31 January 2011 (has links)
As a software project ages, its source code is improved by refining existing features, adding new ones, and fixing bugs. Software developers can attest that such changes often require accompanying changes to the infrastructure that converts source code into executable software packages, i.e., the build system. Intuition suggests that these build system changes slow down development progress by diverting developer focus away from making improvements to the source code.
While source code evolution and maintenance is studied extensively, there is little work that focuses on the build system. In this thesis, we empirically study the static and dynamic evolution of build system complexity in proprietary and open source projects. To help counter potential bias of the study, 13 projects with different sizes, domains, build technologies, and release strategies were selected for examination, including Eclipse, Linux, Mozilla, and JBoss.
We find that: (1) similar to Lehman's first law of software evolution, Java build system specifications tend to grow unless explicit effort is invested into restructuring them, (2) the build system accounts for up to 31\% of the code files in a project, and (3) up to 27\% of source code related development tasks require build maintenance. Project managers should include build maintenance effort of this magnitude in their project planning and budgeting estimations. / Thesis (Master, Computing) -- Queen's University, 2011-01-31 12:46:06.082
|
3 |
Application infrastructure evolution: An industrial case studyCsaky, Marcus 25 April 2013 (has links)
Modern computer infrastructure continues to advance at an accelerating pace. This advancement affects all aspects of computing systems such as hardware, device types, operating systems, and software. The constant change creates a problem for software vendors who must support not only the latest systems, but also previous versions. This infrastructure updating requirement limits software vendors when implementing new software features and in turn product innovation. There is a significant and increasing cost associated with adhering to application infrastructure requirement changes. To accommodate infrastructure change requirements, immediate and measurable action must be taken. First, the current industrial software development practices and tooling need to be analyzed. Current industrial release patterns and product update tooling must be understood and their shortcomings investigated. Next, key use cases ought to be identified and new methodologies and extensions to existing frameworks ought to be proposed to circumvent these difficulties. Finally, systems must be architected and developed to test the solution hypotheses and then deployed in commercial applications. This thesis focuses on these critical steps in the call to action to change software infrastructure management. In this thesis, we analyze an industrial problem including a real case study. We illustrate the currently available approaches and then describe how they are not sufficient in solving the problem. Our approach is based on an extension of a previously developed framework (i.e., the SmartContext commerce framework). In particular, we design an architecture and implementation for our industrial problem domain. / Graduate / 0984
|
4 |
An agent-based service-oriented approach to evolving legacy software systems into a pervasive computing environmentLiu, Ruimin January 2010 (has links)
This thesis focuses on an Agent-Based Service-Oriented approach to evolving legacy system into a Pervasive Computing environment. The methodology consists of multiple phases: using reverse engineering techniques to comprehend and decompose legacy systems, employing XML and Web Services to transform and represent a legacy system as pervasive services, and integrating these pervasive services into pervasive computing environments with agent based integration technology. A legacy intelligent building system is used as a case study for experiments with the approach, which demonstrates that the proposed approach has the ability to evolve legacy systems into pervasive service environments seamlessly. Conclusion is drawn based on analysis and further research directions are also discussed.
|
5 |
Security-driven software evolution using a model driven approachGuan, Hui January 2014 (has links)
High security level must be guaranteed in applications in order to mitigate risks during the deployment of information systems in open network environments. However, a significant number of legacy systems remain in use which poses security risks to the enterprise' assets due to the poor technologies used and lack of security concerns when they were in design. Software reengineering is a way out to improve their security levels in a systematic way. Model driven is an approach in which model as defined by its type directs the execution of the process. The aim of this research is to explore how model driven approach can facilitate the software reengineering driven by security demand. The research in this thesis involves the following three phases. Firstly, legacy system understanding is performed using reverse engineering techniques. Task of this phase is to reverse engineer legacy system into UML models, partition the legacy system into subsystems with the help of model slicing technique and detect existing security mechanisms to determine whether or not the provided security in the legacy system satisfies the user's security objectives. Secondly, security requirements are elicited using risk analysis method. It is the process of analysing key aspects of the legacy systems in terms of security. A new risk assessment method, taking consideration of asset, threat and vulnerability, is proposed and used to elicit the security requirements which will generate the detailed security requirements in the specific format to direct the subsequent security enhancement. Finally, security enhancement for the system is performed using the proposed ontology based security pattern approach. It is the stage that security patterns derived from security expertise and fulfilling the elicited security requirements are selected and integrated in the legacy system models with the help of the proposed security ontology. The proposed approach is evaluated by the selected case study. Based on the analysis, conclusions are drawn and future research is discussed at the end of this thesis. The results show this thesis contributes an effective, reusable and suitable evolution approach for software security.
|
6 |
Identifying Behavioural Implications of Source Code ChangesEl-Sayed, Abdullah January 2013 (has links)
The dynamic behaviour of a software system changes as a consequence of developer’s static source code modifications. In this thesis, we improve upon a previous approach that combines static and dynamic analyses to categorize behavioural changes by greatly improving its accuracy through polymorphic mapping. We further refine the previous model by introducing a change-centric state transition model that captures the flow of call pairs among different partitions based on static and dynamic call graphs. We also extend the approach by incorporating complete dynamic call stacks into the analysis. Finally, we perform a longitudinal analysis of three software systems to categorize how they have dynamically evolved across 100 program versions.
In our evaluation, the polymorphic mapping algorithm decreased mismatches between the static and dynamic analyses by 53%. In particular, we decreased the mismatch by 71% in the most important category of changes from the developer’s point of view. We found that developers introduce new behaviour more often than eliminating old behaviour. Our results show that developers are more likely to remove unexecuted/dead code than code that is executed dynamically. In terms of change types, we found that changes made to fix defects encountered the least inconsistent and unexpected behaviour, while changes made to add new functionality experienced the highest unexecuted behaviour. Finally, we argue that augmenting the dynamic analyses with call stacks provides useful information that helps developers analyze the implications of the call pairs highlighted by our analyses.
|
7 |
Identifying Behavioural Implications of Source Code ChangesEl-Sayed, Abdullah January 2013 (has links)
The dynamic behaviour of a software system changes as a consequence of developer’s static source code modifications. In this thesis, we improve upon a previous approach that combines static and dynamic analyses to categorize behavioural changes by greatly improving its accuracy through polymorphic mapping. We further refine the previous model by introducing a change-centric state transition model that captures the flow of call pairs among different partitions based on static and dynamic call graphs. We also extend the approach by incorporating complete dynamic call stacks into the analysis. Finally, we perform a longitudinal analysis of three software systems to categorize how they have dynamically evolved across 100 program versions.
In our evaluation, the polymorphic mapping algorithm decreased mismatches between the static and dynamic analyses by 53%. In particular, we decreased the mismatch by 71% in the most important category of changes from the developer’s point of view. We found that developers introduce new behaviour more often than eliminating old behaviour. Our results show that developers are more likely to remove unexecuted/dead code than code that is executed dynamically. In terms of change types, we found that changes made to fix defects encountered the least inconsistent and unexpected behaviour, while changes made to add new functionality experienced the highest unexecuted behaviour. Finally, we argue that augmenting the dynamic analyses with call stacks provides useful information that helps developers analyze the implications of the call pairs highlighted by our analyses.
|
8 |
Architecture-Based Software Evolution: A Multi-Dimensional ApproachWang, Huan 08 1900 (has links)
<p> Software Evolution is unavoidable because software systems are subject to continuous change, continuing growth and increasing complexity. As software systems become mission-critical and large in size, the complexity in software development is now focused on software evolution rather than construction. In this work, we view a software system as an entity that is evolving throughout its lifetime, during development and maintenance. Based on a broad survey of software evolution approaches, we propose an architecture-based solution for
software evolution, which is defined in terms of evolution specific operations on architectural elements, that is, adding, removing, replacing components and (or) connectors, transforming configurations according to the required changes. In our view of software architectures, connectors are more likely to change since they are the architectural elements which reflect business rules. This work is focused on the evolution of connectors in architectures describing detailed design. Coordination contracts are introduced by Fiadeiro et al. as a realization of connectors at this detailed architecture level, which enables a three-layer architecture to separate concerns of components, connectors and configuration during evolution. Furthermore, to constrain the evolution in a predictable direction, we have established a matching scheme for justifying behavioral relationships between coordination contracts by specification matching based on pre- and postconditions of contracts and methods. A number of specification matches, with various degrees of similarity between the evolved and evolving
contracts, have been developed for system behaviors after evolution operations. Case studies are exhibited give a better understanding of these matches.</p> / Thesis / Master of Science (MSc)
|
9 |
A re-engineering approach for software systems complying with the utilisation of ubiquitous computing technologiesAlawairdhi, Mohammed January 2009 (has links)
The evident progression of ubiquitous technologies has put forward the introduction of new features which software systems can sustain. Several of the ubiquitous technologies available today are regarded as fundamental elements of many software applications in various domains. The utilisation of ubiquitous technologies has an apparent impact on business processes that can grant organisations a competitive advantage and improve their productivity. The change in the business processes in such organisations typically leads to a change in the underlying software systems. In addressing the need for change in the underlying software systems, this research is focused on establishing a general framework and methodology to facilitate the reengineering of software systems in order to allow the incorporation of new features which are introduced by the employment of ubiquitous technologies. Although this thesis aims to be general and not limited to a specific programming language or software development approach, the focus is on Object-Oriented software. The reengineering framework follows a systematic step-based approach, with greater focus on the reverse engineering aspect. The four stages of the framework are: program understanding, additional-requirement engineering, integration, and finally the testing and operation stage. In its first stage, the proposed reengineering framework regards the source code as the starting point to understand the system using a static-analysis based method. The second stage is concerned with the elicitation of the user functional requirements resulting from the introduction of ubiquitous technologies. In the third stage, the goal is to integrate the system’s components and hardware handlers using a developed integration algorithm and available integration techniques. In the fourth and final stage, which is discussed in a general manner only in this thesis, the reengineered system is tested and put in the operation phase. The proposed approach is demonstrated using a case study in Java to show that the proposed approach is feasible and promising in its domain. Conclusions are drawn based on analysis and further research directions are discussed at the end of the study.
|
10 |
Business rules based legacy system evolution towards service-oriented architectureXu, Yang January 2010 (has links)
Enterprises can be empowered to live up to the potential of becoming dynamic, agile and real-time. Service orientation is emerging from the amalgamation of a number of key business, technology and cultural developments. Three essential trends in particular are coming together to create a new revolutionary breed of enterprise, the service-oriented enterprise (SOE): (1) the continuous performance management of the enterprise; (2) the emergence of business process management; and (3) advances in the standards-based service-oriented infrastructures. This thesis focuses on this emerging three-layered architecture that builds on a service-oriented architecture framework, with a process layer that brings technology and business together, and a corporate performance layer that continually monitors and improves the performance indicators of global enterprises provides a novel framework for the business context in which to apply the important technical idea of service orientation and moves it from being an interesting tool for engineers to a vehicle for business managers to fundamentally improve their businesses.
|
Page generated in 0.0585 seconds