Summary of Software Engineering course

Source: Internet
Author: User

First of all, I feel lucky to meet this class this semester. The beginning of this semester, because my heart is very afraid, because I have just been transferred to the Computer college, the foundation is very weak. To the end of the project, I know the teammates, deeply felt the gap between me and him, so I have the power to learn programming, but also understand what is a pair of projects. To the team project, I was fortunate to join our "crooked nut Belt You Gray" team, through the m1/m2 stage, experience an Android software overall development process, for me this is a big harvest, through the first hands-on design UI, also learned how to better do the user experience and how to better design. My experience in software engineering is well worth it, and I am delighted to have met my team-mates through this course.

Summary of the M1/M2 phase

In the M1 phase, I learned the importance of a "team", learned how to make application icons and design ui/ux, and realized the process of developing a software. Although I did not participate in the code-knocking work, but the indirect experience of the overall development process, or is very worthwhile. What I focused on in the M1 phase was the logical structure of the entire software, which was only responsible for drawing sketches using power point and providing them to the team of the program staff. Another important thing to do is to design the icon for the BUAA MOOC client.

In the M2 phase, the main difference with the M1 phase is in "tools". The tools I used in the M1 phase were low, just power point, which was not very suitable for designing a software, without a sense of professionalism. By understanding, I took the use of the new tool "ink Knife", which is specifically designed for the software of the intelligent computer software. Using new tools, I am more professional (...) The design of BUAAMOOC's homepage and discussion area and the optimization of overall design are achieved. The structure of the discussion area design is very complex, I spent a lot of time to complete the design, but unfortunately, because of school server problems, our team of developers have not been able to do the discussion area. Overall, for me, the meaning of the M2 phase is "optimizing" the tool, also very meaningful.

The questions I raised before

1. Now my programming base is poor, how can I improve my programming ability by self-study?

--it's clear. The basics are very important, starting with the basics and practicing programming.

2. I have studied & in Chinese for more than 7 years, class teachers listen to almost no problem, but in the course of their own study time, with each subject teacher designated Chinese textbooks learning still consume too much time, understanding is also more difficult, how can I overcome this problem? I go to university in China, but also every time to spend so expensive international postage, buy Korean language textbooks study ...

--Clear, the main class seriously follow the teacher lectures, find more information on the site, more use of video learning. There will be difficulties, but try to overcome the language problem yourself. However, I am now in a state of mind compared with the beginning of the school when the more comfortable. Now is not so confused, in a certain way to understand the method of learning.

3. Is the limited project time short and the efficiency of pairing programming more efficient than individual programming?

--it depends, also look at the level of cooperation of two people. According to my situation, my knot to the project teammate's programming ability is far better than me, I can only help him to do some auxiliary things and to do the UI, if we two people of similar strength and can communicate well, then pair programming efficiency will certainly be higher than the individual programming.

4. If you want to test in team programming, how can I do a better job of software testing for me with poor programming fundamentals? Programming level must be very high, before you can put a software test well?

--it depends+1, through this semester I learned that software testing has many kinds of testing methods. I did not personally knock out the code in the project, which might be difficult to do unit testing, integration testing is tantamount to direct contact with the code test. But I can still do a lot of other types of testing, such as functional testing, installation testing, boundary value testing, document review, operational testing, these tests belong to the system testing, do not understand the code can do, I find the problem and bug, tell the programmer.

5. Is it most appropriate for a person in the team to be in a good relationship with every other member?

--PM does not need to have a good relationship with each member of the team, but if the relationship is good, the effect will be better. What's more important is the ability of the PM itself to lead members, the ability to properly arrange tasks, and the ability to communicate.

Newly created problems

There is no particular problem, just feel sorry, I did not participate in the code, because I participate in the code work will reduce the knot on the project and team and project work efficiency. So the new question is, when am I going to be able to take part in a code-knocking job? (Plan to not leave Beijing for winter vacation, practice programming well, maybe the winter vacation is over, you can clear this problem)

Learned "points of knowledge"

1. Requirements: The most important is the "NABCD" analysis. (requirements, practices, benefits, competition, promotion)

2. Design: A good software requirement is a good design. Design includes logo design, logical design, visual design. Logos may make a big contribution to attracting new users, and the logical design will affect the user experience. Design-time tools are also important.

3. Implementation: Follow the first two phases related to the documentation and instructions to achieve.

4. Test: The test includes various types, unit test corresponding to module design, integration test of corresponding software design, system test of corresponding software requirement, etc.

5. Release: In order to have more users, according to the needs of the software, choose the place to publish. + Publishing School-related software must be authorized by the school ........

6. Maintenance: Reflect the user's feedback information to improve and strengthen the software.

Summary of Software Engineering course

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.