TL;DR: The transition from a plan-driven to an agile software development process affects not only the development team members, but also other teams, departments, and management.
Abstract: The transition from a plan-driven to an agile software development process affects not only the development team members, but also other teams, departments, and management. Any new process will likely attract developers excited to try it while repelling those opposed to change. Thus, how an agile process is introduced into an organization significantly affects its ultimate success.
TL;DR: In this paper, the authors explored the possibility of using agile development techniques in this environment and defined the requirements for new agile methods targeted to facilitate the development of embedded software, and maintained that by addressing the requirements they discovered, agile methods can be successful also in the embedded software domain.
Abstract: Agile software development methods have been suggested as useful in many situations and contexts. However, only few (if any) experiences are available regarding the use of agile methods in embedded domain where the hardware sets tight requirements for the software. This development domain is arguably far away from the agile home ground. This paper explores the possibility of using agile development techniques in this environment and defines the requirements for new agile methods targeted to facilitate the development of embedded software. The findings are based on an empirical study over a period 12 months in the development of low-level telecommunications software. We maintain that by addressing the requirements we discovered, agile methods can be successful also in the embedded software domain.
TL;DR: The focus of this paper is the development of a semantic model to consistently combine a use-case model and a conceptual class diagram to form a system specification.
Abstract: This paper is towards the development of a methodology for object-oriented software development. The intention is to support effective use of a formal model for specifying and reasoning during the requirements analysis and design of a software development process. The overall purpose is to enhance the application of the Unified Modelling Language (UML) with a formal semantics in the Rational Unified Software Development Process (RUP). The semantic framework defines the meaning of some UML submodels. It identifies both the static and dynamic relationships among these submodels. Thus, the focus of this paper is the development of a semantic model to consistently combine a use-case model and a conceptual class diagram to form a system specification.
TL;DR: The differences between agile and traditional approaches of software development are outlined and how development tools are used in the latter are examined.
Abstract: Lightweight, 'agile' software development methods are not a replacement for traditional, heavyweight methods. But under certain assumptions, they are a strong alternative in many areas of software development. In this paper, we outline the differences between agile and traditional approaches of software development and examine how development tools are used in the latter. We consider experience from industrial projects as well as results found in the research community. Then we discuss the requirements which agile methods and development processes impose on development tools and show how existing tool technology can be used to build agile tools. These tools allow agile methods to evolve through suitable tool support.
TL;DR: This work provided a methodology, which was able to take into account all the main factors influencing the project efforts and scheduling for UML based design, and to generate the mathematical model of a software process optimization problem based on UML diagrams.
Abstract: The main objective of software project management is to assure that a software product will be delivered in time, keeping the cost limits and a proper quality The key problems are the proper estimation of the effort needed to implement a specific design, the sufficient and effective allocation of resources and the development environment An appropriate project plan has to have a good or optimal scheduling of the individual development sub-tasks Finally, a project management methodology has to cope with the risks evolving during the project These project management activities have to start in the very early phases of the development process in order to keep the deadlines and have to continuously accommodate with the progress of the development process UML, the Unified Modelling Language [1] is increasingly widely used to design applications in a very broad range of software products One of the major benefits of using UML as a design language is that it can be thoroughly used from the very initial phases to the implementation Exploiting the property of the UML by which it’s able to model also the dynamic behaviour of a system, it can be interpreted for workflows, this way can be used to describe also the development process itself In this way our main objective was to provide a methodology, which is able to take into account all the main factors influencing the project efforts and scheduling for UML based design, and to generate the mathematical model of a software process optimization problem based on UML diagrams
TL;DR: Critical aspects in process improvement and appraisal are analyzed, and a reference for achieving process improvement goals is provided.
Abstract: Lots of discussions about software process improvement have emerged endlessly as the result of the popularization of the concept of software process management. But most of them focus on specific technology and tools, other than the unification of the architecture of software process. Elementary thoughts in CMMI is explained. Critical aspects in process improvement and appraisal are analyzed, A reference for achieving process improvement goals is provided.
TL;DR: The paper first introduces RUP's features, then the practical application of RUP is explained by developing a property management information system.
Abstract: Rational Unified Process (RUP)is an advanced common software development process framework, and high quality software products could be obtained within the limitation of schedule and cost by following its methods. The paper first introduces RUP's features,then it explains the practical application of RUP by developing a property management information system.
TL;DR: An agile approach for teaching Software Engineering based on the strict collaboration of students and teachers in design activities is proposed and results, student feedbacks, comments and observations about the teaching approach and the adopted agile software process are reported.
Abstract: This paper reports on the practice activity of an introductory course on Software Engineering for graduated students in Information Technology. Practices consisted of the application of the agile software development methodology for designing and implementing a simple Java application. The paper proposes an agile approach for teaching Software Engineering based on the strict collaboration of students and teachers in design activities. The paper reports results, student feedbacks, comments and observations about the teaching approach and the adopted agile software process.
TL;DR: It turns out that the RUP constitutes a considerable step towards a broad dissemination of software process modelling ideas but some of the R UP definitions and structures lack clear structure and are too complex and overloaded for practical use.
Abstract: Since 1999, Rational's Unified Process (RUP) is being offered as a guideline for software projects using the Unified Modeling Language (UML). RUP has been advertised to be iterative, and incremental, use case-driven and architecture-centric. These claims are discussed while RUP core concepts like phase, iteration, discipline (formerly: workflow) and milestone are reviewed in more detail. It turns out that the RUP constitutes a considerable step towards a broad dissemination of software process modelling ideas but some of the RUP definitions and structures lack clear structure and are too complex and overloaded for practical use.
Among others, I see the following particular problems: (1) phases do still dominate the process and iteration structure, (2) the term "software architecture" is not clearly defined and its role is still underestimated, (3) RUP "disciplines" are a partly redundant concept complicating the process more than supporting it, (4) powerful and transparent structuring principles like recursion and orthogonality do not get the attention they deserve. As an alternative, our model for Evolutionary, Object-oriented Software development (EOS) is contrasted with the RUP.
TL;DR: This book is a comprehensive guide to modern software development practices, as embodied in the Rational Unified Process, or RUP, which is a flexible, versatile process framework that can be tailored to suit the needs of development projects of all types and sizes.
Abstract: "Per Kroll and Philippe Kruchten are especially well suited to explain the RUP...because they have been the central forces inside Rational Software behind the creation of the RUP and its delivery to projects around the world."--From the Foreword by Grady BoochThis book is a comprehensive guide to modern software development practices, as embodied in the Rational Unified Process, or RUP. With the help of this book's practical advice and insight, software practitioners will learn how to tackle challenging development projects--small and large--using an iterative and risk-driven development approach with a proven track record.The Rational Unified Process Made Easy will teach you the key points involved in planning and managing iterative projects, the fundamentals of component design and software architecture, and the proper employment of use cases. All team members--from project managers to analysts, from developers to testers--will learn how to immediately apply the RUP to their work. You will learn that the RUP is a flexible, versatile process framework that can be tailored to suit the needs of development projects of all types and sizes.Key topics covered include: How to use the RUP to develop iteratively, adopt an architecture-centric approach, mitigate risk, and verify software quality Tasks associated with the four phases of the RUP: Inception, Elaboration, Construction, and Transition Roles and responsibilities of project managers, architects, analysts, developers, testers, and process engineers in a RUP project Incrementally adopting the RUP with minimal risk Common patterns for failure with the RUP--and how to avoid themUse this book to get quickly up to speed with the RUP, so you can easily employ the significant power of this process to increase the productivity of your team.0321166094B03062003