938 resultados para Software Process Improvement
Resumo:
One of the challenges for software engineering is collecting meaningful data from industrial projects. Software process improvement depends on measurement to provide baseline status and confirming evidence of the effect of process changes. Without data, any conclusions rely on intuition and guessing. The Team Software ProcessSM (TSPSM) provides a powerful framework for data collection and analysis, in addition to its primary goal as a basis for highly effective software development. In this paper, we describe the experiences of, and benefits realized by, a team using the TSP for the first time. By reviewing how this particular team collected and used data, we show features of the TSP that make it a powerful foundation for software process improvement.
Resumo:
In this thesis, the components important for testing work and organisational test process are identified and analysed. This work focuses on the testing activities in reallife software organisations, identifying the important test process components, observing testing work in practice, and analysing how the organisational test process could be developed. Software professionals from 14 different software organisations were interviewed to collect data on organisational test process and testing‐related factors. Moreover, additional data on organisational aspects was collected with a survey conducted on 31 organisations. This data was further analysed with the Grounded Theory method to identify the important test process components, and to observe how real‐life test organisations develop their testing activities. The results indicate that the test management at the project level is an important factor; the organisations do have sufficient test resources available, but they are not necessarily applied efficiently. In addition, organisations in general are reactive; they develop their process mainly to correct problems, not to enhance their efficiency or output quality. The results of this study allows organisations to have a better understanding of the test processes, and develop towards better practices and a culture of preventing problems, not reacting to them.
Resumo:
Requirements Engineering has been acknowledged an essential discipline for Software Quality. Poorly-defined processes for eliciting, analyzing, specifying and validating requirements can lead to unclear issues or misunderstandings on business needs and project’s scope. These typically result in customers’ non-satisfaction with either the products’ quality or the increase of the project’s budget and duration. Maturity models allow an organization to measure the quality of its processes and improve them according to an evolutionary path based on levels. The Capability Maturity Model Integration (CMMI) addresses the aforementioned Requirements Engineering issues. CMMI defines a set of best practices for process improvement that are divided into several process areas. Requirements Management and Requirements Development are the process areas concerned with Requirements Engineering maturity. Altran Portugal is a consulting company concerned with the quality of its software. In 2012, the Solution Center department has developed and applied successfully a set of processes aligned with CMMI-DEV v1.3, what granted them a Level 2 maturity certification. For 2015, they defined an organizational goal of addressing CMMI-DEV maturity level 3. This MSc dissertation is part of this organization effort. In particular, it is concerned with the required process areas that address the activities of Requirements Engineering. Our main goal is to contribute for the development of Altran’s internal engineering processes to conform to the guidelines of the Requirements Development process area. Throughout this dissertation, we started with an evaluation method based on CMMI and conducted a compliance assessment of Altran’s current processes. This allowed demonstrating their alignment with the CMMI Requirements Management process area and to highlight the improvements needed to conform to the Requirements Development process area. Based on the study of alternative solutions for the gaps found, we proposed a new Requirements Management and Development process that was later validated using three different approaches. The main contribution of this dissertation is the new process developed for Altran Portugal. However, given that studies on these topics are not abundant in the literature, we also expect to contribute with useful evidences to the existing body of knowledge with a survey on CMMI and requirements engineering trends. Most importantly, we hope that the implementation of the proposed processes’ improvements will minimize the risks of mishandled requirements, increasing Altran’s performance and taking them one step further to the desired maturity level.
Resumo:
Tutkimuksen tavoitteena on tutkia telekommunikaatioalalla toimivan kohdeyrityksen ohjelmistojen toimitusprosessia° Tutkimus keskittyy mallintamaan toimitusprosessin, määrittelemään roolit ja vastuualueet, havaitsemaan ongelmakohdat ja ehdottamaan prosessille kehityskohteita. Näitä tavoitteita tarkastellaan teoreettisten prosessimallinnustekniikoiden ja tietojohtamisen SECI-prosessikehyksen läpi. Tärkein tiedonkeruun lähde oli haastatteluihin perustuva tutkimus, johon osallistuvat kaikki kohdeprosessiin kuuluvat yksiköt. Mallinnettu toimitusprosessi antoi kohdeyritykselle paremman käsityksen tarkasteltavasta prosessista ja siinä toimivien yksiköiden rooleistaja vastuualueista. Parannusehdotuksia olivat tiedonjaon kanavoinnin määritteleminen, luottamuksen ja sosiaalisten verkostojen parantaminen, ja tietojohtamisen laajamittainen implementointi.
Resumo:
Työn tarkoituksena on tuottaa liikkeenjohdon konsulttiyritykselle uusi työmenetelmä, jonka avulla se voi vetää kehitysprojekteja joissa asiakasyritysten teollisia palveluprosesseja parannetaan. Prosessiparannusten tulisi tuottaa selvää hyötyä asiakkaille sekä palveluntarjoajan henkilöstölle ja johdolle pian sen jälkeen kun ajanmukaistetut prosessit on menestyksellisesti otettu käyttöön. Menetelmän luonti käynnistyy kirjallisuuskatsauksella, jossa käsitellään aiheita kuten palvelut, teolliset palvelut ja liiketoimintaprosessien uudelleensuunnittelu. Menetelmän luonnin vaatimukset määritellään. Asiakasprojekti, jossa menetelmää koekäytetään, esitellään. Menetelmä esitellään. Se on ylhäältä alaspäin muodostettu kehitysprosessin vetäjän opas. Päätavoitteet asetettiin ensin. Niitä tukevat alitavoitteetasetettiin seuraavaksi. Työohjeet luotiin siten, että tavoitteiden saavuttaminen mahdollistuisi. Samalla kehitettiin menetelmää tukevia työkaluja. Alustavat työohjeet ja työkalut jalostuivat menetelmän koekäytön aikana nykyiseen muotoonsa.Menetelmän laatua arvioidaan koekäytön jälkeen asetettujen tavoitteiden ja saavutettujen tulosten eroja vertaamalla. Valmistumisen jälkeen toteutettavat menetelmän jatkokehitystoimenpiteet esitellään.
Resumo:
This thesis investigates factors that affect software testing practice. The thesis consists of empirical studies, in which the affecting factors were analyzed and interpreted using quantitative and qualitative methods. First, the Delphi method was used to specify the scope of the thesis. Secondly, for the quantitative analysis 40industry experts from 30 organizational units (OUs) were interviewed. The survey method was used to explore factors that affect software testing practice. Conclusions were derived using correlation and regression analysis. Thirdly, from these 30 OUs, five were further selected for an in-depth case study. The data was collected through 41 semi-structured interviews. The affecting factors and their relationships were interpreted with qualitative analysis using grounded theory as the research method. The practice of software testing was analyzed from the process improvement and knowledge management viewpoints. The qualitative and quantitativeresults were triangulated to increase the validity of the thesis. Results suggested that testing ought to be adjusted according to the business orientation of the OU; the business orientation affects the testing organization and knowledge management strategy, and the business orientation andthe knowledge management strategy affect outsourcing. As a special case, the complex relationship between testing schedules and knowledge transfer is discussed. The results of this thesis can be used in improvingtesting processes and knowledge management in software testing.
Resumo:
Business process improvement is a common approach in increasing the effectiveness of an organization. It can be seen as an effort to increase coordination between units. Process improvement has proved to be challenging, and most management consultation firms facilitate organizations in this kind of initiatives. Cross-functional improvement is one of the main areas for internal consultants as well. However, the needs, challenges and means of cross-functional help have been rarely discussed in the literature. The objective of this thesis is on one hand to present a conceptual and descriptive framework to help understand the challenges of facilitating coordination improvement efforts in cross-functional improvement programs, and on the other hand to develop and test feasible solutions for some facilitation situations. The research questions are: 1. Why and in what kind of situations do organizations need help in developing coordination in cross-functional processes? 2. How can a facilitator help organizations in improving coordination to develop cross-functional processes? The study consists of two parts. The first part is an overview of the dissertation, and the second part comprises six research publications. The theoretical background for the study are the differentiation causing challenges in cross-functional settings, the coordination needed to improve processes, change management principles, methods and tools, and consultation practises. Three of the publications introduce tools for helping in developing prerequisites, planning responsibilities and supporting learning during the cross-functional program. The three other papers present frameworks to help understand and analyse the improvement situation. The main methodological approaches used in this study are design science research, action research and case research. The research data has been collected from ten cases representing different kinds of organizations, processes and developing situations. The data has been collected mainly by observation, semi-structured interviews and questionnaires. The research contributes to the rare literature combining coordination theories and process improvement practises. It also provides additional understanding of a holistic point of view in process improvement situations. The most important contribution is the addition to the theories of facilitating change in process improvement situations. From the managerial point of view, this study gives advice to managers and consultants in planning and executing cross-functional programs. The main factors increasing the need for facilitation are the challenges for differentiation, challenges of organizational change in general, and the novelty of initiatives and improvement practices concerning process development. Organizations need help in creating the prerequisites to change, in planning initiatives, easing conflict management and collaboration between groups, as well as supporting the learning of cross-functional improvement. The main challenges of facilitation are combining the different roles as a consultant, maintaining the ownership for the improvement project with the client, and supporting learning in the client organization.
Resumo:
The front end of innovation is regarded as one of the most important steps in building new software products or services, and the most significant benefits in software development can be achieved through improvements in the front end activities. Problems in the front end phase have an impact on customer dissatisfaction with delivered software, and on the effectiveness of the entire software development process. When these processes are improved, the likelihood of delivering high quality software and business success increases. This thesis highlights the challenges and problems related to the early phases of software development, and provides new methods and tools for improving performance in the front end activities of software development. The theoretical framework of this study comprises two fields of research. The first section belongs to the field of innovation management, and especially to the management of the early phases of the innovation process, i.e. the front end of innovation. The second section of the framework is closely linked to the processes of software engineering, especially to the early phases of the software development process, i.e. the practice of requirements engineering. Thus, this study extends the theoretical knowledge and discloses the differences and similarities in these two fields of research. In addition, this study opens up a new strand for academic discussion by connecting these research directions. Several qualitative business research methodologies have been utilized in the individual publications to solve the research questions. The theoretical and managerial contribution of the study can be divided into three areas: 1) processes and concepts, 2) challenges and development needs, and 3) means and methods for the front end activities of software development. First, the study discloses the difference and similarities between the concepts of the front end of innovation and requirements engineering, and proposes a new framework for managing the front end of the software innovation process, bringing business and innovation perspectives into software development. Furthermore, the study discloses managerial perceptions of the similarities and differences in the concept of the front end of innovation between the software industry and the traditional industrial sector. Second, the study highlights the challenges and development needs in the front end phase of software development, especially challenges in communication, such as linguistic problems, ineffective communication channels, a communication gap between users/customers and software developers, and participation of multiple persons in software development. Third, the study proposes new group methods for improving the front end activities of software development, especially customer need assessment, and the elicitation of software requirements.
Resumo:
Formal software development processes and well-defined development methodologies are nowadays seen as the definite way to produce high-quality software within time-limits and budgets. The variety of such high-level methodologies is huge ranging from rigorous process frameworks like CMMI and RUP to more lightweight agile methodologies. The need for managing this variety and the fact that practically every software development organization has its own unique set of development processes and methods have created a profession of software process engineers. Different kinds of informal and formal software process modeling languages are essential tools for process engineers. These are used to define processes in a way which allows easy management of processes, for example process dissemination, process tailoring and process enactment. The process modeling languages are usually used as a tool for process engineering where the main focus is on the processes themselves. This dissertation has a different emphasis. The dissertation analyses modern software development process modeling from the software developers’ point of view. The goal of the dissertation is to investigate whether the software process modeling and the software process models aid software developers in their day-to-day work and what are the main mechanisms for this. The focus of the work is on the Software Process Engineering Metamodel (SPEM) framework which is currently one of the most influential process modeling notations in software engineering. The research theme is elaborated through six scientific articles which represent the dissertation research done with process modeling during an approximately five year period. The research follows the classical engineering research discipline where the current situation is analyzed, a potentially better solution is developed and finally its implications are analyzed. The research applies a variety of different research techniques ranging from literature surveys to qualitative studies done amongst software practitioners. The key finding of the dissertation is that software process modeling notations and techniques are usually developed in process engineering terms. As a consequence the connection between the process models and actual development work is loose. In addition, the modeling standards like SPEM are partially incomplete when it comes to pragmatic process modeling needs, like light-weight modeling and combining pre-defined process components. This leads to a situation, where the full potential of process modeling techniques for aiding the daily development activities can not be achieved. Despite these difficulties the dissertation shows that it is possible to use modeling standards like SPEM to aid software developers in their work. The dissertation presents a light-weight modeling technique, which software development teams can use to quickly analyze their work practices in a more objective manner. The dissertation also shows how process modeling can be used to more easily compare different software development situations and to analyze their differences in a systematic way. Models also help to share this knowledge with others. A qualitative study done amongst Finnish software practitioners verifies the conclusions of other studies in the dissertation. Although processes and development methodologies are seen as an essential part of software development, the process modeling techniques are rarely used during the daily development work. However, the potential of these techniques intrigues the practitioners. As a conclusion the dissertation shows that process modeling techniques, most commonly used as tools for process engineers, can also be used as tools for organizing the daily software development work. This work presents theoretical solutions for bringing the process modeling closer to the ground-level software development activities. These theories are proven feasible by presenting several case studies where the modeling techniques are used e.g. to find differences in the work methods of the members of a software team and to share the process knowledge to a wider audience.
Resumo:
The construction sector is under growing pressure to increase productivity and improve quality, most notably in reports by Latham (1994, Constructing the Team, HMSO, London) and Egan (1998, Rethinking Construction, HMSO, London). A major problem for construction companies is the lack of project predictability. One method of increasing predictability and delivering increased customer value is through the systematic management of construction processes. However, the industry has no methodological mechanism to assess process capability and prioritise process improvements. Standardized Process Improvement for Construction Enterprises (SPICE) is a research project that is attempting to develop a stepwise process improvement framework for the construction industry, utilizing experience from the software industry, and in particular the Capability Maturity Model (CMM), which has resulted in significant productivity improvements in the software industry. This paper introduces SPICE concepts and presents the results from two case studies conducted on design and build projects. These studies have provided further in-sight into the relevance and accuracy of the framework, as well as its value for the construction sector.
Resumo:
Nowadays, the importance of using software processes is already consolidated and is considered fundamental to the success of software development projects. Large and medium software projects demand the definition and continuous improvement of software processes in order to promote the productive development of high-quality software. Customizing and evolving existing software processes to address the variety of scenarios, technologies, culture and scale is a recurrent challenge required by the software industry. It involves the adaptation of software process models for the reality of their projects. Besides, it must also promote the reuse of past experiences in the definition and development of software processes for the new projects. The adequate management and execution of software processes can bring a better quality and productivity to the produced software systems. This work aimed to explore the use and adaptation of consolidated software product lines techniques to promote the management of the variabilities of software process families. In order to achieve this aim: (i) a systematic literature review is conducted to identify and characterize variability management approaches for software processes; (ii) an annotative approach for the variability management of software process lines is proposed and developed; and finally (iii) empirical studies and a controlled experiment assess and compare the proposed annotative approach against a compositional one. One study a comparative qualitative study analyzed the annotative and compositional approaches from different perspectives, such as: modularity, traceability, error detection, granularity, uniformity, adoption, and systematic variability management. Another study a comparative quantitative study has considered internal attributes of the specification of software process lines, such as modularity, size and complexity. Finally, the last study a controlled experiment evaluated the effort to use and the understandability of the investigated approaches when modeling and evolving specifications of software process lines. The studies bring evidences of several benefits of the annotative approach, and the potential of integration with the compositional approach, to assist the variability management of software process lines
Resumo:
Software Repository Mining (MSR) is a research area that analyses software repositories in order to derive relevant information for the research and practice of software engineering. The main goal of repository mining is to extract static information from repositories (e.g. code repository or change requisition system) into valuable information providing a way to support the decision making of software projects. On the other hand, another research area called Process Mining (PM) aims to find the characteristics of the underlying process of business organizations, supporting the process improvement and documentation. Recent works have been doing several analyses through MSR and PM techniques: (i) to investigate the evolution of software projects; (ii) to understand the real underlying process of a project; and (iii) create defect prediction models. However, few research works have been focusing on analyzing the contributions of software developers by means of MSR and PM techniques. In this context, this dissertation proposes the development of two empirical studies of assessment of the contribution of software developers to an open-source and a commercial project using those techniques. The contributions of developers are assessed through three different perspectives: (i) buggy commits; (ii) the size of commits; and (iii) the most important bugs. For the opensource project 12.827 commits and 8.410 bugs have been analyzed while 4.663 commits and 1.898 bugs have been analyzed for the commercial project. Our results indicate that, for the open source project, the developers classified as core developers have contributed with more buggy commits (although they have contributed with the majority of commits), more code to the project (commit size) and more important bugs solved while the results could not indicate differences with statistical significance between developer groups for the commercial project
Resumo:
Face às dimensões continentais do país, as organizações situadas em regiões carentes de fornecedores de desenvolvimento de sistemas de software especializado estão distribuindo suas operações de Information Technology Outsourcing (ITO), para outras regiões. Como consequência, a redução de custos e a melhoria da contratação de serviços em Tecnologia da Informação (TI) têm sido os dois grandes focos da atualidade, incentivando à noção de parceiros múltiplos em operações recíprocas e engajados tanto em relacionamentos formais quanto informais como a terceirização. Os serviços terceirizados são diversificados e entre eles está o desenvolvimento e manutenção de software através de contratos, realizados por organizações situadas em regiões onde existe demanda de software com características específicas. Sabe-se que a terceirização de Software e Serviços Correlatos (S&SC), que inclui as atividades de contratação e gestão do processo de aquisição é uma tarefa complexa e necessária para as organizações, principalmente no que diz respeito às condições envolvidas na contratação. Nesses casos, o exercício da governança tem sido um importante instrumento para, com a terceirização de TI, promover a gestão adequada do risco e o retorno do investimento. Sendo assim, o processo de compra ou venda de um produto de software nesse ambiente é uma atividade que envolve um grande número de conceitos subjetivos, referentes principalmente a características dos produtos. Torna-se maior o desafio quando se trata de software de prateleira modificável (Modified Off-The-Shelf - MOTS) que sofrem modificações e adições de requisitos a cada novo cliente. Neste contexto, buscando adequar as exigências do mercado com as necessidades de métodos e diretrizes para melhoria dos processos de aquisição e fornecimento de software, este trabalho procura explorar as principais características acerca do contrato, do controle de qualidade, e os resultados dos relacionamentos adotados na implementação de projetos de terceirização desenvolvidos á distância. São apresentados os resultados obtidos de um estudo de caso conduzido em uma empresa pública de Medicina Transfusional situada no norte do Brasil que adotou este processo. Por fim, este texto apresenta uma discussão sobre os diferenciais e limitações deste trabalho, e apresenta direcionamentos para investigações futuras neste campo de estudo.
Resumo:
In the search for productivity increase, industry has invested on the development of intelligent, flexible and self-adjusting method, capable of controlling processes through the assistance of autonomous systems, independently whether they are hardware or software. Notwithstanding, simulating conventional computational techniques is rather challenging, regarding the complexity and non-linearity of the production systems. Compared to traditional models, the approach with Artificial Neural Networks (ANN) performs well as noise suppression and treatment of non-linear data. Therefore, the challenges in the wood industry justify the use of ANN as a tool for process improvement and, consequently, add value to the final product. Furthermore, Artificial Intelligence techniques such as Neuro-Fuzzy Networks (NFNs) have proven effective, since NFNs combine the ability to learn from previous examples and generalize the acquired information from the ANNs with the capacity of Fuzzy Logic to transform linguistic variables in rules.
Resumo:
Abstract?Background: There is no globally accepted open source software development process to define how open source software is developed in practice. A process description is important for coordinating all the software development activities involving both people and technology. Aim: The research question that this study sets out to answer is: What activities do open source software process models contain? The activity groups on which it focuses are Concept Exploration, Software Requirements, Design, Maintenance and Evaluation. Method: We conduct a systematic mapping study (SMS). A SMS is a form of systematic literature review that aims to identify and classify available research papers concerning a particular issue. Results: We located a total of 29 primary studies, which we categorized by the open source software project that they examine and by activity types (Concept Exploration, Software Requirements, Design, Maintenance and Evaluation). The activities present in most of the open source software development processes were Execute Tests and Conduct Reviews, which belong to the Evaluation activities group. Maintenance is the only group that has primary studies addressing all the activities that it contains. Conclusions: The primary studies located by the SMS are the starting point for analyzing the open source software development process and proposing a process model for this community. The papers in our paper pool that describe a specific open source software project provide more regarding our research question than the papers that talk about open source software development without referring to a specific open source software project.