Software Engineering - Individual project work
project | content |
---|---|
This work belongs courses | Spring 2020 Computer Software Engineering Institute (Roger Ren Jian) |
Where this requirement in the job | Individual project work |
My aim in this course is | Develop knowledge learning software engineering, training engineering and development capabilities |
The job which specific aspects help me achieve goals | PSP developed by master basic practical operation |
1 Overview
Teaching classes : 006
Project Address : https://github.com/sinoyou/Software_Intersection
2 PSP2.1 analysis
PSP 2.1 | Personal Software stage | ||
---|---|---|---|
PSP2.1 | Personal Software Process Stages | Estimated time consuming (minutes) | The actual time-consuming (minutes) |
Planning | plan | ||
· Estimate | • Estimate how much time this task requires | 10 | 10 |
Development | Develop | ||
· Analysis | · Needs analysis (including learning new technologies) | 120 | 150 |
· Design Spec | Generate design documents | 60 | 30 |
· Design Review | · Design Review (and his colleagues reviewed the design documents) | - | - |
· Coding Standard | · Code specifications (development of appropriate norms for the current development) | 30 | 20 |
· Design | · Specific design | 60 | 40 |
· Coding | · Specific coding | 120 | 150 |
· Code Review | · Code Review | 30 | 30 |
· Test | · Test (self-test, modify the code, submit modifications) | 240 | 210 |
Reporting | report | ||
· Test Report | · testing report | 60 | 50 |
· Size Measurement | · Computing workload | 5 | 5 |
· Postmortem & Process Improvement Plan | · Hindsight, and propose process improvement plan | 15 | 30 |
total | 750 | 725 |
3 problem-solving ideas
4 design and implementation process
5 code analysis and performance analysis
First, use the Visual Studio's own code written code analysis tool were examined, found to give no status issue as shown below:
Then, using the VS performance analysis tool, the number of straight line involved is adjusted to the maximum input N = 500000, performance analysis run after run for 60 seconds interrupts the analysis result, locating the current maximum consumption function is a Line
static class method get_intersection()
, and then specifically, when generating an intersection, a custom Rational
four large fraction arithmetic operation cost between classes, there are about two particular aspects:
- First: the frequency is too new operation, resulting in excessive performance overhead. In this regard I proper handling methods not found in a short time.
- Second: abs standard is defined in space, max, min large performance overhead function, the inline manual override these functions, the performance of the cost function is decreased, as shown below.
- Third: GCD (greatest common factor requirements) of a simple fraction, but also a large cost function performance in a recursive structure into which rewritten while loop type, performance dropped a little overhead is present, but not obvious.
6 Code Description
Since the method of packaging a class better, more convenient and therefore the unit test, as follows:
<br