Rational Unified Process Overview
Summary
Rational Unified Process (RUP) is a set of software process frameworks developed by Rational Software. Many of the CMM certified software companies use RUP to standardize and improve their software development process. It is also necessary to understand, draw on and adopt industry-recognized software processes in the current domestic software industry. This paper mainly introduces the main content of RUP, including including development, core workflows, and iterative processes.
Key words
RUP stage milestone iterative core workflow
The meaning of the foreword software process and its meaning
What is the software process? In summary, the software process refers to a collection of phases, methods, techniques, practices, and related products (plan, document, model, code, test use case, etc.) in software development and maintenance.
So, what is the significance of software companies? The effective software process can be to improve the development efficiency of software companies: First, by understanding the basic principles of software development helps to make a wise decision on some important issues in software development; secondly, it can promote the standardization of development work. Promote the reusability and consistency between the project team; third, it provides an opportunity to enable software companies to introduce advanced practical technology within the industry, including code detection, configuration management, change control, and architecture modeling. Wait. Effective software process also helps improve software maintenance and technical support for software companies: First, it defines how to manage software changes and properly assign these changes to the future version of the software, which makes it entirely The process of change is seamlessly; secondly, it defines how to smoothly transition software products to operational implementation and technical support phases and how to effectively carry out these work.
For software companies, it is necessary to adopt some kind of industry-recognized software process, or use new technologies to improve their own work. Because the current software is growing, the complexity is getting higher and higher, lacking effective management and control during the development and maintenance process of software is very disadvantageous for a software company. Not only software is more complex, but now software companies also need to develop multiple software development, need to be effectively managed. Today, the software we need should be interactive, international, user-friendly, high-handed efficiency, high reliability system, which requires software companies to improve the quality of the product and maximize software reuse, Lower costs and higher efficiency work. Effective software process provides the basis for achieving these goals. At present, there are a variety of mature software processes in the industry to learn from, compared to a broader software process, including the following:
l Rational Unified Process (RUP)
l Open process
l Object-oriented Software Process (OOSP)
l Extreme Programming (XP)
l Catalysis
l Dynamic System Developments Method (DSDM)
This article will discuss the core content of RUP, including development, core workflow, and iterative procedures.
RUP is a predefined software process framework developed by Rational Software, which is published as a web document as a component in the Rational Suite Enterprise suite. This kit includes a famous UML modeling tool Rose and a variety of Auxiliary tools for software development at various stages. The main founders of RUP are the most outstanding three scientists in the object-oriented, standard modeling language (UML), Booch, Rumbaugh, and Jacobson. The core of RUP is Objectory Process, the latter is one of the products obtained when the Rational Software combines Jacobson's Objectory Organization in Jacobson, and then Rational uses its own process to improve and enhance Objectory, and finally form RUP. I remember that the author expressed that RUP was a book from the three masters (The Unified Software Development Process "of Addison Wesley, the Chinese translation of this book is organized by the Machinery Press, which is estimated to be very fast It can be seen), at that time, the name of RUP was "Unified Development Process", but later, after the Rational's title, the Rational's Rational Process, it is inevitable that the business taste is too strong. Figure 1 shows the development model of the RUP, which can intuitively see the overall frame composition of the RUP, including four order development phases, nine core workflows, and iterations. development process.
Figure 1 RUP development model
RUP development phase and milestones
The software life cycle in the RUP is decomposed into four order phases, namely: Inceptual, refinement phase (ElaBoral), construction, and delivery. Each phase ends in a major milestones; each stage is essentially a time span between two milestones. Perform an assessment at the end of each stage to determine if the target of this phase is already satisfied. If the assessment results are satisfactory, the project can be allowed to enter the next stage. The RUP development phase and milestones at various stages are shown in Figure 2.
Figure 2 RUP development stages and milestones
The process of four phases is a development cycle; each process passed through the four phases produces an improved type (Generation). Unless the software is going to die, it will repeat the same initial, refine, build, and transfer phase to the next improved type, but this focus is at different stages. These next cycles are called evolution cycles. As the product experiences several cycles, new improved types are actually an iterative development process mentioned earlier, and it will be described later.
1. The initial phase
The goal of the initial phase is to establish a business case and determine the boundaries of the project. In order to achieve this purpose, all external entities that interact with the system must be identified, and the interaction characteristics are defined at higher levels. This stage is very important, and in this stage, it is concerned about the main risks of business and demand for the entire project. For development projects based on the original system, the initial phase may be short.
At the end of the initial phase, it is the first important milestone: lifecycle objective milestone. The basic survival capacity of the life cycle target milestone evaluation project.
2. Refinement phase
The goal of the refining phase is to analyze the problem area, establish a sound architecture basis, prepare the project plan, and phase out the highest risk in the project. To achieve this, it is necessary to make decisions on the architecture, including scope, main functions, and non-functional needs such as performance. At the same time, establish a support environment for the project, including the creation of development cases, create templates, guidelines, and prepare tools. The second important milestone at the end of the refinement phase: Lifecle Architecture Milestones. Lifecycle Structure Milestones have established management benchmarks for the structure of the system and make the project team to measure in the construction phase. At this point, you should check the detailed system objectives and scope, structural selection, and the main risk solution.
3. Texture phase
In the construction phase, all remaining components and application functions are developed and integrated into products, all features are tested in detail. In a sense, the construction phase is a manufacturing process that focuses on management resources and control operations to optimize cost, progress, and quality.
At the end of the construction phase, it is the third important milestone: an initial operational milestone. The initial function milestone determines whether the product can be deployed in the test environment. At this point, it is necessary to determine the software, environment, and the user can start the operation of the system. The product version at this time is often called "beta" version.
4. Delivery phase
The focus of the delivery phase is to ensure that the software is available for end users. Delivery phase can span several iterations, including product tests prepared for publishing, based on a small amount of user feedback. At this point of life cycle, user feedback should focus on product adjustment, setting, installation, and availability issues, all major structures should have been solved in the early stage of the project lifecycle.
The end point of the delivery phase is the fourth milestone: Product release milestone. At this point, it is necessary to determine if the target is implemented, and another development cycle should be started. In some cases this milestone may overcome the end of the initial phase of the next cycle.
RUP core workflow
There are 9 core workflows in RUP, divided into 6 core process workflows, and 3 core support workflows (Core Supporting Workflows). Although 6 core process workflows may remind people in several stages in the traditional waterfall model, it should be noted that the stage in the iterative process is completely different, and these workflows have been accessed again in the entire life cycle. 9 core workflows are used in the project, and they are repeated in each iteration.
1. Business model
Commercial modeling workflow describes how to develop an idea for new target organizations and define the organization's processes, roles and responsibilities based on this idea in commercial use models and business object models.
2. Requirements
The goal of the demand workflow is to describe what the system should do and reach the developer and the user to reach a consensus. To achieve this goal, you must extract, organize, and document the needs of the needs and constraints; the most important thing is to understand the definitions and scope of the problem solved by the system.
3. Analysis and Design (Analysis & Design)
Analysis and design workflows translate demand into future system design, develop a robust structure for the system and adjust the design to match the realization environment, and optimize its performance. The result of the analysis design is a design model and an optional analysis model. The design model is the abstraction of the source code, consisting of design classes and some descriptions. Design classes are organized into a Package and Subsystem, which reflects how the class objects can cooperate with the use case.
Design activities are centered on architecture design, and the architecture is expressed by several structural views. The structural view is abstract and simplified throughout the design. Some details are omitted, making important characteristics more clear. The architecture is not only a carrier medium of a good design model, but also improves the quality of the created model in the development of the system. 4. Implementation
The purpose of achieving workflow includes defining the organizational structure of the code in the form of a hierarchical subsystem; the classes and objects are implemented in the form of components (source files, binary files, executable files); testing the components to be tested as units and integration The result produced by a single developer (or group) makes it an executable system.
5. Test (TEST)
Test the workflow to verify the interaction between the objects, verify the correct integration of all components in the software, verify that all requirements have been properly implemented, identified and confirmed before the defects are proposed and processed before the software deployment. RUP proposes an iterative method that means testing throughout the project, so as early as possible to find defects, fundamentally reduces the cost of modifying defects. Test is similar to a three-dimensional model, which is performed from reliability, functionality, and system performance.
6. Deployment (deployment)
The purpose of deploying workflow is to successfully build and distribute software to end users. The deployment workflow describes those activities associated with ensuring software products to end users, including: software packaging, generating products other than software itself, and helps users. In some cases, it is also possible to plan and perform Beta beta, transplant existing software and data, and formal acceptance.
7. Configuration & Change Management (Configuration & Chang Management)
The configuration and change management workflow describes how to control a large number of products in a project consisting of multiple members. Configuration and Change Management Workflow provides guidelines to manage multiple variants in the evolution system, track the version during software creation. Workflow describes how to manage parallel development, distributed development, how to automate create projects. At the same time, it also expounds the reasons, time and personnel of the product to maintain audit records.
8. Project Management
Software project management balances various objects that may have conflicts, manage risks, overcome various constraints and successfully deliver products that make user satisfied. Its goals include: providing a framework for project management, providing a practical criterion for program, personnel equipping, implementation, and monitoring projects, providing a framework for managing risks.
9. Environment (Environment)
The purpose of environmental workflow is to provide software development environments to software development organizations, including process and tools. Environmental workflow focuses on activities needed during the configuration project, and also supports development project specifications, providing a gradual guidance manual and describes how to implement the process in the organization.
RUP iterative development process
Each stage in the RUP can be further decomposed to iterate. An iteration is a complete development cycle, producing an executable product version, a subset of the final product, its incrementally developed, from an iterative process to another iterative process to become the final system.
Traditional project organizations are sequential through each workflow, and each workflow is only once, which is the life cycle of the waterfall we are familiar with, see Figure 3. The result of doing this is to achieve the end product completion and start testing, the hidden problem left in the analysis, design, and implementation phase will appear, the project may stop and start a long error correction cycle.
Figure 3 Traditional waterfall model
A more flexible, risk-smaller approach is multiple times through different development workflows, which can better understand demand, construct a robust architecture, and finally deliver a series of gradually completed versions. This is called an iterative lifecycle. Each order in the workflow is called once it is called once. Software life cycle is the continuous continuous iteration, through it, software is an incremental development. One iteration includes generating an executable version of development activities, as well as other auxiliary components necessary to use this version, such as version description, user documentation, etc. Therefore, a development iteration is a complete passage in all workflows in a sense, including at least: demand workflow, analysis and design workflow, realizing workflow, testing workflow. Its itself is like a small waterfall project, see Figure 4. Figure 4 Iterative Model of RUP
Compared to traditional waterfall models, iterative processes have the following advantages:
1. Reduce the risk of expenses in an increment. If the developer repeats a certain iteration, then the loss is just the cost of this development incorrect iteration.
2. Reduce the product and cannot enter the market in the market. Through the early development of the development, the risk can be determined as soon as possible, and the development is not in a hurry in the future.
3. Accelerate the progress of the entire development work. Because developers are clear about the focus of the problem, their work will be more efficient.
4. Since the needs of users cannot make a complete definition at the beginning, they are usually constantly refined in subsequent phases. Therefore, iterative process This mode makes it easier to adapt the demand.
People, activities and products in RUP
There are still some very important aspects in the RUP framework that are not embodied in Figure 1, mainly including people (Activities) and Artifacts. These three are actually closely related. The person is an abstract role definition, which can be a person or a group consisting of several people. The people defined in RUP mainly have such several categories: analysts, developers, testers, managers, and other auxiliary personnel, further subdivision in each type. Every type of personnel must perform a series of related activities, which are closely related and functionally coupled. The activity is also closely related to the product, the product is the ultimate or intermediate working products, which are generated and used during the project, and the product provides input and output for the activity and provides information exchange between activities. The product in the RUP can be a document, such as a business case or software structure document; it can be a model, such as a use case model or a design model; it can also be an model element, which is in one model, such as a class, or a subsystem. ,and many more. In order to make the development of the entire system have manageability, the product is usually organized into a collection in accordance with the corresponding core workflow.
Personnel, event, product, and the workflow will be described below to describe the static structure of the entire development process. The classification and definition of personnel, activity and products can be said to be very meticulous. It may not be used at all in the actual application. Such a detailed classification can be selected according to the specific situation, and can meet the requirements of the project. Limited to the space, this part of the content is briefly introduced, interested friends can refer to the RUP documentation, and understand it is still relatively easy.
Main advantages and deficiencies of RUP
In general, RUP has many advantages: First, it is based on some reasonable software engineering guidelines such as iterative development, demand driver, and architectural development; second, it provides the mechanism of introducing the visibility of management, For example, the working prototype at the end of each iteration and whether the decision point of the continued decision at the end of each stage is equal. At the same time, it provides the necessary guidelines, templates and tool guidance for all critical development activities in visualization software modeling, verification software quality and control software, and to ensure that all members share the same knowledge foundation. And established a simple and clear process structure, providing greater versatility for the development process; Finally, Rational's enthusiasm for RUP and resource investment will continue, the latest version is RUP 2001A. At the same time, there should be some shortcomings in RUP: First, RUP is only a development process, and there is no content of the software process, such as the lack of content on software operation and support; second, it does not support multi-project development Structure, which reduces the possibility of reuse in the development organization to a certain extent. It can be said that RUP is a very good start, but it is not perfect. Conclude
The development and maintenance of software has become more difficult as its scale expansion and complexity increases, and we need excellent personnel, good tools, perfect architecture, and also need effective software process. It can be said that the software process is a very important part of the software crisis problem, but it is often overlooked. Today, when our software industry gives great attention and enthusiasm for the implementation of CMM, the primary task in software enterprises is to form a standardized software development process or improved software development, but also unreasonable software development. The process, including the industry-recognized software process framework, including RUP, is a good choice for us. Limited to the space, this article only discusses RUP. In fact, this discussion is also very beautiful, I would like to be able to throw bricks, let us jointly give more more deeper focuses on the software process.