Modeling Software Development Process Complexity

Author(s):  
Vyron Damasiotis ◽  
Panos Fitsilis ◽  
James F. O'Kane

Modern software systems are growing increasingly complex, requiring increased complexity of software and software development process (SDP). Most software complexity measurement approaches focus on software features such as code size, code defects, number of control paths, etc. However, software complexity measurement should not only focus on code features but on features that cover several aspects of SDP in order to have a more complete approach to software complexity. To implement this approach, an extensive literature review for identifying factors that contribute to the complexity of SDP was performed and seventeen complexity factors were identified. As there were indications that the identified factors were not independent from each other but there were interrelations between them, statistical methods for identifying the underlined relations and refining them were applied, resulting to the final set of measures used in the proposed model. Finally, the proposed model has been tested in five software projects and the results were evaluated.

Author(s):  
Vyron Damasiotis ◽  
Panos Fitsilis ◽  
James F. O'Kane

Modern software systems are growing increasingly complex, requiring increased complexity of software and software development process (SDP). Most software complexity measurement approaches focus on software features such as code size, code defects, number of control paths, etc. However, software complexity measurement should not only focus on code features but on features that cover several aspects of SDP in order to have a more complete approach to software complexity. To implement this approach, an extensive literature review for identifying factors that contribute to the complexity of SDP was performed and seventeen complexity factors were identified. As there were indications that the identified factors were not independent from each other but there were interrelations between them, statistical methods for identifying the underlined relations and refining them were applied, resulting to the final set of measures used in the proposed model. Finally, the proposed model has been tested in five software projects and the results were evaluated.


Author(s):  
Valerio Fernandes del Maschi ◽  
Luciano S. Souza ◽  
Mauro de Mesquita Spínola ◽  
Wilson Vendramel ◽  
Ivanir Costa ◽  
...  

The quality in software projects is related the deliveries that are adjusted to the use, and that they take care of to the objectives. In this way, Brazilian organizations of software development, especially the small and medium ones, need to demonstrate to future customers whom an initial understand of the business problem has enough. This chapter has as objective to demonstrate methodology, strategy, main phases and procedures adopted beyond the gotten ones of a small organization of development of software in the implantation of a Customized Software Engineering Process and of a Tool of Support to the Process in the period of 2004 to 2006 on the basis of rational unified process (RUP) and in the Microsoft solutions framework (MSF).


2015 ◽  
Author(s):  
Giuseppe Destefanis ◽  
Marco Ortu ◽  
Steve Counsell ◽  
Michele Marchesi ◽  
Roberto Tonelli

A successful software project is the result of a complex process involving, above all, people. Developers are the key factors for the success of a software development process, not merely as executors of tasks, but as protagonists and core of the whole development process. This paper investigates social aspects among developers working on software projects developed with the support of Agile tools. We studied 22 open source software projects developed using the Agile board of the JIRA repository. All comments committed by developers involved in the projects were analyzed and we explored whether the politeness of comments affected the number of developers involved and the time required to fix any given issue. Our results showed that the level of politeness in the communication process among developers does have an effect on the time required to fix issues and, in the majority of the analysed projects, it had a positive correlation with attractiveness of the project to both active and potential developers. The more polite developers were, the less time it took to fix an issue. In the majority of the analysed cases, the more developers wanted to be part of a project, the more they were willing to continue working on the project over time.


Author(s):  
Giuseppe Destefanis ◽  
Marco Ortu ◽  
Steve Counsell ◽  
Michele Marchesi ◽  
Roberto Tonelli

A successful software project is the result of a complex process involving, above all, people. Developers are the key factors for the success of a software development process, not merely as executors of tasks, but as protagonists and core of the whole development process. This paper investigates social aspects among developers working on software projects developed with the support of Agile tools. We studied 22 open source software projects developed using the Agile board of the JIRA repository. All comments committed by developers involved in the projects were analyzed and we explored whether the politeness of comments affected the number of developers involved and the time required to fix any given issue. Our results showed that the level of politeness in the communication process among developers does have an effect on the time required to fix issues and, in the majority of the analysed projects, it had a positive correlation with attractiveness of the project to both active and potential developers. The more polite developers were, the less time it took to fix an issue. In the majority of the analysed cases, the more developers wanted to be part of a project, the more they were willing to continue working on the project over time.


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.


2016 ◽  
Vol 2 ◽  
pp. e73 ◽  
Author(s):  
Giuseppe Destefanis ◽  
Marco Ortu ◽  
Steve Counsell ◽  
Stephen Swift ◽  
Michele Marchesi ◽  
...  

A successful software project is the result of a complex process involving, above all, people. Developers are the key factors for the success of a software development process, not merely as executors of tasks, but as protagonists and core of the whole development process. This paper investigates social aspects among developers working on software projects developed with the support of Agile tools. We studied 22 open-source software projects developed using the Agile board of the JIRA repository. All comments committed by developers involved in the projects were analyzed and we explored whether the politeness of comments affected the number of developers involved and the time required to fix any given issue. Our results showed that the level of politeness in the communication process among developers does have an effect on the time required to fix issues and, in the majority of the analysed projects, it had a positive correlation with attractiveness of the project to both active and potential developers. The more polite developers were, the less time it took to fix an issue.


Author(s):  
Swathine.K , Et. al.

Software traceability is a crucial component of various exact software development process and it is needed for various component certification and approval process in security system. With the tremendous growth of system, traceability is considered as a recent research topic. The traceability is a software development process that is indefinable. Various manufacturers struggle in predicting the appropriate traceability degree for their needs and produce the appropriate set of traceability links. The effort, cost, and discipline have to be maintained with tracking links with the faster development of software systems that are extremely higher. Also, it produces various advantages in practical realization; as it can be either ad-hoc or not properly defined traceability process, produces poor training or lack of effectual tool support. Moreover, the traceability process has to be determined as it can diminish the development effort and to enhance the development process. Generally, traceability research is based on empirical investigations for exploring newer investigational queries or to compute newer tracing methods. Here, this work concentrates on traceability, functional requirements, link establishment. It shows a better trade-off among the prevailing approaches.


Author(s):  
M. Hanefi Calp ◽  
M. Ali Akcayol

<p>Today, software industry has a rapid growth. In order to resist the competition increased by this growth, software projects ne0ed to be developed with higher quality and especially user friendly. Therefore, the importance of human-computer interaction emerges clearly. In design and development phases of software projects, the properties of human –which is an important agent for interaction- such as behavioral, cognitive, perceptive, efficiency and physical factors have to be considered. This study aims to express the importance of developing softwares by taking into consideration the human-computer interaction applications. In this context, firstly a wide literature review is made to examine software development process and human-computer interaction in detail, the results obtained by using design methods in this process are explicated and the importance of said interaction is openly expressed with the exemplary applications in the literature. According to the results of the research, especially in software life cycle, it is observed that rules of interaction must be implemented before software development, however, these methods are usually included in software life cycle in the latter stages of software development process. This situation causes the developed softwares to be user unfriendly and of low quality. Furthermore, it is observed that when the design methods used in the scope of human-computer interaction are integrated into software development process during the life cycle, the developed projects are more successful, have better quality and are more user friendly.</p><p> Keywords: Human-computer interaction, software projects, life cycle, software design.</p>


Author(s):  
Feniosky Peña-Mora ◽  
Sanjeev Vadhavkar

AbstractPresent-day software applications are increasingly required to be “reuse-conscious” in terms of the operating platforms, topology, and evolutionary requirements. Traditionally, there has been much difficulty in communicating specialized knowledge like design intents, design recommendations, and design justifications in the discipline of software engineering. This paper presents a methodology based on the combination of design rationale and design patterns to design reusable software systems. Design rationale is the representation of the reasoning behind the design of an artifact. Design patterns are descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context. The paper details the use of an explicit software development process to capture and disseminate the specialized knowledge (i.e., intents, recommendations, and justifications) that augments the description of the cases in a library (i.e., design patterns) during the development of software applications by heterogeneous groups. The importance of preserving and using this specialized knowledge has become apparent with the growing trend of combining the software development process with the product (i.e., software code). The importance of codifying corporate memory in this regard is also important considering the changing nature of the workplace, where more people are on contract. The information on how and why a software code was developed becomes essential for efficient and smooth continuity of the present software project as well as for reusing the code in future projects. It has become essential to capture the design rationale to develop and design software systems efficiently and reliably. The software prototype developed using the combined methodology will be used as a part of an integrated design environment for reusable software design. This environment supports collaborative development of software applications by a group of software specialists from a library of building block cases represented by design patterns.


Author(s):  
Shirley A. Becker ◽  
Alan A. Jorgensen

Researchers and practitioners alike agree that the waterfall approach to software development results in poor quality software systems. Unfortunately, the waterfall approach is inherently used in almost all of today’s development efforts resulting in system failures. The problem lies in the forward, linear development effort that produces inconsistent and incorrect specifications, designs, and code artifacts. It is proposed in this paper that a recursive software development process be used as a means of managing the complexity of today’s software systems. The recursive approach has the flexibility needed to perform development activities in any order to ensure that system requirements are met.


Sign in / Sign up

Export Citation Format

Share Document