After finishing the "Software Engineering (c code practice)" Summary

Source: Internet
Author: User

After finishing the "Software engineering (C Code Practice)" Summary

By: Ji * Bao * hua + Original works reproduced please specify the source + "Software engineering (C Code practice)"MOOC course http://mooc.study.163.com/course/USTC-1000002006

Part1 understanding of code-level software engineering and learning experience

As a student who has not studied software engineering before, before taking this course, the impression of the project is only a thick textbook and a dull text description, and on the code level, it is just a superficial understanding of the code and Code specifications.

In this two months of learning process, from the beginning of familiar with the Linux development environment, to slowly discover that software engineering is not only boring textbooks, and not only the code and Code specifications, learning and harvest a lot.

The Good Software engineering code is fastidious the design norm, pays attention to the modularization thought, is needs to ensure the thread security, the subsystem interface needs is reusable.

In the design specification, you need to do the following: (1) to ensure that the code is simple, such as a function only to do one thing, a module only do one kind of thing, (2) Follow the "Don't Talk to Strangers" principle, encapsulation class, Ensure that one object knows as little as possible about another object. (3) Reasonable use of data structure, control structure to simplify the code, (4) to have error handling.

In the modular thought, the high cohesion low coupling, the interface is normative, the code is universal. For example, you can implement polymorphism by using the callback function so that the interface is more generic and information hiding is implemented.

In dealing with multithreading problems, it is necessary to focus on whether the function is reentrant, using mutex to ensure multithreading security, etc. In the design of subsystems, it is very useful to design reusable interfaces.

In addition, the compilation of code under Linux can write Makefile files, and then directly compiled with the make command will save a lot of trouble.

Learning process, should be more hands-on code, writing and understanding, and then review and continue to optimize the code, the relevant modules in series to think, understand the intrinsic connection between them.

Part2 Test Report summary

(1) Experimental report one

Experiment one: Write a Hello World applet

(2) Experimental report two

Experiment Two: Command line menu applet V1.0, specific requirements see video

(3) Experimental report three

Lab Three: Internal modular command-line menu applet V2.0

(4) Experimental report four

Experiment four: Implement command line menu applet with reusable list module V2.5

(5) Experimental report five

Experiment five: Implement command line menu applet with callback enhanced list module V2.8

(6) Experiment report seven

Experiment Seven: Design the menu as a reusable subsystem

Part3 Summary

In the process of software engineering development, it is necessary to pay attention to code specification, design specification, modularization, thread safety, subsystem to be reusable and so on, write the code which is easy to read and efficient and safe. Unfortunately, there is no team to do a complete and practical software engineering application project.

After finishing the "Software Engineering (c code practice)" Summary

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.