Ciências da computação dia 88
Engenharia de software
A arte da engenharia de software, é entender o problema. Para isso o engenheiro deve saber quais são os interessados (quem está envolvido), quais as incógnitas, etc.
Uma das técnicas utilizadas para entender o problema, é fazer o ambos (cliente e engenheiro) desenhar/anotar, uma vez que, quando anotamos, nosso cérebro assimila e organiza as ideias.
No momento do planejamento, busque um modelo. 99% das vezes seu problema já foi resolvido, e você pode reaproveitar algo que alguém já fez.
Durante a execução, sempre observe se os resultados estão saindo como o planejado.
digitalização → transformação do analógico para o digital
transformação digital → passa algo do analógico para o digital, de forma que fique mais fácil de utilizar
interface simplória → interface que não faz o que o usuário precisa
- Um padrão de desenvolvimento/projeto não resolve todos os problemas, quase sempre é preciso adaptar.
- Sair colocando mais pessoas no projeto, nem sempre é a melhor saída. Isso pois ao adicionar mais gente, essas novas pessoas precisam entender todos os padrões, o modo com trabalham, precisam entender o projeto, etc. O que leva tempo e pode acabar atrasando mais.
- Terceirizar nem sempre é a melhor solução, uma vez que será necessário gerenciar/fiscalizar o processo.
- Os requisitos precisam ser objetivos.
- Mudar os requisitos, dependendo do momento, pode ser danoso para o projeto, se estiver em etapas muito avançadas.
- Após a entrega do projeto é que o trabalho começa, é ai que você tem que garantir que o projeto continuará vivo.
- O sucesso do projeto não está só no código funcionando, mas também nos modelos, documentos, planos, etc.
- Engenharia de software não cria documentação desnecessária, mas sim tudo aquilo que é necessário para um projeto de qualidade.
Processo → sequência de atividades para alcançar um objetivo
Paradigma → diferentes processos que você pode usar em engenharia
Tipos de fluxos para realizar os processos (paradigmas)
1 --- linear → partes do projeto uma depois da outra
2 --- Iterativo → faz todas as partes e se em determinado momento você precisar voltar em outra etapa, você volta
3 --- Evolucionário → você passa várias vezes por todas as etapas, fazendo pequenas tarefas até concluir o projeto (o SCRUM, geralmente, usa esse)
4 --- Paralelo → varias etapas são feitas ao mesmo tempo
Esses são modelos genéricos, a partir deles as metodologias se apropriam e incrementam-nas para modelos reais