Speed Reading summary of "Building of the law (third edition)"

Speed ​​Reading summary of "Building of the law (third edition)"

It took two days, finally put this "building law" rough finished reading, I was interested to read for a part in the process of reading, which also encountered some problems. But I think comprehend ideas and ways of thinking of this book conveys is very important here to ask some questions while reading their own harvest, and do not place also hope the timely correction.


Question one

In the software development process, even if we have strong programming skills after, why do we have to have to have the engineering software engineering thinking?

Simple analysis from the following main aspects

Changes in software development

  • Dating back to when the computer just started, software design just for a particular application design and preparation on the specified computer, then use the language or assembly language or machine code, software size is relatively small, rarely used systematic development methods, software design and programming is almost personal. With the development of the computer industry as a whole now, the software increases, the emergence of high-level language such as, increasing the size of the software, the complexity of the increasingly high reliability software stand out. In the more mature software development today, the software issue from the project to the final software, in the middle of the development process slowly forming a wide variety of fixed system, when software development is still in its infancy, most of the products to follow [Analysis → → design implementation (manufactured) → → maintain sales], the drawbacks of having a one-way, irreversible. Later, Winston Royce proposed the "waterfall model" of a neighboring back and ultimately improved version, as shown below, follow-up and there have been many "waterfall model" deformed version, which will not be described in detail.

    Figure 1.1 adjacent traceback

    Figure 1.2 Final
  • Model of software development there are many different software may be appropriate for different development models.

The importance of teamwork

  • With the rising demand for services users now, under the premise to ensure the reliability of the software in order to improve the user experience a sense, the developer of the software has also been innovative in all aspects, so now most of the software is very complex, So you want to complete the development of a software, a person's strength is not enough. In the development process, the entire software development tasks will be divided into many small modules, each person must assume the different tasks of these modules, they demand to develop software for the target, finalized after repeated run-development tasks in development . So everyone's position is very important, and they must have the basic quality of software engineers, unity and cooperation.

You must learn to analyze demand

  • In our software development process, we must first determine why we developed this software purpose - to solve user problems in society and life, which is needs analysis.
  • First, the software team needs to find the interests of software stakeholders, understand and dig missing their demand for software, in addition, often users do not know their exact needs, or do not want to express the full requirements, software team needs to put in, for the user sake, to guide the demand.
  • After finding needs, connotation defined demand regular demand from all aspects of the acquisition, will demand from all angles.
  • Then, the software team to keep stakeholder communication, software verification team recognition for these needs by analyzing them in the form of reports, prototypes, user surveys, etc., or presentation.
  • Finally, in the software life cycle, demand is changing, technology development, the ability of team members is also improving. Originally thought important thing may no longer important, some features of the original technically difficult to achieve, there is now a shortcut, some related regulations will change, sudden changes in the external partners, which are constantly asking me to demand reconsideration and make the appropriate adjustments, quantization

Development is not only development, but also need a reasonable daily management

  • Development efficiency is an important criterion for evaluating the strength of a team, and want to be efficient mention the extreme, is not just a man can do, a team of limited development time, everyone on the team the day time is very limited. The software development process, it is inevitable that staggered colleagues task, sometimes a person may carry out multiple tasks at the same time, while there is some work yet to be done after the completion of certain tasks, therefore, reasonable to assign the task to a team it is particularly important, how to achieve the best results for a limited time, try to reduce rework, quality assurance, the team will build the master was born, he will be responsible for the daily management of the team. The following is a specific development process Yishan team temper justice on the table.

    Figure 1.3 Meet the team on specific development process of combining punishment table

Changes in software testing

  • Prior to the establishment of software engineering, software testing is to show the correct procedures and tests; the early 1980s, software testing sublimation occurs, the test is no longer just find the error process, began to focus on the quality of the software, the early 1990s, testing tools to flourish; by the year 2002, Rick and Stefan in the "system software testing," a book on software testing has been further defined: test is to measure and improve the quality of the software under test, test engineering software for the design, implementation and maintenance the entire life cycle. So far software testing method has been more diverse style, according to test design method of classification can be divided into black box and white box testing. Functional classification as shown below, a test range of small to large, from inside to outside testers - from developers to the testers, the general user testing.

    Figure 1.4 Functional Test Category

  • Classification of software testing there are other, not list them here. In addition, the current test tool also functions become more and more powerful, testers with similar VisualStudio2005-2012 rational use of such aids can greatly improve the efficiency of the testing process.
    See also : history of the development of software testing


Question two

If there is no specific test software testers, what kind of consequences will result?

  • The problem stems from Chapter 13 Software Testing
  • In general, the programmer is difficult to find a bug check your code, because he will be in accordance with their code flow test, it is difficult to find the problem, if the conditions I think there must be a dedicated testers in the test, but we often have a number of teams on the lack of testers, one play multiple roles, so sometimes give the project with unknown consequences.

Question three

Whether agile development should try to shorten the development cycle, performance, development of norms selectively ignored?

  • Problems from Chapter 6, agile process
  • The first principle of agile development comes on early and continuous delivery of valuable software to meet customer demand, there are two words, as soon as possible and are valuable, so the actual development process, we should grasp how these two requirements under my understanding is guaranteed to meet the functional requirements of the customer premise, completed as soon as possible, the performance optimization of these issues can go into the post-processing.

Guess you like

Origin www.cnblogs.com/lilei0915lgz/p/11750087.html