Although the course "Introduction to Software Engineering" does not teach us specific algorithms and programming languages, it fosters the ability to write code and to work with team members to accomplish programming tasks in a holistic sense. At the beginning of this semester, I have heard the term "software engineering" many times, but still do not understand its profound meaning: what is called software? What is the relationship between program, software and engineering? However, after a few lessons, I dispel, in theory, to understand these basic concepts, the more in-depth understanding of these nouns may need to derive from a wealth of practice. Later we learned about the development process (including the most basic waterfall model) and the current more popular agile software open. To be honest, I was not surprised when I first came into contact with these new knowledge, but then I gradually realized the importance of these development processes, models and principles as the curriculum deepened and my own practice in team project development was in place. Of course, the size of the software we are currently developing is very small, if the future opportunity to engage in larger software development work, I believe I will have a deeper understanding of these theoretical knowledge, can be combined with examples to analyze the advantages and disadvantages of each of these processes. One more powerful shock to me was that, before I naively thought that the program ape sits in front of the computer, writing code and debugging code is the most activity of developing software. After learning, I realized that demand analysis, architecture design, detailed design, system testing play an equally important role, software maintenance also occupies a lot of software development time and money costs. A more failed requirement analysis might make it meaningless for programmers to write hard and painstaking code. I have never thought of this before, and now I find that I have a problem with the curriculum design that I completed in college: The rush to write code to achieve so-called functionality before it is fully designed, and the results are often frustrated in the actual process. In addition, this course reminds me of a very important aspect: Write code to write comments in a timely manner. Well-regulated commenting habits can really help you and other small partners understand the code, but every time I ignore the habit of adding comments.
It is worth mentioning that the Xin Zou teacher wrote "Modern software Engineering-construction law" gave me a refreshing feeling. Unlike traditional university textbooks, the content and form of this book is not inflexible, but rather full of vivid examples and lively, often resonant language. At the beginning, the teacher-student relationship in the introduction was simply and directly poked into the pain points of many university courses. Then Zou teacher gradually introduced the personal technology and process, the development process, the team development process, which is our practice this semester the main line. Zou teachers also from the perspective of practical experience to explain the needs of analysis, software design and implementation, software testing the significance and methods, in the meantime, with vivid image of the example of erudite more life, popularization, convenient to make us understand. But I think we have to be practical in practice to have more substantive, clearer understanding of these concepts and personal unique insights.
< Software engineering > Course Summary