当前位置:网站首页>Elevator dispatching (pairing project) ④
Elevator dispatching (pairing project) ④
2022-07-04 10:52:00 【Painting and living~】
List of articles
One 、 software test
1.1 unit testing
In the development process , In order to reduce the logic error in the function, the program will bug Probability , We use JUnit3 Unit test the functions of some classes . The functions for unit testing include GetPeopleIn(), GetPeopleOut(), HasPeopleOut(), GetNearestPsg(), GetMaxFloorPsg() etc. . Here is one of the tests
public void testGetMaxFloorPsg()
{
EleController controller = new EleController();
Passenger passenger1 = new Passenger(100, 2, 6, 1, 1);
Passenger passenger2 = new Passenger(100, 1, 8, 2, 1);
Passenger passenger3 = new Passenger(40, 8, 1, 3, -1);
List<Passenger> passengers = new LinkedList<>();
passengers.add(passenger1);
passengers.add(passenger2);
passengers.add(passenger3);
controller.setPsgRequestList(passengers);
assertEquals(8, controller.getMaxFloorPsg(1, 1, 1));
passengers.remove(0);
controller.setPsgRequestList(passengers);
assertEquals(2, controller.getMaxFloorPsg(1, 1, 1));
passengers.remove(0);
controller.setPsgRequestList(passengers);
assertEquals(1, controller.getMaxFloorPsg(1, 1, 1));
}
The test results are shown in the figure 
1.2 Black box testing
Here is 10 Test cases
| The test case | describe |
|---|---|
| No input | The elevator operates normally |
| weight 70 Starting floor 1 Terminal floor 10 | The elevator receives passengers normally |
| weight 100*5 people | Elevator receives passengers normally in case of multiple requests |
| weight 100*5 people The elevator 2 individual | Pick up passengers normally when there are many elevators |
| weight 100*10 people | Unable to pick up passengers when overweight |
| Starting floor -2 | The starting floor is illegal |
| Terminal floor 21 | The terminal floor is illegal |
| Starting floor 1 Terminal floor -1 | In the passenger carrying state, the elevator does not pick up passengers in the opposite direction of its own operation |
| Starting floor 1 Key floors -1 | No passengers sstf The algorithm changes from uplink to downlink |
| Change any legal elevator parameters | The elevator parameters can be changed and run smoothly |
Two 、 Performance comparison
Because passengers are randomly generated , The values are not necessarily consistent .
The evaluation standard is that the total number of people reaches 50 Number of people served per hour / The total number of
Bus:0.3
SSTF:0.48
LOOK:0.34
3、 ... and 、 Pairing project summary
2.1 The advantages of pair programming
Through pair programming , Developers can urge and encourage each other . meanwhile , The fields that two people are good at can also complement each other , When one of the developers encountered a difficult point , You can also ask another person , This saves development time , Improved development efficiency .
However , Pair programming also has some disadvantages . When the code styles of two developers are not unified , It's easy to find it difficult to understand each other's code , And then affect further development . meanwhile , If the content that a person is responsible for himself appears bug Not familiar enough , It will also lead to other bug.
2.2 Personal strengths and weaknesses
Deng Shengyu
advantage : Involved in Java Language project development , Familiar with the development process . Good code habits .
shortcoming : Procrastination is too serious , Delay the development process .
Cui Wenguang :
advantage : Strong ability to collect data . Good at communication , Fast programming speed, clear thinking , No drag .
shortcoming : Not familiar with multi-threaded development .
2.3 Pairing process
As the development period coincides with the winter vacation , Cuiwenguang and I cannot meet offline , Therefore, online communication is adopted to complete the project development . We are 1 month 27 Finish the discussion on the day , Determine and start the development process . Due to git I'm not familiar with , The initial progress was not submitted to the warehouse on time , Instead, it was used after the medium-term code volume gradually increased git Project management .
In pair development , I finished the definition of the first stage class , And basically completed the second stage bus Scheduling algorithm . Cuiwenguang has improved bus Scheduling algorithm , And completed sstf、look Scheduling algorithm and ui Interface development . meanwhile , I am right. ui The interface logic has been adjusted and improved , Unit test is carried out . Besides , We worked together to complete the writing of blogs and documents .
Because you can only communicate online , We can't provide the offline version of the pair photos they are discussing , So I took a screenshot of the online pairing discussion process and recorded it as follows .


2.4 Technical highlights and difficulties
Technical highlights
- Support real-time display of various information
- The algorithm is efficient
Technical key points
- Using multithreading technology , Prevent the process from crashing
- A lot of unit tests are used , Improve code robustness
Technical difficulties encountered
- Process creation problem
- Synchronization function problem
To be improved
- The interface is chaotic
- The function still needs to be improved
- The front end style can be further beautified
2.5 Other gains
Through this pairing project , I realized that procrastination is a terrible bad habit , It will seriously affect the progress of cooperative development . meanwhile , My ability to collect data has also been improved , Yes java Object oriented design 、 Multithreading 、 The understanding of unit testing has been deepened . On the whole , It has benefited me a lot .
边栏推荐
- Read a piece of text into the vector object, and each word is stored as an element in the vector. Convert each word in the vector object to uppercase letters. Output the converted elements in the vect
- Recursion and divide and conquer strategy
- [machine] [server] Taishan 200
- 如果不知道這4種緩存模式,敢說懂緩存嗎?
- MPLS: multi protocol label switching
- JMeter Foundation
- Day7 list and dictionary jobs
- OSPF comprehensive experiment
- 183 sets of free resume templates to help everyone find a good job
- Introduction to tree and binary tree
猜你喜欢

leetcode842. Split the array into Fibonacci sequences

Discussion | has large AI become autonomous? Lecun, chief scientist of openai

JMeter common configuration components and parameterization

Time complexity and space complexity
Si vous ne connaissez pas ces quatre modes de mise en cache, vous osez dire que vous connaissez la mise en cache?

JMeter Foundation
![[Galaxy Kirin V10] [server] set time synchronization of intranet server](/img/f8/0847314029930840c91bce97ccd961.jpg)
[Galaxy Kirin V10] [server] set time synchronization of intranet server

Knapsack problem and 0-1 knapsack problem

OSPF summary

VLAN part of switching technology
随机推荐
Strings and characters
Virtual machine configuration network
/*Rewrite the program, find the value of the element, and return the iterator 9.13: pointing to the found element. Make sure that the program works correctly when the element you are looking for does
How to quickly parse XML documents through C (in fact, other languages also have corresponding interfaces or libraries to call)
Canoe-the second simulation project-xvehicle-1 bus database design (idea)
[Galaxy Kirin V10] [desktop] login system flash back
[Galaxy Kirin V10] [desktop] can't be started or the screen is black
[test theory] test the dimension of professional ability
Advanced order of function
Unittest+airtest+beatiulreport combine the three to make a beautiful test report
XMIND installation
Basic data types of MySQL
Seven examples to understand the storage rules of shaped data on each bit
Canoe - the second simulation project -xvihicle1 bus database design (operation)
Rhcsa operation
DML statement of MySQL Foundation
[Galaxy Kirin V10] [server] NUMA Technology
Collection of practical string functions
Performance features focus & JMeter & LoadRunner advantages and disadvantages
Introduction to tree and binary tree