Tipos de Software e Processos de Desenvolvimento
Classificado em Tecnologia
Escrito em em português com um tamanho de 4,94 KB
Software Básico: Coleção de programas que dão suporte a outros programas. Exemplos incluem sistemas operacionais como o Windows.
Software de Tempo Real: Monitora, analisa e controla eventos do mundo real, exigindo respostas dentro de restrições de tempo estritas.
Software Comercial: A maior área particular de software.
Software Científico e de Engenharia: Caracterizado por algoritmos de processamento numérico.
Software Embutido: Controla produtos e sistemas para mercados industriais e de consumo.
Software de Inteligência Artificial: Utiliza algoritmos não numéricos para resolver problemas complexos.
Software Aplicativo: Executa tarefas que servem diretamente ao usuário, como jogos e processadores de texto.
Software Utilitário: Administra o ambiente do computador, como programas de backup e antivírus.
Componentes de Software: Criados através de conversões que mapeiam exigências do cliente para código executável.
Engenharia de Software: Compreende métodos, ferramentas e procedimentos para o desenvolvimento de software. As ferramentas de engenharia de software oferecem suporte automatizado ou semi-automatizado aos métodos. O CASE (Computer-Aided Software Engineering) combina hardware, software e um banco de dados de engenharia de software. Os procedimentos da engenharia de software ligam métodos e ferramentas.
Processo do Software: Grupo de atividades para especificação, projeto, implementação e teste de sistemas de software.
A escolha de um modelo de processo de software deve considerar:
- A natureza do projeto e da aplicação.
- Os métodos e ferramentas a serem utilizados.
- Os controles e produtos a serem entregues.
Modelos de Processo:
- Modelo Cascata (Waterfall): Clássico, com fases distintas de especificação e desenvolvimento. Problema: Projetos reais raramente seguem seu fluxo sequencial.
- Prototipação: Permite o refinamento iterativo dos requisitos, produzindo um protótipo a cada iteração. Problema: O cliente pode aceitar versões incompletas.
- Modelo em Espiral: Um modelo incremental que intercala especificação e desenvolvimento.
Manutenção de Software:
- Corretiva: Diagnóstico e correção de erros.
- Adaptativa: Adaptação a mudanças no ambiente externo.
- Perfectiva: Acréscimos funcionais e de desempenho conforme exigência do cliente.
- Preventiva: Melhoria da confiabilidade e manutenibilidade futura (ex: reengenharia).
Requisitos de Software:
- Definição: Pode variar de declarações abstratas a especificações matemáticas.
- Tipos:
- Requisitos de Usuário: Declarações em linguagem natural e diagramas sobre serviços e restrições.
- Requisitos de Sistema: Documento estruturado com descrições detalhadas das funções.
- Requisitos Funcionais: Especificam os serviços que o sistema deve fornecer e como deve reagir a entradas.
- Requisitos Não Funcionais: Restrições sobre serviços, como timing, padrões e processo de desenvolvimento.
- Requisitos de Domínio: Refletem as características do domínio de aplicação.
- Requisitos de Produto: Especificam o comportamento do produto (velocidade, confiabilidade).
- Requisitos Organizacionais: Consequência de políticas e procedimentos da organização.
- Requisitos Externos: Surgem de fatores externos (interoperabilidade, requisitos legais).
Fases do Gerenciamento de Requisitos:
- Estudo de viabilidade.
- Elicitação e análise de requisitos.
- Validação dos requisitos.
- Gerenciamento dos Requisitos.
Verificação de Requisitos:
- Validade: O sistema atende às necessidades do cliente?
- Consistência: Existem conflitos entre requisitos?
- Completeza: Todas as funções requisitadas foram incluídas?
- Realismo: Os requisitos são implementáveis com o orçamento e tecnologia disponíveis?
- Facilidade de Verificação: Os requisitos podem ser verificados?
Exemplo de Sistema: O sistema LIBSYS é um sistema de biblioteca que oferece uma interface única para diversos bancos de dados de artigos.