Processo de Desenvolvimento de Software Flashcards
Qual a diferença de processo de desenvolvimento de software e metodologia de desenvolvimento de software?
Processo de desenvolvimento de software: Sequência de actividades, normalmente agrupadas em fases e tarefas, que são executadas de forma sistemática e uniformizada, que são realizadas por intervenientes com responsabilidades bem definidas, e que a partir de um conjunto de entradas produzem um conjunto de saídas.
Metodologia: Para além da sequência de etapas e procedimentos recomendados para serem aplicados durante o processo de desenvolvimento de sistemas de informação, acrescenta a utilização de um conjunto de ferramentas, técnicas e notações.
Porquê que a modelação é importante no desenvolvimento de sistemas de informação?
Porque facilita a comunicação dos diferentes intervenientes. Permite ainda visualizar um sistema, especificar a estrutura e comportamento de um sistema e guiam a sua construção.
Quais os principios da modelação de sistemas de informação?
A escolha dos modelos a criar tem impacto em como o problema é encarado e a solução é obtida.
Cada Modelo deve ser expresso em diferentes níveis de precisão/abstracção (o que cada interveniente precisa de saber).
Os melhores modelos reflectem a realidade.
Nenhum modelo é suficiente por si só. Um sistema é representado de forma mais adequada por um pequeno número de modelos, razoavelmente independentes.
Quais são algumas das boas práticas do Desenvolvimento de Software?
Decomposição hierárquica (limitação a lidar com a complexidade)
Abstracção
Iteratividade (cada feature deve ser refeita várias vezes implementando novas mudanças)
Arquitectura de componentes reutilizáveis (melhora a manutenção)
Sistemática verificação de qualidade
Quais as Principais fases de um processo de desenvolvimento de sistemas? E quais as tarefas dentro de cada fase?
Concepção (o que é que o sistema deve fazer)
- Planeamento
- Análise
Implementação (como fazer o sistema e a sua construção) → no final da fase o sistema deve estar funcional
- Desenho
- Desenvolvimento
- Testes e Integração
- Instalação
Manutenção
- Operação
- Manutenção
Gestão de Projecto
Gestão de alterações
Quais as tarefas/actividades relacionadas com Gestão do projecto?
Agrupa um conjunto de actividades relacionadas com gestão de recursos humanos, financeiros e o controlo dos prazos da execução das várias tarefas. Interface oficial para fora da equipa de desenvolvoimento. Tarefa transversal (ocorre em todas as fases).
Quais as tarefas/actividades relacionadas com Gestão de alterações?
Conjunto de actividades para controlar alterações num processo em curso. Estes mecanismos sºão fundamentais porque “a única certea é a mudança permanente”. Áreas que apresentam alteração muito frequente são designadas por áreas de risco. Tarefa transversal (ocorre em todas as fases).
Quais as tarefas/actividades relacionadas com Planeamento?
O principal output desta fase é um plano de projecto. Isto é o que vai permitir avançar ou chumbar o projecto. Deve reflectir a visao que se tem nesta fase do processo sobre as actividades a desenvolver relativamente recursos, prazos, custos e os beneficios que o sistema vai trazer à organização.
Quais as tarefas/actividades relacionadas com Análise?
Efectua o estudo detalhado do dominio do problema e o output deve ser um documento onde os requisitos funcionais da solução a implementar e outras questões são enumeradas. Engloba 2 sub-tarefas:
1. Levantamento de requisitos
2. Especificação do Sistema
Quais as tarefas/actividades relacionadas com Desenho?
É a fase de especificação técnica onde se definem:
Componentes aplicacionais (objectos, módulos, programas)
Componentes Tecnológicos (maquinas, redes…)
Dados (estrutura de ficheiros, estrutura das bases de dados
Quais as tarefas/actividades relacionadas com Implementação?
É nesta tarefa que os diversos componentes aplicacionais são codificados e testados isoladamente (testes unitários). As actividades de implementação devem fazer uso de ferramentas, que a partir da especificação do modelo, sejam capazes de produzir automaticamente componentes → frameworks. Deste modo a programação pura cede em favor da integração de componentes pre-feitos para melhorarmos a velociddae de desonvolvimento.
Quais as tarefas/actividades relacionadas com testes?
O objectivo desta tarefa é a aceitação formal do cliente e a posterior decisão de colocar o sistema em produção. Envolve vários tipos de testes que devem ser executados em ambientes próximos ao de produção mas separados da mesma de modo a que programadores , testers e utilizadores possam trabalar ao mesmo tempo sem interferênca. Os vários testes que existem são:
Quais as tarefas/actividades relacionadas com instalação?
Consiste na preparação e instalação do sistema na infra-estrutura computacional destino e na sua subsequente operação regular. envolve instalação de componentes aplicacionais necessários, definição de perfis, utilizadores e níveis de segurança, formação de utilizadores no sistema, entre outros. A elaboração de documentação sobre utilização do sistema é feita aqui.
Quais as tarefas/actividades relacionadas com Manutenção?
Tem por objectivo garantir que a ocorrência de bugs, alteração de requisitos e problemas de desempenho do sistema sejam convenientemente tratados. A manutenção desencadeia uma nova iteração no processo uma vez que envolve novas tarefas de analise, implementação, entre outras. Também é aqui que fazemos a operação do sistema, isto é, copias de segurança, verificação do sistema, adição de novos utilizadores, etc…
Indique e explique os dois modelos de processos de desenvolvimento de software?
Processo em cascata: As actividades a executar são agrupadas em tarefas e executadas sequencialmente, de forma a que uma tarefa só tem inicio quando a anterior terminar. Esta abordagem protege a empresa de desenvolvimento porque quando uma tarefa é acabada a mesma é aceite pelo cliente e é “fechada” não podendo ser alterada.
Processo iterativo (incremental): Corresponde à ideia de refinar pouco a pouco o âmbito e a concretização do sistema. O escopo do projecto não é alterado mas o detalhe vai aumentando em sucessivas iterações.