当前位置:网站首页>Software engineering - personal assignment - question review and personal summary

Software engineering - personal assignment - question review and personal summary

2022-06-26 08:31:00 _ YiFei

Software Engineering - Personal work - Question review and personal summary

Answer the questions you once asked

Blog based on premise

Q1: Unit tests can really produce repeatable 、 Consistent results
Unit tests should produce repeatable 、 A consistent result

If the result of the unit test is wrong , There must be something wrong with the program , And this mistake must be repeatable .

In the 2 In the chapter , There is the above conclusion , But with me OO The first 2 For unit testing , I don't think the test results are repeatable , In multithreading , There are often various small problems of multithreading , These small problems are after the program runs for a very long time , Triggered in a very harsh situation bug, And run this code repeatedly , It is highly likely that this... Will not be triggered again bug, The results are naturally inconsistent , I think in all kinds of software projects now , There should be more threads , This will inevitably lead to some very low probability bug And can't reproduce .

A: In the actual test , Our tests did produce repeatable results 、 A consistent result . Later, it can be reproduced in our defect records , We also fixed each defect .

Q2: Who should write the unit test ?
Unit testing must be done by the person most familiar with the code ( Author of the program ) To write .

The first 2 The above description is given in chapter , But I think the most suitable person for writing unit tests should be the one who is most familiar with the requirements of the module , Or let the person who proposed the requirement test , This is because the author of the program may just complete the code as needed , So when it comes to testing , I will also complete the test according to the understanding of my own code , And if he has misunderstood the requirement when writing code , So test anyway , There's nothing wrong with it , Because in his eyes, this is right , And in terms of real needs , Maybe there is something wrong with this function , So I think the test should be written by someone who is most familiar with the requirements .

A: In our team, there is a student who is specially responsible for the test , I think after the team meeting , Everyone should have the same understanding of requirements , There is no case that two people have different understanding of functional requirements as I thought before , So I think it is reasonable for the students to write this test , Of course , Before the code is handed over to the test students , This function has been tested many times by students who write code .

Q3: Is it correct to use the Six Sigma method in the completion time ?
But from the standard deviation ,Al The variance of is 5.3, and Bob yes 1.

The first 3 There is an analysis comparing delivery times in chapter , Six Sigma is used to evaluate the actual completion time and estimated time , Personally, I don't think it's very appropriate . Let's look at the definition of Six Sigma :( Baidu Encyclopedia )

Six Sigma (Six Sigma,6 Sigma) Is a management strategy , It was built by bill, an engineer at Motorola at that time · Smith. (Bill Smith) On 1986 Put forward in . This strategy focuses on setting very high goals 、 Collect data and analyze results , Through these to reduce the defects of products and services . The principle behind six sigma is that if you detect how many defects there are in your project , You can figure out how to systematically reduce defects , Ways to make your project as perfect as possible .

We can see , This method is actually used to evaluate the defects of the project ,6 A sigma =3.4 error / Millions of opportunities , In other words, evaluate the error rate of the project , And a programmer completes a task too early , Is it a mistake , Personally, I think it is more appropriate to use average time and excess time to evaluate .

A: In fact , Our team did not choose this method for evaluation , Instead, it uses the number and quality of completed tasks to evaluate , Because there are not too many situations in our group where one person's work has not been completed and other people are unable to work .

Q4: Really suggest using goto Do you ?
ask : Can we use goto?

answer : It's better for a function to have a single exit , To that end , have access to goto. As long as it helps clarify the logic of the program , Any method can be used , Include goto.

The first 4 In the chapter , Code design specification , As described above . But in my personal development , I've never used it goto, As the comments say :

goto Statement makes the static and dynamic structure of the program inconsistent , This makes the program difficult to understand , It's hard to find out .

goto Result of statement : stay C/C++ And so on in the advanced programming language goto sentence , But be advised not to use or use less . In some newer advanced programming languages , Such as Java Does not provide goto sentence , Although it designates goto As a keyword , But it doesn't support its use , Make the program simple and easy to read ; However, later c# Or support goto Of the statement ,goto One of the benefits of statements is that they guarantee that there is only one exit for a program , Avoid too large if nesting .

goto It often makes the program structure strange , The other side of the pair should also rarely use goto, This makes it more difficult to understand . In my submission goto Something else can be used instead of , Not used to seeing... In code goto.

A: No one in our team uses this kind of thing , I don't think this should be used in the end , In our cooperation , Looking at other people's code is a familiar structure , There will be no goto Come on goto To the situation , This is also a team specification problem .

Q5:PM Whether we can really achieve equality with everyone ?
Program Manager And some companies Project Manager The difference between :

Project ManagerProgram Manager
Is the executive leader of the team , Lead everyone to work in the project . Work on an equal footing with everyone , Drive the team to complete the functions of the software .
Usually the only representative of the team dealing with the outside world A team can have many PM
Have the final decision on the function of the project Work with other team members to form decisions
Be in charge of things and people Take care of people
I don't have to do specific work Be sure to do specific work

Read page 9 Chapter Project Manager , There is the above table , It describes Program Manager Work for equality with everyone 、 Form a resolution with other members 、 Take care of people . But in my actual projects in College , I think it's hard to do . When I first became the project leader , My initial idea was that everyone should be equal , Make suggestions on the project together , Then vote on the direction of the project and so on , I should play a role similar to the host , Project meetings should involve everyone , Voice their opinions , However , actually , At the end of most projects, I have a meeting , I'm also explaining the whole process , How should this place be completed , What details should this place pay attention to , This place has previous blogs that can be used for reference , Others may not speak at all . Even so , I have found the relevant blogs , The function input and output of the implementation are described , Do the work , I still have to hurry , For example, I once had a project , I arranged the task during the winter vacation , It is required to show me the effect after completion in two weeks , But the task was delayed until the summer vacation , Finally, I spent one night reproducing the blog I sent him before , In fact, there won't be any strange problems if you follow that article . I think no matter what people say , At least in college, it's hard to finish one similar to PM Of the mission . Of course, it may be different at work , But I'm still right PM You can doubt everyone's equality ,PM People in every project should be managed , Those who don't keep up with the progress should also go push, How can we achieve real equality ?

A: In this soft industry cooperation , We had many meetings , I think in a sense PM Is equal to us . There are two in our group PM, One of them is mainly responsible for the front end , The other one is responsible for the back end , But usually because we use the task in CODING Assign specific people on the platform , At the same time, the completion time is also specified , So there is no need PM Come on push The situation of ,PM What I do is a role as a host , We also speak one by one during the meeting , Form a final decision on an issue .

Knowledge points of each stage

demand

Typical users . Because our project is in cooperation with CSCEC , After we get some general directions of their needs , By substituting typical users , Think about whether their needs are reasonable , Further refine the fuzzy requirements 、 Integrate , Finally, it turns into specific requirements .

Design

Graphic modeling and analysis methods . Modeling things in a graphical way , Can well reflect the relationship between things , So that software developers can accurately grasp the content of the design at subsequent moments . We use instant design , You can clearly see the running logic of the whole software , Such as how to jump ? What functions are needed ? It is very helpful for subsequent development .

Realization

Schedule management . We used CODING Team collaboration on progress management , Here you can see the tasks and defects of all people , You can see the overall progress , Everyone can assign tasks or defects to others , It is also easy to find out who completed a certain part .

test

Error reporting . When one finds a bug after , How to report this to others bug? This requires the specification of error reporting or defect reporting , We use CODING Team collaboration on the platform , Describe each defect in detail , How to trigger ? Trigger result ? Expected results after repair ? So everyone knows how to fix this bug 了 .

Release

Cut function . The function cannot be completed ? Just cut off . When we actually develop , We are going to make a AR The function of human face , But later we found that only a few people's mobile phones can use this function , And it is very difficult to complete , Finally, we did not realize this function , Just cut it off .

maintain

Structured maintenance . Every time a new demand arises , We should start with the requirements analysis , Analyze the whole process , Judge the possible impact of the modification on other places , Try not to lead to other bug Add this new requirement , At the same time, the dynamic deployment of the back-end , Does not affect the user's use .

Experience

The soft work is finally over , In this project , I am mainly responsible for the part of multi person synchronization , And then there is AR Part of , I am right now unity More people have a deeper understanding of synchronization , I even think I can go by myself b The station recorded a video about how to realize a multiplayer online game , In fact, many of them are not written in blogs or official technical documents , Such as how to synchronize everyone's clothes , How to implement scenario invitation , How to realize the invitation of the team , wait . I learned a lot from it . In the last week , I'm basically 3~4 Go to bed around , Get up in the morning and continue to work , It can be said that I spent almost all my time researching and developing software engineering , But there are gains , I think it's worth it .

In addition to technical aspects , I also learned more about how to work as a team , How to establish a more convenient communication channel , How to reasonably allocate tasks, etc , Before that, I hated teamwork , Because I seldom had the same experience in my previous team work , So I will also gain experience from this team work , Then make better team cooperation . For example, make more use of some team collaboration tools , It is more efficient than using only wechat , It can also easily track everyone's tasks and progress .

Last , Thanks to my pairing partner and team mate , I also thank the teachers and teaching assistants for their hard work !

原网站

版权声明
本文为[_ YiFei]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/177/202206260826429135.html