trabalhos de engenharia de software pessoal BUAA

BUAA engenharia de software trabalho de projeto individual

projeto conteúdo
Este trabalho pertence cursos Primavera 2020 Computer Software Engineering Institute (Roger Ren Jian)
Onde esta exigência no trabalho trabalho de projecto individual
Meu objetivo neste curso é Desenvolver o conhecimento aprender engenharia de software, treinamento de capacidades de engenharia e desenvolvimento
O trabalho que aspectos específicos me ajudar a alcançar objetivos PSP desenvolvido pelo mestre funcionamento prático básica

 

PSP2.1 Estágios Personal Software Process Tempo estimado de consumo (minutos) As demoradas reais (minutos)
Planejamento plano 10 10
· Estimativa • Estimativa quanto tempo esta tarefa requer 10 10
Desenvolvimento desenvolver 280 520
· Análise · Análise de Necessidades (incluindo a aprendizagem de novas tecnologias) 30 40
· Projeto Spec Gerar documentos de projeto 30 40
· Revisão do projeto · Design Review (e seus colegas revisaram os documentos de projeto) 10 20
· Padrão de Codificação · Especificações de código (desenvolvimento de normas apropriadas para o desenvolvimento atual) 10 20
· Projeto · O projeto específico 60 100
· Codificação · Específica de codificação 60 120
· Revisão de código · Revisão de código 20 60
· Teste · Test (autoteste, modificar o código, submeter modificações) 60 120
Comunicando relatório 70 70
· Relatório de teste · Relatório de Ensaio 40 40
· Medição Tamanho · Carga de trabalho Computing 10 10
· Postmortem & Plano de Melhoria de Processos · Hindsight, e propor plano de melhoria de processos 20 20
  total 360 600

A. Resolução de problemas descrição ideias

pesquisa na Internet

Tente encontrar a complexidade da rede é menor do que o (n ^ 2) algoritmo para encontrar o (nlogn) diz respeito a um cruzamento segmento de linha e, na linha reta busca infrutífera

idéias de solução de problemas

Antes de escrever o código, o algoritmo não encontrar bom, então ele escolheu violência para resolver que lê uma linha, imediatamente antes do cruzamento com a resolução de linhas n retas, resolvido para cada ponto precisa ser processamento de duplicação, vetor processamento ainda olhando para o mesmo ponto, um elevado grau de complexidade.

melhorar

As coordenadas horizontais e verticais da cadeia pontos composição, formando chave, selecionando um armazenamento da mistura, isto é, coordenadas horizontais e verticais tornam-se valor de chave, ponto valor desta estrutura é um hash da lista, que é a ideia de escrever o código antes

II. Projeto de implementação

Porque é relativamente simples código C ++, não deliberadamente usar o pensamento orientado a objeto

  • classe: Function (ou seja, todo o corpo do programa, quando facilitar o teste, a interface chamada direta

    • set <o Nó, cmp> Nodes : Use definida ao escrever código em vez de hashmap, por causa da hashmap é muito maior do que o custo do conjunto, o processo requer mais do que uma série de duplo sua vez, pode haver perda de precisão, o custo também é grande

    • getLinePara vazio : ax + b = cy usando um representante forma linear de, em vez de usar o y originais = kx + b é para reduzir o uso da divisão, a máxima precisão e exatidão de retenção de dados, ao ler uma linha reta, esta função é chamada, obter o valor de ABC, linear estrutura em espécies

    • readFile vazio : Esta função é utilizada para leitura de arquivos e armazenar toda a linha de Vector < Line> Lines em

    • L2LIsCross BOOL : Esta função é usada para resolver a intersecção da reta e da linha reta, ou seja, soluções de equações lineares definido antes de resolver o linear primeiro determina se há um cruzamento, nós armazenados no imediatamente resolvido para o foco, e retorna verdadeiro, caso contrário, o cruzamento não existe, return false

    • C2LIsCross BOOL : Esta função é usada para resolver o círculo de intersecção com a linha recta, o declive do centro, e uma perpendicular à linha dada, obtida através da linha de centro vertical no dado, o ponto de intersecção das duas linhas rectas obtidas pelo ponto de intersecção da distância do centro, estreitamente determinada a partir da intersecção, se a fase de, falso é retornado; de outra forma, para se obter uma dada linha positiva e negativa unidade vector, multiplicado pela linha transversal semi-círculo, o medidor pode obter as coordenadas de dois cruzamentos, retornos verdadeiro

    • C2LIsCross BOOL : Esta função é usado para resolver a intersecção de dois círculos, a equação círculo em primeiro lugar subtraindo a equação linear obtido através do ponto focal, para o fim de simplificar o problema intersecção da linha recta e o círculo, a função de chamada directa

    • Resolver o int : chamar a função acima, para completar o processo de obtenção do ponto de intersecção é lido no número de interface de teste conveniente

  • par: O nó (não typedef ponto de armazenamento, não usar a estrutura, mas com o par)

  • struct: Linha (estrutura de armazenamento de linha que compreende coordenadas horizontais e verticais de dois pontos, o uso de armazenamento longo, e ax + b = CY de a, b, c)

  • struct: círculo (estrutura de armazenamento redonda, compreendendo um nó central e um raio r)

truques pequenos:

  • Use o SET < par>, sem ter que virar corda dupla, reduzir a quantidade de carga de trabalho

  • função par conjunto de substituição comparativa para assegurar a precisão de 12 decimal

O teste de unidade

  • Consideremos o caso extremo, uma linha recta paralela à linha recta vertical, a linha recta que intersecta o círculo, uma recta tangente ao círculo, o círculo com uma linha recta a partir do círculo intersecta o círculo, de um círculo que contém o círculo, o círculo tangente ao círculo

  • Os testes de estresse, 2000 linhas, teste

III. Teste de Desempenho

A dotação total tempo de CPU, a função pode ser visto que o tempo de ocupação principal

 

 

Set.insert função pode ser visto, o consumo máximo pode ser entendido, a primeira versão do código hashmap utilizado, devido à necessidade de virar dupla cadeia, que consome grande, mesmo mais do que a inserção na hashmap consumido, melhorando, assim, o uso set, árvore vermelha-preta armazenados, tanto para garantir a não-duplicação, mas também pode reduzir o consumo desnecessário, enquanto o conjunto método de inserção par, eu não tenho muito boa maneira de otimizar.

IV. Código Descrição

Código quadro de análise de qualidade

O teste de unidade

As funções-chave para alcançar

  • Resolver linear e intersecção circular

  • Rodada e volta a intersecção de resolução

  • Resolver linear e intersecção linear

     

     

Acho que você gosta

Origin www.cnblogs.com/JordenQiao/p/12456865.html
Recomendado
Clasificación