13 research outputs found

    Extracting software features from online reviews to demonstrate requirements reuse in software engineering

    Get PDF
    Software Product Lines Engineering is a systematic approach towards realizing software reuse.Among important artifacts to be reused includes requirements, architectures, source codes, designs or even test plans.Requirements reuse if done systematically can expedite the time to market, improve productivity and reduce laborious work. This paper presents the results from an experiment conducted on extracting features from online software reviews to demonstrate our proposed solution to requirements reuse problem.Fifty two software reviews from seven software categories are used as the test data.The automated process proposed is compared to the manual process and the results from experiment indicates significant improvements in terms of time efficiency and F-Measure

    Exploring software practitioners perceptions and experience in requirements reuse : a survey in Malaysia

    Get PDF
    In Software Product Lines (SPL) development, reuse process is planned ahead of time, while in traditional software development reuse can occur opportunistically: unplanned or in ad hoc manner. Although many research efforts in SPL focus on issues related to architecture, designs and codes reuse, research on requirements reuse has received slightly less attention from researchers and practitioners. Requirements Reuse (RR) in SPL is the process of systematically reusing previously defined and validated requirements for an earlier software product and applying them to a new and slightly different product within a similar domain. This paper presents a survey pertaining to RR practice that was conducted in Malaysia with two objectives: a) to identify the factors influencing software practitioners in RR, and b) to assess the factors hindering software practitioners from reusing requirements in software development. The survey results have confirmed seven factors that can influence RR practice in Malaysia. The survey results have also revealed three main impediments to RR practice in Malaysia: the unavailability of RR tools or framework to select requirements for reuse, the conditions of existing requirements to be reused (incomplete, poorly structured or not kept updated), and the lack of awareness and RR education among software practitioners pertaining to the systematic R

    Use of IBM Collaborative Lifecycle Management Solution to Demonstrate Traceability for Small, Real-World Software Development Project

    Get PDF
    The Standish Group Study of 1994 showed that 53 percent of software projects failed outright and another 31 percent were challenged by extreme budget and/or time overrun. Since then different responses to the high rate of software project failures have been proposed. SEI’s CMMI, the ISO’s 9001:2000 for software development, and the IEEE’s JSTD-016 are some examples of such responses. Traceability is the one common feature that these software development standards impose. Over the last decade, software and system engineering communities have been researching subjects such as developing more sophisticated tooling, applying information retrieval techniques capable of semi-automating the trace creation and maintenance process, developing new trace query languages and visualization techniques that use trace links, applying traceability in specific domains such as Model Driven Development, product line systems and agile project environment. These efforts have not been in vain. The 2012 CHAOS results show an increase in project success rate of 39% (delivered on time, on budget, with required features and functions), and a decrease of 18% in the number of failures (cancelled prior to completion or delivered and never used). Since research has shown traceability can improve a project’s success rate, the main purpose of this thesis is to demonstrate traceability for a small, real-world software development project using IBM Collaborative Lifecycle Management. The objective of this research was fulfilled since the case study of traceability was described in detail as applied to the design and development of the Value Adjustment Board Project (VAB) of City of Jacksonville using the scrum development approach within the IBM Rational Collaborative Lifecycle Management Solution. The results may benefit researchers and practitioners who are looking for evidence to use the IBM CLM solution to trace artifacts in a small project

    Requirements reuse and requirement patterns: a state of the practice survey

    Get PDF
    Context. Requirements engineering is a discipline with numerous challenges to overcome. One of these challenges is the implementation of requirements reuse approaches. Although several theoretical proposals exist, little is known about the practices that are currently adopted in industry. Objective. Our goal is to contribute to the investigation of the state of the practice in the reuse of requirements, eliciting current practices from practitioners, and their opinions whenever appropriate. Besides reuse in general, we focus on requirement patterns as a particular strategy to reuse. Method. We conducted an exploratory survey based on an online questionnaire. We received 71 responses from requirements engineers with industrial experience in the field, which were analyzed in order to derive observations. Results. Although we found that a high majority of respondents declared some level of reuse in their projects (in particular, non-functional requirements were identified as the most similar and recurrent among projects), it is true that only a minority of them declared such reuse as a regular practice. Larger IT organizations and IT organizations with well-established software processes and methods present higher levels of reuse. Ignorance of reuse techniques and processes is the main reason preventing wider adoption. From the different existing reuse techniques, the simplest ones based on textual copy and subsequent tailoring of former requirements are the most adopted techniques. However, participants who apply reuse more often tend to use more elaborate techniques. Opinions of respondents about the use of requirement patterns show that they can be expected to mitigate problems related to the quality of the resulting requirements, such as lack of uniformity, inconsistency, or ambiguity. The main reasons behind the lack of adoption of requirement patterns by practitioners (in spite of the increasing research approaches proposed in the community) are related to the lack of a well-defined reuse method and involvement of requirement engineers.Peer ReviewedPostprint (author's final draft

    Specifying Functional Requirements Dependency in the REWiki

    Get PDF
    Most of the individual requirements cannot be treated in isolation. Requirements may affect each other in various ways. The dependency between requirements impacts a number of software development aspects and activities. How to classify and specify requirements dependency remains a classic research topic. This research aims at providing an approach of specifying functional requirements dependency. In this thesis we generalize a classification of functional requirements dependency. We also propose a process meta-model to specify the semantic information of functional requirements dependency and deploy it on a wiki platform named Semantic REWiki. Taken advantage of this system, we can specify the functional requirements dependency semantically to support requirements validation and provide an effective method to represent the functional flow of the software system. Asiasanat:Requirements, Requirements Dependency, Functional Requirements Dependency, Semantic Information, Semantic Media Wik

    Reducing Ambiguities in Customer Requirements Through Historical Rule-Based Knowledge in a Small Organization

    Get PDF
    During the elicitation process the requirements for a software application are obtained from the customer. Customers often do not know how to clearly express the requirements of the application to be built, causing requirements to be ambiguous. Many studies have been found to cover different characteristics of the requirements elicitation process including methods for reducing ambiguities in requirements. The methods and findings of these studies were found to be too general when it comes to the specific domain of the requirements and knowledge about the requirements. In addition, some studies did not take into consideration the level of expertise of those users performing the process. The focus of this study is to reduce ambiguities in customer requirements for a specific domain through the use of a historical rule-based knowledge and a scripted process. Using a case study scenario, this study explores how ambiguities in customer requirements can be reduced using knowledge about specific requirements for Web-based forms. The scripted process is a step-by-step procedure utilized to guide a novice developer in reducing the ambiguities in customer requirements. The proposed rule-based knowledge encompasses requirements of previously implemented Web-based applications. The results of this study intend to improve domain knowledge sharing between novice and expert developers and domain experts while reducing ambiguities in customer requirements. The existence of ambiguities in requirements and the lack of knowledge about the domain, between customers and the development team, provide the context in this qualitative case study. The outcome of this study demonstrates how ambiguities in requirements can be reduced and easily understood by the development team while lessening the communication gap between all people involved. The impact of this study is relatively associated with the effort and time that goes into understanding requirements and reducing ambiguities

    Utilizing traceable software artifacts to improve bug localization

    Get PDF
    Die Entwicklung von Softwaresystemen ist eine komplexe Aufgabe. Qualitätssicherung versucht auftretenden Softwarefehler (bugs) in Systemen zu vermeiden, jedoch können Fehler nie ausgeschlossen werden. Sobald ein Softwarefehler entdeckt wird, wird typischerweise ein Fehlerbericht (bug report) erstellt. Dieser dient als Ausgangspunkt für den Entwickler den Fehler im Quellcode der Software zu finden und zu beheben (bug fixing). Fehlerberichte sowie weitere Softwareartefakte, z.B. Anforderungen und der Quellcode selbst, werden in Software Repositories abgelegt. Diese erlauben die Artefakte mit trace links zur Nachvollziehbarkeit (traceability) zu verknüpfen. Oftmals ist die Erstellung der trace links im Entwicklungsprozess vorgeschrieben. Dazu zählen u.a. die Luftfahrt- und Automobilindustrie, sowie die Entwicklung von medizinischen Geräten. Das Auffinden von Softwarefehlern in großen Systemen mit tausenden Artefakten ist eine anspruchsvolle, zeitintensive und fehleranfällige Aufgabe, welche eine umfangreiche Projektkenntnis erfordert. Deswegen wird seit Jahren aktiv an der Automatisierung dieses Prozesses geforscht. Weiterhin wird die manuelle Erstellung und Pflege von trace links als Belastung empfunden und sollte weitgehend automatisiert werden. In dieser Arbeit wird ein neuartiger Algorithmus zum Auffinden von Softwarefehlern vorgestellt, der aktiv die erstellten trace links ausnutzt. Die Artefakte und deren Beziehungen dienen zur Erstellung eines Nachvollziehbarkeitsgraphen, welcher analysiert wird um fehlerhafte Quellcodedateien anhand eines Fehlerberichtes zu finden. Jedoch muss angenommen werden, dass nicht alle notwendigen trace links zwischen den Softwareartefakten eines Projektes erstellt wurden. Deswegen wird ein vollautomatisierter, projektunabhängiger Ansatz vorgestellt, der diese fehlenden trace links erstellt (augmentation). Die Grundlage zur Entwicklung dieses Algorithmus ist der typische Entwicklungsprozess eines Softwareprojektes. Die entwickelten Ansätze wurden mit mehr als 32.000 Fehlerberichten von 27 Open-Source Projekten evaluiert und die Ergebnisse zeigen, dass die Einbeziehung von traceability signifikant das Auffinden von Fehlern im Quellcode verbessert. Weiterhin kann der entwickelte Augmentation Algorithmus zuverlässig fehlende trace links erstellen.The development of software systems is a very complex task. Quality assurance tries to prevent defects – software bugs – in deployed systems, but it is impossible to avoid bugs all together, especially during development. Once a bug is observed, typically a bug report is written. It guides the responsible developer to locate the bug in the project's source code, and once found to fix it. The bug reports, along with other development artifacts such as requirements and the source code are stored in software repositories. The repositories also allow to create relationships – trace links – among contained artifacts. Establishing this traceability is demanded in many domains, such as safety related ones like the automotive and aviation industry, or in development of medical devices. However, in large software systems with thousands of artifacts, especially source code files, manually locating a bug is time consuming, error-prone, and requires extensive knowledge of the project. Thus, automating the bug localization process is actively researched since many years. Further, manually creating and maintaining trace links is often considered as a burden, and there is the need to automate this task as well. Multiple studies have shown, that traceability is beneficial for many software development tasks. This thesis presents a novel bug localization algorithm utilizing traceability. The project's artifacts and trace links are used to create a traceability graph. This graph is then analyzed to locate defective source code files for a given bug report. Since the existing trace link set of a project is possibly incomplete, another algorithm is prosed to augment missing links. The algorithm is fully automated, project independent, and derived from a project's development workflow. An evaluation on more than 32,000 bug reports from 27 open-source projects shows, that incorporating traceability information into bug localization significantly improves the bug localization performance compared to two state of the art algorithms. Further, the trace link augmentation approach reliably constructs missing links and therefore simplifies the required trace maintenance

    A requirements-based software process maturity model

    Get PDF
    The requirements phase of software development is an on-going problem for the software engineering community. The many disparate recommendations and best practices found in the literature make it difficult for software organisations to recognise which practices apply to their individual needs. The aim of this thesis is to pull together key solutions into a framework that allows practitioners to assess where their requirements process needs strengthening and to provide a means in which improvements can be achieved. In this thesis I show how I design, develop and validate a model of requirements engineering processes. This requirements capability maturity model (R-CMM) adheres to the characteristics of the Software Engineering Institute's Software Capability Maturity Model (SW-CMM) and is designed to take practitioners from an immature process capability through to an advanced capability. I contribute to the body of knowledge in both software process improvement and requirements engineering (RE) by providing rigorous detail of how a process maturity framework is developed to support RE practices. The model is generic and should apply to many software development organisations. The R-CMM guides users towards a view of RE that is based on goals and is problem driven. The SW-CMM framework is transformed into a simplified model that relates goals and problems to individual RE practises

    Desarrollo integral de aplicaciones domóticas: una perspectiva metodológica

    Get PDF
    [SPA] Los rápidos avances en electrónica, informática y tecnologías de la comunicación (Solé, 2003.) (Que conduce a la miniaturización y mejora del rendimiento de los ordenadores, sensores y redes) han dado lugar al desarrollo de nuevas tecnologías en el campo de la domótica (Espinoza, 2011). Las aplicaciones domóticas integran funciones de confort, ahorro energético, seguridad y comunicaciones. El objetivo principal de estos sistemas es dotar a las viviendas de un cierto grado de inteligencia que permita mejorar la calidad de vida de sus habitantes. Tareas tales como el encendido y regulación de luces de forma automática, control de la temperatura, corte de agua y gas cuando se detectan fugas o el control de los dispositivos del hogar de forma remota desde el móvil u ordenador con conexión a internet son algunas de las aplicaciones típicas del dominio domótico. Uno de los principales problemas en el desarrollo de sistemas domóticos es el hecho de que no hay un estándar de facto para implementar estas aplicaciones. Existen varios estándares y protocolos adoptados por las empresas que lideran el mercado. Por ejemplo KNX (ISO/IEC14543-3-X), Lonworks (ISO/IEC 14908) y X10. Como se indica en (Aenor, 2009), es improbable que se establezca una única tecnología dominante en el campo de la domótica a corto plaza. Además, cada uno de estos estándares proporciona su propio software con el que crear las aplicaciones domóticas y programar los dispositivos. Por lo tanto se debe seleccionar una tecnología en particular (plataforma) en la etapa de diseño inicial, puesto que las herramientas y dispositivos a usar dependen de esta elección. Estos hechos hacen que el desarrollo de aplicaciones domóticas sea totalmente dependiente de la plataforma, siendo muy complicado incrementar el nivel de abstracción y trabajar con conceptos del dominio domótico en lugar de trabajar con elementos de la tecnología. Por ello, y continuando con la línea de investigación iniciada del Dr. D. Manuel Jiménez en el campo de la domótica (Jiménez, 2009), donde se definió un marco general y los elementos iníciales de un DSL para domótica, se propone aplicar nuevas técnicas de la Ingeniería del Software que permitan la gestión integral del desarrollo del software en todas sus etapas. En concreto para este trabajo de Tesis se propone una metodología que sigue un enfoque de desarrollo dirigido por modelos (MDE) (Bézivin, 2005) (Favre, 2004) junto con un framework de soporte que proporciona los metamodelos y herramientas necesarias en cada nivel. A continuación, en el capítulo 2 se describen los objetivos estimados para el trabajo de Tesis. En el capítulo 3 se presenta el estado del arte, sobre el que se asienta el desarrollo de la nueva metodología propuesta, que se describe en el capítulo 4, haciendo especial hincapié en la gestión de requisitos y el soporte a la trazabilidad. A continuación, en el capítulo 5 se presentan los resúmenes del compendio de artículos incluidos en esta Tesis. Por último, el capítulo 6 resume las aportaciones realizadas por esta Tesis Doctoral y los resultados obtenidos.[ENG] (Solé, 2003) (Leading to miniaturization and improvement of performance of computers, sensor and networking) have given rise to de development of several Home Automation (HA) technologies (Espinoza, 2011). HA applications integrate comfort, energy saving, security and communications functions. The aim of an HA system is to provide homes with a certain degree of intelligence and to improve the quality of life of its inhabitants. Task like automatically switching lights and heating, cutting off the supply when gas or water leaks are detected or controlling the home devices remotely from a mobile or a computer through an Internet connection are typical applications of HA domain. One of the main problems of HA development lies in the fact that there is no agreement in the standard to implement the applications. HA applications and devices currently belonging to different manufactures are isolated from each other thereby creating the main obstacle to HA market growth. Leading companies in this market have adopted several standards and protocols [8]. Some worth mentioning examples are the KNX (ISO/IEC14543-3-X), Lonworks (ISO/IEC 14908) and X10 technologies. Furthermore, as stated in (Aenor, 2009) it is improbable that there will be a single dominant technology for HA in the short term. Each of these technologies provides its own software suite to create HA applications and program the devices. Hence the particular technology (specific platform) must be selected at the initial design stages, inasmuch as the tools and devices to be used depend on this choice. These facts make the development of HA applications strongly platform dependent, making it very difficult to raise the abstraction level and work with HA domain concepts rather than technology elements. Therefore, and continuing the research initiated by Dr. D. Manuel Jimenez in the domain of home automation (Jimenez, 2009), which defined a general framework and initial elements of a DSL for home automation, intends to apply new techniques of software engineering to enable the integrated management of software development in all its stages. Specifically, for this thesis, proposes the use of the approach of modeldriven development (MDE) (Bézivin, 2005) (Fabre,2004) together with a set of management tools models ranging from requirements management, traceability, validation and verification , all integrated in a same methodology. This thesis is structured as follows: Section 2 deals with introducing the objectives. Section 3 presents the state of the art on which rests the development of the proposed new methodology which is described in Section 4, whit particular emphasis on requirements management and traceability support. Later, Section 5 presents the abstracts of the articles included in the compendium. Finally Section 6 summarizes the results and contributions of this thesis.Universidad Politécnica de CartagenaPrograma de doctorado en Técnicas Avanzadas en Investigación y Desarrollo Agrario y Alimentari
    corecore