Spelling suggestions: "subject:"5oftware engineering"" "subject:"1software engineering""
201 |
Understanding and supporting requirements engineering decisions in market-driven software product developmentDzamashvili-Fogelström, Nina January 2010 (has links)
Context: Requirements engineering (RE) for software products offered to a mass market is concerned with deciding which of the diverse and large amounts of potential requirements to implement into future releases of a product. While being the key for achieving success, these decisions are very complex. Therefore, the need for decision support is well acknowledged. However, despite a growing body of research in this area, software companies are still experiencing problems in making informed decisions on which requirements to include in the software, or knowing how to maximize the potential ROI of a software release. Objective: The purpose of this thesis is to provide an increased understanding of how better decisions regarding the content of software products can be achieved. The research addresses two currently unresolved areas: balancing investments in different requirement types (commercial requirements, internal quality aspects and innovations) and identifying reasonable requirement analysis effort for informed requirements selection decisions. In order to address these areas the thesis focuses on investigating: 1) how uncertainty in the value proposition of a requirement is influencing the balance between investments in different requirement types; and 2) challenges and opportunities introduced by agile practices to RE decisions. Method: The presented research has an exploratory character and consists of empirical studies conducted both in industrial and academic settings. Results: The results include findings from an academic experiment and an industrial case study indicating that commercial requirements will be preferred over innovations and internal quality aspects. This is because innovations and internal quality aspects are associated with higher uncertainty in their value offering compared to commercial requirements and thereby are perceived to have higher level of business risk. The thesis also offers findings from an industrial case study, showing a misalignment between agile principles and the ability to take informed release planning decisions. Further, a framework (NORM) for finding an appropriate balance between information needs of RE decisions and requirements analysis effort is suggested. Conclusions: Uncertainty associated with the value proposition of different requirement types influences the requirements selection decisions, resulting in a dominance of commercial requirements. Thus, in order to achieve a better balance between investments in commercial requirements, internal quality and innovation it is important that uncertainty in the value offering of requirements is explicitly managed by methods providing support for RE decisions in a market-driven context. Agile methods provide opportunities to minimize overhead caused by excessive analysis of requirements, however adopting agile approaches in their current form pose challenges for performing product management and taking informed RE decisions in a market-driven context. Therefore, a balance between agility and information needs of RE decisions must be found. In combination, the thesis results offer a new insight and form a ground for defining improved approaches for supporting requirement selection decisions.
|
202 |
Efficient Software Development Through Agile MethodsJalali, Samireh January 2012 (has links)
Context: Distributed teams characterize Global Software Engineering (GSE). GSE stakeholders are from different cultures, geographic places and potentially time zones. These conditions have significant consequences on communication, coordination and control of software projects. Given these constraints, distributed teams need to highly rely on each other. Trust is the glue that holds them together and enables more open communication, which increases their performance and quality of delivered products. Simultaneously, in striving for more efficient software development approaches, Agile values and principles were formulated. Agile methods encourage establishing close collaboration between customers and developers, continuous requirements gathering and frequent face-to-face communications. Objective: The major objective of the research is to study efficient software development approaches particularly in (globally) distributed settings. Thus, the dynamics of trust in GSE are investigated for bringing useful trust improvement suggestions to project managers. Furthermore, Agile practices that have been efficiently applied in GSE are identified through two different systematic literature review approaches (i.e. systematic literature review and backward snowballing). The differences identified in the use of Agile practices lead to a need to better understand and assess Agility. Method: The research methods, include systematic literature reviews and case studies, are applied in different empirical cases. Then, a variety of secondary data collection methods are utilized such as semi-structured interviews, questionnaires, open discussions and presentations. Result: Achieving trust was realized to be crucial and the success factor for trust was the “awareness” of particular GSE challenges, which shall be communicated properly to all distributed team members and proper actions shall be taken to address them. Besides, the literature indicated several successful combinations of Agile and GSE. However, despite utilizing two different literature search methods the identified patterns were similar. The most common practices were “standup meetings” and “sprints/iterations”. Nevertheless, the current literature reports “Agile” as a general term and “distributed team” as the most common team/organization setting, which motivated examining the applicability of existing Agile assessment tools in an industrial setting. We found one of the studied tools sufficiently applicable in the context of the case organization. Conclusions: Trust achievement is crucial for efficient GSE collaborations regardless of the applied software development approach. Although Agile promotes trust among team members, it was formulated without considering teams’ distribution. Hence, combining Agile and GSE is challenging. The literature contains several successful cases of implementing Agile in GSE while practitioners and researchers are not yet consistent regarding their perception of Agile practices and documenting them. Therefore, they need to collaborate closely, illustrate the practices, agree on the terminology, how to document the context, and how to profile/assess Agility. For this purpose, we examined the applicability of a set of Agile assessment tools and proposed one tool for the case organization.
|
203 |
Decision Support for Estimation of the Utility of Software and E-mailBorg, Anton January 2012 (has links)
Background: Computer users often need to distinguish between good and bad instances of software and e-mail messages without the aid of experts. This decision process is further complicated as the perception of spam and spyware varies between individuals. As a consequence, users can benefit from using a decision support system to make informed decisions concerning whether an instance is good or bad. Objective: This thesis investigates approaches for estimating the utility of e-mail and software. These approaches can be used in a personalized decision support system. The research investigates the performance and accuracy of the approaches. Method: The scope of the research is limited to the legal grey- zone of software and e-mail messages. Experimental data have been collected from academia and industry. The research methods used in this thesis are simulation and experimentation. The processing of user input, along with malicious user input, in a reputation system for software were investigated using simulations. The preprocessing optimization of end user license agreement classification was investigated using experimentation. The impact of social interaction data in regards to personalized e-mail classification was also investigated using experimentation. Results: Three approaches were investigated that could be adapted for a decision support system. The results of the investigated reputation system suggested that the system is capable, on average, of producing a rating ±1 from an objects correct rating. The results of the preprocessing optimization of end user license agreement classification suggested negligible impact. The results of using social interaction information in e-mail classification suggested that accurate spam detectors can be generated from the low-dimensional social data model alone, however, spam detectors generated from combinations of the traditional and social models were more accurate. Conclusions: The results of the presented approaches suggestthat it is possible to provide decision support for detecting software that might be of low utility to users. The labeling of instances of software and e-mail messages that are in a legal grey-zone can assist users in avoiding an instance of low utility, e.g. spam and spyware. A limitation in the approaches is that isolated implementations will yield unsatisfactory results in a real world setting. A combination of the approaches, e.g. to determine the utility of software, could yield improved results.
|
204 |
Understanding the Impact on Software Quality for Evolving Systems in Distributed Development EnvironmentsJabangwe, Ronald January 2013 (has links)
Context: The existing body of knowledge falls short of providing comprehensive empirical evidence on the impact that global software development (GSD) strategies have on software quality during software evolution. The realization of expected benefits of such GSD strategies, e.g. reduced costs, should not be taken for granted. Challenges faced can negatively impact quality, which can consequently inhibit the realization of the potential benefits. Objective: This licentiate thesis provides empirical evidence pertaining to the effect on quality for evolving systems in distributed development environments. The aim is to provide empirical evidence that can be useful input in the decision-making process for future GSD projects that are executed in distributed development environments. Method: The findings presented in this licentiate thesis are obtained from three empirical studies and one extensive systematic literature review. The empirical studies were conducted at two large multinational corporations. Meanwhile, the purpose of the systematic review was to obtain empirical information that was used to successfully execute one of the empirical studies. All empirical work was done using both quantitative data (e.g., defect data, features per release, source code measures, release history) and qualitative data (e.g., interviews, focus group meetings, questionnaires, and analysis of company documentations). Result: Transfers have a potentially negative impact on quality and efficiency. Observations that were made on quantitative data in all three empirical studies were triangulated with subjective opinions that were obtained from practitioners. When studying the quality of a large software system, a significant decrease in quality was identified; similarly in a study focusing on maintenance work efficiency two studied large software products showed a noticeable decrease. Meanwhile, there was no discernible impact on quality for two products, as a result of distributed development and the handover of responsibilities between involved sites. Transfer critical factors, which can impact quality, as well as transfer enabling factors, which can alleviate transfer-related issues, were also identified from these empirical studies. Conclusions: Companies that engage in software transfers should expect a decline in quality during and immediately after a transfer. There are practices, such as, engaging in distributed development, and the gradual handover of responsibilities, that can alleviate transfer-related issues. The findings in this licentiate thesis can be a valuable input in the decision-making process for companies engaging in transfers in GSD contexts, and thus help in making informed decisions in current or future transfers. Moreover, this licentiate thesis shows that analyzing the evolution of size and complexity properties of a product’s source code, and defect data, can also provide useful objective data to support decision-making during similar projects.
|
205 |
Interactive Search-Based Testing of Embedded Software : Understanding the Benefits and Difficulties of Industrial ApplicationMarculescu, Bogdan January 2014 (has links)
The ubiquity of software has wide-ranging consequences for its development and testing. Increasingly often, software is developed and tested by engineers specialized in other areas. Embedded software, for example, is developed ad-hoc, for each product, by systems and domain engineers. Supporting testing activities in this context requires a highly flexible approach, powerful enough to create useful test cases, yet simple enough to not require specialized training in software testing. Search-based software testing promises the ability to generate and evaluate large numbers of test cases at minimal cost. It is, however, a set of complex techniques that cannot be used off-the-shelf as part of the software development process of a company. The objective of the work presented in this thesis is to investigate the applicability of Search-Based Software Testing in an industrial environment. A second objective was identifying additional knowledge gaps relating to integrating such techniques in existing software development processes. Investigating how meaningful interaction is to take place, what information is needed in order for both stakeholders to be able to achieve their objectives is a third goal. The findings are obtained by means of a series of case studies in a company developing both embedded software and the tools to enable embedded software development. A prototype Interactive Search-Based Software Testing (ISBST) system was developed that uses user interaction to drive the search-based component towards interesting test cases. The ISBST system was evaluated constantly, and improved based on the findings of each case study. The latest case study was an empirical evaluation of the system with the engineers, both software engineers and domain specialists, in the company. The empirical work includes both qualitative and quantitative data, with a focus on the exploratory study of the practical factors affecting the use of the ISBST system. A key early finding is that interactivity is essential when implementing search-based techniques in the industrial context described above. Repeated validations conducted with the company yielded additional information on the practicalities of interaction. The strength of SBST proved useful in investigating areas of the test space that were normally overlooked due to limitations in terms of resources. At the same time, developers were able to use their experience and intuition to guide the SBST system towards test cases that were more likely to be problematic. Overall, the results obtained indicate that the search-based techniques provide a useful complement to existing testing techniques. SBST, in its interactive form, can be a useful complement to existing testing techniques. An Interactive SBST (ISBST) system has been developed as a result of this research. Results show that this system is usable by the developers of embedded software, that often specialize on acquiring domain knowledge rather than software engineering expertise.
|
206 |
Customizing UML with StereotypesStaron, Miroslaw January 2003 (has links)
The Unified Modeling Language (UML) is a visual modeling language for documenting and specifying software. It is gaining popularity as a language for a variety of purposes. It was designed as a result of a unifying activity in the last decade. Since this general purpose language cannot suit all possible needs, it has built-in mechanisms for providing extensibility for specific purposes. One such mechanism is the notion of stereotype, which is a means of branding the existing model element with a new semantics. Such extended elements can then act as new model elements as if they were standard model elements. This notion is only one of the possible ways of customizations of the language. The other, more powerful technique is metamodeling, which enables to change UML by directly changing its specification. The thesis investigates the notion of stereotype in UML both from theoretical and practical perspectives. It examines the notion of stereotype as it originally appeared in object-oriented software development as a means of branding objects according to their secondary classification in the system. The initial intent behind stereotypes is compared with the view of stereotypes in UML and similar languages, which later on provides a basis for an understanding of a stereotype in the thesis. The thesis elaborates on a classification of stereotypes from the perspective of their usage. The classification categorizes different usages of stereotypes in different situations. Based on the classification, one such usage is evaluated in an empirical way. The evaluation is done in the form of an experiment on how the stereotypes influence the understanding of UML models. An example of a customization of UML for a conceptual database model is presented. It is a basis for a study on the expressiveness of stereotypes in the context of persistency modeling in objectoriented software. Two ways of the introduction of the stereotypes into the software development process (dependent and independent of UML tools) are outlined.The thesis contains also a presentation of how the knowledge expressed as ontology can be imported into domain models expressed in UML. This research can be seen as a further study on the customization of UML towards usage of ontology-based knowledge.
|
207 |
Prioritization of Stakeholder Needs in Software Engineering : Understanding and EvaluationBerander, Patrik January 2004 (has links)
In everyday life, humans confront situations where different decisions have to be made. Such decisions can be non-trivial even though they often are relatively simple, such as which bus to take or which flavor of a soft drink to buy. When facing decisions of more complex nature, and when more is at stake, they tend to get much harder. It is often possible to deal with such decisions by prioritizing different alternatives to find the most suitable one. In software engineering, decision-makers are often confronted with situations where complex decisions have to be made, and where the concept of prioritization can be utilized. Traditionally in software engineering, discussions about prioritization have focused on the software product. However, when defining or improving software processes, complex decisions also have to be made. In fact, software products and software processes have many characteristics in common which invite thoughts about using prioritization when developing and evolving software processes as well. The results presented in this thesis indicate that it is possible to share results and knowledge regarding prioritization between the two areas. In this thesis, the area of prioritization of software products is investigated in detail and a number of studies where prioritizations are performed in both process and product settings are presented. It is shown that it is possible to use prioritization techniques commonly used in product development also when prioritizing improvement issues in a software company. It is also shown that priorities between stakeholders of a software process sometimes differ, just as they do when developing software products. The thesis also presents an experiment where different prioritization techniques are evaluated with regard to ease of use, time consumption, and accuracy. Finally, an investigation of the suitability of students as subjects when evaluating prioritization techniques is presented.
|
208 |
Applying configuration management techniques to component-based systemsLarsson, Magnus January 2000 (has links)
Building software from components, rather than writing the code from scratch has several advantages, including reduced time to market and more efficient resource usage. However, component-based development without consideration of all the risks and limitations involved may give unpredictable results, such as the failure of a system when a component is used in an environment for which it was not originally designed. One of the basic problems when developing component-based systems is that it is difficult to keep track of components and their interrelationships. This is particularly problematic when upgrading components. One way to maintain control over upgrades is to use component identification and dependency analysis. These are well known techniques for managing system configurations during development, but are rarely applied in managing run-time dependencies. The main contribution of this thesis is to show how Configuration Management (CM) principles and methods can be applied to component-based systems. This thesis presents a method for analysing dependencies between components. The method predicts the influence of a component update by identifying the components in a system and constructing a graph describing their dependencies. Knowledge of the possible influences of an update is important, since it can be used to limit the scope of testing and be a basis for evaluating the potential damage of the update. The dependency graphs can also be used to facilitate maintenance by identifying differences between configurations, e.g., making it possible to recognise any deviations from a functioning reference configuration. For evaluation of the method, a prototype tool which explores dependencies and stores them under version control has been developed. The prototype has been used for partial analysis of the Windows 2000 platform, for which it has been important to remain aware of dynamic dependencies. Preliminary experiments indicate that most components have only a few dependencies. The method has thus given an indication that the analysis of the effects of component updates may not be as difficult as might be expected.
|
209 |
Continuous Integration - A comparison between theory and practiceSandberg, Martin January 2015 (has links)
To develop software in a larger scale, some kind of software development method is needed to organize the development. Many different software development methods have emerged since the beginning of software development, and Continuous Integration (CI) is one of them. Many companies have applied, or tried to apply CI in their business. Some companies were successful, some were not. This thesis examines what CI is in the theory, and compare it to how it works in the practice in the department ”Product Development Traffic Control” (PD TC) which is a part of the ”Product Development Unit LTE Multistandard Radio” (PDU LMR) within Ericsson. The theory of CI is examined mostly through literature studies. CI in practice was examined through interviews with developers and employees working with the CI-machinery at PD TC. The comparison between the theory and the studied company revealed that it is difficult to adapt CI perfectly to a large organization. This does not imply that CI is implemented in the wrong way, but the benefits of implementing CI in large projects may not be as enormous in comparison with smaller projects.
|
210 |
Baking And Compression For Dynamic Lighting DataOlsson, Tom January 2015 (has links)
This report describes the development and prototype implementation of a method for baking and compression of lightmaps, in an environment with dynamic lights. The method described can achieve more than 95 % compression eciency, and can be easily tuned with only two parameters. Even without specic tuning, the prototype consistently achieves signalto- noise ratios above 30 dB, reaching 60 dB in some scenes. Compression is achieved in four steps, rst by using image segmentation and function approximation to reduce the data-size and then using a predictive quantizer approach based on the PNG-lters together with an open-source compression algorithm. Both compression and decompression can be adapted for asynchronous and multi-threaded execution. / Denna report beskriver utvecklingen av en metod for bakning och komprimering av dynamiska ljuskartor, i renderingar med dynamiska ljuskallor. Metoden uppnar mer an 95 % storleksreduktion, och kan enkelt anpassas for olika ljuskartor med tva variabler. Aven utan speci- ka anpassningar uppnas en signal-to-noise niva over 30 dB, och narmare 60 dB i vissa scener. Komprimering sker i fyra steg, forst genom bildsegmentering och linjar funktionsapproximation, foljt av predictive quantization och en vanlig komprimeringsalgorithm. Bade komprimering och dekomprimering kan anpassas for asynkron och ertradig exekvering.
|
Page generated in 0.0884 seconds