Add-on question 1---I want to understand the software engineering problem

Source: Internet
Author: User

Chapter One question:

What are the forms of 1.2.1 software?

A: ① system software: Operating system, device driver, tool software, etc. ② applications: Users use them to complete their work, from managing nuclear power plants to writing articles, or communicating, gaming, browsing the web, playing video, etc. ③ malware: software viruses, etc.

Chapter II Questions:

2.1 What is a unit test? The main steps to create a function?

A: unit testing, which refers to the inspection and validation of the smallest testable unit in the software. For unit testing in the meaning of the unit, in general, according to the actual situation to determine its specific meaning, such as the C language unit refers to a function, Java unit refers to a class, graphical software can refer to a window or a menu. In general, the unit is the minimum measured function module that is artificially defined. Unit testing is the lowest level of test activity to be performed during the software development process, and the independent unit of the software will be tested in isolation from other parts of the program.

① sets the data, ② uses the function of the type being tested; ③ compares the actual results with the expected results.

Chapter III Questions:

3.1 What is software engineering and what does it include?

A: Software engineering is the application of computer science, mathematics and Management Science and other principles, the development of software engineering. Software engineering draws on the principles and methods of traditional projects to improve quality and reduce costs. Among them, computer science, mathematics used to build models and algorithms, engineering science for the development of norms, design paradigms (paradigm), evaluation costs and determine trade-offs, management science for planning, resources, quality, cost management.

Goal: produce products that are accurate, usable, and cost-appropriate. Correctness refers to the degree to which a software product achieves its intended function. Availability refers to the extent to which the software infrastructure, implementation, and documentation are available to the user. Overhead is the degree to which the entire cost of software development and operation meets the user's requirements. The realization of these goals, both theoretically and in practice, has many problems to be solved, and they form the constraints of process, process model and engineering method selection.

major courses in software engineering :

Foreign languages, advanced mathematics, linear algebra, Advanced algebra, Discrete mathematics of electronic technology, computer introduction (C language), data structure, C + + program design, assembly language programming, algorithm design and analysis, computer composition principle and architecture, database system, computer network, software engineering, software testing technology, Software requirements and project management, software design examples analysis, cmm/iso9000 and so on.

Question Fourth:

4.3 What are the code design specifications?

A: 1 Improve coding quality, code readability and maintainability.

2 Code writing specifications

2.1 Remove all useless code
2.2 You must add a comment to the code, the comment word number of a class should not be less than 20% of the code
2.3 It is recommended to follow the 30 second principle. If another programmer can't figure out what your function is doing, how to do it, and why you're doing it in 30 seconds, it means that your code is hard to maintain and needs to be improved.
2.4 The code length of a function does not allow more than 100 lines, and a function of more than 100 lines is recommended to be split without destroying the atomicity.
2.5 variables should be defined in the head set of the method or class
2.6 Guaranteed one line of code to do only a thing
2.7 Use parentheses to control the order of operations of the operators, so as not to use the Java default operator precedence order.
2.8 Code formatting: Format the code before committing it.
2.9 Interfaces do not allow declarations without methods or variables

3. Naming conventions
3.1 The names of various identifiers should be used in English words or abbreviations of English words, abbreviations and English words should be included in the abbreviated glossary of items. Do not use Arabic numerals and pinyin to name.
3.2 class Name: Capitalize the first letter of each word.
3.3 Method Name: The first letter is lowercase, the remaining words must be capitalized.
3.4 Global variables, and constant names require all uppercase letters.
The 3.5 parameter name is basically the same as the local variable, except that the parameter name needs to be prefixed with the word a, an or ending with s at the end of the word.

4. Annotation specification
4.1 Notes to note:
★ Comments should be clear in Chinese meaning, should be the program looks clearer, easier to understand
★ Note to be as concise as possible, avoid the decorative comments.
★ Note Not only to explain what to do, but also to explain why to do so. It is best to write the comments first to indicate what to do and then encode.

comments for Class 4.2
★ Class of use, purpose. Include introductions that are of interest to others.
★ Known bugs, of course, it is best to modify all the errors, but sometimes there may be no way to modify, or no time to modify.
★ Develop and maintain a history list of this class, record each modified author, date, and modify the content.
★ Enumerate the various stable states of the class, stating that the call member function makes the state of the class change (optional).
★ Sync problem (optional)
★ The main algorithm must be explained, the main process must be given the guidance of the description
standard format:
If you modify a class that already has a version of the session, you need to modify the additional modification history for each time as follows:
//Modify person + Date Modified
//Modification Instructions Example:

//John Doe 2010/07/02
//Add the processing function of batch save after error data modification Savebatch (
@Bind (key = "Itemparams", DefaultValue = "") String Itemparams,
@Bind (key = "pid", DefaultValue = "") String pid).
//Wangxiao 2010/07/02

4.3 interface notes:
★ The annotation style of the interface is basically the same as the annotation style of the class;
★ Before someone else uses the interface, you must understand the concepts that the interface contains. The simple way to check if an interface should be defined is whether you can easily describe the purpose of the interface;
★ How the interface should and should not be used. The developer needs to know how the interface is being used, and also wants to know how the interface cannot be used.

4.4 Comment of the function
★ Function Header comments must include: What functions the function performs, why to do so; what properties of the object are processed during the function processing
★ possible changes; The state of the object before and after the function is executed ;
★ comparison, loop and other control structure annotated (optional);
★ In case the function of the code is not at a glance, it should explain why to do so;
★ Local variables must be annotated;
★ Complex and difficult to write code must be annotated;

comments for Class 4.5 properties:
★ Describe the purpose of the domain. To make others know how to use it;
★ For fields with complex rules, you can add examples to illustrate them. Sometimes a simple small example, the arrival of thousands of thousand words.

Question Fifth:

5.2 What are the models of the software team?

A: ① attending physician mode, ② star mode, ③ Community mode, ④ Amateur theater mode, ⑤ Secret team, ⑥ agent team, ⑦ Symphony mode, ⑧ Jazz mode, ⑨ functional team mode, ⑩ bureaucracy mode.

Question sixth:

5.1 What is an agile process? and its principles?

A: Agile development is a new development model for the shortcomings of the traditional waterfall development model, the goal is to improve the development efficiency and responsiveness. In addition to principles and practices, patterns are also important, and multiple research patterns and their applications can give you a deeper understanding of agile development.

The principle is: ① The most important thing is to meet customer needs by early and continuous delivery of valuable software. ② We welcome changes in demand, even in the late stages of development. Agile processes can harness change and maintain a competitive edge for customers. ③ often deliver software that works, from weeks to months, the shorter the time scales the better. ④ Business people and developers should always work together during the entire project. ⑤ Software development around high-spirited people, providing developers with the right environment to meet their needs and believing they can accomplish their tasks. ⑥ the most efficient and effective way to communicate in a development group is to talk face to head. ⑦ software that can work is the primary measure of progress. ⑧ Agile processes promote sustainable development. Funders, developers and users should always maintain a constant rhythm. ⑨ 's ongoing quest for superior technology and good design will help improve agility. ⑩ Simple – The art of minimizing the amount of work is essential. ? The best architectures, requirements, and designs come from self-organizing teams. at a certain time, the team summarizes how to be more efficient and then adjusts its behavior accordingly.

Add-on question 1---I want to understand the software engineering problem

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.