Software Engineering (c coding practice) Learning Summary

Source: Internet
Author: User

Liu Longwei + Original works reproduced please specify the source + "software Engineering (c code practice)" MOOC course http://mooc.study.163.com/course/USTC-1000002006

Experience:

Software engineering is a highly theoretical curriculum, the first is that it uses a phased life cycle plan for strict management, the life cycle of a software product can be divided into a number of different and interrelated stages. The second is to adhere to the stage review, each phase of a rigorous review, continuous shutdown or rework, to achieve software production engineering. Third, the implementation of strict product control software is not the visibility of software products is one of the inherent characteristics. Four is the use of modern programming technology, according to the needs of software production engineering, the development of software language is also a variety of. The software engineering result should be able to clearly examine the tasks of each phase should be as relatively independent as possible, so as to facilitate the gradual completion of each phase of the task, to simplify the work at each stage, easy to establish a system development plan. Six is the development team personnel should few but good in order to make the development project can be completed within the stipulated time, does not exceed the budget, the cost budget and the strict management control cannot be neglected, but the development team personnel becomes the project cost budget the main parameter.

Through the course of learning, learned some software programming ideas, such as: Modular design, code universality, interface specification, information hiding, for the future of learning work has enlightening significance, in the learning process familiar with the use of VI and GIT, while reviewing the C language, in practice to solve some of my previous confusion. The biggest regret is that other courses are too tight to absorb the essence of this course.

Here is a link to my experiment report:

Experiment one: Write a Hello World applet

Experiment Report Experiment Code

Experience: Learn to write the use of VI and GIT, for future experiments laid the foundation

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

Experiment Report Experiment Code

Experience: initial exposure to modular design ideas, understanding the importance of code style, learned to encapsulate the command as a function for the user to call

Code style principle is: concise, easy to read, no ambiguity, indentation with four spaces; in complex conditional expressions, the logical precedence is clearly represented by parentheses; Do not put multiple lines of statements on one line; add necessary annotations and so on ...

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

Experiment Report Experiment Code

Experience: Through this experiment, understand the importance of code modularity, understand the code of business logic and data storage separation. It also deepens the understanding of the use of pointers in C and their combination with data structures.

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

Experiment Report Experiment Code

Experience: The menu program written in this experiment, compared to the previous section of the program, made a lot of improvements. Code blocks are more reusable, more readable, easier to extend later, and more compliant with software engineering requirements.

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

Experiment Report Experiment Code

Experience: The callback callback function is a function called through a function pointer. The advantage is that this function allows the caller to be separated from the callee, so the caller does not care who the callee is. It only needs to know that there is a called function with specific prototypes and constraints, which optimizes the query interface of the previous experiment. Using the callback function makes the query of the linked list more general, while increasing the concealment of the code.

Lesson Six: Re-entry of functions (reentrant) and thread safety analysis

Experience: Understand the concept of multithreading, know the reentrant nature of functions (reentrant) and thread safety concepts and relationships. Using mutual exclusion Lock, read-write lock Improvement Program

Experiment Seven: Design the menu as a reusable subsystem

Experiment Report Experiment Code

Experience: The difficulty of this experiment lies in the understanding and use of liunx system function getopt

Lesson Eight: Design ideas behind the code

Experience: Learn from different quality perspectives, such as product perspective, user's perspective, and so on, the menu open source want someone to use it. This paper summarizes the design methodology and several important design guidelines, such as modularization, interface design, information hiding, incremental development, abstraction and generalization.

Software Engineering (c coding practice) Learning 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.