A Preliminary Study of software process RUP

Source: Internet
Author: User
Tags knowledge base
A Preliminary Study of software process RUP

Abstract: This article introduces the main content of Rational Unified Process (RUP), including the development stage, iteration process and core workflow, the advantages and disadvantages in software project development are briefly reviewed.

Keywords: Unified Process milestone iteration core Workflow

Abstract: This paper discuss the important contents of the Rational uniied Process, including Development Phase, Iteration Process, Core Workflows and so on. additionally, giving some comments about its advantages and weaknesses in the software projects development.

Key Words: uniied Process, Milestone, Iteration, Core Workflows

Preface
A software process is a collection of stages, methods, technologies, practices, and related products (plans, documents, models, codes, test cases, and manuals) implemented in software development and maintenance. Effective software processes can improve the production efficiency of software development organizations, improve software quality, reduce costs and reduce risks. Currently, the most advanced Software processes on the market include the Rational Unified Process, OPEN Process, and OOSP (Object-Oriented Software Process ).
One of the reasons why RUP has a high degree of recognition is probably because its author, Rational software, has gathered three outstanding object-oriented experts Booch, Rumbaugh, and Jacob bson, at the same time, it is also the founder of the industry standard language for object-oriented development-standard Modeling Language (UML. RUP evolved from the objectid process. Its initial version is 5.0. It has gone through versions 5.1, 5.11, and 5.5 until the latest Rational Unified Process2000 version. This article mainly discusses the main content and features of RUP.
2. Two-dimensional development model of RUP
RUP can be described using two-dimensional coordinates. The horizontal axis is organized by time. It is the life Cycle feature of process expansion and reflects the dynamic structure of the development process. Its terms mainly include Cycle and Phase) iteration and Milestone (Milestone); the vertical axis organizes content as a natural logical Activity, reflecting the static structure of the development process. It is used to describe its term mainly including Activity) artifact, Worker, and Workflow ).

Two-dimensional development model of RUP
3. stages and milestones in the development process
The software lifecycle in RUP is divided into four sequential stages in time: Inception, Elaboration, and Construction) and the delivery phase (Transition ). Each stage ends with a Major milestone (Major Milestones); each stage is essentially a time span between two Milestones. An evaluation is executed at the end of each stage to determine whether the objectives of this stage have been met. If the evaluation results are satisfactory, you can allow the project to enter the next stage.
1. Initial Stage
In the initial stage, the goal is to establish business cases for the system and determine the project boundaries. To achieve this goal, all external entities that interact with the system must be identified and the Interaction Features must be defined at a higher level. This phase is of great significance. In this phase, we focus on the main risks of business and demand in the project. For development projects built on the original system, the initial stage may be very short.
The end of the initial phase is the first important milestone: the Lifecycle Objective milestone. The life cycle goal milestone evaluates the basic viability of the project.
2. refinement stage
The goal of the refinement stage is to analyze the problem field, establish a sound architecture Foundation, prepare a project plan, and eliminate the highest risk elements in the project. To achieve this goal, you must make decisions on the architecture based on understanding the entire system, including its scope, main functions, and non-functional requirements such as performance. Create a support environment for the project, including creating development cases, creating templates, rules, and preparing tools.
The second important milestone at the end of the Refinement phase: the Lifecycle Architecture milestone. The lifecycle structure milestone establishes a management benchmark for the system structure and enables the project team to measure during the build phase. At this moment, we will examine the detailed system objectives and scopes, the selection of structures, and solutions to major risks.
3. Construction phase
During the build phase, all remaining components and application functions are developed and integrated into products, and all functions are tested in detail. In a sense, the construction phase is a manufacturing process, which focuses on resource management and operation control to optimize costs, progress, and quality.
The end of the build phase is the third important milestone: the Initial Operational milestone. The initial function milestone determines whether the product can be deployed in the test environment. At this moment, determine whether the software, environment, and users can start the system operation. The product version is also called "beta.
4. delivery phase
The focus of the delivery phase is to ensure that the software is available to end users. The delivery phase can span several iterations, including product testing for release and a small amount of adjustments based on user feedback. In terms of the lifecycle, user feedback should focus on product adjustment, setup, installation, and availability issues, all major structural problems should have been solved in the early stages of the project lifecycle.
The end of the delivery phase is the fourth milestone: the Product Release milestone. In this case, determine whether the target is implemented and whether another development cycle should be started. In some cases, this milestone may overlap with the end of the initial phase of the next cycle.
4. Core Workflows)
There are nine Core Workflows in RUP, which are divided into six Core Process Workflows and three Core support Workflows (Core Supporting Workflows ). Although the six core process workflows may remind people of several stages in the traditional waterfall model, it should be noted that the stages in the iteration process are completely different, these workflows are accessed again and again throughout the lifecycle. Nine core workflows are used in turn in the project, and repeated with different emphasis and intensity in each iteration.
1. Business Modeling)
Business modeling workflows describe how to develop an idea for a new target organization, and define the process, roles, and responsibilities of the Organization in the business case model and Business Object Model Based on this idea.
2. Requirements)
The goal of a requirement workflow is to describe what the system should do and reach a consensus between developers and users on this description. To achieve this goal, extract, organize, and document the required functions and constraints. The most important thing is to understand the definition and scope of the problems solved by the system.
3. Analysis & Design)
Analysis and Design workflows transform requirements into future system designs, develop a robust structure for the system, adjust the design so that it matches with the implementation environment, and optimize its performance. The analysis design result is a design model and an optional analysis model. A design model is an abstraction of source code. It consists of a design class and some descriptions. The design class is organized into a Package with good interfaces and a Subsystem. The description shows how the class objects work together to implement the use case function.
The design activity is centered on the architecture design. The architecture is expressed by several structural views, which are the abstraction and simplification of the entire design. Some details are omitted in this view, make important features clearer. The architecture is not only a medium for good model design, but also improves the quality of the created model during system development.

4. Implementation)
The purpose of implementing a workflow is to define the code organization structure in the form of a hierarchical subsystem; To implement classes and objects in the form of components (source files, binary files, and executable files; testing the developed components as units and integrating the results produced by a single developer (or group) into an executable system.
5. Test)
The test workflow should verify the interaction between objects, verify the correct integration of all components in the software, and verify that all requirements have been correctly implemented, identify and confirm defects are raised and handled prior to software deployment. The iterative approach proposed by RUP means testing throughout the project, so as to discover defects as early as possible, fundamentally reducing the cost of modifying defects. The test is similar to a three-dimensional model, which can be carried out from the reliability, functionality, and system.
6. Deployment)
The purpose of deploying a workflow is to successfully generate a version and distribute the software to the end user. The deployment workflow describes activities related to ensuring that software products are available to end users, including software packaging, generating products other than the software itself, installing software, and helping users. In some cases, it may also include planning and beta testing, porting existing software and data, and formal acceptance.
7. Configuration and Change Management)
The configuration and change management workflow depicts how to control a large number of products in a project composed of multiple members. The configuration and change management workflow provides guidelines for managing multiple variants in an evolutionary system and tracking versions during Software creation. A workflow describes how to manage parallel development, distributed development, and automate Project Creation. At the same time, it also describes the reasons for product modification, the time, and personnel maintenance audit records.
8. Project Management)
Software project management balances various conflicting goals, manages risks, overcomes various constraints, and successfully delivers products that satisfy users. Its goals include: to provide a framework for project management, practical guidelines for planning, staffing, implementation and monitoring of projects, and to provide a framework for management risks.
9. Environment (Environment)
The purpose of an environment workflow is to provide the software development environment, including processes and tools, to the software development organization. Environment workflows focus on the activities required during project configuration. They also support development project standard activities, provide a step-by-step instruction manual, and introduce how to implement the process in an organization.
5. iterative development mode of the RUP
Each stage in the RUP can be further divided into iterations. An iteration is a complete development cycle that generates an executable product version and is a subset of the final product. It develops incrementally, from one iteration process to another iteration process to the final system.
Traditionally, projects are organized in sequence through each workflow, each workflow is only once, that is, the waterfall lifecycle that we are familiar. The result of this operation is that at the end of the product implementation stage, the product is complete and the test is started. There will be a large number of hidden problems in the analysis, design, and implementation stages, the project may have to be stopped and start a long period of error correction.

Waterfall Model
A more flexible and less risky method is to use different development workflows multiple times to better understand the requirements and build a robust architecture, and finally deliver a series of gradually completed versions. This is called an iteration lifecycle. The passing of each order in a workflow is called an iteration. The software life cycle is continuous iteration. Through it, the software is incremental development. An Iteration includes a development activity that generates an executable version and other auxiliary components necessary to use this version, such as version description and user documentation. Therefore, a development iteration is a complete process in all workflows. These workflows include at least requirement workflows, analysis and design workflows, implementation workflows, and test workflows. It is like a small waterfall project.

Iterative model of RUP
Compared with the traditional waterfall model, the iterative process has the following advantages:
Reduces the risk of spending on an increment. If developers repeat an iteration, the loss is only the cost of an incorrect iteration.
This reduces the risk that products cannot enter the market according to the established schedule. By identifying risks in the early stages of development, we can solve them as early as possible rather than rush in the later stages of development.
This accelerates the entire development process. Because developers are clear about the focus of the problem, their work will be more efficient.
Since user requirements cannot be fully defined at the beginning, they are usually refined in subsequent stages. Therefore, the pattern of iteration process makes it easier to adapt to changes in requirements.
Summary
It has many advantages: improving team productivity, in terms of iterative development process, demand management, component-based architecture, visual software modeling, software quality verification, and software change control, provides necessary guidelines, templates, and Tool guidance for all key development activities, and ensures that all Members share the same knowledge base. It establishes a concise and clear process structure and provides greater versatility for the development process. However, it also has some shortcomings: RUP is only a development process and does not cover all the content of the software process, for example, it lacks content about software operation and support. In addition, it does not support the development structure for multiple projects, which reduces the possibility of reuse within the development organization to a certain extent. It can be said that RUP is a very good start, but it is not perfect, in practical application, you can improve it as needed, and supplement and improve it with the relevant content of other software processes such as OPEN and OOSP.
References
1. Rational Software Corporation. Rational uniied Process version 200020.2.1, 2000
2. Ivar jakbson, Grady Booch, James Rumbaugh. The uniied Software Development Process, Addison Wesley, 1999.1
3. Scott W. Ambler. Enhancing the Unified Process: Software Process for Large Scale, Mission-Critical Systems A Ronin Internatinal White Paper, 2000.9

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.