1. Etapas do planejamento do sistema
- Investigação preliminar: De acordo com os objetivos estratégicos da empresa, analise a situação atual da empresa e o status operacional do sistema
- Determinar os objetivos do sistema: determinar a qualidade do escopo do serviço do sistema, etc.
- Analisando a composição dos subsistemas: particionando o sistema e especificando as funções dos subsistemas
- Elaborar o plano de implantação do sistema: analisar a prioridade dos subsistemas e determinar a sequência de desenvolvimento
- Estudo de viabilidade: escrever um relatório de estudo de viabilidade e realizar uma reunião de discussão de viabilidade
- Formular o plano de construção do sistema: analisar e comparar os vários indicadores técnicos propostos no relatório do estudo de viabilidade, implementar as pré-condições de várias suposições, formular o plano de construção do sistema e formar o livro de tarefas de projeto do sistema
2. Classificação do Estudo de Viabilidade
- Viabilidade econômica: análise de custo-benefício, incluindo construção, custos operacionais e possíveis benefícios econômicos após a construção do projeto.
- Viabilidade técnica: análise de risco técnico, se a tecnologia existente pode suportar a realização do objetivo do sistema e se os recursos existentes (funcionários, acúmulo de tecnologia, biblioteca de componentes, software, condições de hardware etc.) projeto.
- Viabilidade legal (viabilidade social): não pode contradizer as leis ou políticas nacionais
- Disponibilidade do usuário:
3. Análise de custo-benefício
- Categoria de custo:
-
- Custo fixo: não muda com a produção, os salários do pessoal administrativo, despesas de escritório, despesas de depreciação de ativos fixos, despesas de treinamento de pessoal, despesas de publicidade, despesas de desenvolvimento de tecnologia, etc.
- Custos variáveis: mudança com a produção, custos de material direto, custos de embalagem do produto, custos de terceirização, bônus de desenvolvimento, etc.
- Custos mistos: serviços públicos, contas de telefone, salários do pessoal de garantia de qualidade, energia do equipamento, etc.
- Custos diretos: investidos diretamente no projeto, salários da equipe do projeto, custos de material
- Custos indiretos: rateados para o projeto, contas de serviços públicos, taxas de treinamento de pessoal
- Classificação da receita:
-
- Benefícios tangíveis: chamados benefícios econômicos, que podem ser medidos por indicadores como o valor do dinheiro no tempo, período de retorno do investimento e taxa de retorno do investimento. Os benefícios tangíveis podem ser divididos em benefícios econômicos únicos e benefícios não únicos.
- Benefícios intangíveis: chamados benefícios não quantificáveis, que são medidos principalmente qualitativa e psicologicamente, e é difícil fazer comparações quantitativas diretas
- Análise de avanço:
-
- Vendas = Custos Fixos + Custos Variáveis + Impostos + Lucro (em circunstâncias normais)
- Vendas = custos fixos + custos variáveis + impostos (no ponto de equilíbrio)
- Análise do Valor Presente Líquido:
-
- Questões estáticas e dinâmicas: a análise dinâmica considera o valor do dinheiro no tempo, geralmente a taxa de desconto
- Valor presente: Se você pode ganhar F yuan depois de n anos, o valor presente desse dinheiro é limitado a P:
- Retorno do investimento:
-
- O período de retorno refere-se ao período de recuperação do investimento. Dividido em: dispositivo de recuperação de investimento estático e dispositivo de recuperação dinâmico
- Período de retorno estático (independentemente do valor do dinheiro no tempo)
- Período de retorno dinâmico (considerando o fator valor do dinheiro no tempo)
- A fórmula para o período de retorno: o número de anos em que o valor descontado acumulado começa a aparecer positivo -1+|o valor descontado acumulado do ano anterior |/valor descontado do ano atual
- Taxa de recuperação do investimento = 1 / período de recuperação do investimento * 100%
4. Engenharia de Software
- Planejamento do sistema: investigação preliminar, análise dos objetivos do sistema, composição do subsistema, plano de implementação proposto, estudo de viabilidade, formulação do plano de construção do sistema; tarefas de design do sistema (plano de construção do sistema, plano de implementação)
- Análise do sistema: análise de processos de negócios, análise de dados e fluxo de dados, análise de requisitos de software, análise de requisitos de rede; especificação de requisitos do sistema, especificação de requisitos de software, plano de teste de confirmação, plano de teste do sistema, manual preliminar do usuário
- Projeto do sistema: projeto de arquitetura de software, projeto de esboço de software, projeto detalhado, projeto de rede; documentos de projeto de arquitetura, instruções de projeto de esboço, instruções de projeto detalhadas, especificações de programa, plano de teste de esboço, plano de teste detalhado, vários desenhos de projeto
- Implementação do sistema: codificação de software, unidade de software, integração, teste de sistema, fiação integrada; código-fonte, teste de unidade, relatório de teste de integração, manual de operação
- Aceitação do sistema: teste de confirmação, operação experimental; relatório de teste de confirmação, relatório de aceitação do projeto
5. Modelo de desenvolvimento de software
- Modelo de protótipo: um modelo típico de método de desenvolvimento de protótipo, adequado para "cenas com requisitos pouco claros", que pode ajudar os usuários a esclarecer os requisitos.
- Modelo Cachoeira:
-
- O modelo cascata é um modelo que define cada atividade no ciclo de vida do software como vários estágios conectados em uma ordem linear, incluindo análise de requisitos, projeto, codificação, operação e manutenção.
- As características do modelo em cascata são fáceis de entender, baixo custo de gerenciamento, cada estágio tem um produto correspondente e cada estágio tem limites óbvios e requisitos de sequência. Uma vez que ocorra um erro, todo o projeto será levado para um novo começo
- Aplicável a projetos com requisitos claros, geralmente expressos como requisitos claros ou desenvolvimento secundário, ou para projetos de processamento de dados
- Modelo incremental: integrando os componentes básicos do modelo em cascata e os recursos iterativos da implementação do protótipo, várias versões disponíveis podem ser lançadas e as funções principais geralmente são concluídas primeiro. Com base nisso, haverá novos lançamentos incrementais em cada iteração, o as funções principais podem ser totalmente testadas, enfatizando que cada incremento libera um produto operacional.
- Modelo espiral: A característica típica é a introdução da análise de risco, que combina as características do modelo cascata e do modelo de evolução.A característica mais importante é a adição da análise de risco. Consiste em um ciclo de planejamento, análise de risco, engenharia de implementação, avaliação do cliente e inicia a primeira espiral com um projeto conceitual.
- Modelo V: Enfatiza que o teste é executado ao longo do projeto, em vez de focar na fase de teste, é um modelo de desenvolvimento de teste
- Modelo Fountain: um típico modelo orientado a objetos. É caracterizado pela iteração, sem lacunas e pela divisão do desenvolvimento de software em vários estágios, mas os estágios irmãos mais velhos não têm limites claros e podem ser cruzados iterativamente.
- RAD de desenvolvimento rápido de aplicativos:
-
- Conceito: O RAD é uma variante de alta velocidade do modelo em cascata, adequado para o método de desenvolvimento com um ciclo de vida tradicional muito mais rápido. Ele enfatiza um ciclo de desenvolvimento muito curto e geralmente aplica o método de desenvolvimento baseado em componentes para obter um desenvolvimento rápido .
- Processo: modelagem de negócios, modelagem de dados, modelagem de processos, geração de aplicativos, teste e entrega
- Aplicabilidade: RAD tem requisitos relativamente altos para modularização. Se uma determinada função não pode ser modularizada, haverá problemas com seus componentes; se o alto desempenho é um indicador e deve ser ajustado para se adaptar aos componentes do sistema, então RAD Também pode não será eficaz; RAD exige que desenvolvedores e clientes concluam uma série de análises de demanda em um curto período de tempo, e a cooperação inadequada de qualquer uma das partes levará ao fracasso; RAD só pode ser usado para o desenvolvimento de sistemas de informações gerenciais, o que não é adequado para alto risco técnico Estojo
- Processo Unificado (UP, RUP significa Processo Unificado)
-
- Os recursos típicos são orientados a casos de uso, centrados na arquitetura, iterativos e incrementais. O Processo Unificado divide um projeto em quatro fases distintas:
-
-
- Fase de concepção (fase inicial): inclui dois aspectos de comunicação com o usuário e atividades de planejamento, enfatizando a definição e refinamento de casos de uso como modelo principal.
-
-
-
-
- Documento do plano do projeto (requisitos principais, principais recursos, principais restrições)
- modelo de usuário
- Plano de projeto
-
-
-
-
- Fase de elaboração: inclui atividades de modelagem e comunicação com o usuário, com foco na criação de modelos de análise e design, com ênfase na definição de classes e representação arquitetônica.
-
-
-
-
- Conclua o projeto de arquitetura
- Elimine elementos de alto risco
-
-
-
-
- Fase de construção: traduzindo o design em implementação, integração e teste
-
-
-
-
- modelo UML
- caso de teste
-
-
-
-
- Estágio de entrega: libere o produto para os usuários para teste e avaliação, colete as opiniões dos usuários e, em seguida, modifique iterativamente o produto novamente para torná-lo perfeito.
-
-
-
-
- produto de software executável
- manual do usuário
- Programa de Suporte ao Usuário
-
-
- Desenvolvimento ágil: O desenvolvimento ágil é um método de desenvolvimento centrado nas pessoas, iterativo, passo a passo, adequado para pequenas equipes e pequenos projetos, com a ideia de execução em pequenos passos. Métodos comuns de desenvolvimento ágil são programação extrema, método cristal, método scrum e método de desenvolvimento de software adaptativo.
Extreme Programming XP é um método de desenvolvimento leve que propõe quatro valores: comunicação, simplicidade, feedback e coragem. Cinco princípios: feedback rápido, suposições simples, revisões incrementais, defesa da mudança e trabalho de qualidade. Doze melhores práticas: jogo de planejamento, metáforas, pequenos lançamentos, design simples, teste primeiro, refatoração, programação em pares, propriedade de código coletivo, integração contínua, semana de trabalho de 40 horas, clientes segmentados e padrões de codificação.
O método do cristal enfatiza a entrega frequente e acredita que cada projeto diferente requer um conjunto diferente de estratégias, convenções e metodologias.
O núcleo do método scrum é iterativo, entrega incremental e desenvolvimento iterativo e entrega de software que pode realmente ser executado em 30 dias
No coração do Desenvolvimento de Software Adaptativo (método ASD) estão três fases de desenvolvimento não lineares e sobrepostas: adivinhar, colaborar, aprender.
Código aberto e código aberto aqui se referem à maneira como a comunidade de código aberto funciona. Uma característica especial dos projetos de código aberto é que os desenvolvedores do programa são amplamente distribuídos geograficamente, o que o torna diferente de outros métodos ágeis, porque o método ágil geral enfatiza que os membros do projeto trabalham no mesmo local. Uma característica proeminente do código-fonte aberto é o alto paralelismo na solução de problemas de erro.Qualquer um que encontre um erro pode enviar um arquivo "patch" para corrigir o código-fonte ao mantenedor. Esses "patches" ou novos códigos são então incorporados ao repositório de código-fonte pelo mantenedor
Método de desenvolvimento de driver comum da Coad
No FDD, os desenvolvedores de programação são divididos em duas categorias: programadores líderes e programadores de "classe". Os programadores líderes são os desenvolvedores mais experientes, são coordenadores de projeto, designers e mentores, enquanto os programadores de "classe" fazem principalmente a escrita do código-fonte original.
6. Engenharia reversa
Quatro níveis de engenharia reversa:
- Nível de implementação: incluindo a árvore de sintaxe abstrata do programa, a tabela de símbolos e a representação de design do processo
- Nível estrutural: inclui informações que refletem as interdependências entre os componentes do programa, como gráficos de chamada, gráficos de estrutura, programa e estruturas de dados
- Nível funcional: inclui informações que refletem a função do segmento do programa e o relacionamento entre os segmentos do programa, como dados e modelos de fluxo de controle
- Nível de domínio: inclui informações que refletem a correspondência entre os componentes do programa ou programas, como entidades e conceitos de domínio de aplicativo, como modelo de relacionamento de entidade
Conceitos relacionados de engenharia reversa:
- Reestruturação: Reestruturação refere-se a transformar a forma de descrição do sistema no mesmo nível de abstração
- Recuperação de design: A recuperação de design refere-se ao uso de ferramentas para abstrair informações sobre design de dados, design de estrutura geral e design de processo de programas existentes.
- Engenharia reversa (engenharia reversa): A engenharia reversa analisa o programa, tentando estabelecer um processo de representação do programa em um nível de abstração mais alto do que o código-fonte, e o processo de recuperação projetado pela engenharia reversa
- Engenharia avançada: A engenharia avançada é o processo não apenas de recuperar informações de projeto de sistemas existentes, mas também de usar essas informações para alterar ou refatorar sistemas existentes para melhorar sua qualidade geral
- Reengenharia (reengenharia): A reengenharia é o processo de redesenvolvimento de sistemas existentes, incluindo três etapas: engenharia reversa, processo de consideração de novos requisitos e engenharia avançada