Você está na página 1de 40

Campus Graças

Introdução a Engenharia de Software e


Gestão ágil de Projetos

PROFESSOR:

Adilson da Silva
CURSO ( 202 4 . 1)

Apresentação baseada em
apresenta ções criadas pelos
professores Mauricio Braga e Ricardo
Baudel
CURRÍCULO DO DOCENTE
Prof. Adilson da Silva
Campus Graças
Graduado em Ciência da Computação pela Universidade Católica
de Pernambuco. Pós-graduado em Tecnologia da Informação
pela UFPE, Pós-graduado em Desenvolvimento Gerencial -
Gestão por competência pela Faculdade Santa Maria, Pós-
graduado em Metodologias Ativas da Educação e Mestre em
Engenharia de Software pelo C.E.S.A.R.EDU. Atualmente é
professor do Grupo SER Educacional, é Analista de Sistemas da
Empresa Municipal de Informática da Prefeitura de Recife
(EMPREL) e Gerente do Setor de Arrecadação da Prefeitura da
Cidade de Recife. Trabalha no Laboratório de Inovações
Acadêmicas do Grupo Ser Educacional.
https://lattes.cnpq.br/7221002795193400
adilson.silva@sereducacional.com
@prof.adilson.silva
Campus Graças

Introdução a Engenharia
de Software
Introdução
Campus Graças

 Praticamente todos os países hoje em dia dependem de


software:
 Infra-estrutura e serviços nacionais governamentais (fazenda,
INSS, sistema eleitoral, etc) utilizam sistemas
computadorizados;
 A indústria, o comércio e o sistema financeiro dos países
desenvolvidos encontram-se hoje plenamente automatizados;
 Maioria dos produtos elétricos lançados atualmente incluem um
computador e um software de controle.
Software
Campus Graças

 Presente em todas as áreas da economia;

 Representa uma fração significativa do PIB dos países


desenvolvidos.

 Em conseqüência disso, produzir e manter software de


qualidade dentro de custos e prazos adequados é
fundamental para o bom funcionamento da economia
das nações.
Características do software
Campus Graças

 Abstrato e intangível, não é limitado por materiais nem é


controlado pelas leis da física;

 Potencial ilimitado devido a ausência de restrições;

 Ausência de restrições a criação de software favorece a


complexidade e dificulta a compreensão do mesmo.
Crise do software
Campus Graças

 Tem sua origem na evolução tecnológica, que viabilizou


a construção, a custo baixo, de hardware cada vez mais
poderoso;

 Aumento do poder computacional viabilizou a construção


de aplicações até então consideradas inviáveis;

 Software desenvolvido para aproveitar o novo potencial


computacional era várias vezes maior e mais complexo
que os sistemas construídos anteriormente.
Crise do software
Campus Graças
 Enquanto os custos de hardware caíam, os custos de software
aumentavam rapidamente;

 Projetos iniciados não raras vezes eram abandonados sem serem


concluídos;
 O software desenvolvido:
 Era entregue com grande atraso;
 Possuía defeitos (bugs);
 Não era confiável;
 Era difícil de manter;
 Custava bem mais caro que o previsto inicialmente.
Exemplo
Campus Graças

 No início da década de 80, a receita federal dos EUA contratou a


empresa Sperry Corporation para construir um sistema automatizado
de processamento de impostos federais:
 Custo inicial: US$ 103 milhões;
 Em 1985, foram pagos mais 90 milhões além do valor inicial;
 Nesse mesmo ano, problemas causaram atraso nas entregas
das restituições, causando um prejuízo a receita federal de US$
40 milhões em juros e US$ 23 milhões em horas extras para os
funcionários que ficaram tentando consertar o atraso.
Exemplo
Campus Graças

• Em 1985, o projeto foi relatado no Washington Post. O jornal americano


afirmou que “ o sistema se mostrou inadequado a carga de trabalho,
custou cerca de duas vezes o esperado e deve ser logo substituído”.

• Em 1996, a situação ainda não havia melhorado


Crise do software
Campus Graças

 A experiência com projetos mal-sucedidos mostrou que o processo


informal utilizado anteriormente para construir software não era suficiente
para desenvolver os novos sistemas;

 Novas técnicas e métodos eram necessários para controlar a


complexidade inerente aos grandes sistemas de software;

 Essas técnicas tornaram-se parte da engenharia de software, sendo


amplamente utilizadas hoje em dia
O que é software?
Campus Graças
 Um software consiste de:
 Arquivos de configuração;
 Documentação do software, que descreve a estrutura do
sistema, como documento de requisitos e modelos que
descrevem o projeto do mesmo;
 Documentação do usuário, necessária para operar
corretamente o sistema;
 Programas que realizam as funções de interesse do usuário.

 Podem ser desenvolvidos para um cliente específico ou


para o mercado.
Tipos de software
Campus Graças

 Genérico:
 São desenvolvidos para venda a diferentes tipos de
consumidores;
 Especificação é controlada pela organização que desenvolve o produto;
 Ex: Word, Excel, etc.

 Sob encomenda (customizados):


 Desenvolvidos sob encomenda de um cliente;
 Criados de acordo com a especificação fornecida pelo cliente.
Atributos de um bom software
Campus Graças

 Também chamados atributos não funcionais, estão


relacionados diretamente a qualidade do software;

 São universais, não estando relacionados diretamente com o


que o software faz;

 Dizem respeito tanto ao comportamento do software quando


em execução quanto a sua estrutura.
Atributos de um bom software
Campus Graças

Atributo Descrição
Facilidade de O software deve ser escrito de forma a poder ser modificado
manutenção posteriormente sem que isso exija um grande esforço da equipe de
desenvolvimento.
Confiança O software deve funcionar de forma confiável, possuindo mecanismos
para evitar a perda de dados bem como danos físicos ou econômicos
no caso de falha do sistema.
Eficiência O software não deve desperdiçar recursos do sistema, como ciclos
do processador e memória.
Usabilidade O software deve ser de fácil entendimento e utilização por parte dos
usuários para os quais foi feito.
Exercício
Campus Graças

 Além dos 4 atributos que um software de qualidade pode ter, mencione


4 outros atributos que também podem ser relevantes para um sistema.
Custo do software
Campus Graças

 Responde pela maior parte do custo de implantação de um


sistema informatizado;

 O custo do software envolve não apenas o seu


desenvolvimento, mas também a sua implantação (estrutura
para mantê-lo funcionando, treinamento dos usuários, etc) bem
como a evolução do mesmo;

 Uma das metas da engenharia de software é reduzir o custo do


software.
Engenharia de software
Campus Graças

 Conceito surgiu em 1968, em uma conferência organizada


para discutir a ‘crise do software’;

 Ramo da engenharia que se tem como meta o desenvolvimento de


software de alta qualidade dentro de prazos e custos adequados;

 Abrange todos os aspectos da produção de software, desde os


estágios iniciais da especificação do sistema, passando pelo
desenvolvimento, entrega ao cliente e evolução (manutenção) do
mesmo;
Engenharia de software
Campus Graças

 Não está relacionada apenas com os processos técnicos de


construção de software, mas com atividades como o
gerenciamento de projeto de software e o desenvolvimento de
ferramentas, métodos e teorias que apóiem a produção de
software.
Custo da engenharia de software
Campus Graças

 Aproximadamente 60% dos custos são custos de


desenvolvimento e 40% são custos de testes do sistema.
Esses valores podem variar dependendo do:
 Tipo de sistema sendo desenvolvido;
 Requisitos do sistema, tais como performance e confiabilidade;
 Processo utilizado na sua construção.

 No caso de softwares customizados, custos de evolução


costumam superar os custos de desenvolvimento.

20/38
Exercício
Campus Graças

 Explique porque os custos de teste de sistema tendem a ser mais


altos para os produtos genéricos de software quando comparados
com os softwares customizados.

21/38
Questões sobre o desenvolvimento de
software Campus Graças

 Algumas questões sobre o desenvolvimento de software:


 Porque a construção de um software leva tanto tempo?
 Porque desenvolver programas custa tão caro?
 Porque softwares costumam ser entregues com defeitos
(bugs)?
 Porque não é possível encontrar todos os erros antes de
entregar o software aos clientes?
 Porque é tão difícil avaliar o progresso do desenvolvimento de
um software?
Desenvolvimento de software
Campus Graças

 Diferente de produtos físicos, software não é fabricado,


mas sim desenvolvido.

 Custos se concentram no desenvolvimento. Produção de


cópias extras custa pouco perto do que é gasto com o
projeto e construção do programa.
Desenvolvimento de software
Campus Graças
 Software não se desgasta, mas se deteriora devido a
mudanças:
Desenvolvimento de software
Campus Graças

 A construção de produtos manufaturados é feita a partir de


componentes padronizados e testados, diminuindo o tempo de
desenvolvimento do produto e aumentando a sua confiabilidade;
 Ao construir uma placa de hardware, um engenheiro seleciona as partes
(diodos, resistores, chips, etc) que irão compor a placa a partir de
catálogos.
 Estes componentes possuem uma interface e uma função bem definida,
tendo eficácia comprovada.

 Em caso de defeito em um componente, a sua substituição é simples de ser


realizada.
Desenvolvimento de software
Campus Graças

 Diferente do hardware, a maioria dos programas ainda é feita sob


encomenda.
 A maior parte do software desenvolvido não costuma ser reutilizado em
outros projetos, aumentando o custo e o tempo de desenvolvimento;

 Presença de erros é inevitável quando se produz código novo;

 O conserto é mais difícil (e caro) do que no caso do hardware.


Alguns mitos do desenvolvimento
de software Campus Graças

 A especificação dos objetivos do software é suficiente para


iniciar o desenvolvimento;
 Uma descrição incompleta dos requisitos é o principal motivo do fracasso
de projetos de software.

 Se o desenvolvimento atrasar, basta contratar mais gente


para colocá-lo em dia;
 Adicionar mais pessoas a um projeto já atrasado pode atrasá-lo ainda
mais.
Alguns mitos do desenvolvimento
de software Campus Graças

 O trabalho termina quando produzimos o programa e ele funciona.


 A ausência de documentação tornará ainda mais difícil (e cara) a manutenção
do software.

 Mudanças e eventuais correções podem ser deixadas para o final


do desenvolvimento, quando o programa estiver pronto.
 A medida que o projeto avança, mais caro e difícil se tornam mudanças e
correções.
Custo de mudanças em um software
Campus Graças
60-100x

1.5-6x
1x

Definição Desenvolvimento Após o término


Alguns mitos do desenvolvimento
de software Campus Graças

 Minha equipe tem tudo o que precisa para construir software de


qualidade dentro do prazo, afinal, compramos máquinas modernas
para eles utilizarem.
 É preciso ter mais do que apenas máquinas modernas para desenvolver software
de qualidade dentro do prazo. Ferramentas CASE são mais importantes que
hardware quando se trata de aumentar a qualidade do produto e a produtividade
da equipe. Apesar disso, seu potencial é pouco explorado pela equipe de
desenvolvimento.

30/38
Alguns mitos do desenvolvimento
de software Campus Graças
 Se eu terceirizar o desenvolvimento do software, posso relaxar e
deixar a empresa tomar conta de tudo.
 Se a empresa não participar ativamente do projeto, as chances do sistema não
atender as necessidades reais da organização aumentam.

Os requisitos do sistema estão sempre mudando, mas isso não é


 problema, afinal, o software é flexível então pode acomodar as
mudanças sem problemas.
 Embora seja verdade que requisitos mudam e que o software pode ser
modificado para incorporar as mudanças, o custo das mudanças aumenta
dependendo do estágio em que o desenvolvimento se encontra quando elas
são propostas.
Métodos de Engenharia de Software
Campus Graças
 Abordagem estruturada para desenvolvimento de sistemas que tem
como meta facilitar o desenvolvimento de software;

 Incluem modelos de sistema, regras, recomendações de projeto e


orientação de processo:
 Modelos de sistema: Modelos gráficos que devem ser
produzidos de acordo com alguma notação;
 Regras: Restrições aplicadas a criação dos modelos de sistema;
 Recomendações: Conselhos (guidelines) para a realização de um bom
projeto;
 Orientações de processo: Quais atividades realizar bem como sugestões
de como fazê-las.
Exercício
Campus Graças

 Os métodos da engenharia de software apenas se popularizaram


com o surgimento de ferramentas CASE para apoiá-los. Sugira 5
tipos de apoio a métodos que podem ser fornecidos pelas
ferramentas case.

33/38
Ferramentas para desenvolvimento de
software Campus Graças

 Computer Aided Software Engineering, ou Engenharia de Software


Auxiliada por Computador, abrange uma larga faixa de diferentes tipos
de programas que são usados para apoiar as atividades do processo
de software;

 Métodos costumam ter associada uma ou mais ferramentas CASE


que facilitam o uso do mesmo;

 Ex: programas para construção de modelos de software, ferramentas


para testes unitários, software para controle de versão, etc.

34/38
Desafios atuais da engenharia de software
Campus Graças

 O século 21 apresenta os seguintes desafios para a engenharia


de software:
 Heterogeneidade;
 Entrega;
 Confiança.

35/38
Heterogeneidade
Campus Graças

 Novos sistemas necessitam operar como sistemas distribuídos, rodando


em redes privadas e na internet, trocando informações com diferentes
computadores e sistemas operacionais;
 Sistemas precisam interagir com sistemas legados,
escritos em diferentes linguagens de programação;

 Software construído deve ser flexível o suficiente para se


adaptar a essa realidade.
Entrega
Campus Graças

 Engenharia de software demanda tempo. O tempo é necessário para


garantir a qualidade do produto sendo desenvolvido.

 Ambiente de negócios de hoje muda rapidamente, e o software de


apoio deve acompanhar o ritmo de mudanças. Como conseqüência, o
mercado exige soluções complexas desenvolvidas em prazo cada vez
menor;

 Desafio: reduzir os prazos de desenvolvimento sem reduzir a


qualidade.

37/38
Confiança
Campus Graças

 Uma vez que o software está presente em todos os aspectos da


vida das pessoas, sendo responsável até mesmo pela vida delas, é
essencial que possamos confiar nele.
 Transportes, medicina, engenharia, comércio, todos empregam software para
realizar seu trabalho de forma eficiente e com custo reduzido;
 Sistemas remotos são cada vez mais usados.

 Desafio: Desenvolver técnicas que demonstrem que o software


merece a confiança dos usuários.
Exercício
Campus Graças

 Além dos desafios de heterogeneidade, entrega rápida e confiança,


aponte outros problemas e desafios para a engenharia de software no
século 21.

39/38
Obrigado
E - mail:adilson.silva@sereducacional.com

@prof.Adilson.silva

Você também pode gostar