50 research outputs found

    Understanding requirements dependency in requirements prioritization: a systematic literature review

    Get PDF
    Requirement prioritization (RP) is a crucial task in managing requirements as it determines the order of implementation and, thus, the delivery of a software system. Improper RP may cause software project failures due to over budget and schedule as well as a low-quality product. Several factors influence RP. One of which is requirements dependency. Handling inappropriate handling of requirements dependencies can lead to software development failures. If a requirement that serves as a prerequisite for other requirements is given low priority, it affects the overall project completion time. Despite its importance, little is known about requirements dependency in RP, particularly its impacts, types, and techniques. This study, therefore, aims to understand the phenomenon by analyzing the existing literature. It addresses three objectives, namely, to investigate the impacts of requirements dependency on RP, to identify different types of requirements dependency, and to discover the techniques used for requirements dependency problems in RP. To fulfill the objectives, this study adopts the Systematic Literature Review (SLR) method. Applying the SLR protocol, this study selected forty primary articles, which comprise 58% journal papers, 32% conference proceedings, and 10% book sections. The results of data synthesis indicate that requirements dependency has significant impacts on RP, and there are a number of requirements dependency types as well as techniques for addressing requirements dependency problems in RP. This research discovered various techniques employed, including the use of Graphs for RD visualization, Machine Learning for handling large-scale RP, decision making for multi-criteria handling, and optimization techniques utilizing evolutionary algorithms. The study also reveals that the existing techniques have encountered serious limitations in terms of scalability, time consumption, interdependencies of requirements, and limited types of requirement dependencies

    Explainability as a non-functional requirement: challenges and recommendations

    Get PDF
    Software systems are becoming increasingly complex. Their ubiquitous presence makes users more dependent on their correctness in many aspects of daily life. As a result, there is a growing need to make software systems and their decisions more comprehensible, with more transparency in software-based decision making. Transparency is therefore becoming increasingly important as a non-functional requirement. However, the abstract quality aspect of transparency needs to be better understood and related to mechanisms that can foster it. The integration of explanations into software has often been discussed as a solution to mitigate system opacity. Yet, an important first step is to understand user requirements in terms of explainable software behavior: Are users really interested in software transparency and are explanations considered an appropriate way to achieve it? We conducted a survey with 107 end users to assess their opinion on the current level of transparency in software systems and what they consider to be the main advantages and disadvantages of embedded explanations. We assess the relationship between explanations and transparency and analyze its potential impact on software quality. As explainability has become an important issue, researchers and professionals have been discussing how to deal with it in practice. While there are differences of opinion on the need for built-in explanations, understanding this concept and its impact on software is a key step for requirements engineering. Based on our research results and on the study of existing literature, we offer recommendations for the elicitation and analysis of explainability and discuss strategies for the practice. © 2020, The Author(s)

    Aplicação de SAFe® a um Projecto de Manutenção de Aviões

    Get PDF
    Maintenance, repair and overhaul (MRO) operations have a great impact on the life cycle of an aircraft (A/C). MROs organizations address various challenges on planning activities to ensure the maximum reliability of an A/C, given the amount of unscheduled maintenance. Subcontracting MRO activities by airline companies, has been continuously increasing as an alternative of performing the heavy maintenance themselves, adding a constraint on this type of industries which is to manage the customer demands. Considering the main issues, it is required to select the most suitable approach to plan and manage A/C maintenance projects. Agile Project Management (PM) could be a solution to overcome the main difficulties in this sector, managing the uncertainty throughout the project, providing customer visibility and control over the service. This work arises in a real-life case of a subcontracted MRO program in a multinational A/C manufacture enterprise, which also suffers from significant challenges of planning and managing maintenance activities throughout the project life cycle. The program has experimented agile methodologies that revealed a positive impact. In order to the whole program embrace agility and overcome the identified main problems, it was proposed the usage of an elaborate and well-defined agile framework. Scaled Agile Framework for enterprises (SAFe®) is an online knowledge base that implements diverse agile techniques to support businesses, develop and deliver solutions, achieving business agility. As SAFe® was mainly developed for software industries, due to the characteristics of the project and the type of industry where it is inserted, the application of this framework needed to be customized. Accordingly to the particularities of the project, the most suitable PM approach is a hybrid approach, where initially the scope of the project is delineated, with a contingency plan, supported by SAFe® to manage the issues that arise throughout the project. The agile methodologies allow customer centred attention, more communication channels, and by iterating over the product, planning the unscheduled work focusing on high priority tasks. Lastly, a framework in the core of the appearance of the issues was developed, to define the interconnection between the whole SAFe® concepts and to provide an extended view of how the project will progress with the new approach.As operações de manutenção, reparação e revisão produzem grande impacto no ciclo de vida de uma aeronave. As organizações que operam neste setor enfrentam vários desafios no planeamento das atividades que garantem a máxima confiabilidade de uma aeronave, dada a quantidade de manutenção não programada. A subcontratação deste tipo de atividades, por parte das companhias aéreas, tem crescido continuamente como uma alternativa à realização da própria manutenção pesada, adicionando um constrangimento para este tipo de indústrias: gerir as exigências dos clientes. Considerando os principais problemas, é necessário selecionar a abordagem mais adequada para planear e gerir projetos de manutenção de aviões. A gestão ágil de projetos poderá ser uma solução para superar as principais dificuldades deste setor, gerindo as incertezas ao longo do projeto, proporcionando visibilidade ao cliente e controlo sobre o serviço. Este trabalho surge num caso real de um programa subcontratado numa empresa multinacional de fabrico de aviões, que também sofre de desafios significativos no planeamento e gestão de atividades de manutenção ao longo do ciclo de vida do projeto. O programa experienciou metodologias ágeis que revelaram um impacto positivo. Para que todo o programa adote a agilidade e supere os principais problemas identificados, foi proposto o uso de uma elaborada e bem definida estrutura ágil. O Scaled Agile Framework para empresas é uma base de conhecimento online que implementa diversas técnicas ágeis para apoiar as empresas no desenvolvimento e entrega de soluções, alcançando a agilidade nos negócios. O SAFe® foi desenvolvido principalmente para indústrias de software, devido às características do projeto e ao tipo de indústria em que está inserido, a aplicação desta estrutura necessitou de ser personalizada. De acordo com as particularidades do projeto, a abordagem de gestão de projetos mais adequada é uma abordagem híbrida, onde inicialmente o projeto é delineado, com um plano de contingência, apoiado pelo SAFe® para gerenciar os problemas que surgem ao longo do projeto. As metodologias ágeis permitem centrar a atenção no cliente, mais canais de comunicação e, ao iterar sobre o produto, planear o trabalho não programado com foco em tarefas de alta prioridade. Por fim, foi desenvolvido um framework no cerne do surgimento dos problemas, de forma a definir as interligações entre todos os conceitos do SAFe® e fornecer uma visão ampliada de como o projeto irá progredir com a nova abordagem

    Categorizing Non-Functional Requirements Using a Hierarchy in UML.

    Get PDF
    Non-functional requirements (NFRs) are a subset of requirements, the means by which software system developers and clients communicate about the functionality of the system to be built. This paper has three main parts: first, an overview of how non-functional requirements relate to software engineering is given, along with a survey of NFRs in the software engineering literature. Second, a collection of 161 NFRs is diagrammed using the Unified Modelling Language, forming a tool with which developers may more easily identify and write additional NFRs. Third, a lesson plan is presented, a learning module intended for an undergraduate software engineering curriculum. The results of presenting this learning module to a class in Spring, 2003 is presented

    Capturing, Eliciting, and Prioritizing (CEP) Non-Functional Requirements Metadata during the Early Stages of Agile Software Development

    Get PDF
    Agile software engineering has been a popular methodology to develop software rapidly and efficiently. However, the Agile methodology often favors Functional Requirements (FRs) due to the nature of agile software development, and strongly neglects Non-Functional Requirements (NFRs). Neglecting NFRs has negative impacts on software products that have resulted in poor quality and higher cost to fix problems in later stages of software development. This research developed the CEP “Capture Elicit Prioritize” methodology to effectively gather NFRs metadata from software requirement artifacts such as documents and images. Artifact included the Optical Character Recognition (OCR) artifact which gathered metadata from images. The other artifacts included: Database Artifact, NFR Locator Plus, NFR Priority Artifact, and Visualization Artifact. The NFRs metadata gathered reduced false positives to include NFRs in the early stages of software requirements gathering along with FRs. Furthermore, NFRs were prioritized using existing FRs methodologies which are important to stakeholders as well as software engineers in delivering quality software. This research built on prior studies by specifically focusing on NFRs during the early stages of agile software development. Validation of the CEP methodology was accomplished by using the 26 requirements of the European Union (EU) eProcurement System. The NORMAP methodology was used as a baseline. In addition, the NERV methodology baseline results were used for comparison. The research results show that the CEP methodology successfully identified NFRs in 56 out of 57 requirement sentences that contained NFRs compared to 50 of the baseline and 55 of the NERV methodology. The results showed that the CEP methodology was successful in eliciting 98.24% of the baseline compared to the NORMAP methodology of 87.71%. This represents an improvement of 10.53% compared to the baseline results. of The NERV methodology result was 96.49% which represents an improvement of 1.75% for CEP. The CEP methodology successfully elicited 86 out of 88 NFR compared to the baseline NORMAP methodology of 75 and NERV methodology of 82. The NFR count elicitation success for the CEP methodology was 97.73 % compared to NORMAP methodology of 85.24 %which is an improvement of 12.49%. Comparison to the NERV methodology of 93.18%, CEP has an improvement of 4.55%. CEP methodology utilized the associated NFR Metadata (NFRM)/Figures/images and linked them to the related requirements to improve over the NORMAP and NERV methodologies. There were 29 baseline NFRs that were found in the associated Figures/images (NFRM) and 129 NFRs were both in the requirement sentence and the associated Figure/images (NFRM). Another goal of this study was to improve the prioritization of NFRs compared to prior studies. This research provided effective techniques to prioritize NFRs during the early stages of agile software development and the impacts that NFRs have on the software development process. The CEP methodology effectively prioritized NFRs by utilizing the αβγ-framework in a similarly way to FRs. The sub-process of the αβγ-framework was modified in a way that provided a very attractive feature to agile team members. Modification allowed the replacement of parts of the αβγ-framework to suit the team’s specific needs in prioritizing NFRs. The top five requirements based on NFR prioritization were the following: 12.3, 24.5, 15.3, 7.5, and 7.1. The prioritization of NFRs fit the agile software development cycle and allows agile developers and members to plan accordingly to accommodate time and budget constraints

    Preserving the Quality of Architectural Tactics in Source Code

    Get PDF
    In any complex software system, strong interdependencies exist between requirements and software architecture. Requirements drive architectural choices while also being constrained by the existing architecture and by what is economically feasible. This makes it advisable to concurrently specify the requirements, to devise and compare alternative architectural design solutions, and ultimately to make a series of design decisions in order to satisfy each of the quality concerns. Unfortunately, anecdotal evidence has shown that architectural knowledge tends to be tacit in nature, stored in the heads of people, and lost over time. Therefore, developers often lack comprehensive knowledge of underlying architectural design decisions and inadvertently degrade the quality of the architecture while performing maintenance activities. In practice, this problem can be addressed through preserving the relationships between the requirements, architectural design decisions and their implementations in the source code, and then using this information to keep developers aware of critical architectural aspects of the code. This dissertation presents a novel approach that utilizes machine learning techniques to recover and preserve the relationships between architecturally significant requirements, architectural decisions and their realizations in the implemented code. Our approach for recovering architectural decisions includes the two primary stages of training and classification. In the first stage, the classifier is trained using code snippets of different architectural decisions collected from various software systems. During this phase, the classifier learns the terms that developers typically use to implement each architectural decision. These ``indicator terms\u27\u27 represent method names, variable names, comments, or the development APIs that developers inevitably use to implement various architectural decisions. A probabilistic weight is then computed for each potential indicator term with respect to each type of architectural decision. The weight estimates how strongly an indicator term represents a specific architectural tactics/decisions. For example, a term such as \emph{pulse} is highly representative of the heartbeat tactic but occurs infrequently in the authentication. After learning the indicator terms, the classifier can compute the likelihood that any given source file implements a specific architectural decision. The classifier was evaluated through several different experiments including classical cross-validation over code snippets of 50 open source projects and on the entire source code of a large scale software system. Results showed that classifier can reliably recognize a wide range of architectural decisions. The technique introduced in this dissertation is used to develop the Archie tool suite. Archie is a plug-in for Eclipse and is designed to detect wide range of architectural design decisions in the code and to protect them from potential degradation during maintenance activities. It has several features for performing change impact analysis of architectural concerns at both the code and design level and proactively keep developers informed of underlying architectural decisions during maintenance activities. Archie is at the stage of technology transfer at the US Department of Homeland Security where it is purely used to detect and monitor security choices. Furthermore, this outcome is integrated into the Department of Homeland Security\u27s Software Assurance Market Place (SWAMP) to advance research and development of secure software systems

    Software product quality requirements engineering method : SOQUAREM

    Get PDF
    The IT industry needs reliable data about Quality Requirements (QRs) to adequately evaluate systems and their architecture. Quality requirements management of the software product is an emerging discipline aiming to enhance the software product quality by addressing its quality requirements. Dealing with this kind of requirements is not easy and implies much effort from practitioners, better involvement of interested stakeholders and a solid knowledge in quality management techniques. In fact they are vague, difficult to define and often conflict with other requirements. New approaches toward QRs management are developed to resolve problems of traditional software engineering views as: a) lack of systematic guidelines on how to elicit QRs; b) difficulty to identify QRs and to represent them in models and processes. In the context of a proposal for a SOftware product QUAlity Requirements Engineering Method (SOQUAREM), this thesis provides a structured QRs engineering process with its supporting ISO/IEC SQuaRE 25030 standard, management techniques and concepts. SOQUAREM process spans 2 high levels of abstraction (business and system) and six conceptual phases such as: identification and refinement of business goals, derivation and consolidation of the quality attributes and their integration into the functional process. The proposed SOQUAREM illustrates in a structured and easy to use way how several concepts can be combined at different organizational levels to identify, represent, document and retrace quality attributes. This document is divided into six chapters: the first chapter presents a background and related work on "Quality requirements" in general and on various quality requirements management methods such as MOQARE (Misuse-Oriented QuAlity Requirements Engineering)), IESE NFR (Institute for Experimental Software Engineering Non Functional Requirements), Soft Goal Notation (Chung Framework), FDAF (Formal Design and Analysis Framework) and ATAM (Architecture Tradeoff Analysis Method). The second chapter introduces the research topic with its objectives, its limits, the research methodology and research steps. The third chapter describes the research execution by analyzing the current situation of quality requirements with the resulted indicators from academic and industrial environments and formulating the future requirements of the proposed research solution. An overview of the innovative aspects of proposed method like its specific features, metamodel, building process, and process structure are pinpointed. The fourth chapter describes primarily the most important parts of the research which are the development of a new quality requirements engineering method called SOftware product QUAlity Requirements Engineering Method including fundamentals, key concepts and a process model. The fifth chapter presents an illustrative example applied to a building automation system called MSLite. Applicability of SOQUAREM process in this example is developed and analyzed. The last chapter presents a conclusion on this research work and its expected evolution in the future

    Volume II Acquisition Research Creating Synergy for Informed Change, Thursday 19th Annual Acquisition Research Proceedings

    Get PDF
    ProceedingsApproved for public release; distribution is unlimited

    Impact estimation: IT priority decisions

    Get PDF
    Given resource constraints, prioritization is a fundamental process within systems engineering to decide what to implement. However, there is little guidance about this process and existing IT prioritization methods have several problems, including failing to adequately cater for stakeholder value. In response to these issues, this research proposes an extension to an existing prioritization method, Impact Estimation (IE) to create Value Impact Estimation (VIE). VIE extends IE to cater for multiple stakeholder viewpoints and to move towards better capture of explicit stakeholder value. The use of metrics offers VIE the means of expressing stakeholder value that relates directly to real world data and so is informative to stakeholders and decision makers. Having been derived from prioritization factors found in the literature, stakeholder value has been developed into a multi-dimensional, composite concept, associated with other fundamental system concepts: objectives, requirements, designs, increment plans, increment deliverables and system contexts. VIE supports the prioritization process by showing where the stakeholder value resides for the proposed system changes. The prioritization method was proven to work by exposing it to three live projects, which served as case studies to this research. The use of the extended prioritization method was seen as very beneficial. Based on the three case studies, it is possible to say that the method produces two major benefits: the calculation of the stakeholder value to cost ratios (a form of ROI) and the system understanding gained through creating the VIE table

    A framework for analyzing changes in health care lexicons and nomenclatures

    Get PDF
    Ontologies play a crucial role in current web-based biomedical applications for capturing contextual knowledge in the domain of life sciences. Many of the so-called bio-ontologies and controlled vocabularies are known to be seriously defective from both terminological and ontological perspectives, and do not sufficiently comply with the standards to be considered formai ontologies. Therefore, they are continuously evolving in order to fix the problems and provide valid knowledge. Moreover, many problems in ontology evolution often originate from incomplete knowledge about the given domain. As our knowledge improves, the related definitions in the ontologies will be altered. This problem is inadequately addressed by available tools and algorithms, mostly due to the lack of suitable knowledge representation formalisms to deal with temporal abstract notations, and the overreliance on human factors. Also most of the current approaches have been focused on changes within the internal structure of ontologies, and interactions with other existing ontologies have been widely neglected. In this research, alter revealing and classifying some of the common alterations in a number of popular biomedical ontologies, we present a novel agent-based framework, RLR (Represent, Legitimate, and Reproduce), to semi-automatically manage the evolution of bio-ontologies, with emphasis on the FungalWeb Ontology, with minimal human intervention. RLR assists and guides ontology engineers through the change management process in general, and aids in tracking and representing the changes, particularly through the use of category theory. Category theory has been used as a mathematical vehicle for modeling changes in ontologies and representing agents' interactions, independent of any specific choice of ontology language or particular implementation. We have also employed rule-based hierarchical graph transformation techniques to propose a more specific semantics for analyzing ontological changes and transformations between different versions of an ontology, as well as tracking the effects of a change in different levels of abstractions. Thus, the RLR framework enables one to manage changes in ontologies, not as standalone artifacts in isolation, but in contact with other ontologies in an openly distributed semantic web environment. The emphasis upon the generality and abstractness makes RLR more feasible in the multi-disciplinary domain of biomedical Ontology change management
    corecore