Overview of modern software processes

Source: Internet
Author: User

Author: Xu jianxiang (netpirate@gmail.com)

Time: 2006/09/22

From: http://www.anymobile.org

 

1. Software Process

 

With the increase of the scale and complexity of software systems, the development costs and risks increase. The quality of software has become one of the key factors restricting the development of software.

The so-called software process, that is, the development process of software projects, refers to a series of processes used to develop and maintain software products in the software life cycle. It complements the team's organizational management and development skills, improve the quality of software products.

In recent years, the software process has been paid more and more attention, and the agility and unification of the international software industry are also growing. Compared with the traditional development process, the agile process emphasizes fast and flexible response, actively meets and adapts to changes, and advocates closer collaboration between customers and developers and people-oriented sustainable development, typical examples include XP (eXtreme Programming) and FDD (feature-driven development). The unified software process is represented by the RUP, And the OO technology is used to model the business of the software development process itself, it integrates many mainstream advanced software technologies such as iterative development, case-driven, UML visual modeling, OOAD, architecture design, and project management.

During software project development, the characteristics of different software projects should be identified and analyzed, and appropriate development practices should be adopted to adapt to the software development process to ensure effective support for software development, for example, the integration of RUP and XP.

 

2. XP, eXtreme Programming

 

EXtreme Propgramming (XP) was created by Kent Beck in 1996 and is an evolutionary Prototype Method to maximize human energy, it is a lightweight and agile process method that guides development with the logic of "small steps and fast releases" and features high communication efficiency, simple design, and fast feedback.

Extreme Programming is based on four value goals: communication, simplicity, feedback, and courage. These four values are supported by 12 best practices.

The life cycle of extreme programming includes four basic activities: coding, testing, listening, and design ).

2.14 Value goals

Communication: allows developers to collectively take charge of all code and team-end work, and encourages communication with customers and teams.

Simplified: We encourage you to develop only the current functions, avoid too many documents, focus on minimizing solutions, and be prepared to constantly reconstruct the system metaphor and code specifications for new feature changes.

Feedback: quick feedback is obtained through unit test and function test.

Courage: advocates the courage to actively face the reality and solve problems and embrace changes.

2.212 Best practices

 
(Image 1 XP best practices)

Planned Development: Determine the features of the next version by combining the priority "story" and technical estimation.

Small release: software is often released to customers in small incremental versions.

System metaphor: metaphor is a high-level system concept. It requires continuous refinement of the architecture to guide all development.

Simple Design: The design is simple by keeping the code simple. Constantly search for complex points in the Code and immediately remove them.

Test driver: "Test first, then code ". You can write test content to test the story. Programmers write test content to discover any problems in the code. Write the test content before writing the code.

Refactoring: This is a simplified technique that removes repetitive content and complexities from code.

Pair Programming: two members of the team use the same computer to develop all the code. One person writes code or drives, and the other person reviews the correctness and comprehensibility of the code at the same time.

Collective code ownership: Anyone owns all the code. Improve code transparency and team spirit.

Continuous integration: Creates and integrates the system multiple times per task every day, and carries out continuous regression testing as demand changes.

40 hours of work per week: programmers cannot guarantee the highest efficiency during fatigue. It is absolutely not allowed to work overtime for two consecutive weeks. Otherwise, the work efficiency will be affected.

Field Customer: at least one real customer is working in the development environment around the clock to help define the system, write test content, and answer questions.

Coding specifications: programmers adopt uniform coding specifications.

In general, the XP part meets the requirements of cms2 ~ Level 3 key process domain (KPA) requirements, XP focuses on processes and technologies, and CMM focuses more on organization and management.

 

3,FDD, feature-driven development

Feature drive develop, FDD, created by Peter Coad, founder of together. Develop a development plan based on features, with daily building as the core, emphasizing step-by-step development and delivery based on features. A feature is a small, customer-valuable function, usually expressed as <action> <result> <Object>.

 

4,Rational Unified Process

 

Development background of iterative software development: the uncertainty and high risks of software make traditional waterfall development unable to cope with the problem. Iteration helps to detect and solve risks as soon as possible. Iteration helps to control the pace of the project and speed up feedback, enhance project control to achieve orderly processes. iteration is in line with people's understanding of things, and the ability to solve problems is gradually improved with experience.
 

Rational Unified Process (RUP) is a case-driven, architecture-centric, iterative, and incremental software development process. Suitable for large and medium-sized projects.

RUP emphasizes the adoption of some best practices for modern software development as a way to reduce the inherent risks arising from the development of new software. TheseBest practicesIncluding:

1) iterative development;

2) management requirements;

3) Use a component-based architecture;

4) visual modeling;

5) continuous quality verification;

6) control changes.

RUP is an iterative process that identifies any software development projectFour Phases: Initial stage, finalize stage, build stage, and delivery stage. Each stage includes one or more iterations. Each iteration generates an executable version closer to the final product.

A. Initial Stage: identifies and avoids major project risks, establishes a case model framework, and develops a phase plan for the milestone date;

B. refinement stage: analyze problem fields, establish a sound architecture Foundation, prepare a project plan, eliminate the highest risk elements of the project, and complete some of the most advanced case development;

C. Build phase: divided into multiple iterations to gradually complete Case development with different priorities. Core Case-> high-risk Case-> secondary core Case-> other cases;

D. Delivery stage: perform various functional and performance tests, perform productization and deployment, and complete system development.
 
(Image 2 RUP overview)

RUPIterative development process:

A. first iteration

1) Capture requirements

2) establish an initial Domain Model

3) establish a case model framework

4) Develop a Development Plan

B. Second Iteration

1) Robustness Analysis and interactive modeling of key cases

2) Architecture Design

3) create a class model

4) Development and testing of key cases

5) Improve the use case model

C. nth Iteration

Analyzes, designs, and develops all use cases.

D. Last Iteration

1) Overall Test: perform various functional, performance, and stress tests.

2) deployment and installation: generate the corresponding deployment diagram.

3) productization: Perform product-based packaging.

Note: An intermediate version that can be run should be delivered after each iteration.
 
(Figure 3 RUP iteration Stream)

5. SPP to streamline the parallel process

Simplified Parallel Process (SPP): streamline the content and requirements of various Process domains within Level 3 of CMMs, it includes 19 process domains, more than 40 procedures, and nearly 60 document templates. It is emphasized that the project management process, Project R & D process, and institutional support process are carried out in parallel within the product life cycle.
 
(Image 4 SPP)

Software process improvement solution (SPIS)-invented by Lin Rui.

Core Components

1) consulting service for software process improvement;

2) software engineering and project management training;

3) Web-based integrated project management tool, Future.

Future uses CMMI and SPP as reference standards. Main functions include project planning, project monitoring, quality management, configuration management, requirement management, and daily work management.

Website: http://www.chinaspis.com

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.