1,160 research outputs found

    Influence Factors for the Choice of a Software Development Methodology

    Get PDF
    The success rate of software development projects can be increased by using a methodology that is adequate for the specific characteristics of those projects. Over time a wide range of software development methodologies has been elaborated, therefore choosing one of them is not an easy task. Our research reviews the main categories of development methodologies and then focuses, for a detailed study, on three of them: Rational Unified Process (RUP), Rapid Application Development (RAD) and Extreme Programming (XP). For each methodology it is presented the structure of software life cycle, there are identified the situations in which the methodology can be used successfully and the situations in which it tends to fail. Based on the literature review of software development methodologies and on a series of surveys, published by different researchers, exploring the state of practices in this field, we have identified a number of factors that influence the decision of choosing the most adequate development methodology for a specific project. The methodologies that are subject of this study are evaluated in relation to these factors to find out which development methodology is the most adequate depending on the level of the factors for a specific project. The results of our research are useful for the developers by helping them to identify what software development methodology can be used with success for a specific project.Software development methodology, Rational Unified Process, Rapid Application Development, Extreme Programming, choosing the adequate methodology

    A Hybrid Approach Using RUP and Scrum as a Software Development Strategy

    Get PDF
    According to some researchers, a hybrid approach can help optimize the software development lifecycle by combining two or more methodologies. RUP and Scrum are two methodologies that successfully complement each other to improve the software development process. However, the literature has shown only few case studies on exactly how organizations are successfully applying this hybrid methodology and the benefits and issues found during the process. To help fill this literature gap, the main purpose of this thesis is to describe the development of the Lobbyist Registration and Tracking System for the City of Jacksonville case study where a hybrid approach, that integrates RUP and Scrum, was implemented to develop a major application to provide additional empirical evidence and enrich the knowledge in this under-investigated field. The objective of this research was fulfilled since the case study was described in detail with the specific processes implemented using RUP and Scrum within the context of the IBM Rational Collaborative Lifecycle Management Solution. The results may help researchers and practitioners who are looking for evidence about conducting a hybrid approach. However, more case studies that successfully combine RUP and Scrum need to be developed in order to have enough empirical evidence

    Experimental software engineering in educational context

    Get PDF
    Empirical studies are important in software engineering to evaluate new tools, techniques, methods and technologies in a structured way before they are introduced in the industrial (real) software process. Within this PhD thesis we will develop a framework of a consistent process for involving students as subjects of empirical studies of software engineering. In concrete, our experiences with software development teams composed of students will analyze how RUP (Rational Unified Process) processes can be compliant with the CMMI (Capability Maturity Model Integration), namely in the context of MLs (maturity levels) 2 and 3. Additionally, we will also analyze the influence of project management tools to improve the process maturity of the teams. Our final goal of carrying out empirical studies with students is to understand its validity when compared with the corresponding studies in real industrial settings

    Hybrid Agile Approach: Efficiently Blending Traditional and Agile Methodologies

    Get PDF
    Agile development, in its simplest form, offers a lightweight framework for helping teams, given a constantly evolving functional and technical landscape, maintain a focus on the rapid delivery of business value. Traditional project management focuses more on distinct and predefined sequential phases. It assumes that once requirements are fixed there won’t be any changes or additions in future. In today’s world however this is not true and development teams have to incorporate changes at later stages to be competitive. This is where agile methodologies have an edge over traditional methods. Agile can handle more complex and highly adaptable projects. However, organizations focusing heavily on traditional methodologies like waterfall may find completely switching to agile potentially risky. Agile methods may have these major potential risks like agile methods are easy to misunderstand, highly visible information can be threat to financially sensitive projects. Therefore, many companies fear the adoption of Agile because an enterprise-wide adoption of the methodology will conflict with the traditional Waterfall process and create conflict. Hybrid Agile approach will help the organizations transition to agile efficiently. This paper will focus on the analyzing the successful combination of agile and traditional methodology

    Software Process Modeling with Eclipse Process Framework

    Get PDF
    The software development industry is constantly evolving. The rise of the agile methodologies in the late 1990s, and new development tools and technologies require growing attention for everybody working within this industry. The organizations have, however, had a mixture of various processes and different process languages since a standard software development process language has not been available. A promising process meta-model called Software & Systems Process Engineering Meta- Model (SPEM) 2.0 has been released recently. This is applied by tools such as Eclipse Process Framework Composer, which is designed for implementing and maintaining processes and method content. Its aim is to support a broad variety of project types and development styles. This thesis presents the concepts of software processes, models, traditional and agile approaches, method engineering, and software process improvement. Some of the most well-known methodologies (RUP, OpenUP, OpenMethod, XP and Scrum) are also introduced with a comparison provided between them. The main focus is on the Eclipse Process Framework and SPEM 2.0, their capabilities, usage and modeling. As a proof of concept, I present a case study of modeling OpenMethod with EPF Composer and SPEM 2.0. The results show that the new meta-model and tool have made it possible to easily manage method content, publish versions with customized content, and connect project tools (such as MS Project) with the process content. The software process modeling also acts as a process improvement activity.Ohjelmistoprosessin mallinnus Eclipse Process Frameworkilla ja SPEM 2.0 metamallilla Ohjelmistot ja ohjelmistoteollisuus kehittyvĂ€t jatkuvasti. Ketterien menetelmien tulo 1990-luvun loppupuolella, uudet kehitystyökalut ja teknologiat vaativat yhĂ€ enemmĂ€n huomiota alalla työskenteleviltĂ€ ihmisiltĂ€. Organisaatioilla on kuitenkin ollut sekalainen kirjo prosesseja ja erilaisia prosessikuvauskieliĂ€, koska standardia kuvauskieltĂ€ ei ole ollut saatavilla. Prosessimetamalli SPEM 2.0 julkaistiin hiljattain. TĂ€tĂ€ mallia hyödyntÀÀ mm. Eclipse Process Framework Composer (EPFC) –työkalu, joka on suunniteltu prosessien ja menetelmĂ€sisĂ€llön kehittĂ€miseen ja yllĂ€pitoon. Työkalun tavoitteena on tukea useita erilaisia projektityyppejĂ€ ja kehitystyylejĂ€. TĂ€ssĂ€ työssĂ€ esitellÀÀn seuraavat aiheet ja kĂ€sitteet: ohjelmistoprosessit, mallit, perinteiset ja ketterĂ€t lĂ€hestymistavat, metoditekniikkaa sekĂ€ prosessien kehittĂ€minen. LisĂ€ksi tutustutaan muutamiin tunnetuimmista metodologioista (RUP, OpenUP, OpenMethod, XP ja Scrum) ja vertaillaan nĂ€itĂ€. TyössĂ€ tutkitaan tarkemmin Eclipse Process Framework Composer –työkalua, SPEM 2.0 metamallia, nĂ€iden ominaisuuksia, kĂ€yttöÀ sekĂ€ mallintamista. EsitĂ€n tutkimustulokset ja tutkimuksenkulun OpenMethodin mallintamisesta EPFC –työkalulla sekĂ€ SPEM 2.0 -metamallilla. Tulokset osoittavat, ettĂ€ uusi metamalli ja työkalu helpottavat prosessin ja menetelmĂ€sisĂ€llön hallintaa, mahdollistavat rÀÀtĂ€löityjen julkaisujen teon sisĂ€llöstĂ€, sekĂ€ yhdistĂ€vĂ€t prosessin projektityökaluihin kuten MS Projectiin. Mallinnus voidaan lisĂ€ksi ymmĂ€rtÀÀ osana prosessin kehittĂ€mistĂ€.Siirretty Doriast

    A Quality Framework for Software Development (QFSD)

    Get PDF
    INTRODUCTION. This research delivers a new complete and prescriptive software development framework, known as the Quality Framework for Software Development (QFSD) for immediate use by software development practitioners. Whilst there are a number of existing methodologies available, and many software development standards they fail to address the complete development lifecycle. A review of current literature supports this assertion. AIMS AND OBJECTIVES. The overall aim of the research is to create a new software development framework, applying it to a substantial number of real-world software projects in two different industrial software development environments and thereby demonstrating its effectiveness. METHODS. Based on a review of the available research approaches and strategies, the researcher selected 'pragmatism' as the most suitable for this research. This selection was driven by two contributory factors. The first was that in order to conduct the research the researcher would have active participation in the majority of the research activities. The second was that the deliverables from the research should be immediately useable for the benefit of software practitioners and hence not be regarded as a theoretical framework. The approach was further refined by adopting Action Research and Case Study strategies. The research was divided in to stages each of which was executed within separate companies. The companies were very different in terms of their business areas, culture and views on quality and specifically quality of software deliverables. RESULTS. The research findings provided a strong indication that a holistic software development framework does provide an improvement in software project deliverables quality and repeatability in terms of schedules and quality. In the case of Fisher–Rosemount it enabled them to attain ISO 9000/Ticket accreditation. In addition, by providing all processes and tools in a single web based environment the adoption by software developers, project managers and senior management was very high

    Comparative Study on Agile software development methodologies

    Get PDF
    Today-s business environment is very much dynamic, and organisations are constantly changing their software requirements to adjust with new environment. They also demand for fast delivery of software products as well as for accepting changing requirements. In this aspect, traditional plan-driven developments fail to meet up these requirements. Though traditional software development methodologies, such as life cycle-based structured and object oriented approaches, continue to dominate the systems development few decades and much research has done in traditional methodologies, Agile software development brings its own set of novel challenges that must be addressed to satisfy the customer through early and continuous delivery of the valuable software. It is a set of software development methods based on iterative and incremental development process, where requirements and development evolve through collaboration between self-organizing, cross-functional teams that allows rapid delivery of high quality software to meet customer needs and also accommodate changes in the requirements. In this paper, we significantly identify and describe the major factors, that Agile development approach improves software development process to meet the rapid changing business environments. We also provide a brief comparison of agile development methodologies with traditional systems development methodologies, and discuss current state of adopting agile methodologies. We speculate that from the need to satisfy the customer through early and continuous delivery of the valuable software, Agile software development is emerged as an alternative to traditional plan-based software development methods. The purpose of this paper, is to provide an in-depth understanding, the major benefits of agile development approach to software development industry, as well as provide a comparison study report of ASDM over TSDM.Comment: 25 pages, 25 images, 86 references used, with authors biographie

    Tailoring CMMI-DEV and RUP frameworks for ML2/3-compliance analysis

    Get PDF
    Tese de doutoramento do Programa de Doutoramento em InformĂĄticaThe Capability Maturity Model Integration is a reference model composed of a set of guidelines that has to be implemented to attain a specific level of maturity in a particular set of process areas. This model aims to establish a set of "best practices" that should be used to ensure the software development with a high degree of quality. However, CMMI is not widely adopted by small businesses. Its adoption by these companies is somewhat complex since, in its guidelines, it merely indicates what to do, but it does not indicate how to implement each guideline. The Rational Unified Process is a software development methodology, which has as its main objective to avail its users the possibility of the software developing high-quality, within time and budget. This thesis aims to contribute a set of solutions that can be followed by small organizations, in order to implement a more streamlined process model that guarantees an increase in the quality of their products. This thesis adopts and validates a tailoring of the Rational Unified Process allowing it to be more easily implemented by small businesses or small software teams. This thesis presents a study of the dependencies between all the Capability Maturity Model Integration process areas, in order to enable the understanding of what the implementation impact is of a given process area in the other process areas. Finally, we present a mapping between the Capability Maturity Model Integration and the Rational Unified Process, which aims to help small software development teams in the implementation of the Maturity Level 2 (presented in more detail) and Maturity Level 3 of the Capability Maturity Model Integration. This mapping specifies what team members have to perform in order to implement most of the guidelines that the Capability Maturity Model Integration requires for each of their maturity levels.O Capability Maturity Model Integration Ă© um modelo de referĂȘncia que contĂ©m um conjunto de orientaçÔes necessĂĄrias para atingir um determinado nĂ­vel de maturidade em ĂĄreas de processo especĂ­ficas. Este modelo tem como objetivo estabelecer um conjunto de "melhores prĂĄticas" que devem ser utilizadas para garantir o desenvolvimento de software com um elevado grau de qualidade. No entanto o CMMI nĂŁo Ă© muito adotado por pequenas empresas. A sua adoção por estas empresas torna-se ligeiramente complexa, uma vez que nas suas orientaçÔes apenas Ă© indicado o que se deve fazer e nĂŁo o como se pode fazer. O Rational Unified Process Ă© uma metodologia de desenvolvimento de software que tem como principal objetivo garantir aos seus utilizadores o desenvolvimento de software de alta qualidade dentro do tempo e custo previsto. Esta tese pretende contribuir com um conjunto de soluçÔes, que as pequenas empresas podem seguir, de modo a implementarem de uma forma mais simplificada um modelo de processos que lhes garanta um aumento da qualidade dos seus produtos. Esta tese adota e valida uma simplificação do Rational Unified Process permitindo que este seja mais facilmente implementado por pequenas empresas ou pequenas equipas de software. Esta tese apresenta um estudo das dependĂȘncias existentes entre as vĂĄrias ĂĄreas de processo do Capability Maturity Model Integration de modo a permitir a compreensĂŁo de qual o impacto que a implementação de uma determinada ĂĄrea de processo tem nas restantes ĂĄreas existentes. Por fim, Ă© apresentado um mapeamento entre o Capability Maturity Model Integration e o Rational Unified Process, que pretende orientar as pequenas equipas de desenvolvimento a implementar nĂ­vel 2 (apresentado de um modo mais detalhado) e 3 do Capability Maturity Model Integration. Este mapeamento permite indicar aos elementos da equipa o que tem de fazer para conseguir implementar a maior parte das orientaçÔes que o Capability Maturity Model Integration impĂ”e para cada um dos seus nĂ­veis de maturidade.Este trabalho foi desenvolvido com o apoio da Fundação para a CiĂȘncia e Tecnologia e da I2S - InformĂĄtica Sistemas e Serviços SA., atravĂ©s de uma Bolsa de Doutoramento em Empresa

    Understanding the Relations Between Iterative Cycles in Software Engineering

    Get PDF
    Iterations are one of the most successful mechanisms in software development to ensure that the resulting system is satisfactory. Due to its strengths, various kinds of iterations have been integrated to software development with varying goals. In this paper, we consider different types of iterations related to software development, including prototyping, incremental development, sprints as in e.g. Scrum, and iterations as defined in Lean Startup. The goal is to understand the relations between the types of iterations, and to find out what kind of similarities and differences they have with each other. As a result, we find that while the goals are different, it is possible for the iterations to coexist, so that one form of iteration is used as a tool to complete the goals of another

    Model-Driven Software Development

    Get PDF
    Model-Driven Software Development (MDSD) is an emerging technology approach that has potential to revolutionize the software industry. MDSD has the ability to both increase software delivery velocity, while at the same time reduce complexity and reuse software assets. Experts in the field believe that the MDSD approach helps to abstract away the growing interdependencies of enterprise software development by use of sophisticated tools, models, and automatic code generation. Through the use of Unified Modeling Language (UML/UML2) and other related technologies, the models are intricate enough to fully represent a system domain and then generate system code to represent that system. The case study evaluates the key factors of velocity, modeling complexity, code generation, and code completeness. Using both Model-Driven Software Development and so-called traditional methods of development, both techniques were applied against a real-world system for First United Methodist Church Children\u27s Ministry. The two techniques were measured and critiqued for their effect on the software development. Future direction of MDSD and potential impacts are presented
    • 

    corecore