-
The failure of the design solution will lead to the failure of the entire system and eventually the loss of everything.
Therefore:1The development goal should be set first, and the logical relationship between functional modules should be analyzed accurately, and there should be no logical errors.
2.A very important step in the development of the system is to have a good plan, to draw the development process, the connection between the processes, the preliminary preparation and planning must be well designed, and the design is detailed.
3.In big software, the problems in general coding are not too serious, but we must choose the main part of the optimized method design, and the common part should be written into classes or common functions, so as to improve the readability and execution speed of the program.
4.To do large-scale software, we must take into account its maintainability and scalability, which is very important, and later maintenance occupies a very important position in software development, which must not be ignored.
5.There is also the security aspect, pay attention to the backdoor that closes the debugging at the end of the program.
-
From the perspective of software engineering, the first is the design and development model you adopt, which determines the future development process, development team, team member roles and so on, and it largely determines the time and money cost of the development of the software and the cost of related resources. There is also the issue of documentation of the development process, which determines the maintainability and readability of the software.
The most important thing is that in the process of large-scale software development, the user requirements must be very accurate, otherwise all the subsequent work will be half the effort, and even cause the failure of the entire software, because to a large extent, the process from demand analysis to development and testing to the final software release is irreversible, so once the mistake occurs, the consequences are very serious. The most practical problem is that the communication with the customer is not good, the customer does not know what he wants, the software made is not what the customer needs, or the customer's needs are constantly changing, etc., will cause the failure of the software, that is to say, a large amount of investment is wasted, and the capital is lost.
This may seem like a complicated question, so I suggest you look for a book on software engineering and read it yourself.
-
1.Streamlining the algorithm.
Generally speaking, when a computer solves a specific problem, it is first necessary to seek an appropriate mathematical model. The increase in the number of programs does not mean that the time complexity of the algorithm is necessarily superior. Therefore, in the process of large-scale software, a program process that works independently is often decomposed into several sub-processes, and this sub-process can be coordinated with other sub-processes.
2.Adapt to the structure.
An excellent program should meet the requirements of algorithm design, so the program should choose an adaptive data structure and a number of external interfaces.
EJ: In the process of retrieving data, the initial state of the data is directly related to the progressive time of the sorting algorithm. The calls, transfers, and branches in the program are also related to the execution process of the program, and so on.
3.Efficiency and low storage requirements.
4.Maintainability and scalability.
5.Safe by design.
-
There are quite a lot of problems, and some unexpected problems will appear in the process of development, which is quite annoying. It depends on what industry you have software. The first step is to really understand the general process and database design of the software. At the beginning of development.
-
Take a look"Software Engineering"bar
What module division, what top-down, what object-oriented, what algorithm design, there are a lot of things to encounter.
In short, the development of large-scale software is an engineering problem, involving many technical and engineering problems.
-
If this question can be yours, it's an old programmer, it's a matter of experience, kid.
-
1. Lack of technical scheme details and horizontal leveling mechanism for public realization.
Now there are 3 development teams in the deck, and each group will involve technical details such as distributed transactions, idempotency, etc., as well as common business logic for each group, or interfaces that call each other.
As such, there is a lack of a horizontal mechanism that crosses groups, unifies technical specifications within groups (e.g., distributed transactions can choose service orchestration and annotation), and identifies common methods. Avoid the problem of having multiple versions of the same technical detail.
2. Quality tracking, walk-through inspection is missing or not strong enough.
The pipeline has a requirement of 70% coverage of unit tests, and unit tests are generally back-up, and submissions can be submitted to CI without reporting red. The quality of the unit tests, as well as the lack of walk-throughs or missing or problems, cannot be exposed.
There is a lack of standards for unit test coding specifications and ** specifications, and there are no standards for walk-throughs, the attention of walk-throughs is insufficient, the personnel who perform walk-throughs are not clear, and the walk-throughs of each group are different, so the problem may not be exposed.
3. There is a lack of risk identification, estimation and feedback on changes at the development and implementation level.
At this stage, after several rounds of iterations, the card deck has completed the development of management transactions, forming a certain amount of **. In the iteration process, there are situations such as "major changes in the database table structure", and the development team cannot recognize or feedback the code matching workload caused by the "application transformation", and then tacitly accepts the input into the iteration, which will affect other groups and its own group, resulting in the risk of delaying the delivery of the current iteration.
4. The technical base is first (recommended).
Iterative input, facing the pressure of version delivery, focusing on business interfaces, may ignore the advance research reserve of technical topics, and then the current business interface and the technical topics involved are implemented at the same time, and then the technical topics delay the progress of the business interface. Technical topics such as "Parameter Engineering", "Serial Number Generator", "Unitized Sharding and Sharding", "Idempotent Anti-Duplication", "Flow Table", "7*24", "Accounting Day" and other technical topics can be identified and studied in advance to make a demo. The output document is a user manual.
5. Reasonable buffer time should be reserved for development.
The current development model is 3 weeks in iterations.
Week 1: Storytelling, outline design, walk-through design.
Week 2: Develop and deliver tests.
Week 3: Integration testing.
In the actual development process, there is not enough time left for development. Each group has constraints on delivery time, or there is not enough time to develop buffers due to other external issues.
5. Based on the existing coding level of the publishers and the structure of the development team, it is a problem that should be considered to explore how to maximize the developer's understanding and comprehension of user stories and improve the efficiency of the PB planning meeting.
-
1. The only reason why large-scale software development is difficult is that it is difficult to develop
1. First of all, a large amount of capital investment in the early stage, technology, sales, research and other staff quality and loyalty should be absolutely reliable, to ensure that the development of successful can quickly occupy the market share, if one of the links has a problem, it may lead to a large amount of money in the early stage, and even after you have a period of successful development, you have to burn money, invested in the field of advertising to promote products, and ultimately depends on whether the ideas and operation methods of publicity are appropriate, otherwise it is a waste.
2. The technical aspect is also difficult than that of general software, first of all, the structure of large-scale software is very complex, including database construction, stability, constant stress testing, security is also very important, etc. In the development process, it is necessary to ensure that the team and the fingers are in harmony, and it is also very troublesome to remove personnel at any time.
Second, the development of difficult solutions:
1. These difficulties come from the complexity of the large system, secondly, the organization and coordination between many individuals with initiative, which itself also brings a lot of difficulties, in addition, the differences between various application fields also lead to the aggravation of these difficulties, and the factors of last time and change also bring many difficulties to the software development work.
2. The software process defines a framework for the development of software, and closely combines the software development methods of automation tools with quality management. The software process forms the basis of the software project management control, creating an environment that facilitates the adoption of technical methods, the generation of work products, the creation of milestones, the assurance of quality, and the correct management of normal changes.
-
Difficulties and reasons for large-scale software development: first of all, a large amount of capital investment in the early stage, the quality and loyalty of technology, sales, research and other staff should be absolutely reliable, to ensure that the development can quickly occupy the market share after success, if one of the links has a problem, it may lead to a large amount of money investment in the early stage, and even after you have successfully developed a period of time to burn money, invest in the field of advertising to promote your products, and ultimately depend on whether your publicity ideas and operation methods are appropriate. Otherwise, it's another waste.
First of all, the structure of large-scale software is very complex, including database construction, stability, constant stress testing, security is also very important, and so on. During the development process, it is necessary to ensure that the team is harmonious, and it is also very troublesome to remove personnel at any time.
-
1.Software development is a high-risk, high-investment project.
2.Long development time and high cost.
3.Correctness could not be proven.
4.High maintenance costs.
5.Development, maintenance is difficult to measure, and so on.
6.Extreme view: Any software development project cannot be completed on time.
-
Reason 1: The foundation of enterprise management is too weak.
Implementing software without a good management foundation is like building a skyscraper in a place where the foundation is not built, and there is always a danger of collapsing. Therefore, the primary task of implementing an office management system is to build a foundation for the management of the enterprise.
Reason 2: Lack of attention to planning and training.
Office management is not only a management mode for modern enterprises to develop internationally, but also a kind of enterprise management integration and new management theory based on modern resource management. If you don't invest enough resources in personnel training and don't transform your business processes, even the best software will be in vain.
Reason 3: Expectations for office software are too high.
It is certainly an unrealistic idea to realize huge benefits directly and quickly through office software. And with this kind of thinking to implement office software, it is inevitable that it will eventually fail.
Reason 4: Only recognize the best and ignore the usability.
If the enterprise ignores the implementation of the office software solution provider, after-sales service, and the suitability with its own enterprise, and only values its best factors, the result will be unimaginable.
Reason 5: Thinking that office software is in place in one step, ignoring secondary development.
It is also important to carefully understand whether the implementer has professional R&D capabilities, rich practical experience, continuous service and strong secondary development capabilities. Otherwise, it will be the enterprise itself that suffers in the end.
In short, office software is always used as a management tool, and it is a thing to assist decision-making, it is not a panacea. However, through the office software system, you can do early, monitor more, reduce the occurrence of errors and instability, but it does not mean that it does not happen, you can make your materials smooth after using office software, but it does not mean that there is no problem. There are things that need to be considered quantitatively, but not quantitatively, one size fits all.
-
Funding is not in place, and research and development is not fruitful.