Chapter 1 Introduction to modern software engineering exercises and discussions

Source: Internet
Author: User
Tags hosting website

1. Like a Chao, it took 20 minutes to write a "software" that could automatically generate four primary school computing questions, and compared the functions and implementation methods of their respective programs with the students. # Include <stdio. h> # include <math. h> # include <stdlib. h> # include <time. h> int Moshi; int count; void plus (INT first, int second) {int result; printf ("% d + % d =", first, second ); scanf ("% d", & result); If (result = first + second) {printf ("Right! \ N ");} else {printf (" wrong! \ Nthe correct answer is: % d \ n ", first + second) ;}} void minus (INT first, int second) {int result; printf ("% d-% d =", first, second); scanf ("% d", & result); If (result = first-second) {printf ("Right! \ N ");} else {printf (" wrong! \ Nthe correct answer is: % d \ n ", first + second) ;}} void multiply (INT first, int second) {int result; // operation result printf ("% d * % d =", first, second); scanf ("% d", & result); If (result = first * Second) {printf ("Right! \ N ");} else {printf (" wrong! \ Nthe correct answer is: % d \ n ", first * Second) ;}} void divide (INT first, int second) {float result; // The computation result float temp; second = rand () % 100; printf ("% d/% d =", first, second); If (second = 0) {printf ("error! \ N "); return;} scanf (" % F ", & result); temp = Result * 100-(float) First/(float) Second) * 100; if (ABS (temp) <0.01) {printf ("Right! \ N ");} else {printf (" wrong! \ Nthe correct answer is: % F \ n ", (float) First/(float) Second) ;}} int main () {printf (" tips: \ n each mode runs five times by default, and you have to reselect it. To exit halfway, press Ctrl + C! \ N "); P: printf (" select mode: \ n "); printf (" ---------- 1: Exercise Mode \ n "); printf (" ---------- 2: calculation Mode \ n "); Count = 0; scanf (" % d ", & Moshi); Switch (Moshi) {Case 1: {int N; int first, second; // Save the number of the two operations while (true) {n = first % 4; // divide by 4 to obtain the remainder, and randomly call the function srand (Time (null )); first = rand () % 100; second = rand () % 100; If (COUNT = 5) goto P; Switch (n) {Case 0: {plus (first, second); count ++; break;} Case 1: {minus (first, second); count ++; break;} Case 2: {multiply (first, second ); count ++; break;} Case 3: {divide (first, second); count ++; break;} default: {count ++; break ;}} // switch} // while} // case1case 2: {int first, second; char C, C1; // Save the while (true) Operator) {scanf ("% d % C", & first, & C, & Second, & C1); If (COUNT = 5) goto P; switch (c) {Case '+': {printf ("% d + % d = % d \ n", First, Second, First + second); count ++; break;} case '-': {printf ("% d-% d = % d \ n", First, Second, First-second); count ++; break ;} case '*': {printf ("% d * % d = % d \ n", First, Second, First * second); count ++; break ;} case '/': {printf ("% d/% d = % F \ n", first, second, (float) First/(float) second); count ++; break;} default: {count ++; break ;}// switch} // while} // case2default: {break ;}} return 0 ;} 2. List the "special" phenomena you observe when using the software. Can they demonstrate some essential features of the software? A) when using the software, because the operating system, including applications, has a visual interface, there is no way to see the source code, which verifies the visibility of the software; B) currently, most software has an update setting. A new version is generated for common software and popular software almost every month. This is the software's variability. c) many popular applications often come from multiple platforms, such as Microsoft's OneNote; 3. Check on the internet what are the popular source program version management software and project management software, and what are their advantages and disadvantages? The TFS (Team Foundation server) is a workflow collaboration engine that allows a team to use their custom processes and use a centralized data warehouse collected in real time in the project history. Advantages: integration. The version control system and work item storage are integrated during registration. When registering, You can associate it with one or more work items. New Concept: shelve GitHub: programmers in the Ruby community can't find a good Git hosting website after using git, so they developed GitHub. Advantage: focusing on community activities, users can easily find massive open source code on GitHub. TRAC is an application platform that integrates Wiki and problem tracking management systems for software development projects. It is an open source software application. Advantage: strives to achieve project management in a milestone manner without affecting the development process of the existing team and sound scalability. Bugzilla: A software with a tracing system. Advantages: Free Open Source and defect tracking. Powerful retrieval functions. Xcode integrates the svn source code management client. Advantages: The branch management system is easy to manage, and the centralized server ensures security, convenient management, clear logic, and conforms to the common thinking habits. 4. Does Software Engineering teach those who do not know how to write programs to develop software? What do you think? I personally think it is, and software engineering not only teaches people who do not write programs to develop software, but also teaches programmers who already know how to develop software better. 5. Do you have computer science and software engineering majors in your school? What is the difference between the teaching plan of relevant majors and the graduation path? Read the articles about the differences between software engineering and computer science and talk about your views. Yes. The teaching plan is messy. For example, one or two programming languages are often used after graduation (must be proficient). However, all the languages in the school should be learned, so they are not proficient, cannot meet enterprise requirements. I personally think that software engineering itself is a very practical discipline. At present, the curriculum of computer science in colleges and universities is centered on theoretical knowledge.
    1. Software Engineering will never become a strictly verified result because it involves human activities.
    2. The thesis is self-realization. If you solve some areas of strict software engineering, you can redefine the software engineering.
    3. The statistical results in software engineering have proved the paper.
    4. We should stop trying to prove the software engineering results
6. Some students mentioned that when selecting a course in a university, they can write a "course scalper" program to use the weaknesses or vulnerabilities in the course selection system to help certain candidates to certain courses. You can also click here to purchase a ticket. Are these software legal? Do they comply with ethics? Is it in the scope of "Software Engineering" research? Please discuss it. Invalid. It should be disabled. However, if you study network security in a closed network, I think it is feasible. 7. Some people think that "Chinese programming" is a secret weapon to solve the programming efficiency of Chinese programmers. Is it a "silver bullet? The key to Chinese programming technology is not simply writing Chinese characters for logo use, but the compilation technology of program code must be mastered by yourself, and programming and compilation must develop in a unified manner. I personally think that doing well must be a silver bullet. 11. May I ask how the words "software" and "Software Engineering" appear-when, where, and who? In 1958, Turkey proposed in the paper "the teaching of concrete mathematics. It was first found in Richard R. carhart, software engineering in 1953, and proposed by the North Atlantic Treaty Organization in the former Federal Germany meeting in 1968

modern software engineering Chapter 1 [Overview] exercises and discussions

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.