Construction of the law - Summary

A beginning

This work belongs courses link
Where the job requires link
Team Name Running Man
The target job to sum up
Github Address link

Second, the list of players

Lixing Chen 201731091410 Leader
Liu Ivan 201731062603 Crew
Chen Jiaying 201731104215 Crew
Choi Tang Wei 201731062416 Crew
Tan Wei 201731062415 Crew

Third, the text

Tam personal summary

Full name student ID Previous blog links
Tan Wei 201731062415 Blog link

First, the answer to the question

问题(1):什么样的软件才叫“足够好”呢?在实际运用中存不存在一个边界或者说是概念来定义本书所谓的“足够好”呢?

Through actual development, I solved the problem, I believe that "good enough" software should be like this:
1, user-friendly, easy to operate without help.
2, operating efficiency is too low, to minimize the error phenomenon.
3, as a single full-featured software as much as possible, do not repair all day, as the need to regularly update the software update server must ensure smooth.
4, try to occupy less system resources.
5, support for running in the background.
When such software is in my mind, "good enough" software, and in our actual operation of the project, we initially do not know how in the end kind of software is not complete, but think of the "good enough" software, we slow this talent to rely on slow, finally completed the development of the software, it has been such a conclusion.

问题(2):怎么样才能从低等级转变为高等级呢?比如说,我想将一份临时的寄托转换为工作或其他的,具体应该怎么样来施舍呢?

Answer: Through my discussions with roommates, we believe that, if you are a sustenance skills is very strong, and you are eager to integrate into this place, then you can use this to strengthen sustenance, you can convert it to use and then engage in active practice this skill, so take the upgrade themselves so that they can be implemented as much as possible to find a place of their own work; but if you sustenance is not strong or is your sustenance and can not find in real life a a job, then do not go to the non-converted his own sustenance.

问题(3):在结对编程中,遇到两个人的能力有差距,或者说两人的能力与想象中的有一定的差异怎么办?

ANSWER: In our pair programming, my ability to teammates a big gap, but in practice, we are after a good distribution of tasks, I think and not how to drag his teammates, or his teammates had tortured, possibly our mission is to develop reasonable, and in the allocation of tasks, I also do not know where to go online to find answers to serious questions. Therefore, to broaden the actual project, reasonable task allocation, and you know yourself to find a solution to the problem, a big gap between the ability for two people who are not very difficult to complete the project.

问题(4):在实际开发中到底以什么样的标准去判断一个对一个项目来说,什么对于它来说是最好的编程语言,什么样的工具对于它又是最好的工具?

Answer: In our actual development projects, we often consider for a tool to develop the project would be better, but we eventually found, the tool is only a tool, the tool is dead, and people are living, and therefore it can not be such tool to judge the project, and at the beginning of your writing project you can use familiar tools, but after some time you should try to develop other tools to look at the results, compare, what is best for you suitable is important.

问题(5):书中的针对用户体验的调查方法都能在实际的项目中应用吗?

Answer: I think, methods and tools, are out of date, we can not believe everything the book, no book can not, therefore, in the actual project, for different projects, the most suitable method for the investigation of the project was important, the book can not be able to use the survey method users in practice.

Second, the acquired skills

In this semester, we complete learning system analysis and design, and use what you have learned a complete project development, in the process, I learned the following:
business analysis, mainly dealing with construction business in the field of mold. Problem is how to achieve the business. Then the technical aspects of design and architecture, aimed primarily at technology, to solve the problem is how to technically achieve. These two aspects will affect each other, the design time is often needed to and fro, consider these two aspects. Even often need to adjust the model or system architecture development, of course, also need to update the corresponding documentation.
Solid model is set: a solid model comprising entities determination system and the process of association between them:

  • Sort out the business concept, unified business vocabulary.

  • Abstract business entities, including events, people / characters, places and things and so on.

  • Identifying entity relationships: inheritance, aggregation, association and the like.

    Architecture, a common view is 4 + 1, i.e. logical view, development, process vision, physical view, plus the scene. Another method I prefer is the viewpoint and perspective, if coupled with a scene, it may be more comprehensive.

    Design function module to determine the internal system function modules and their responsibilities:

  • Determining module division system.

  • Determine the association between duty and modules for each module.

    Design database model, and so on.

Third, feelings and experiences

Before the system analysis and design of this course, to be honest, I do not know a design project requires so many steps, I just take it for granted believe that a project thing, like making software, which Guannameduo things but after this course, I found that I was too naive, not to say that you can design a software out on the line, you just design software it does not mean that you have completed this project, because you are so designed the software is only software you think, in practice it may not be suitable for practical, so the system analysis and design is very important, after performing this procedure, you can know the actual design of the software you want and you design there is no difference in the software, this will not lead to the failure of the overall project, and after you analyze your system in order to design better software, with the analysis, you have a clue.
In short, in this course, I learned a lot.

Lixing Chen personal summary

Full name student ID Previous blog links
Lixing Chen 201731091410 Blog link

First, try to answer the questions you raised

Q: "Construction of Law" in chapter 3.2, there is a premature optimization problem, I want to know why premature optimization is wrong?

A: I was in the beginning of the course, believe early optimization, rainy day does not seem wrong. But also "an engineer at the time of the writing process, often easy to fall into the trap a particular local problem, spend a lot of time to optimize, to ignore the importance of this global module, and did not even know this" global "is kind of how this sentence on the "book, not reported attitudes to identity.

But in this project, I truly feel the shortcomings of premature optimization. In the beginning of the project, we need not consider the details of the drawing, but globally. The project is divided into α1, α2 and β version version, α is the core of the project is completed, β is a project to improve optimization. If premature optimization, which will be in the α β version version of the work, will undoubtedly slow down the progress of the entire team, so that work can not be completed.

Q: "Construction of Law" in 4.5.2 Why do pair programming?

A: Before the start of the course, a project I want to know, how do we distinguish it is more suitable for individual programming, pair programming or programming team do? Are there principles or criteria to determine what is it?

Now my answer is: try. Try out the truth. In this course we have this pair programming operations, the details can refer to the section before the blog wrote. The beginning is certainly not used to, but The week also clearly felt settled for programming and gives me a little help.

Second, new problems

Using agile development in this project, but for a lot of people really agile development as well as a little fuzzy in practice duties.

There is often a member of the state appeared tired in the project development process, do not know how to motivate.

Third, to master the skills which were not there before

This is, I think it can be said that there are many, many parts. In terms of skills, I think it does not have to learn a new language or what super high technology to master in order to learn what skills count. (. • ᴗ -) _

In this lesson really learned a lot of things, if you want to sum up, then, and each time the contents of the blog is a process of learning new skills.

  • Know Yourself

    Find self-direction, recognizing that he is also a not previously acquired skills hhh. Of course, by the first job also learned how to use this tool garden blog.

  • Familiar with the use of tools

  • Prototyping

    This tool is really a good use, but also very interesting tool not previously been in contact. Play a sample when the project has not started, you can make a good member of the team understand the needs of the project, a clear demand, speed up the progress.

  • Project Management Process

    In this process, I think the best part is actually the master schedule management A pair, before the project is not tried α1, α2, β version of this way of progress, α version to complete the task, β version is optimized in accordance with the program step by step, not behind schedule situation is very favorable way. Learned! ୧ (⁎˃ ◡˂⁎) ୨.

In fact, there are many other smaller aspects of skills, but in my opinion is a harvest.

Fourth, a semester summary

In fact, the first feeling is finally over, really tired, tired, in our course almost no so tired of course, endless blog, endless individual work and team work.

But a review of the program after the end of the harvest is indeed great. Ordinary course more inclined to listen to the teacher students learn relatively simple way of knowledge. In this course, students feel highly dominant. There are some very important is, in this course, everything is open, whether your blog, or team project, all students can see each other. This will not only play an oversight role, while you can learn from someone else's blog. Others see a good project can learn. I feel this way can play a good supervisory role.

All in all, this semester, great! (1 • ㅂ •) √

Chen Jiaying personal summary

Full name student ID Previous blog links
Chen Jiaying 201731104215 Blog link

I. answers to questions

Q1:

Chapter 5 refers to the various mode software team, then, is constantly in team mode conversion in the course of a business of growing up, (for example, to convert from the waterfall model prototype model, and then converted to progressive delivery model) so fumbled best suited to their own business model, or that the use of different modes in different project teams in group companies? Do you have experience desirable for a preliminary entrepreneurial small business?

A: Now the team is the main mode of agile development, agile development can be regarded as the waterfall model, prototype mode of extension. This semester we are to experience the agile model for development projects, it can be said that most of the business sectors are using Agile mode to advance the project, for projects with special needs, or according to their own nature and positioning of the product, small part of the business will continue to use the prototype mode, incremental mode and so on.

Q2:

Book P116, referred to agile team is one of the requirements "Everyone can fully responsible, get their own specifications, and communicate with others, and get themselves tested." If we are to get themselves tested for agile teams that do not need a tester? I think this team personnel requirements are too high, and if the project is large, individuals spend a lot of time to engage in testing will inevitably slow down the progress of the entire project.

A: Now I look back to the question I initially raised, or feel that they understand that time is too superficial. Virtually everyone learn to test their own code part is very important, early personal test can reduce a lot of burden on the overall test later in the project. And general personal test is relatively simple and easy to operate, just consider their own part of the code that does not cause serious mistake just fine. The agile team of testers, the test to be performed in addition to the overall project, as well as performance testing, system testing, integration testing, etc., technical knowledge and technical difficulty will be much more involved.

Q3:

After Chapter 6 agile processes mentioned Scrum Master, and Chapter 9 Project Manager, Baidu I found two different concept, Project Manager focused on managing the entire project team and is responsible for the project to achieve business objectives; and Scrum Master focus on guidance to assist the person in charge of the product, coaching the team to follow up the project process. That in the end how can you be a good role reversal between the two? After checking the information I have found, in reality, there are some companies make the same person assume both roles, they saw no need for a clear division of these two roles, this argument has reasonable?

A: I think the general manufacturers will separate the Scrum Master and Project Manager nice area, small companies are more likely to allow a person to assume both roles, from a bad angle to illustrate the role you want to assume a lot of responsibility and pressure, the ability of this demanding role.

Q4 no solution.

Q5:

According to the content and method of software test Chapter 13 proposed the development cycle for different projects whether they should choose a different testing methods? If only a small project, such as we have to complete the project in the first eight weeks, the need for each stage unit testing, or in the development of the last to be tested; For large projects, the use of TDD (P117 book mentioned) whether more efficient completion of development (It SEE few companies develop using TDD)?

A: Generally speaking, both large and small projects or projects, need unit testing, as this will undoubtedly reduce the subsequent workload. Especially in the project development of this course, I better understand the importance of unit testing. A small number of enterprises will play a very development model 6, TDD will be used to complete the development.

II. Acquired skills

This course down from the beginning are not familiar with the use of a distributed version of the tool, and now can be trained to use GitHub to interact with the team project, which is an upgrade. In cooperation with team members, the members also gave me a lot of help, with team members exchange also makes me technically greatly improved. Previously could write a small project will be used to form their own code, when you see other members write code more standardized, I will learn familiar with the syntax they use to regulate the development of the project. Only a surface layer of the front end of the previous study, this time driven by a member of the grammar I learned the basic operations layui performs well interact with js. Furthermore the project is to learn the unit test case testing, the overall test.

III. Experiences

This course is very different courses with the past, before it may be more focused on is to learn certain skills (such as C, C #, Java), the higher the theoretical course, we learned the software requirements analysis, software development process, team collaboration software, software testing and so on, let us "software engineering" the profession of architecture knowledge, to have a more profound understanding, and of course high strength we need to spend more thoughts in a team project and an upper part of the job. After this course, I feel that course for the future into the workplace into the enterprise or helpful, in a relatively short period of time we get a certain amount of growth, rather than a master of a technique or technology strong, but do not understand the software development process, understand teamwork, white workplace understand the structural analysis and design software.

Tang Wei was personal summary

Full name student ID Previous blog link
Tang Wei was 201731062416 Blog link

First, look back to the first job

Here are some questions before

  1. All tests link has to go through it again?
    Answer: According to the software development phase division, can be divided into software testing unit testing, integration testing, system testing and acceptance testing. Testing is often an important indicator to measure each stage of development. After only tested for each stage to meet the requirements and design before they can begin the next phase. This will help the problem at the end of each stage are resolved. So the test can not be omitted for the enterprise is.

  2. Whether to use agile development simply need to do what needs analysis on it?
    Agile development can indeed well adapted to changing needs, able to handle the needs of ambiguous situations. When agile response to changing requirements is a cost. So, if you can clear requirements before design and coding phase begins to reduce costs it is very useful. So if we can just figure out the needs at the outset, it must not be delayed, after all, the later requirements change, the greater its impact.

  3. How do we want to demand confirm?
    Demand confirmation can be divided into three steps: 1. informal needs assessment, project manager informal needs assessment before the project staff within the organization, eliminate errors and clear differences. 2. formal needs assessment, project managers invited peer experts and users together to review the requirements document, do our best to be able to demand documents correctly reflect the wishes of the user. 3. Obtain demands commitment. After a formal review, the development of party leaders and customer demand for the document to make a written commitment, so that it has the effect of commercial contracts.

  4. When using agile development model, we encountered more difficult, how to solve the task difficult to estimate the time?
    The task can be finer decomposition.

  5. MFS model for each member needs to accomplish your goals, otherwise it will jeopardize the entire project, it is also suitable for NFS weak technical capacity of the team do?
    As long as the specified target actual situation of each member of reasonable technical capacity for weaker teams also apply.

Second, what skills mastered

  • Recognizing the nature of software, what is software engineering
  • Requirements modeling methods
  • We learned a variety of software development process model
  • Structured Analysis and Design
  • Object-oriented analysis and design methods
  • Methods of UI design
  • Software quality assurance methods and the importance of

Third, experience and summary

By learning the classroom, on the whole we have a basic understanding of software design, structured analysis and design and object-oriented analysis and design have a full understanding. Learn a variety of development models, and learned their specific application environment and, at the back of experiential learning courses are also deeply understand. With a more comprehensive understanding of the entire software development process. Change the misunderstanding is only concerned before encoded in software development. With more in-depth understanding of the entire software engineering.

Liu Ivan personal summary

Full name student ID Previous blog links
Liu Ivan 201731062603 link

First, I raised the question:

1. The book 69 in relation to the goto
goto is considered necessary to reduce as much as possible when using do not even use, because he will destroy the logical structure of the program, but in the book that when we learn if we can experience the freshman program logic, what can be used include goto.
A: too narrowly the first reading, goto really be able to experience the program logic, just need a reasonable prudent use.
2. The book 291 pair-wise orthogonal experimental design and
the first time I saw this method of testing, but only two key factors affecting a bug on the basis of a number of factors have drawn from the experience of doubt , the code may be written less.
A: Unfortunately still not used to this test method in this team project, this issue remains unresolved.

Second, a new problem:

1. Because everyone needs to be involved in the project, so there is no where managers understand the responsibilities and tasks for this position.

Third, new skills

There are about using git, and the frequent use git no previous experience problems, some solved in Baidu, and some do not but there is also the head of a merger. Learned prototyping, no previous contact with prototyping, but it feels reasonable use tool for prototyping really can be a good idea to let others understand us. In the project development team also learned to use tools such as pageinfo.

IV Summary Experience

In this course we learn to experience the prototype design, programming, and knot the development of a team project. Prototyping and pair programming is a very new experience, feel the magical effect of prototyping. Understand the rational development of the project team in team communication is very important, there is no reasonable allocation of tasks to communicate when we lead our interface variables, and so are not the same, resulting in a lot of trouble. The completion of a project is a team thing, good communication and collaborative arrangements can save a lot of time. In addition to open communication, but also felt his deficiencies in skill learning, often gave the same group of students drag, and to strengthen the skills of learning, to keep up with classmates. Development of a project is often teamwork, the next time to be more involved in the project development team, getting used to the team project, but also in future projects job, learn from the experience of this project, the work process in a timely manner with the group members communicate butt, I believe I will be more complete experience of the task ahead.

Guess you like

Origin www.cnblogs.com/ForOnedayy/p/12038705.html