Analise de requisitos
Por: r3natoakira • 11/11/2015 • Trabalho acadêmico • 2.041 Palavras (9 Páginas) • 351 Visualizações
UNIVERSIDADE ANHANGUERA DO BRASIL
CAMILA DUARTE DE SOUZA | RA: 9977020732 |
DIEGO AUGUSTO SILVA | RA: 8641308718 |
LEONARDO DA SILVA VIANA | RA: 8483182139 |
LUCAS BARBOSA DA SILVA | RA: 9089490905 |
RALPHY DA SILVA NASCIMENTO | RA: 8485177380 |
RENATO AKIRA KOSAKA | RA: 8408106848 |
SABRINA MIRANDA | RA: 8687299224 |
VICTOR HENRIQUE APOLONIO DOS SANTOS | RA: 8070827926 |
RELÁTORIO 1 - ANALISE DOS REQUISITOS
OSASCO
2014
RESUMO 1.1 - CONCEITOS GERAIS DE ENGENHARIA DE SOFTWARE
Engenharia de software, possui o foco em desenvolvimento de sistemas dentro dos custos adequados, mas mantendo uma alta qualidade.
Software é algo sem restrições naturais e leis, o limite é a imaginação. Pode ser definido como sequência de instruções escritas para serem interpretadas por um computador com o objetivo de executar tarefas específicas, também pode ser definido como programas que comandam o funcionamento de um computador.
A engenharia de software é responsável por todos os estágios da produção de um software, que são:
- Especificação de Software: Onde é definido o software a ser produzido e suas restrições.
- Desenvolvimento: Onde ele é programado.
- Validação de Software: Nesta etapa, ocorre uma verificação para ver se o software está correto.
- Evolução de Software: Onde o mesmo é atualizado para se adaptar as mudanças do mercado.
Um bom software, deve ser programado de uma forma organizada e de modo que outros programadores possam entender, assim facilitando futuras atualizações e manutenções. O software deve ser seguro, estável e não pode desperdiçar recursos do computador e, claro, deve ter uma boa usabilidade, pois só assim teremos a confiança e a satisfação do cliente.
Os processos de software, são complexos e dependem de um julgamento humano. Existem dois modelos principais na engenharia de software, modelo cascata e o desenvolvimento evolucionário.
- O Modelo em Cascata, compreende as especificações, considera as atividades fundamentais, validação, evolução e desenvolvimento, e representa isso como processos separados, geralmente ela é o primeiro modelo a ser publicado.
[pic 1]
- Definição de Requisito: Este processo é definido junto ao usuário, ele decide qual as funções do sistema.
- Projeto de Software: Envolve a identificação e a descrição fundamental do sistema.
- Implementação do Teste da Unidade: O teste unitário, envolve a verificação de que cada unidade atende suas especificações.
- Integração e Teste do Sistema: Os programas são testados como um sistema completo, para garantir seu funcionamento e logo depois, liberados para o cliente.
- Operação e manutenção: O sistema é instalado e colocado em operação e caso houver erros que não foram detectados em outros testes anteriores, haverá manutenção.
Desenvolvimento Evolucionário
Sistema que é desenvolvido com início baseado nas opiniões dos usuários, onde as melhorias vão ocorrendo em versões melhoradas até que se encontre um ideal, são dois tipos importantes de desenvolvimento evolucionário:
- O Desenvolvimento Exploratório, se inicia com as partes do sistema já compreendidas. Ele evolui conforme o cliente vai propondo novas características.
- A Prototipação Throwaway (Throw-away), tem o objetivo de desenvolver com base na compreensão dos requisitos do cliente para se ter uma melhor definição de requisitos do cliente para se ter uma melhor definição de requisitos para o sistema, onde o protótipo se inicia nas ideias mal compreendidas.
E analisando dos pontos de vista da engenharia e do gerenciamento, existem dois problemas que afetam o desenvolvimento evolucionário, o primeiro torna inviável o processo, pois os gerentes precisam de produtos regulares para medir o progresso, se os sistemas são produzidos rapidamente, torna-se inviável do ponto de vista econômico, produzir documento para cada nova versão. Com isso, em segunda instância, os sistemas são mal estruturados, pois a mudança contínua acaba corrompendo a estrutura do sistema, tornando as mudanças cada vez mais difíceis e onerosas.
Para um software de pequeno ou médio porte, com até quinhentos mil linhas de códigos, a abordagem evolucionária seja o ideal, agora os problemas se tornam particularmente graves para sistemas de grande porte e com longo ciclo de vida, onde diversas equipes desenvolvem partes do sistema.
A engenharia de software baseada em componentes, depende de uma base de componentes de software reutilizáveis. Esses componentes podem ser sistemas comerciais independentes que fornecem uma funcionalidade específica. Ela apresenta os estágios de análise de componentes, modificação de requisitos, projeto de sistema com reuso, desenvolvimento e integração.
[pic 2]
Iteração de Processos
Projetos de grande porte sofrem mudanças constantes, isso porque os requisitos de sistema mudam conforme a empresa que está adquirindo responde às pressões externas, assim como quando surgem novas tecnologias, forçando a mudança dos projetos.
A entrega incremental é uma abordagem que combina as vantagens do modelo em cascata. Dessa forma, o cliente identifica em linhas gerais, os serviços que o sistema irá oferecer, podendo identificar quais serviços são prioridades ou não. Definido um número de incrementos, cada um deles irá fornecer um subconjunto de funções do sistema. Os serviços são adicionados aos incrementos conforme a prioridade, sendo eles os primeiros a serem entregues. Quando concluídos e entregue ao cliente, estes podem colocá-lo em operação parte da funcionalidade do sistema. E a medida que outros incrementos são concluídos, acabam integrados aos já existentes, aprimorando a funcionalidade do sistema.
...