Reading the 1-5 chapters of the Law of construction

Source: Internet
Author: User

Introduction to the first chapter

What is software engineering?

The core of software engineering (construction management, source code management, software design, software testing, project management) and user experience, user interface design, and so on, is composed of soft project, software = program + Engineering.

The challenges of software development are 5 points: 1, complexity 2, invisibility 3, variability 4, compliance 5, non-continuity

Other features of the software: 1, there are many different programming languages, software tool box software development platform. 2, there are many different software development processes. 3. There are many different roles in the software team. 4, the software can usually be stored on tape or stored on CDs, DVDs.

Chapter II Personal skills and processes

What is the relationship between personal technology and process and software engineering?

Software is done by the cooperation of many people, the work of different people are dependent on each other, so personal technology will affect the whole process of software development, personal technology is mainly in the software development process of the details of the problem. After developing the software, it must be tested to complete the software, which requires a good unit test of the standard--1, unit testing should be the minimum function/parameters to verify the correctness of the program. 2. Unit testing must be written by the person most familiar with the code (the author of the program). 3, after the unit test, the machine status remains unchanged. 4, Unit Test fast (a test run time is a few seconds, not a few minutes). 5. Unit tests should produce repeatable, consistent results. 6, Independence-unit test run/pass/fail/not dependent on other tests, you can artificially construct data to maintain the independence of unit testing. 7. Unit tests should overwrite all code paths. 8. Unit tests should be integrated into the framework of automated tests. 9. Unit test must be saved and maintained together with the product code.

Chapter III Growth of software engineers

The growth of junior software engineers:

1, the accumulation of software development-related knowledge, improve technical skills (such as the mastery of specific technology, hands-on ability). For example: Mastering Java, C + +, C #, diagnosing/improving performance, mastering device drivers, kernel debuggers (Kernel Debugger), and mastering a development platform.

2. Accumulate knowledge and experience in problem areas

The 1th and 2nd can be seen on many resumes, and can be detected more easily. As experience grows, an engineer can master the knowledge of a broader, more in-depth technical and problem domain.

3, the general software design ideas and the understanding of the engineering concept.

4. Improve professional skills (different from technical skills)

Professional skills include: self-management ability, ability to express and communicate, ability to work with people, and execution of tasks by quality, which is important in the IT industry and other industries.

5. Actual results

Most of the software engineer's work results are open, you participate in the product user evaluation, market share, how much value to the user? What role did you play in it? Better than words, these actual work results are the most important criteria for evaluation.

Career Development of software engineers:-The road to-steve McConnell version-Large company version-self-assessment

The fourth chapter two people cooperation

What is pair programming?

Pair programming technology is a very simple and intuitive concept, can achieve a multiplier effect of the work. But people-to-people cooperation is not a simple thing-especially when people are accustomed to working alone. The implementation of pair programming technology will bring benefits to the development of software projects, but these benefits must be carefully considered and planned to truly reflect. On the other hand, two experienced people may find that there is no skill transfer in pairing programming, but letting them solve the same problem at different levels of abstraction will allow them to find a solution faster and with fewer errors. Two programmers are less likely to have the same drawbacks and blind spots, so when we use pair programming we get a powerful solution. And this solution is exactly what other software engineering methodologies do not. In our usual programming, if you encounter a very difficult problem (difficult to get bored with the project), then you are bound to want to record help, whether it is from the vast amount of information on the Internet, or from the side of the technology guru, you will work hard to solve (if you have a love of computer knowledge). This time might as well use pair programming to try, others do not say, may feel different. In fact, pairs of programming sit up very simple and very interesting, find a poor level of the programmer and not too far to match their own pair. Use only one computer, everyone choose a person to sit in front of the keyboard for input, another person sitting behind to dictate. Two people to communicate constantly, the frequency should not be less than one minute. The whole idea of design from behind only mouth not to hand-dominated, and by the keyboard to do the implementation of the person. Because people's thinking speed is faster than the speed of the input code. Then the person watching can have free time to do extra thinking, observe the code to write the question of whether there is no problem with the structure. Some new benefits have been found with respect to pairing programming. First, it can promote the programmers involved in the project to improve themselves, when a pair of programmers work, the lower level of the party will be subtly affected by a slightly higher level of programmers, learning something new. And the level of the high side is also because of constantly put their ideas out and tidy up their own ideas.

Fifth Chapter team and process

What are the roles of teams and processes?

The form of a software team

software teams are available in a variety of forms, for different people and needs. The form of the software team was originally the swarm form of chaos: A group of people began to write code, hoping to write good software. As the team matures and the bad landscape changes, the team mode becomes one of the following: Swarm mode (Chaos Team), attending physician mode: (Chief-programmer team, surgical team); Star Mode (Super-Star Model), Community mode (Community model), amateur theatre mode (amateur Theater team), Secret Team (Skunk work team), Agent (SWAT) team, Symphony Orchestra mode (ORCHESTRA), Jazz mode ( Jazz Band), Functional team mode (feature team), bureaucratic mode (bureaucratic model).

we have many techniques, practices, habits, and ideas in the process of developing, operating, and maintaining software. Software engineering unifies these related technologies and processes into a single system called the " software development process ", the purpose of which is to improve the efficiency of software development, operation and maintenance, as well as user satisfaction, reliability, and software maintainability. Waterfall models (waterfall model)-when it comes to software engineering or a young industry, it borrows a lot of experience and models from other mature industries (hardware design, construction engineering). In those "hard" industries, most products follow the [analysis--Design---(manufacturing), sales-and maintenance] process. Because once the product is mass produced in the hard industry, it is very difficult, even impossible, to return to the modification. Therefore, this model describes a unidirectional, irreversible production process. Sashimi model (each adjacent module as part of sashimi) waterfall with small waterfall, in order to solve the different sub-system progress, the technical requirements are very different, need to treat the problem of differentiation. A sub-waterfall model was introduced.

Reading the 1-5 chapters of the Law of construction

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.