Aula1

Aula1


DisciplinaProcessos de Desenvolvimento de Software7.364 materiais35.532 seguidores
Pré-visualização2 páginas
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 \u2013 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)
\u201cé um ramo da engenharia cujo foco é justamente o desenvolvimento de SW de alta qualidade dentro de custos adequados. \u201c
Pressman (2006)
\u201cÉ 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 \u2018A Crise de Software\u2019. 
 
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 \u201cThe Standish Group\u201d: 
\u201capenas 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).\u201d
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)	
\u201cnã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\u201d
É composto de partes: 
Arquivos de configuração \u2013 são os arquivos utilizados para configurar o programa;
Documentação do sistema \u2013 descreve a estrutura do sistema;
Documentação do usuário \u2013 explica ao usuário como operar o sistema;	
Sites Web \u2013 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 \u2013 sistemas produzidos por uma empresa e vendidos no mercado para qualquer cliente .
 
Produtos sob encomenda \u2013 programas solicitados por um cliente (customizado), feitos sob medida para uma necessidade de negócio específica. 
Mudança no cenário acima \u2013 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 \u2013 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) \u2013 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