Obstacles for the Integration of HCI Practices into Software Engineering Development Processes

Author(s):  
Xavier Ferre ◽  
Natalia Juristo ◽  
Ana M. Moreno

Usability has become a critical quality factor in software systems, and it has been receiving increasing attention over the last few years in the SE (software engineering) field. HCI techniques aim to increase the usability level of the final software product, but they are applied sparingly in mainstream software development, because there is very little knowledge about their existence and about how they can contribute to the activities already performed in the development process. There is a perception in the software development community that these usability-related techniques are to be applied only for the development of the visible part of the UI (user interface) after the most important part of the software system (the internals) has been designed and implemented. Nevertheless, the different paths taken by HCI and SE regarding software development have recently started to converge. First, we have noted that HCI methods are being described more formally in the direction of SE software process descriptions. Second, usability is becoming an important issue on the SE agenda, since the software products user base is ever increasing and the degree of user computer literacy is decreasing, leading to a greater demand for usability improvements in the software market. However, the convergence of HCI and SE has uncovered the need for an integration of the practices of both disciplines. This integration is a must for the development of highly usable systems. In the next two sections, we will look at how the SE field has viewed usability. Following upon this, we address the existing approaches to integration. We will then detail the pending issues that stand in the way of successful integration efforts, concluding with the presentation of an approach that might be successful in the integration endeavor.

Author(s):  
Anas AL-Badareen

    Abstract— Since the idea of software reuse appeared in 1968, software reuse has become a software engineering discipline. Software reuse is one of the main techniques used to enhance the productivity of software development, which it helps reducing the time, effort, and cost of developing software systems, and enhances the quality of software products. However, software reuse requires understanding, modifying, adapting and testing processes in order to be performed correctly and efficiently. This study aims to analyze and discuss the process of software reuse, identify its elements, sources and usages. The alternatives of acquiring and using software assets either normal or reusable assets are discussed. As a result of this study, four main methods are proposed in order to use the concept of reuse in the software development process. These methods are proposed based on the source of software assets regardless the types of software assets and their usages.


10.28945/4580 ◽  
2020 ◽  
Vol 19 ◽  
pp. 367-393 ◽  
Author(s):  
Ilenia Fronza ◽  
Luis Corral ◽  
Claus Pahl

Aim/Purpose: This work aims to introduce and evaluate an instructional strategy that aids end-users with developing their software products during intensive project-based events. Background: End-users produce software in the labor market, and one of the challenges for End-User Software Engineering (EUSE) is the need to create functional software products without a formal education in software development. Methodology: In this work, we present an instructional strategy to expose end-users to Agile-based Software Engineering (SE) practices and enhance their ability to developing high-quality software. Moreover, we introduce a SE approach for the collection of metrics to assess the effectiveness of the instructional strategy. We conducted two case studies to validate the effectiveness of our strategy; the comprehensive analysis of the outcome products evaluates the strategy and demonstrates how to interpret the collected metrics. Contribution: This work contributes to the research and practitioner body of knowledge by leveraging SE centric concepts to design an instructional strategy to lay the foundations of SE competencies in inexperienced developers. This work presents an instructional strategy to develop SE competencies through an intensive and time-bound structure that may be replicated. Moreover, the present work introduces a framework to evaluate these competencies from a product-centric approach, specialized for non-professional individuals. Finally, the framework contributes to understanding how to assess software quality when the software product is written in non-conventional, introductory programming languages. Findings: The results show the effectiveness of our instructional strategy: teams were successful in constructing a working software product. However, participants did not display a good command of source code order and structure. Recommendations for Practitioners: Our instructional strategy provides practitioners with a framework to lay foundations in SE competencies during intensive project-based events. Based on the results of our case studies, we provide a set of recommendations for educational practice. Recommendation for Researchers: We propose an assessment framework to analyze the effectiveness of the instructional strategy from a SE perspective. This analysis provides an overall picture of the participants’ performance; other researchers could use our framework to evaluate the effectiveness of their activities, which would contribute to increasing the possibility of comparing the effectiveness of different instructional strategies. Impact on Society: Given the number of end-user developers who create software products without a formal SE training, several professional and educational contexts can benefit from our proposed instructional strategy and assessment framework. Future Research: Further research can focus on improving the assessment framework by including both process and product metrics to shed light on the effectiveness of the instructional strategies.


Author(s):  
Sarah Kohan ◽  
Marcelo Schneck de Paula Pessôa ◽  
Mauro de Mesquita Spinola

Many small-sized organizations have a significant role in the software business. A good software development process is the best way to assure quality to software products. Audits and evaluations are commonly used to verify implementation and certify the development process. This chapter describes the development and application of QuickLocus, a special-purpose evaluation method of software process developed to be applied in small-sized organizations. QuickLocus has been successfully applied since January 2003 by more than 50 organizations in process improvement programs. The reason for QuickLocus success is its low-cost methodology and its capability to output reliable information for kicking off a software improvement process. QuickLocus will provide organizations ways to be more competitive—producing better products at lower costs faster—ready to compete in the international software market. This chapter is organized in three parts: foundation, method, and results. The first one is theoretical and presents how the method was developed. The second part details the method itself, and the third part presents the method application results.


Author(s):  
Gerhard Chroust ◽  
Marco Kuhrmann ◽  
Erwin Schoitsch

In this chapter the authors discuss the WHY and WHAT of modeling software development processes: defining the components of a software process and proposing 5-dimensional grid of attributes of existing models: strategy and path, levels, main subprocesses, components and aura. Specific process models, currently used or historically important, are described. This is followed by an extensive discussion of methods for and problems of modeling a software process, followed by a shorter discussion on the enactment of process models via software engineering environments. The chapter closes with a discussion of the human aspects concerning introduction and enactment of a process model.


Author(s):  
Francisco Milton Mendes Neto ◽  
Marçal José de Oliveira Morais

The software process consists of knowledge-intensive procedures, involving various profiles, which handle a wide range of information. The adoption of a solution that satisfies the knowledge demands related to software engineering is not a trivial task. Despite all the investment made by research institutions and software development organizations in automated environments to support the software process, the quality levels and the productivity rates they need has not been reached. In software engineering, the experience, which helps avoid mistakes of the past and improve decision making, still lies mainly in the organization collaborators. This chapter intends to contribute to software engineering by proposing a new approach to support the capture, packaging, storage, mapping, maintenance and retrieval of the knowledge related to the software process. The approach will support the software process through the creation of a knowledge management model to assist the development of intelligent agents that can (i) realize the knowledge needs, (ii) interact with the Information Systems and (iii) support executing the software developers’ tasks. In other words, the chapter proposes creating a multiagent system to manage knowledge related to the execution of software development processes. This system will be the result of implementing the knowledge management models for supporting software process that will also be proposed in this chapter. It will consist of an Information System integrated with a knowledge base related to the implementation of software development processes.


2017 ◽  
Vol 57 (2) ◽  
pp. 170-177 ◽  
Author(s):  
DELROY CHEVERS

ABSTRACT Since 1982, the software development community has been concerned with the delivery of quality systems. Software process improvement (SPI) is an initiative to avoid the delivery of low quality systems. However, the awareness and adoption of SPI is low. Thus, this study examines the rate of awareness, use, and benefits of SPI initiatives in Canadian software development firms. Using SPSS as the analytical tool, this study found that 59% of Canadian software development firms are aware of SPI programs and 43% of employees use a form of SPI programs to develop software products. Although the sample size is small and the results cannot be generalized, the sample firms that use SPI programs reported an improvement in software product quality as the greatest benefit. These findings confirm the importance of SPI programs as a means of producing higher-quality software products, which can increase the likelihood of software companies winning global contracts.


2016 ◽  
Vol 24 (3) ◽  
pp. 45-70 ◽  
Author(s):  
Delroy Chevers ◽  
Annette M. Mills ◽  
Evan Duggan ◽  
Stanford Moore

For software development firms to be competitive they must assure the quality of the software product. This has led many firms to adopt software process improvement (SPI) programs such as the capability maturity model integration (CMMI). However, for small software firms, especially those in developing countries with limited resources, these programs are often too cumbersome and costly to implement. To address this issue, this paper proposes a simplified SPI model for small firms (SPM-S) comprised of 10 key software development practices; with fewer practices, the proposed model should be more accessible and less costly to implement. Using data collected in four developing countries in the English-speaking Caribbean from 112 developer/user dyads, the model is evaluated with respect to its impact on software quality. The findings show that the software development process coupled with supporting technology (e.g. project management tools) significantly impact software product quality. Implications for software process improvement in small firms and future research are discussed.


DYNA ◽  
2018 ◽  
Vol 85 (207) ◽  
pp. 74-83 ◽  
Author(s):  
Daniel Correa ◽  
Raúl Mazo ◽  
Gloria Lucia Giraldo Goméz

Software product lines facilitate the industrialization of software development. The main goal is to create a set of reusable software components for the rapid production of a software systems family. Many authors have proposed different approaches to design and implement the components of a product line. However, the construction and integration of these components continue to be a complex and time-consuming process. This paper introduces Fragment-oriented programming (FragOP), a framework to design and implement software product line domain components, and derive software products. FragOP is based on: (i) domain components, (ii) fragmentations points and (iii)fragments. FragOP was implemented in the VariaMos tool and using it we created a clothing stores software product line. We derivedfive different products, integrating automatically thousands of lines of code. On average, only three lines of code were manually modified;which provided preliminary evidence that using FragOP reduces manual intervention when integrating domain components.


2011 ◽  
Vol 23 (4) ◽  
pp. 64-79 ◽  
Author(s):  
Diane Kelly

The development of scientific software is usually carried out by a scientist who has little professional training as a software developer. Concerns exist that such development produces low-quality products, leading to low-quality science. These concerns have led to recommendations and the imposition of software engineering development processes and standards on the scientists. This paper utilizes different frameworks to investigate and map characteristics of the scientific software development environment to the assumptions made in plan-driven software development methods and agile software development methods. This mapping exposes a mismatch between the needs and goals of scientific software development and the assumptions and goals of well-known software engineering development processes.


Different models and standards have been developed with the purpose of improving software development processes and obtaining quality products and achieving customer satisfaction. Despite the efforts that organizations make, they do not always achieve these results. In this article we present the results of the implementation of best practices established by the CMMI model using the IDEAL and SCAMPI B methodology. The results show that applying best practices helps organizations to improve their processes, minimize the number of defects and increase customer satisfaction. Likewise, the critical factors that were considered and aspects to be considered in the deployment of processes are presented.


Sign in / Sign up

Export Citation Format

Share Document