Fundamentos e Processos Essenciais da Engenharia de Software
Classificado em Computação
Escrito em em
português com um tamanho de 8,59 KB
Engenharia de Software
Introdução
- A economia de todas as nações é dependente de software.
- Cada vez mais sistemas são controlados por software.
- A Engenharia de Software se preocupa com os métodos, teorias e ferramentas para o desenvolvimento de software.
Custo do Software
- Os custos de software geralmente dominam os custos do sistema de computador.
- Custa mais para se manter um software do que para desenvolvê-lo.
Produtos de Software
Genérico
Sistemas autônomos que são comercializados e vendidos a qualquer cliente que deseja comprá-los.
- Programas gráficos, ferramentas de gerenciamento de projetos, software CAD, software para propósitos específicos, tais como sistemas de registros odontológicos.
Atributos Essenciais do Software
- Manutenibilidade;
- Confiança e Proteção;
- Eficiência;
- Aceitabilidade.
Manutenibilidade
Refere-se à facilidade, precisão, segurança e economia na execução de ações de manutenção nesse sistema.
Confiança e Proteção
Um software confiável não deve causar prejuízos físicos ou econômicos no caso de falha no sistema. Usuários maliciosos não devem ser capazes de acessar ou prejudicar o sistema.
Eficiência
O software não deve desperdiçar os recursos do sistema, como memória e processador. Eficiência inclui capacidade de resposta, tempo de processamento, uso de memória, etc.
Aceitabilidade
Está baseada na aceitação do software pelo cliente: se o software é visual, fácil de se utilizar e se ele é compatível com outros sistemas usados por ele.
Essência da Engenharia de Software
- Compreender o Problema (Comunicação e análise)
- Planejar a Solução (Modelagem e projeto de software)
- Executar o Plano (Geração de código)
- Examinar o Resultado (Teste e garantia de qualidade)
Elementos de um Sistema Baseado em Computador
- Software
- Hardware
- Pessoal
- Banco de Dados
- Documentação
- Procedimentos
Entradas de Sistemas
Entradas Exógenas
Essas entradas ligam uma parte de uma determinada visão a outras partes do mesmo nível ou de outros níveis.
Entradas Endógenas
Essas entradas ligam componentes individuais de uma parte em uma determinada visão.
Arquiteturas de Sistemas
-
Arquitetura de Dados:
Fornece a estrutura para as necessidades da informação de um negócio ou função do negócio.
-
Arquitetura de Aplicação:
Abrange os elementos de um sistema que transformam objetos da arquitetura de dados para alguma finalidade do negócio.
-
Infraestrutura Tecnológica:
Fornece os fundamentos para a arquitetura de dados e arquitetura de aplicações.
Atividades do Processo de Software
- A Especificação de Software: Onde os clientes e engenheiros definem o software que deve ser produzido e as restrições sobre seu funcionamento.
- Desenvolvimento de Software: Em que o software é projetado e programado.
- Validação de Software: Verificar se o software está atendendo à necessidade do cliente.
- Evolução de Software: Atividade de atualização para o software, onde o software é modificado para refletir as mudanças de requisitos do cliente e do mercado.
Tipos de Aplicações de Software
- Aplicações Stand-alone: Aplicações feitas num computador local. Incluem toda a funcionalidade necessária e não precisam estar conectadas a uma rede.
- Interativas Baseadas em Transações: São aplicações executadas em um computador remoto e são acessadas pelos usuários a partir dos seus próprios PCs. Essas incluem aplicações web, tais como para e-commerce.
- Sistemas de Controle Embutidos: São aqueles que controlam e gerenciam dispositivos de hardware.
- Sistemas de Entretenimento: Para uso pessoal, e se destinam a entreter o usuário.
- Sistemas de Processamento de Lotes: Sistemas corporativos para processar dados em grandes lotes.
- Sistemas de Modelagem e Simulação: São desenvolvidos por cientistas e engenheiros para modelar processos físicos ou situações, que incluem muitos objetos separados que interagem entre si.
- Sistemas de Coleta de Dados: São sistemas que coletam dados do seu ambiente, junto com sensores, e enviam esses dados para outros sistemas, para processamento.
- Sistemas de Sistemas: São sistemas compostos por uma série de outros sistemas de software.
Modelos Genéricos de Processos de Software
- O Modelo Cascata: Fases separadas e distintas de especificação e desenvolvimento.
- Desenvolvimento Evolutivo: Especificação e Desenvolvimento são intercalados.
- Desenvolvimento Formal de Sistema: Modelo matemático do sistema é transformado em uma implementação.
- Desenvolvimento Baseado em Reuso: Sistema montado a partir de componentes existentes.
Modelos de Processos de Software
- Modelo Cascata
- Desenvolvimento Incremental
- Engenharia de Software Orientada a Reuso
Modelo Cascata
- Modelo dirigido a planos.
- Fases de especificação e desenvolvimento separadas e distintas.
Fases do Modelo Cascata
-
Análise e Definição dos Requisitos:
Estabelece os serviços, as restrições e as metas do sistema. Consulta o usuário e faz o detalhamento para a especificação dos requisitos.
-
Projeto de Sistemas e Software:
Define a arquitetura geral do sistema, aloca os requisitos de HW/SW, identifica as abstrações fundamentais dos sistemas de SW e seus relacionamentos.
-
Testes de Unidade e Implementação:
Desenvolvimento de um conjunto de programas, verificação e teste de cada unidade para o atendimento de sua especificação.
-
Integração e Testes do Sistema:
Integração das unidades individuais, teste do sistema completo, assegurar que todos os requisitos de SW foram atendidos, sistema entregue ao cliente.
-
Operação e Manutenção:
Instalação e utilização do sistema, correção de erros não identificados anteriormente.
Processos da Engenharia de Requisitos
- Estudo de Viabilidade: É viável construir o sistema?
- Elicitação e Análise de Requisitos: O que os stakeholders do sistema precisam ou esperam do sistema?
- Especificação de Requisitos: Definição dos requisitos detalhados.
- Validação de Requisitos: Verificação da completude dos requisitos.
Diretivas e Restrições do Projeto
Define para o que o software está sendo feito, para quem, e por quem vai ser desenvolvido. É onde se faz o levantamento de todas as restrições explicitadas pelo cliente. Nessa parte deve ser especificada a área a que se destina o software.
Tipos de Requisitos
- Requisitos de Usuários: Descrição em linguagem natural e diagramas dos serviços que o sistema fornece e suas restrições operacionais, escrito de uma forma que o cliente entenda.
- Requisitos de Sistemas: Documento estruturado estabelecendo descrições detalhadas dos serviços do sistema, escrito como um contrato entre cliente e consumidor.
- Especificação de Software: Descrição detalhada do software, pode servir como base para implementação ou concepção, escrito para desenvolvedores.
Classificação dos Requisitos Não-Funcionais
- Requisitos de Produtos: Especifica que características o produto deve ter: Velocidade, Confiabilidade, etc.
- Requisitos Organizacionais: Requisitos que falam sobre as políticas organizacionais da empresa: Padrões de Processo usados, Requisitos de implementação, etc.
- Exigências Externas: Requisitos que surgem de fatores externos do sistema: Requisitos Legais, Requisitos de Interoperabilidade, etc.