当前位置:网站首页>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 .
边栏推荐
- IPv6 comprehensive experiment
- Learning XML DOM -- a typical model for parsing XML documents
- Si vous ne connaissez pas ces quatre modes de mise en cache, vous osez dire que vous connaissez la mise en cache?
- Rhcsa12
- /*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
- Pod management
- [test theory] test process management
- /*The rewriter outputs the contents of the IA array. It is required that the type defined by typedef cannot be used in the outer loop*/
- DCL statement of MySQL Foundation
- Static comprehensive experiment ---hcip1
猜你喜欢
Network connection (II) three handshakes, four waves, socket essence, packaging of network packets, TCP header, IP header, ACK confirmation, sliding window, results of network packets, working mode of
C language structure to realize simple address book
[Galaxy Kirin V10] [desktop] build NFS to realize disk sharing
Dynamic memory management
Basic data types of MySQL
Hidden C2 tunnel -- use of icmpsh of ICMP
Jemeter script recording
[Galaxy Kirin V10] [server] system partition expansion
[Galaxy Kirin V10] [desktop] cannot add printer
Linked list operation can never change without its roots
随机推荐
[Galaxy Kirin V10] [server] KVM create Bridge
[Galaxy Kirin V10] [desktop] FTP common scene setup
Using SA token to solve websocket handshake authentication
Evolution from monomer architecture to microservice architecture
51 data analysis post
Ten key performance indicators of software applications
DCL statement of MySQL Foundation
Fundamentals of database operation
Huge number multiplication (C language)
Jianzhi offer 04 (implemented in C language)
[untitled]
[test theory] test process management
Advanced order of function
Learning XML DOM -- a typical model for parsing XML documents
DDL language of MySQL database: create, modify alter, delete drop of databases and tables
Hlk-w801wifi connection
JMeter correlation technology
Article publishing experiment
[Galaxy Kirin V10] [server] soft RAID configuration
Communication layer of csframework