Software Engineering - Individual Project

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 Linestatic class method get_intersection(), and then specifically, when generating an intersection, a custom Rationalfour 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

Guess you like

Origin www.cnblogs.com/sinoyou/p/12457883.html