Engenharia de Software
Apresentação da disciplina Aula introdução
5 de fevereiro de 2017
Danilo Monteiro [email protected] monteiro.inf.br
1
O que veremos nesta aula ? Parte I J
• Perfil do Professor
• Ementa;
• Objetivos;
• Metodologia;
• Avaliação;
• Projeto;
Agenda
O que veremos nesta aula ? Parte II J
• Contextualização
• Mitos do desenvolvimento de software
• O que é Engenharia de Software?
• Por que ela é importante?
• Quais áreas existem?
Agenda
3
PERFIL PROFESSOR
Perfil Mercado
• UPE Consultoria JR, UPE JR;
• Grupo MrMedia;
• Elifoot mobile, ELIFOOT;
• Envolvido em pesquisas com empresas;
PERFIL PROFESSOR
Perfil Mercado
• UPE Consultoria JR, UPE JR;
• Grupo MrMedia;
• Elifoot mobile, ELIFOOT;
• Envolvido em pesquisas com empresas;
5
Site da disciplina
• www.monteiro.inf.br
• www.edulify.com/fafica/engenharia-de-
software
Objetivos
Geral:
Entender todos os aspectos da produção de um software gerenciando processos visando obter resultados com a qualidade requerida em seu desenvolvimento.
Específicos:
• Reconhecer diferentes elementos e etapas da cadeia produtiva de software, bem como processos adequados para diferentes
contextos de produção;
• Executar um processo tradicional de desenvolvimento de software, seguindo as etapas de levantamento de requisitos, análise e
design, construção , testes e implantação;
• Estimar custo e esforço necessário para o desenvolvimento de um produto de software.
7
Ementa
I Unidade
1.1 Processos de software
1.2. Documento do visão /Lean Canvas 1.3. Engenharia de requisitos
1.4. Desenvolvimento ágil de software
1.5. Rup
1.6. Modelagem de sistema
1.7. Projeto de Arquitetura II Unidade
2.1. Projeto e implementação 2.2. Teste de software
2.3. Gerenciamento de projetos
2.4. Planejamento de projetos
2.5. Gerenciamento de qualidade
Metodologia
Aulas expositivas sobre o conteúdo do projeto da disciplina;
Aulas práticas sobre os processos para se criar um software;
Minhas aulas são questionadoras, onde não importa errar na aula.
9
Objetivos
Avaliação 1 (Av1):
1.1. Processos de software
1.2. Documento do visão /Lean Canvas 1.3. Engenharia de requisitos
1.4. Desenvolvimento ágil de software 1.5. Rup
1.6. Modelagem de sistema 1.7. Projeto de Arquitetura Prova; (50% - Av1)
Documento de visão e Lean canvas (20% + - Av1) Exercícios (30%- Av1)
Avaliação 2 (Av2):
Projeto final (produto); (80% - Av2) Exercícios: (20% - Av2)
Média Final (MF):
MF = (Av1 + Av2) / 2
Dicas
Mesmos grupos de outras disciplinas;
Algum problema real;
Em Java;
Pensem em um problema e tragam para discussão;
11
Sugestão
Livros
Sommerville, Ian. Engenharia de Software. Prentice Hall.
2009.Pressman, Roger S. Engenharia de Software. McGraw- Hill. 2006.
Notas de aula do Professor Vinicius Garcia (UFPE) - Disponível em:
https://docs.google.com/viewer?a=v&pid=sites&srcid=Y2luLnVmcGUuYn
J8aWY2ODJ8Z3g6M2ZlMGI5MzBkZjIyNThmOQ;
Dúvidas
13
PARTE II
• Como se constrói um software?
Contextualização
Whaaaaaat????
15
Contextualização
Pensem em uma casa
Como ela é construída?
Contextualização
17
Contextualização
Contextualização
19
Hardware
Contextualização
Problemas no desenvolvimento de software
•Projetos estourando o orçamento
•Projetos estourando o prazo
•Software de baixa qualidade
•Software muitas vezes não atingiam os requisitos
•Projetos ingerenciaveis
•Código difícil de manter
Mitos do desenvolvimento
21
Mito 1 - ADM
“Já temos um manual repleto de padrões e procedimentos
para a construção de software. Isso não oferecerá ao meu
pessoal tudo o que eles precisam saber?”
Mitos do desenvolvimento
Mito 2 - ADM
“Meu pessoal tem Ferramentas de desenvolvimento de
software de última geração.”
Mitos do desenvolvimento
23
Mito 3 - ADM
“Se nós estamos atrasados nos prazos, podemos adicionar
mais programadores e recuperar o atraso”
Mitos do desenvolvimento
Mito 4 - Cliente
“Uma declaração geral dos objetivos é suficiente para
começar a escrever programas - podemos preencher os
detalhes mais tarde.”
Mitos do desenvolvimento
25
Mito 5 - Cliente
“Os requisitos de projeto modificam- se continuamente,
mas as mudanças podem ser facilmente acomodadas,
porque o software é flexível.”
Mitos do desenvolvimento
Mito 6 - Profissionais
Assim que escrevermos o programa e o colocarmos em
funcionamento nosso trabalho estará completo.
Mitos do desenvolvimento
27
Mito 7 - Profissionais
“Enquanto não tiver o programa "funcionando", eu não
terei realmente nenhuma maneira de avaliar sua
qualidade.”
O que é Engenharia de Software ?
O que é Engenharia de Software ?
O que é Engenharia de Software ?
29
Definições
O que é Engenharia de Software ?
Definições
O que é Engenharia de Software ?
31
Definições
O que é Engenharia de Software ?
Uma disciplina sócio-técnica voltada para o processo de construção de software, que propõe técnicas e processo que buscam menores custo e prazo, e uma maior qualidade do software e satisfação de todos envolvidos.
Definições
O que é Engenharia de Software ?
33
Uma disciplina sócio-técnica voltada para o processo de construção de software, que propõe técnicas e processo que buscam menores custo e prazo , e uma maior qualidade do software e satisfação de todos envolvidos.
Definições
O que é Engenharia de Software ?
Com suas palavras, o que vocês acham que é a Engenharia de Software?
Definições
O que é Engenharia de Software ?
35
Quando ela surgiu ?
Quais áreas existem?
SWEBOk
•Requisitos de Software
•Projeto (Design) de Software
•Implementação de Software
•Teste de Software
•Manutenção de software
•Gerência de Configuração de Software
•Processos de Engenharia de Software
•Ferramentas e Métodos de Engenharia de Software
•Qualidade de Software
37
Simpósio Brasileiro de Engenharia de Software
Aplicações da engenharia de software na indústria
Aspectos Sociais da engenharia de software
Confiabilidade e disponibilidade de software
CSCW e engenharia de software
Desenvolvimento orientado a modelos Engenharia de requisitos
Engenharia de software experimental Engenharia de software orientada a agentes
Engenharia de software orientada a aspectos
Engenharia de software orientada a componentes
Engenharia de software para a WEB Fundamentos teóricos e métodos formais Linha de produto de software
Manutenção de Software
Métodos, técnicas, linguagens e ferramentas para engenharia de software
Métricas e medições em engenharia de software
Processos de software (incluindo métodos ágeis)
Qualidade de software e modelos de qualidade
Reengenharia de software Reutilização de software
Verificação, validação e teste de software
Quais áreas existem?
O QUE APRENDEMOS HOJE?
FINALIZANDO
39
EXERCICIO
1)Encontre a definição científica de Engenharia de Software (software engineering) atribuída por pelo menos 2 autores diferentes.http://scholar.google.com.br/
2)Defina o que é Engenharia de software para vocês
3)Escolha uma das áreas do SBES e ache uma definição da
mesma
LEITURA SUGERIDA
Capítulo 1 - Sommerville, Ian. Engenharia de Software. Prentice Hall. 2009.
Engenharia de Software Disponível em:
http://www.infoescola.com/informatica/engenharia-de-software/
41