1: The construction of the law to read the problem summary
(1) I still have some confusion about this part of the book about the differences between junior software engineers and senior software engineers. In this case, the book is first used as a metaphor for basketball players, in general, explaining the differences between different levels of software engineers. But the feeling in the book doesn't make it clear how we can progress to become a high-level software engineer, what we should do, how to do it, and what skills to master.
(2) The fourth chapter of the book mentions a noun, and the teacher also mentions this noun in class: Extreme Programming, the word book has a little introduction, but no special detailed introduction, the term specifically represents what, I hope to give detailed examples and specific definitions.
(3) The book begins with pairing programming, emphasizing teamwork and teamwork. For this, how can we ensure that the team can work properly, in the face of the problem is to seek common ground, or to argue, or blindly, with the bottom line is what, the purpose is what. When there is a strong person in the team, but at the same time you feel that your opinion is better, so as to express your opinion so that people convincing and receiving. At the same time, as a strong person, how to create differences in the team to convince their own judgment.
(4) Questions about the readability of the program mentioned in the book. For the specification of the software is really important to maintain the maintenance, but it has been proposed in the company to develop software, if the program written in addition to others other than their own difficult to maintain for the developer is often a good thing, because the software will be more dependent on you, the likelihood of their being fired will be reduced, It is true that this statement is justified by private thought.
(5) To achieve the innovation of IT industry should have what kind of quality, as an undergraduate, can through which channels to improve their innovative consciousness
(6) The relationship between software quality and cost, it is well known that the quality of software is a very important part of software, but often, the improvement of software quality will accompany with the increase of cost, how to balance the relationship between the two.
2: How the words "Software" and "engineering" appear-when, where, and by whom:
"Software": This word was first published in a publication by Richard R. Carhart in August 1953. In 2000, Shapiro, a librarian at Yale Law School, published a letter revealing his search for JSTOR's electronic archives, found in a paper published by the American mathematician Tukey in 1958, "the Teaching of concrete Mathematics "refers to the use of the word" software ". 1995,paul Niquette claimed that he created the word in October 1953, although he could not find any information to support his claim.
"Software Engineering": Invented by Margaret Hamilton, Hamilton is a self-taught program designer and a woman who is the director of the MIT Software Engineering test Lab (the unit for NASA to develop computer systems). "Software Engineering" was invented during the Apollo program, and she said in an interview: "The software was treated as a toddler in the early stages of the program, unlike other engineering disciplines, such as hardware engineering, And in the eyes of everyone he is like art, magic, rather than a science. I have always believed that this invention flows the blood of art and science, although few people at that time thought so. Therefore, I am committed to the software and those inventors to strive for the legitimacy and respect, so I began to use the word "software engineering" to distinguish it from the hardware and other engineering classes. when I first used such words, everyone felt a little funny, even for a long time as a joke. They often laugh at my extreme thoughts. But in the end, the software discipline has indeed received due respect!
3: What are the current popular source program version management software and project management software, what are the pros and cons
Microsoft TFS:
Advantages:
1. The mission version of the requirements, project progress at a glance, for small teams, more useful than the Gantt chart
2. Integration of project management, version control, BUG tracking, to effectively implement SCRUM
3. Ability to seamlessly engage with VS
Disadvantages:
1. The entire system is implemented with ASP, the browser access is quite slow (I do not know whether the server performance is too low or my personal computer configuration is too low)
2. Access from IE, fill out a variety of development, test records, is also very slow, feel inferior to mantis BT PHP-based so convenient, fast
The 3.XP system is inaccessible, and it has to be 64-bit. So the overall performance of the computer was dragged down
Git:
Advantages:
1. Faster branch switching than SVN, because the branches are local. This makes git especially suitable for temporary needs, or small experiments.
2. There is one of the world's largest open source community--github, above can see a variety of excellent language code, go to the official website language list to see that there are so many languages, and the opening ceremony of the Olympic Games only know that there are so many countries in the world
Disadvantages:
1. Because it is distributed, each machine commits, and sometimes forgets to push to the remote server (github), then it is out of sync. But often status check state, the problem is not
Mercurial
Pros: 1: Easier management. Traditional version control systems use centralized repository, and some repository-related management can only be done by the administrator alone. Due to the use of distributed models, there is no such trouble in Mercurial, each user to manage their own repository, administrators only need to coordinate synchronization of these repository. 2: A more robust system. The distributed system is more robust than a centralized single-server system, and a single-server system cannot run once the server has problems, and distributed systems are usually not affected by one or two of nodes. The dependency on the network is lower. Since synchronization can be done at any time, Mercurial can even be managed offline, only when there is a network connection.
BitBucket:
1. Unlimited number of private warehouses 2. Unlimited disk space 3. Support HTTPS/SSH 4.Bug tracking 5. Project Wiki 6.API support 7. Flexible permissions control 8. Customizable Domain name 9.RSS modify record output 10. Custom Download
Personal Assignment 1