Software development process

Source: Internet
Author: User

I. Introduction of software development
Software (software) is simply the things that can be seen in a computer, but what is not touched, the concept of software is also known as "soft equipment", broadly speaking, software refers to the system in the program and the development, use of all the documents required by the collection. Software is divided into system software and application software.
  software does not just include programs that can be run on a computer, and files associated with those programs are generally considered part of the software.
Software is applied in all fields of the world, which has a profound impact on people's life and work.


second, the content of software development

1) Demand: Not only user needs, should be encountered in the development of all the requirements. For example, you first need to know what to do with the project, what data should be entered in the test case ... To be aware of these needs, you often have to communicate with customers, project managers, and project partners.

2) Design: Before coding, there must be a plan to tell you what to do, how the structure is, and so on. You must follow this, or it may be a mess.

3) Programming: If the project deadline, your program can not run up or reach the customer's requirements, you will not get money.

4) Test: The goal is to let you know when it's done. If you are smart, you should write the test first, so that you can know in time whether you are really finished. Otherwise, you often do not know what functions are really completed, and how far away from the expected target.


Iii. Customers and developers

Customer

1) Define business priorities for each user's needs;
2) To formulate an overall plan, including how much investment, after how long, to achieve what purpose;
3) in the project development process of each work week, can make the investment to maximize the benefits;
4) accurately grasp the progress of the project by repeatedly running the functional tests you specified;
5) Ability to change requirements, functions or priorities at any time, while avoiding costly reinvestment; be able to adjust the project plan in time according to various changes;
6) be able to cancel the project at any time; When the project is canceled, the previous development work is not a pile of rubbish, the function that has been developed is the requirement, the work that is done or unfinished should be not difficult to take over.

Development Staff

1) know what to do and what to do first;
2) work efficiency;
3) If you have problems or difficulties, you can get the answer or help from customers, colleagues, superiors;
4) Evaluate the work and re-evaluate it in time according to the changes in the surrounding situation;
5) Actively undertake work, rather than passively accept distribution;
6) Work 40 hours a week, not overtime.


Iv. Software Development process


Analysis
Software Requirements analysis is the answer to what the problem. It is a refine, quweicunzhen, correct understanding of the user's needs, and then it is used in the Software Engineering development language (formal function specification, which is required specifications) to express the process. The basic task of this stage is to work with the user to determine the problem to be solved, to establish the logic model of the software, to write the requirement Specification document and finally to get the user's approval. The main methods of demand analysis are the methods of structural analysis, data flow chart and data dictionary. The work of this stage is to design and establish the system structure of the corresponding software system according to requirement specification , and decompose the whole system into several subsystems or modules, define the interface relation between subsystem or module, define the specific design of each subsystem, Write software outline design and detailed design instruction, database or data structure design instruction, assemble test plan .

  
Design
Software design can be divided into two stages: summary design and detailed design. In fact, the main task of software design is to decompose the software into modules, which means the data and program description and executable program unit that can implement a certain function. It can be a function, a procedure, a subroutine, a separate program and data with a program description, or it can be a composable, biodegradable, and replaceable functional unit. module and then design the module. The outline design is the structure design, its main goal is to give the software module structure, uses the software structure diagram to represent. The first task of detailed design is to design the program flow, algorithm and data structure of the module, the secondary task is to design the database, the common method or the structured programming method.
  
Coding
Software coding refers to the conversion of software design to a computer acceptable program, which is written in a programming language expressed in a "source program list." Fully understand the software development language, tool features and programming style, to help develop the choice of tools and ensure the quality of software product development.
In the current software development, in addition to special occasions, the the 1980s high-level language has been rarely used, instead of the object-oriented development language. And the object-oriented development language and development environment are mostly integrated, greatly improving the speed of development.
  
Test
The purpose of software testing is to find as many errors as possible at a lesser cost. The key to achieving this goal is to design an excellent set of test cases (the test data and the expected output result form the test case). How to design a good set of test cases, the key is to understand the test method. Different test methods have different design methods for test cases. Two common test methods are the White box test object is the source program, based on the internal logic structure of the program to find software programming errors, structural errors and data errors. Structural errors include errors such as logic, data flow, initialization, and so on. The key to use case design is to cover as many internal program logical results as possible with fewer use cases. The White box method and the Black box method are based on the software function or software behavior description, and the software interface, function and structure errors are found. Interface errors include internal/external interfaces, resource management, integration, and system errors. The key to the black-box use case design is also to cover the module output and input interfaces with fewer use cases. Black box method.
  
Maintenance
Maintenance refers to the activities of software engineering that are performed on software products after they have been completed and used for the development (analysis, design, coding and testing) of the product. That is, according to the operation of the software, the software is modified to adapt to the new requirements, and to correct the errors found in the operation.Write software problem report, software modification report。
A medium-sized software, if the development phase takes a year to two years, after it is put into use, its operation or working time may last five years to ten years. Then its maintenance phase is also running during the five to 10 years. At this time, it is almost necessary to address the various problems encountered during the development phase, and to solve some of the problems inherent in the maintenance work itself. Do a good job in software maintenance, not only to remove obstacles, so that the software can work properly, but also to enable it to expand the function, improve performance, to bring obvious economic benefits for users. Unfortunately, the importance of software maintenance is often far less than the emphasis on software development work. In fact, compared with software development work, the workload and cost of software maintenance are much greater.


In the actual development process, software development is not from the first step to the last step, but at any stage, before entering the next phase of the general have a step or a few steps back. Problems during the testing process may require modification of the design, and the user may propose some needs to modify the requirements specification.



Five, the development of software considerations

 
1. Project design  
The leading idea of project design, I think it can be understood as two kinds, one is completely designed, the other is simple design.  
Full design refers to the various aspects of the software before the specific code to investigate, do a detailed analysis of requirements, write all the development documents, design the process of all the procedures before starting to write code. In other words, it's all about the plan, the final look, the war. This seems to be what many "software engineering" books require. At first, I thought it was a good method. Everything is planned, so just do it. But here's the obvious question, who's going to make the perfect plan? It is estimated that only its BT people, but most people want to fully design, and there is no error, or there are several backup fault-tolerant solutions, and can be implemented accurately. To achieve the ultimate goal. Such a state, not many years of work experience is impossible. I have no such ability, so I gave up the idea.  
Simple design: simple design a concept, an acceptable simple design, at least the database has been set up, the basic process has been determined by the program as the beginning of the program design, and at any time according to the actual situation of progress to revise the specific functional design, However, this feature modification cannot be a modification of the database structure. This means that the database structure is repeatedly demonstrated before programming. This method reduces the time of early design, puts the code writing work and part of the design work together, actually shortens the project development time. If the complete design method requires a strong pre-design staff, then simple design requires a very design-minded programmer. Programmers are more than just K-code people and are responsible for the design of the program architecture. So the requirements for programmers are very high. A basic point of the success of simple design is that the programmer's logical structure is simple and can adjust its logical structure according to the need, that is, the code structure is flexible, the other change of simple design is that the meeting will be more, the communication between programmers becomes very important. Small and medium-sized software companies are now basically simple to design, unless they are very large software companies.  
Summary, simple design test is the ability of developers. The complete design test is the ability of the early designers and the entire project team. (All kinds of documents are written, developers will have to write a part.) )


2, design changes and requirements change  
What is the most feared by developers? Design change, or demand change? I think the change in demand is the most deadly. When you have a project database has been set down, and has been developed a number of business days, suddenly received a company proposed, a function to change, the original needs analysis to re-change, if this modification is involved in the database table structure changes, it is the most deadly. This means that some parts of the project have to be re-demolished, and if this part is linked to the many parts that have been completed, the consequences are even more dire. So when this happens, as a project manager you should consider the first to check the responsibility of the person, whether it is not good enough to do their own needs analysis, or customers agree with the needs of the analysis of the changes made, if the latter, you can fully request the customer to his this change responsible! Well, oh, customer, sir, I'm sorry, this new increase in demand will fall into another version. If it is to change the definition of a previous requirement, then it is likely to be torn down again, but this time to do not care too much, after all, the wrong customer. (There was no clear need for the project before it was formally started). Therefore, spectators, in the demand analysis, before the start must be called Customer approval signature, and in the contract to note, when the customer caused by the need to change the cost of development caused by the increase in customer to pay for this.  
If the requirements are not changed, the design has changed, this is only a contradiction between our internal, we can solve the discussion. In a simple design, because the previous design is incomplete, it is possible to change the design as it enters any new module for development. The level of the developer is basically determined by the quality of the software.


3. Code Writing
When the requirements of the database is set down, in fact, we can carry out a substantial code, according to my view, a person programming the best, can be lazy at any time. (Internet, and mm chat), but now the software projects are getting bigger, the schedule is getting tighter, in fact, we have a team, generally there are 3-5 of programmers, so we should emphasize teamwork. Then you write code so that others can understand, we must in the actual code process to have a detailed coding specifications, coding specifications in many books have been mentioned. But at least some of the following are what we have to comply with:

A) source program file structure:
Each program file should consist of three parts: title, content, and additional description.
(1) Title: The first note of the document, its contents mainly include: Program name, author, copyright information, brief description, if necessary, should be more detailed description (will be separated by a blank line in this section separate comments).
(2) Content control registration and other functions should be placed at the end of the content section, the definition of the class according to the order of private, protected, pubilic, __pubished, and try to keep each part only one, in each part by data, functions, properties, events order.
(3) Additional notes: Supplementary instructions at the end of the document, such as reference materials, may be placed at the end of the title section if the content is not too much.

II) consistency of interface design style:  
because of visual programming, All interfaces are similar to Win32, and the corresponding controls are mostly standard controls under the Windows operating system, and refer to some other commercially relevant enterprise-managed applications.  
based on the principle of simple and easy operation, close to the user's consideration, the user interface uses the Windows style standard interface, the operation Way also with the Windows style, so in the implementation process, can reduce to the customer training, also can make the user easy to use, easy to learn.  

III) Editorial style:
(1) Indent: Indents in tab, one tab for four spaces. Global data, function prototypes, headings, additional instructions, function descriptions, labels, etc. are all shelf written.
(2) Spaces: the appropriate spaces between data and functions in their type, adornments (such as __fastcall, etc.), are aligned according to the situation. Keyword principle above a grid, whether or not there are parentheses, apply the appropriate space to the statement after the statement line to separate and align as possible.
(3) Alignment: In principle, closely related lines should be aligned, alignment includes the type, decoration, name, parameters and other parts of the alignment.
The length of each line should not exceed the screen too much, if necessary, the appropriate line wrapping.
(4) Blank line: The program file structure of the empty two lines between the parts, if not necessary also can only empty line, the function is generally empty two lines between the implementation.
(5) Note: The following three points are required for comments:
A, must be meaningful;
B, the procedure must be correctly described;
C, must be up-to-date.
Annotations are essential, but should not be excessive, the following are four necessary comments:
Title, additional instructions;
Function Description: Almost every function should be properly described, usually added before the function implementation, in the absence of the function implementation part of the case is added to the function prototype, its content is the function of functions, purposes, algorithms, such as description, parameter description, return value description, if necessary, some such as special hardware and software requirements and other instructions;
There should be a small number of instructions in the unclear or non-portable code;
and a small amount of other annotations.

(iv) Naming conventions:
Adhere to the Hungarian variable naming convention, all identifiers are in English or English abbreviations, eliminate the use of pinyin, the identifier of each word capitalized, abbreviated words are generally capitalized, only when necessary to add "_" interval vocabulary.


4. Bug fixes
There is a bug in the program who will fix it, hey hey heh ...
The best way is to write who fixes who, who fixes the bad. A person changes the code of the bad to be repaired by one person. Two people together to change the code of the two people to repair together.


5, the developer's test
The developer's test is to ensure that the code works properly, and errors found during development are often easier to correct. (another benefit is that no one will scold you.) Because only you know). But once the software to the Test team there is a problem, then there is a lot of time to fix the bug, if the customer where to find the bug, then the time is longer, the developers themselves under the pressure is the biggest words. Developer, Test team, company----customer. This is completely inverted pyramid type, the ability to withstand the weak link is very easy to do things.
In addition to the developer's test in addition to ensure that the code can be run, there is a very important aspect is to ensure that the last operation of the code, this time will be able to run normally. If this is not done, then the bug will continue to appear, and many bugs will recur. So the software looks like there is a bug to fix. If this is the case, then it is necessary for the developer to educate. There are four ways to educate the general company. The first type, deduction of wages, the second, overtime, repeated overtime + mental attack. The third kind, expelled. Fourth, mobilize people to help the guy in trouble. I hope the people who read this article do not suffer from the previous three kinds of education.

Software development process

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.