Basic knowledge of software development [1]

Source: Internet
Author: User
(1) the specific content of software development is: requirements, Design , Programming And Test !

Requirement: Not only user needs, but all requirements encountered during development. For example, you first need to know what the project is to solve; what data should be input in the test case ...... to clearly understand these requirements, you often need to communicate with customers, project managers, and so on.

Design: Before coding, you must have a plan to tell you what to do and what the structure is. You must follow this process, otherwise it may be a mess.

Programming: If yourProgramYou cannot get the money if you cannot run it or meet the customer's requirements.

Test: The purpose is to let you know when it is finished. If you are smart, you should first write the test so that you can know if you have completed it in time. Otherwise, you often don't know which functions are actually completed, and how far is it from the expected goal.

(2) software development,CustomerAndDevelopersAll have their own basic rights and obligations.

Customer:
Define the business priority of each user's needs;
Formulate an overall plan, including the amount of investment used, how long it took, and what the goal was;
Every working week in the project development process can maximize the benefits of investment;
By repeatedly running the function test you specified, You can accurately grasp the project progress.;
Ability to change requirements, functions, or priorities at any timeAnd avoid expensive re-investment;Ability to adjust project plans in a timely manner based on various changes;
The project can be canceled at any time. When the project is canceled, the previous development work is not a pile of garbage, and the functions that have been enabled are required. Ongoing or unfinished work should not be difficult to take over.

Developers:
Know what to do and what to do first;
Work efficiency;
Customers, colleagues, and superiors can answer or help in case of problems or difficulties;
Evaluates the work and reevaluates the work in a timely manner based on changes in the surrounding conditions;
Actively undertake the work, rather than passively accepting the distribution;
40 hours a week, no overtime.

(3) the software development process may include the following:Six phases:

Plan

A general definition of the problems to be solved, including understanding the user's requirements and the real environment, studying and demonstrating the feasibility of the software project from three aspects: technical, economic, and social factors, prepare a feasibility study report, discuss solutions to the problem, and address the costs of available resources (such as computer hardware, system software, and manpower, estimate the benefits and development progress that can be achieved. Develop implementation plans for completion of development tasks.

Analysis

Software Requirement analysis is to answer questions about what to do. It is a process of extracting, downsampling, and correctly understanding user requirements, and then expressing it in the software engineering development language (formal Function Specification, that is, the Requirement Specification. The basic task of this phase is to work with the user to determine the problem to be solved, establish the logic model of the software, compile the requirement specification documents, and finally get the user's approval. The main methods of requirement analysis include structured analysis, data flowchart, and data dictionary. The work in this phase is to design and establish the architecture of the corresponding software system according to the requirements of the requirement specification, and divide the entire system into several subsystems or modules, define the interface relationships between subsystems or modules, define specific designs for each subsystem, compile software outline design and detailed design manuals, database or data structure design manuals, and assemble test plans.

Design

Software design can be divided into two phases: Outline Design and detailed design. ActuallyThe main task of software design is to break down the software into modules, which refers to the data and program description that can implement a function and the program units of executable programs.. It can be a function, process, subprogram, an independent program and data with program instructions, or a functional unit that can be combined, decomposed, and replaceable. Module, and then design the module. The outline design is the structure design. Its main goal is to give the module structure of the software, which is represented by the software structure diagram. The first task of detailed design is to design the program process of the module,AlgorithmAnd data structure, secondary tasks are to design the database, the common method or structured program design method.

Encoding

Software coding refers to converting a software design into a computer-acceptable program, that is, writing a "source program list" expressed in a programming language ". A full understanding of the features and programming style of software development languages and tools helps you select development tools and ensure the development quality of software products.

Currently, in software development, except for special applications, the advanced language of 1980s is rarely used. Instead, it is an object-oriented development language. In addition, the object-oriented development language and development environment are mostly integrated, greatly improving the development speed.

Test

The purpose of software testing is to discover as many errors as possible at a small cost. The key to achieving this goal isDesign a set of excellent test cases(The test data and the expected output result form a test case ). The key to how to design a set of excellent test cases is to understand the test method. Different test methods have different test case design methods. Two common testing methods are the white box method. The testing object is the source program, and the logic structure inside the program is used to find the programming errors, structure errors, and data errors of the software. Structure errors include logic, data stream, and initialization errors. The key to case design is to cover as many internal program logic results as possible with fewer cases. The white box method and the black box method are based on the software's function or software behavior description and discover software interfaces, functions, and structure errors. Interface errors include internal/external interfaces, resource management, integration, and system errors. The key to the Black Box case design is also to overwrite the module output and input interfaces with fewer use cases. Black box method.

Maintenance

Maintenance refers to some software engineering activities carried out on software products after the development (analysis, design, coding and testing) of software is completed and delivered for use. That is, the software should be modified according to the software running situation to adapt to new requirements and correct errors found during operation. Compile software issue report and software modification report.

If the development phase of a medium-scale software takes one to two years, it may take five to ten years to run or work after it is put into use. So its maintenance phase is also the five to ten years of operation. During this period, people almost need to solve various problems encountered during the development phase, and also solve some maintenance work's own special problems. Doing a good job in software maintenance can not only eliminate obstacles, but also enable the software to work normally, but also enable it to expand functions, improve performance, and bring obvious economic benefits to users. However, it is a pity that the emphasis on software maintenance is far less than that on software development. In fact, compared with software development, the workload and cost of software maintenance are much larger.

In the actual development process, software development is not from the first step to the last step, but at any stage, there is generally a step or step back before entering the next stage. Problems During the test may require modifications to the design, and users may propose some requirements to modify the requirement specification.

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.