People often ask: "Which one is important for requirements, design, programming, and testing ?" This question is hard to answer. The four are all essential links in the software development process. A good system cannot be produced only when one of the links is completed. However, if any part is broken, it will definitely have a bad impact on the system. From the perspective of risk management, demand development and management may be the most important link. Because demand is the root cause of the product, whether or not the understanding of product requirements has the greatest impact on the product. Like a river, if the source is polluted, the whole river will be polluted. Fortunately, I am both a software developer and an end user of this system. I have personally worked in the cost management department, bidding department, and project legal person settlement department, we have a better understanding of most of the requirements of the system, which reduces the burden on demand analysis.
The requirement may be too self-satisfied, so the depth of the survey on the needs of water conservancy design units is not enough, leading to a defect in the current system's provision of functions for the design unit users, it is not easy to make up for. This requirement is associated with many modules, and the entire army is triggered. Just as Frederick Brooks described the importance of the demand in his 1987 classic article "No Silver Bullet": "The most difficult part of developing a software system is to accurately describe what to develop. The most difficult conceptual work is to compile detailed requirements, including all interfaces for users, machines, and other software systems. If a mistake occurs in this job, it will cause great damage to the system and it will be extremely difficult to modify it in the future ." Software requirements are the source of system design. After detailed requirement analysis is completed, the next step is to enter the system design stage. The core content of software system design includes architecture design, user interface design, database design, module design, data structure and algorithm design. According to the specific development of the software, the system has prepared two sets of solutions: one is to inherit the mainstream design ideas of the existing water cost software on the market, improve its imperfect parts and add some advanced design ideas. Another solution is to abandon the mainstream design ideas and develop a comprehensive product with a new path.
I have compared the advantages and disadvantages of the two schemes: the advantages of the first scheme: 1. The feasibility of the structure design of the mainstream water conservancy cost system has precedent, and the development risk coefficient is low. 2. A large number of old users are used to the previous software operation modes. mainstream user interfaces and module painting sections give old users a sense of familiarity, so they do not have to learn how to use the software. 3. It can absorb the database design ideas of similar mature software on the market and shorten the development time. Advantages of the second solution: 1. The new model design can completely discard the shortcomings of the existing similar software in terms of requirements and design. 2. Give the user a new feeling and avoid the illusion that new software is an upgraded version of old software. 3. Avoid copyright disputes due to some similar structures with a software of the same type. I have made a detailed analysis and comparison of the two sets of solutions, and decided to adopt the first solution by weighing the advantages and disadvantages. The following methods are used to make up for the shortcomings in the first design scheme: 1. thoroughly analyze the shortcomings of the existing similar software in the market, starting from the demand and design aspects, enhance the humanization of system functions and operations, so that the software is more considerate of user needs. Improve the data structure algorithms of the computing and export modules to improve the overall performance of the system. Because the demand for water conservancy cost management changes with the development of the times, software interfaces are reserved to improve scalability. The new design of some modules improves system compatibility. 2. Only absorb design ideas, do not copy the entire software, and avoid copyright disputes as much as possible. 3. I have some contacts in the field of water conservancy cost management in Tianjin. Therefore, the software design mainly absorbs the excellent idea of a system developed by a certain unit in Tianjin. Even if there will be copyright disputes in the future, it will be easy to settle. Can we continue to cooperate. According to article 6 of the Computer Software Protection Ordinance, except for computer programs and documents, copyright Law does not protect the ideas, concepts, discoveries, principles, algorithms, processing processes, and calculation methods used in computer software development. That is to say, using the above content to develop software does not constitute infringement. Because the ideas and concepts used in software development fall within the scope of the basic theory of computer software, and are the theoretical basis for the design and development of software, which belongs to the public domain and cannot be private to individuals. Therefore, the layout and usage of software of the same type on the market are somewhat similar, which provides great convenience for users. However, there must be some differences between them, each of which has its own length. Some of the latter, after absorbing the ideas of their predecessors and developing inheritance, have sprung up. Because the detailed analysis of system requirements has been completed, and the business process is very familiar with, and the technical content of such a data processing system is not very high, therefore, it is easier to analyze the system structure, user interface, and module division of existing water cost software in the market. The data structures and algorithms that the software depends on can be combined with the program implementation. The biggest headache in the analysis of existing software is the database structure analysis process. You need to understand the role of each database, the relationship between each database, the role of each table in the database, the relationship between them, the role of each field in the table, the relationship between them; and then all the connections between them. It took me one month to describe the features and relationships of 6 libraries, 120 tables, and more than 3000 fields of the software. The description document contains about 0.1 million words. This is a little more effort than the new design library structure, just to increase the software's success coefficient. So far, all the software analysis work has been completed, and the next job is to code the real gun.