Buscar

Engenharia de Software: Conceitos e Desafios

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

AULA 1-INTRODUÇÃO A PDS
Atividade em grupo 
Elabore uma resposta para as seguintes perguntas:
1 - O que você imagina ser Engenharia de Software?
2 - O processo de desenvolvimento de SW é simples ou complexo? Justifique. 
3 – Você seria capaz de utilizar alguma metáfora para definir o processo de desenvolvimento de SW?
Unidade 1: Conceitos Gerais de Processo de Desenvolvimento de Software
Cenário Atual
Dependência de sistemas complexos baseados em computador
Demanda de novos desenvolvimentos e manutenção dos programas atuais
Definição de Engenharia de Software
Sommerville (2007)
“é um ramo da engenharia cujo foco é justamente o desenvolvimento de SW de alta qualidade dentro de custos adequados. “
Pressman (2006)
“É a criação e a utilização de sólidos princípios de engenharia a fim de obter softwares econômicos que sejam confiáveis e que trabalhem eficientemente em máquinas reais
 
Engenharia de Software
Software : abstrato
Demanda tempo maior de desenvolvimento se não for bem compreendido
Risco de entrega de produto fora do planejamento original
Estas e outras dificuldades vem sendo debatidas ao longo de décadas
É uma crise da indústria de SW? 
Atividade em grupo: leitura e reflexão do texto ‘A Crise de Software’. 
 
A Crise de Software
Reflexão que culminou o final da década de 60
Referência de artigo: The Humble Programmer (EDSGER DIJKSTRA, 1972)
Segundo “The Standish Group”: 
“apenas um terço de projetos de software podem ser considerados bem-sucedidos, enquanto o restante é cancelado e/ou apresenta uma falha crítica (ou finalizado com atraso, ou custando mais do que inicialmente estimado, ou entregando menos funcionalidades do que havia sido previamente combinado com o cliente).”
Segundo Booch, o assunto está na moda desde a década de 70 e ainda continuamos em busca de uma solução.
Algumas causas da crise
Ausência de metodologia de desenvolvimento 
Ignorar cliente e usuário final 
Requisitos e especificações incompletas
Objetivos nebulosos (ausência de visão comum entre o que o cliente deseja e o que os desenvolvedores estão projetando)
Expectativas irrealistas (incerteza quanto ao escopo a ser atingido)
Problemas de comunicação (informalidades, pouca documentação, baixo entendimento entre as partes etc)
Ausência de recursos (humanos, financeiros, infra-estrutura etc)
CONSEQUÊNCIAS
Projetos estouram prazos e orçamentos e gerando produtos de baixa qualidade
SWs não atendem às necessidades dos usuários
 
Em gestão de projetos...
Engenharia de Software
Desenvolvimento de técnicas desde 1968 para composição do escopo da engenharia de software 	
Qual a melhor abordagem?
Diversidade de abordagens em virtude de ampla diversidade de sistemas nas organizações
 
Conceito de SW
Sommerville (2007)	
“não é apenas o programa de computador. Ele representa todos os dados de documentação e configuração associados e necessários para que o programa opere corretamente”
É composto de partes: 
Arquivos de configuração – são os arquivos utilizados para configurar o programa;
Documentação do sistema – descreve a estrutura do sistema;
Documentação do usuário – explica ao usuário como operar o sistema;	
Sites Web – meios através dos quais os usuários obtém informações recentes sobre o produto
 
Tipos de SW
Ainda de acordo com Sommerville (2007):	
Produtos genéricos – sistemas produzidos por uma empresa e vendidos no mercado para qualquer cliente .
 
Produtos sob encomenda – programas solicitados por um cliente (customizado), feitos sob medida para uma necessidade de negócio específica. 
Mudança no cenário acima – muitas empresas de SW desenvolvem um produto genérico e modificam-no de acordo com as necessidades de um cliente específico. 
 
Métodos de engenharia de SW
Sommerville (2007):	
Os métodos de engenharia de SW são abordagens estruturadas voltadas para o desenvolvimento de SW cujo objetivo é facilitar a produção de SW de alta qualidade dentro de custos adequados. Alguns destes métodos são:
Análise estruturada
Análise OO
 
Atributos de um bom SW
Sommerville (2007):	
Alguns exemplos:
Comportamento do SW quando está em execução
Estrutura e a organização do código-fonte
Documentação do sistema
O tempo de resposta do SW
Facilidade de entendimento do código do programa
 
Atributos de um bom SW
Importante	
O que se espera de um programa depende de sua natureza. Exemplos:
O que esperar de um sistema bancário? Segurança
O que esperar de um jogo? Rapidez
 
Atributos de um bom SW
Outras características de um bom SW:
	
Facilidade de manutenção
Confiança
Eficiência (SW não deve desperdiçar recursos do sistema, como memória e ciclos do processador)
Usabilidade
 
Atributos de um bom SW
A contribuição de Pfleeger (2003) 
	
Qualidade de SW baseada em visões: 
Visão transcendental (o ideal de Platão)
Visão do usuário
Visão do fabricante (visão antes e depois da entrega do produto)
Visão do produto (características internas do produto – métricas)
Visão do mercado
 
Desafios para a Engenharia de SW
Sommerville (2007) 
	
O desafio da heterogeneidade
O desafio da entrega
O desafio da confiança 
 
Responsabilidades do engenheiro de SW
Sommerville (2007) 
	
Confidencialidade
Competência
Direitos de Propriedade Intelectual
Mau uso dos computadores
Questões de origem cultural ou de princípios 
 
Uma analogia para engenharia de SW
Pfleeger (2003) – a metáfora da construção da casa
	
Cenário
Chico e Bety contrataram alguém para construir uma casa. Devido a complexidade e tamanho, eles decidiram contratar a empresa Demolição C&A. O primeiro evento entre as partes acontece para que os clientes informem o que desejam. Aspectos discutidos neste encontro: 
Aparência desejada da casa
Número de cômodos
Área de lazer (piscina, sauna, churrasqueira)
Intenções de expansão (andares superiores)
Neste encontro, Chico e Bety falam sem embasamento técnico ou sequer sabem se o projeto da casa é viável
 
Uma analogia para engenharia de SW
A empresa Demolição C&A faz um estudo e elabora um projeto arquitetônico. Chico e Bety revisam o projeto e, uma vez aprovado, a construção da casa começa.
Durante a construção, Chico e Bety inspecionarão o local da construção e, durante a obra, podem tentar modificar algo do projeto arquitetônico original. Várias destas mudanças podem ocorrer durante o projeto. 
Antes de se mudarem, vários componentes são testados na obra (encanamentos, sistema elétrico, etc). 
Havendo algo fora das especificações, Chico e Bety solicitam à empresa que verifique e conserte, se for necessário. 
 
Uma analogia para engenharia de SW
Zoom no projeto....
Como há muitas pessoas trabalhando no projeto, e essencial ter uma documentação (plantas baixas, desenhos arquitetônicos, desenhos das instalações elétricas e hidráulicas)
Chico e Bety podem intervir a todo instante durante a construção como causas de algumas situações:
-Chico e Bety podem ter novas idéias à medida que a casa toma forma
-Algumas partes da casa, como as janelas que eles queriam comprar, só estarão prontas depois que a casa estiver finalizada, o que os leva a substituí-las por outras que já estejam no mercado 
-Alguns detalhes do projeto planejados inicialmente podem se tornar inviáveis (expansão para andares superiores, por exemplo)
 
Uma analogia para engenharia de SW
-A construtora também pode sugerir algumas mudanças em resposta às solicitações de Chico e Bety, mudando algumas características da casa
-A construtora deve fornecer cópias das plantas, dos diagramas elétricos e hidráulicos, dos manuais dos equipamentos ou qualquer outra documentação necessária que permitam a Chico e Bety eventuais modificações ou reparos depois de terem mudado para a casa
Resumo do processo de construção: 
-Identificar e analisar os requisitos
-Produzir e documentar todo o projeto da casa
-Produzir
as especificações detalhadas da casa
-Identificar e projetar os componentes
-Construir cada componente da casa
-Testar cada componente da casa
-Integrar os componentes e fazer as modificações finais depois de os moradores terem se mudado para a casa
-Manutenção contínua da casa pelos moradores
 
Construindo um sistema
O processo de construção da casa é algo extremamente complexo e que envolve: 
Mudanças nos processos, produtos ou recursos utilizados
Habilidade e experiência
De forma semelhante, o desenvolvimento de SW é como o da casa
Chico e Bety = clientes
Empresa Demolição = desenvolvedor de SW
Desenvolvimento de sistema envolve usuários, clientes e desenvolvedores. 
 
Construindo um sistema
Uma solicitação de requisição para construção de um SW segue alguns passos:
Definir requisitos que descrevem o sistema
Criação do projeto do sistema, considerando a perspectiva do cliente (apresentação de telas, os relatórios que o sistema produzirá, como os usuários interagirão com o sistema)
Projeto é revisado pelo cliente. Quando aprovado, o projeto geral é usado para projetar os programas individuais envolvidos
Projeto do programa, incluindo a escrita (código)
Testes (módulo, integração e de sistema) 
Entrega do sistema
Manutenção

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando