The first job in software engineering made me feel awkward. There are many reasons, but we still need to improve our own level.
I. Estimated Project Time
Since I have never written C ++ or C # programs, I have no real understanding of these two languages. I chose C ++ for this assignment, I also paid close attention to buying a book to check whether Visual Studio 2012 was installed shortly before I started my homework. It seems that the time is very tight.
The plan is to use the free time to roughly flip the book and learn more about C ++ and vistual studio.
This job is expected to be divided into five parts: compilation of other functions, compilation of the main function (recursive scanning and reading of files and word count, the extended part is used to compile the code for the continuous Word Frequency Statistics, program debugging, and final job sorting and submission.
The first part is the compilation of other functions. By taking advantage of the existing programming capabilities, the compilation of small functions other than the preceding main functions takes two hours;
The second part is the preparation of the main function. It takes 4 hours to query the data through the book;
The third part is the term frequency statistics of continuous words. The estimated time is 2 hours by appropriately modifying the term frequency statistics;
The fourth part of debugging, because I feel that the program I prepared often has this inexplicable error, it is expected to take 4 hours;
Part 5: submit the final assignment, review the entire assignment process, and summarize the lessons learned. The estimated time is 1 hour.
Ii. Actual project time
After such a long period of suffering, this work was barely completed, and I still overestimated myself.
During the entire process, when the amount of time exceeds the expected time, the job also finds various deficiencies in its own capabilities, which need to be improved.
Other functions in the first part are written, which is relatively the most suitable for expectation. It is true that this Part has been used and has already been used, relatively skilled. Due to some Syntax problems, it takes about half an hour to complete. It takes about 2.5 hours;
In the second part, the main function has a headache. I feel that I have rummaged through the book to find the content I cannot use, and the search keywords on the Internet are inaccurate. This is a waste of time and I still have nothing to gain, finally, with the help of reminders, I found the introduction and explanation of the functions to be used from someone else's blog. However, it took a little time to understand the function, and then write your own code as required. It would take about five hours to complete the entire process;
The third part of the Word Frequency Statistics was simple at first, and then I started to write and suddenly did not know how to change it. After a long time, I thought about several methods and I was always in trouble, after a long time, I decided to write the code first, and then write, modify, and write. It was another time. Finally, I felt that I had not written the code, and there were still problems with the algorithm, it seems that there is no time to change. The actual time is about 3 hours;
The debugging in the fourth part is really far beyond the expected time. The previous debugging has taken a lot of time, and there is not much time left, but the more urgent the debugging, the less efficient it is, debugging from the beginning, the result is a bug, one by one, and you want to think about it. Sometimes you have changed this, which is a bit of a problem, especially when debugging the code in the third part, the above part of the code is indeed not well written, it leaves a lot of problems, the change time is greatly extended, and the actual time is almost unclear, debugging started the night before. I went to bed when I got sleepy. I went back from class this afternoon and started debugging now. The results were still transferred to the evening. All the time added up, it's almost 8 hours.
The fifth part of the assignment is the easiest to submit, but it seems that the deadline is approaching, because tomorrow morning is full, that is to say, it is time to submit the assignment. I have no feelings for the time being. I thought it would be nice to do it first. It took me an hour and a half to complete this part.
In total, the actual time is 20 hours, which is much higher than expected. This is the case every time. Please work hard.
Iii. Program Performance Analysis and Optimization
To be honest, the process of programming and debugging takes almost all of my free time over the past two days, and I am not doing enough for this part.
In addition, I am not very familiar with Visual Studio 2012, and I am not very familiar with this programming tool. Many of its powerful functions cannot be used well.
The Performance Analysis of a program is just like looking at it. I cannot fully understand the various performance analysis results it provides to me. I 'd like to use them for learning.
Iv. Test Cases
1. First, we tested the basic functions of the program to facilitate debugging and modification.
2. Add some special content, such as the words that do not meet the requirements, to check whether the statistics are incorrect, or add special symbols to the words, check whether the program can respond correctly.
For example, in a document in the test case, there are a lot of words below three letters, words starting with numbers, and Chinese characters...
3. I tested the statistics of two consecutive words. I also selected a simple one.
4. Add special continuous words to the test case document, for example, to check whether three identical words can be correctly calculated. For example, if there are more than one space in two words, check whether the statistics are correct...
5. Test the Word Frequency of three consecutive words,
6. Similarly, some special cases have been tested, but the test results are roughly the same as the word frequency of two consecutive words. There are other situations, such as directories containing subdirectories, empty subdirectories, and empty subfiles, which are not displayed one by one.
5. Gains
Through this assignment, I had a lot of GAINS and deep feelings.
What I learned is that through this assignment, I wrote a program in C ++ and had a real understanding of C ++. Although it is far from enough to master, I will do more exercises in the future. At the same time, through this exercise, I felt like I had not written any program during the summer vacation. I forgot how to write the program, there is indeed a lack of practice.
When it comes to feelings, first of all, I feel that my self-learning ability is not strong and I cannot use the learned knowledge to learn new knowledge and content, the reason is that the exercise is too little or the enthusiasm is not as good as the previous one. I received exam-oriented education from an early age, and I accept what the teacher gave me. I gradually lack the habit of reaching out to myself, although the University has been more or less improved, it is far from enough. For this assignment, I have learned how to use C and Java for a long time, and made C ++ or C # feel overwhelmed. At the beginning, I wasted a lot of time, so it affects the completion of this job to a certain extent.
In addition, my programming skills are far from good. As a computer professional college student, programming skills are still indispensable. The previous programming is also basically completed homework and experiments, in the future, you will need to practice on your own and gradually improve your programming skills through programming.
Finally, I believe that the software engineering courses of this semester can keep up with the teacher's teaching progress and fulfill the teacher's requirements, there will be a lot of GAINS. This personal assignment ended in the first week. I was not satisfied with the completion of my assignment, for many reasons, therefore, I have discovered these problems. In the next study, I will try my best to correct them.
Individual project-Word Frequency Program