SlideShare una empresa de Scribd logo
1 de 49
Engenharia de Software
Coordenação Geral
Coordenador: Silvio Cesar Bogsan
Disciplina: Engenharia de Software
Professor: Prof. Ms. Ernesto Bedrikow
E-mail: ernesto@sumare.edu.br
Telefone: 3067-7999
Ernesto de Carvalho Bedrikow
 Formado em Ciências da Computação pela UFSC
 Pós Graduação em Engenharia de Software –POLI-USP
 Mestrado em Computação pelo Mackenzie – CMMI
 Doutorado – Informática Médica – H.C. – Projeto Inst. Adolfo Lutz
 Coordenador de Projetos implementação do ERP – Santa Casa
 Gestor de Sistemas especialistas na Sadia
 Participação em consultorias nos processos de Introdução, Implantação,
Avaliação de CMMI e MPS-Br.
 Integrante do Grupo Coordenador do SPIN-SP - www.spinsp.org.br
 Consultor de Projeto (Anatomia Patológica) – APC – www.apclab.com.br
 Desenvolvimento e Implantação de Projetos -www.sistemaclinica.com.br
Apresentações Pessoais
Framework
PDCA
Brainstorm
BSC
5W2H
PorterMatriz GUT
COSO
PM
CANVAS
DIC
E- COMMERCE
E- BUSINESS
COBIT 5
AUDITORIA
RISCO
 Introdução a engenharia de software; Aprender os
Modelos de processos de desenvolvimento de
software;
 Aprender Técnicas de gerenciamento e
planejamento de software;
 Requisitos e especificação de software; Métodos
de análise e projeto de software.;
 Garantia de qualidade de software; Teste e
revisão de software; Manutenção de software;
 Reengenharia e engenharia reversa ;
 Ferramentas e ambientes de software ;
 Padrões de desenvolvimento e documentação de
software ;
 Gerenciamento de configuração, Conhecer a
gestão de projetos de software: conceitos,
métricas, estimativas, cronogramação, gestão de
risco, gestão de qualidade e gestão de
modificações.
EMENTA
 Visão geral e princípios de engenharia de
software.
 Conhecimentos do ciclo de vida do software,
projeto de software, implementação de
software, gerenciamento de software,
qualidade de software.
 Contextualização da Engenharia de Software
avançada, Princípios da Engenharia de
Software avançada, Conceituação de Produto e
Processo de Software.
EMENTA
 Comparação entre os Paradigmas de
Desenvolvimento Software.
 Caracterização do Projeto de Software.
 Aprofundamento a Gerenciamento de Projetos.
 Aprofundamento de Qualidade de Software.
Conteúdo
 1. Introdução a Engenharia de Software
 2. Conhecimento do ciclo de vida do software
 3. Projeto de Software
 4. Implementação, gerenciamento e qualidade
de software
 5. Contextualização e princípios dos softwares
avançados
 6. Reengenharia e Engenharia reversa
 Dinâmica das aulas
 Sem monólogo, por favor!
• Tragam seus questionamentos, idéias e
experiências!
• A colaboração ajuda na construção do
conhecimento.
 Material em constante mudança
Mudança de Postura ou de Paradigma
Modelos
Project Model Canvas
GP PITCH
POR
QUE?
O
QUE?
QUEM?
QUANDO
e
QUANTO?
COMO?
05
Project Model Canvas
GP PITCH
JUSTIFICATIVAS
Passado
OBJ SMART REQUISITOS
CUSTOS
EQUIPE
PRODUTO
RESTRIÇÕES
BENEFÍCIOS
Futuro
GRUPOS DE
ENTREGAS
LINHA DO TEMPO
STAKEHOLDERS
Externos &
Fatores Externos
RISCOSPREMISSAS
04
Pausa para apresentação do SEMAT !!!!!!
Não faltam teorias de Engenharia de
Software
Boehm
Parnas
Conway
Dijkstra
Meyer
Wirth
Constantine
Sommerville Pressman
Software Engineering doesn’t lack theories
Não faltam teorias em Engenharia
Core Theory – The Essence
SEMAT quer fornecer o núcleo da teoria em que as
teorias mais especializadas podem estar
As Teorias são ilhas independentes
 Reunião do SPIN São Paulo
 Os modelos de qualidade
 CMMI – Engenharia - Serviço -
Desenvolvimento”
 MPS Br –Guia Geral
 MPS de Gestão de Pessoas
 Mais informações e inscrições no site
www.spinsp.org.br
Grupo de Melhoria de Processos de Software
Entendimento sobre Engenharia de Software
Exercícios !!!!
 Em grupos de até 5 alunos, discutam
sobre...
 Escolham um tema de projeto e elaborem um
 EAP !!!!!
 Caso de Uso !!!!
 CANVAS !!!!
 Pontos de Função !!!! Tamanho do software
 Custo do Projeto !!!! COCOMO
 Documentem as conclusões do grupo
 Somente alunos presentes na sala de aula
 Durante a atividade, passarei pelos grupos
para conhecê-los
Engenharia de Software
1. Processos de Software
2. Métodos Ágeis de Eng de Software
3. Engenharia de Requisitos
4. Gestão de Projetos de Software
5. Gestão de Configuração e Mudanças
6. Análise e Modelagem de Negócios
7. Arquitetura de Software
8. Qualidade de Processo de Software
9. Modelagem de Banco de Dados
Engenharia de Software
10. Qualidade de Produto de Software
11. Padrões de Software
12. Métricas de Software
13. Projeto de Interface Humano-Computador
Apresentar os conceitos que fundamentam a
Engenharia de Software.
Conscientizar sobre a importância do tema Engenharia
de Software.
Quebrar o paradigma de desenvolvimento no que se
refere a métodos e técnicas.
Conhecer de forma abrangente os Modelos de
Maturidade existentes no mercado.
Conhecer o Processo Unificado.
Processos de Software
Apresentar o Manifesto Ágil do Desenvolvimento de Software
e explicar o que são metodologias ágeis.
Explicar a Extreme Programming (XP), metodologia ágil de
desenvolvimento de software: ciclo de vida, levantamento de
requisitos e estimativas do sistema.
Práticas de levantamento desenvolvimento e validação dos
requisitos, práticas de codificação para o desenvolvimento
com Ruby, conceitos e aplicação do pair programming,
desenvolvimento baseado em TDD (Test Driven
Development), codificação e refactoring.
Métodos Ágeis de Engenharia de Software
As bases do XP
Extreme Programming
 O XP tem como base quatro valores:
comunicação, simplicidade, feedback e
coragem.
 Comunicação: A má comunicação é
motivo de insucesso em quase todo tipo
de projeto, inclusive nos projetos de
software. Logo, este é um dos valores
mais importantes do XP, bem como das
metodologias ágeis como um todo. Esta
comunicação deve fluir constantemente
 Comunicação: A má comunicação é
motivo de insucesso em quase todo tipo
de projeto, inclusive nos projetos de
software.
 Logo, este é um dos valores mais
importantes do XP, bem como das
metodologias ágeis como um todo.
 Esta comunicação deve fluir
constantemente através das técnicas a
serem aplicadas no processo de
desenvolvimento;
 Simplicidade: Manter a simplicidade é
difícil e é um dos princípios do XP
advindos do JIT.
 Assim, faça a coisa mais simples que
pode funcionar, mesmo assim, é um dos
princípios mais difíceis de se alcançar,
pois somos tentados a fazer algo
complexo pensando no futuro, mas é
importante lembrar que uma das filosofias
do JIT é a eliminação de desperdício,
assim, simplicidade é uma obrigação.
 O JIT é a base para a melhoria da posição
competitiva de uma empresa, em particular
no que se refere aos fatores velocidade,
qualidade e o preço dos produtos. Segundo
Slack, Chambers e Johnston, Just in time
(JIT) “significa produzir bens e serviços
exatamente no momento em que são
necessários – não antes para que não
formem estoques e não depois para que seus
clientes não tenham de esperar” (2009, p
482). Desta forma, o JIT visa atender à
demanda instantaneamente, com qualidade e
sem desperdício.
 Feedback: Muito se fala em feedback na
atualidade e aqui ele não é só necessário,
como um dos princípios que fazem com
que o XP tenha sucesso.
 Para isso, o uso do TDD passa a ser tão
importante, além disso, é importante o
feedback do cliente, por isso os ciclos
curtos, a integração contínua etc.
 Coragem: Este é o ultimo valor do XP, mas
não menos importante, pois é necessário
ter coragem de jogar um código fora e
iniciar do zero, coragem para mudanças.
 A comunicação nos dá coragem para a
mudança, pois temos a noção das reais
necessidades do cliente.
 Com base nestes valores, temos os princípios do XP.
 Os quatro valores geram os princípios básicos do XP:
 Feedback rápido através de ciclos curtos (iteração de uma a duas
semanas) e comunicação continua (com todos os envolvidos no
processo);
 Simplicidade presumida, onde deve-se tratar os problemas de
forma simples, ou seja, evitar tratar o problema com
complexidade, utilizando recursos que nunca serão utilizados,
fazendo apenas o necessário;
 As mudanças devem ser feitas de forma incremental. Grandes
modificações normalmente trazem grandes problemas, então
tratar a mudança com ciclos de mudanças curtos é mais eficiente
e atende as bases sistêmicas do paradigma.
 Alta qualidade: ninguém gosta de pessoas desleixadas, então a
qualidade deve ser sentida não só pelo cliente, mas pela equipe.
O teste não é uma opção, é uma obrigação.
Capacitar o aluno a alcançar consenso do cliente sobre o problema a
ser solucionado, bem como as características da solução e gerenciar
características.
Especificar, detalhar e rastrear requisitos de soluções sistêmicas que
atendam verdadeiramente às necessidades do cliente de solucionar o
problema.
Avaliar artefatos de software para garantir a qualidade do produto.
Discernir as melhores técnicas a serem aplicadas frente às
especificidades apresentadas em cada projeto de software.
Engenharia de Requisitos
Apresentar a importância do gerenciamento de projetos
nas organizações bem como suas aplicações.
Possibilitar uma visão geral dos conceitos de
gerenciamento de projetos.
Áreas de conhecimento conforme o PMBOK de maior
impacto nos projetos de software.
Analisar a adaptação do PMBOK para projetos ágeis.
Gestão de Projetos de Software
Motivar a utilização da gestão de configuração e
mudanças.
Estabelecer uma relação entre a engenharia de software e
a gestão de configuração e mudança.
Mostrar a relação existente entre a gestão de configuração
e a gestão de mudanças.
Modelar baselines, aplicar labels, recuperar artefatos na
gestão de configuração de modo a facilitar o gestão de
mudanças.
Mostrar as ferramentas de apoio usadas na gestão de
configuração e mudanças.
Projetar soluções corporativas utilizando a gestão de
configuração e mudanças.
Gestão de Configuração e Mudanças
Realizar a Modelagem de Negócio com o objetivo de
entender o contexto dos requisitos de sistemas de software.
Definição dos Cenários Operacionais, Nós Operacionais,
Capacidades e Processos.
Partição de processos de negócio pela identificação dos
eventos de negócio.
Coerência entre Evento, Processo, Dados e Estados.
Derivação os requisitos de sistemas a partir dos artefatos de
negócio.
Análise e Modelagem de Negócios
Construir e criticar arquiteturas de software para sistemas
corporativos, a partir de requisitos não-funcionais do sistema.
Entender como a concepção de arquitetura influencia no
processo de desenvolvimento de software e como usar
frameworks arquiteturais: Requisitos não funcionais, atributos de
qualidades e táticas para alcançar.
Criando a arquitetura utilizando ADD (Attribute-Driven Design).
Documentando arquiteturas utilizando visões arquiteturais.
Avaliação da arquitetura utilizando PoC (Proof of Concept),
Conceitos de Execução, ATAM (Architecture Trade-Off Analysis
Method), CBAM (Cost Benefit Analysis Method ) e QFD (Quality
Function Deployment).
Arquiteturas em linhas de produção. Modelos comuns de
arquitetura.
Arquitetura de Software
Motivar a utilização da gestão de configuração e mudanças.
Princípios de Qualidade de Processo de Software.
Aspectos de Qualidade de Software.
Visão Geral da maturidade de um processo de software: Modelos
existentes (CMMI, MPS.BR, ISO 9001 e ISO 9000-3).
Entender os principais aspectos de medição de maturidade de
processo do modelo CMMI por Áreas Chaves de Processo
(KPA´s).
Entender os principais aspectos de medição de maturidade de
processo do modelo MPS.BR.
Entender as principais diretrizes e requisitos de qualidade das
normas ISO 9001 e ISO 90003.
Como implementar Modelos de Maturidade.
Qualidade de Processo de Software
Introduzir a arquitetura de Sistemas Gerenciadores de Banco de Dados
e suas principais características (segurança, controle de concorrência,
integridade da informação).
Apresentar o Modelo Entidade-Relacionamento como ferramenta de
modelagem conceitual de bancos de dados e o mapeamento dessa
representação para o Modelo Relacional.
Discutir a implicação do uso de SGBD-s relacionais no
desenvolvimento de sistemas atuais, abordando em particular o uso da
UML para modelagem e o mapeamento objeto-relacional.
Modelagem de Banco de Dados
- Introduzir a visão multidimensional ao invés da visão tabular
derivada dos sistemas de processamento de transação,
permitindo que as informações sejam dispostas em diferentes
perspectivas, tornando a decisão mais natural, fácil e intuitiva,
auxiliando o tomador de decisão já que se pode verificar
tendências nos dados, ora utilizando de dados resumidos, ora
dados mais detalhados obtendo insight preciosos. Aprender
como desenvolver cubos OLAP através de uma ferramenta
atual e de grande demanda pelo mercado, baseando-se em
especificações de projeto.
Análise e Projeto Orientado a Objeto
-Apresentar os conceitos básicos de qualidadedo produto de
software.
- Analisar as diferenças entre garantia daqualidade do processo
de software X qualidade do produto de software.
- Apresentar as fases típicas de um processo estruturado de
qualidade do produto de software.
- Realizar um processode testes de software completo,
abrangendo desde a elaboração da estratégiade testes,
preparação dos casos de testes até o reporte dos defeitos
encontrados.
- Entender modelos de organização de testes(ex: fábrica de
teste) e os papéis e responsabilidades tipicamente
encontradosnestas estruturas.
Qualidade de Produto de Software
A partir de um modelo de análise orientado a objetos, resolver
problemas na concepção de projetos orientados a objetos
usando padrões e frameworks, entendendo os princípios que
os fundamentam: Introdução a Padrões de Projeto. Padrões de
Projeto clássicos (GoF).
Padrões Arquiteturais (Martin Fowler).
Frameworks de persistência e de teste unitário e outros
catálogos de padrões.
Padrões de Software
Apresentar técnicas de medição para referência da
qualidade e produtividade, através da utilização de
Análise de Pontos de Função (APF), Pontos por Caso
de Uso e o modelo paramétrico COCOMOII.
Métricas de Software
Introduzir o conceito de usabilidade e sua importância
para a qualidade de sistemas interativos.
Projetar interfaces humano-computador com boa
usabilidade, bem como a estruturar o processo de
desenvolvimento de forma a atingir esse objetivo.
Projeto de Interface Humano-Computador

Más contenido relacionado

La actualidad más candente

Analise de gerenciamento_de_projeto_de_software_utilizando_metodologia_agil_x...
Analise de gerenciamento_de_projeto_de_software_utilizando_metodologia_agil_x...Analise de gerenciamento_de_projeto_de_software_utilizando_metodologia_agil_x...
Analise de gerenciamento_de_projeto_de_software_utilizando_metodologia_agil_x...
Elisangela Paulino
 

La actualidad más candente (20)

Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Engenharia de Software Pressman
Engenharia de Software PressmanEngenharia de Software Pressman
Engenharia de Software Pressman
 
Princípios da engenharia de software (marcello thiry)
Princípios da engenharia de software (marcello thiry)Princípios da engenharia de software (marcello thiry)
Princípios da engenharia de software (marcello thiry)
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Cap1 introd-engenharia de software
Cap1 introd-engenharia de softwareCap1 introd-engenharia de software
Cap1 introd-engenharia de software
 
Metodologias ágeis de desenvolvimento trabalho
Metodologias ágeis de desenvolvimento   trabalhoMetodologias ágeis de desenvolvimento   trabalho
Metodologias ágeis de desenvolvimento trabalho
 
Melhoria de Processos de Software
Melhoria de Processos de SoftwareMelhoria de Processos de Software
Melhoria de Processos de Software
 
Modelagem Ágil
Modelagem ÁgilModelagem Ágil
Modelagem Ágil
 
Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e Scrum
 
Palestra Modelagem Ágil - Manoel Pimentel
Palestra Modelagem Ágil -  Manoel PimentelPalestra Modelagem Ágil -  Manoel Pimentel
Palestra Modelagem Ágil - Manoel Pimentel
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Analise de gerenciamento_de_projeto_de_software_utilizando_metodologia_agil_x...
Analise de gerenciamento_de_projeto_de_software_utilizando_metodologia_agil_x...Analise de gerenciamento_de_projeto_de_software_utilizando_metodologia_agil_x...
Analise de gerenciamento_de_projeto_de_software_utilizando_metodologia_agil_x...
 
Introdução a engenharia de software aula 02
Introdução a engenharia de software   aula 02Introdução a engenharia de software   aula 02
Introdução a engenharia de software aula 02
 
Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008
 
Introdução: eXtreme Programming
Introdução: eXtreme ProgrammingIntrodução: eXtreme Programming
Introdução: eXtreme Programming
 
Processo de Análise e Desenvolvimento de Software (PDS)
Processo de Análise e Desenvolvimento de Software (PDS)Processo de Análise e Desenvolvimento de Software (PDS)
Processo de Análise e Desenvolvimento de Software (PDS)
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01
 

Similar a Aula 1- ENGENHARIA DE SOFTWARE

XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
Rodrigo Branas
 
Oficina Métodos Ágeis UDESC
Oficina Métodos Ágeis UDESCOficina Métodos Ágeis UDESC
Oficina Métodos Ágeis UDESC
Wildtech
 
Palestra Métodos Ágeis SERPRO
Palestra Métodos Ágeis SERPROPalestra Métodos Ágeis SERPRO
Palestra Métodos Ágeis SERPRO
Wildtech
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a Modelagem
Rodrigo Branas
 

Similar a Aula 1- ENGENHARIA DE SOFTWARE (20)

Agilidade em projetos de software
Agilidade em projetos de softwareAgilidade em projetos de software
Agilidade em projetos de software
 
Aula01 introducao
Aula01 introducaoAula01 introducao
Aula01 introducao
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
 
Engenharia de Software
Engenharia de SoftwareEngenharia de Software
Engenharia de Software
 
Gerenciamento de projetos de TI
Gerenciamento de projetos de TIGerenciamento de projetos de TI
Gerenciamento de projetos de TI
 
Cinco motivos para você não adotar metodologias ágeis - Rafael Prikladnicki F...
Cinco motivos para você não adotar metodologias ágeis - Rafael Prikladnicki F...Cinco motivos para você não adotar metodologias ágeis - Rafael Prikladnicki F...
Cinco motivos para você não adotar metodologias ágeis - Rafael Prikladnicki F...
 
eXtreme Programming (XP)
eXtreme Programming (XP)eXtreme Programming (XP)
eXtreme Programming (XP)
 
Gestão Ágil de Projetos com Scrum
Gestão Ágil de Projetos com ScrumGestão Ágil de Projetos com Scrum
Gestão Ágil de Projetos com Scrum
 
SETIC Scrum & XP
SETIC Scrum & XPSETIC Scrum & XP
SETIC Scrum & XP
 
Leds zeppellin infraestrutura de apoio ao desenvolvimento
Leds zeppellin   infraestrutura de apoio ao desenvolvimentoLeds zeppellin   infraestrutura de apoio ao desenvolvimento
Leds zeppellin infraestrutura de apoio ao desenvolvimento
 
Analise de Requisitos Software
Analise de Requisitos SoftwareAnalise de Requisitos Software
Analise de Requisitos Software
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Oficina Métodos Ágeis UDESC
Oficina Métodos Ágeis UDESCOficina Métodos Ágeis UDESC
Oficina Métodos Ágeis UDESC
 
Palestra Métodos Ágeis SERPRO
Palestra Métodos Ágeis SERPROPalestra Métodos Ágeis SERPRO
Palestra Métodos Ágeis SERPRO
 
PLM-Summit 2014 | 8-9 abril | Apresentação 07/14 | Evandro Gama | Cadware-Tec...
PLM-Summit 2014 | 8-9 abril | Apresentação 07/14 | Evandro Gama | Cadware-Tec...PLM-Summit 2014 | 8-9 abril | Apresentação 07/14 | Evandro Gama | Cadware-Tec...
PLM-Summit 2014 | 8-9 abril | Apresentação 07/14 | Evandro Gama | Cadware-Tec...
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a Modelagem
 
Palestra sobre a Metodologia para Apoio à Decisão, Gerência e Implantação de ...
Palestra sobre a Metodologia para Apoio à Decisão, Gerência e Implantação de ...Palestra sobre a Metodologia para Apoio à Decisão, Gerência e Implantação de ...
Palestra sobre a Metodologia para Apoio à Decisão, Gerência e Implantação de ...
 
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À Demanda...
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À       Demanda...Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À       Demanda...
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À Demanda...
 
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMASLIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
 
Mudando a Cultura de uma Organização para o Pensamento Ágil
Mudando a Cultura de umaOrganização para o Pensamento ÁgilMudando a Cultura de umaOrganização para o Pensamento Ágil
Mudando a Cultura de uma Organização para o Pensamento Ágil
 

Más de Ernesto Bedrikow (6)

Aula 6 MGPDI
Aula 6  MGPDIAula 6  MGPDI
Aula 6 MGPDI
 
Spin sp medidas aplicadas a software - kaizen
Spin sp   medidas aplicadas a software - kaizenSpin sp   medidas aplicadas a software - kaizen
Spin sp medidas aplicadas a software - kaizen
 
SEMAT
SEMATSEMAT
SEMAT
 
SEMAT
SEMATSEMAT
SEMAT
 
Semat Engineering Method and Theory
Semat Engineering Method and TheorySemat Engineering Method and Theory
Semat Engineering Method and Theory
 
Administração Geral e Processos de Gestão
Administração Geral e Processos de GestãoAdministração Geral e Processos de Gestão
Administração Geral e Processos de Gestão
 

Último

Último (8)

Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Aula 1- ENGENHARIA DE SOFTWARE

  • 2. Coordenação Geral Coordenador: Silvio Cesar Bogsan Disciplina: Engenharia de Software Professor: Prof. Ms. Ernesto Bedrikow E-mail: ernesto@sumare.edu.br Telefone: 3067-7999
  • 3. Ernesto de Carvalho Bedrikow  Formado em Ciências da Computação pela UFSC  Pós Graduação em Engenharia de Software –POLI-USP  Mestrado em Computação pelo Mackenzie – CMMI  Doutorado – Informática Médica – H.C. – Projeto Inst. Adolfo Lutz  Coordenador de Projetos implementação do ERP – Santa Casa  Gestor de Sistemas especialistas na Sadia  Participação em consultorias nos processos de Introdução, Implantação, Avaliação de CMMI e MPS-Br.  Integrante do Grupo Coordenador do SPIN-SP - www.spinsp.org.br  Consultor de Projeto (Anatomia Patológica) – APC – www.apclab.com.br  Desenvolvimento e Implantação de Projetos -www.sistemaclinica.com.br Apresentações Pessoais
  • 5.  Introdução a engenharia de software; Aprender os Modelos de processos de desenvolvimento de software;  Aprender Técnicas de gerenciamento e planejamento de software;  Requisitos e especificação de software; Métodos de análise e projeto de software.;  Garantia de qualidade de software; Teste e revisão de software; Manutenção de software;
  • 6.  Reengenharia e engenharia reversa ;  Ferramentas e ambientes de software ;  Padrões de desenvolvimento e documentação de software ;  Gerenciamento de configuração, Conhecer a gestão de projetos de software: conceitos, métricas, estimativas, cronogramação, gestão de risco, gestão de qualidade e gestão de modificações.
  • 7. EMENTA  Visão geral e princípios de engenharia de software.  Conhecimentos do ciclo de vida do software, projeto de software, implementação de software, gerenciamento de software, qualidade de software.  Contextualização da Engenharia de Software avançada, Princípios da Engenharia de Software avançada, Conceituação de Produto e Processo de Software.
  • 8. EMENTA  Comparação entre os Paradigmas de Desenvolvimento Software.  Caracterização do Projeto de Software.  Aprofundamento a Gerenciamento de Projetos.  Aprofundamento de Qualidade de Software.
  • 9. Conteúdo  1. Introdução a Engenharia de Software  2. Conhecimento do ciclo de vida do software  3. Projeto de Software  4. Implementação, gerenciamento e qualidade de software  5. Contextualização e princípios dos softwares avançados  6. Reengenharia e Engenharia reversa
  • 10.  Dinâmica das aulas  Sem monólogo, por favor! • Tragam seus questionamentos, idéias e experiências! • A colaboração ajuda na construção do conhecimento.  Material em constante mudança
  • 11. Mudança de Postura ou de Paradigma
  • 13. Project Model Canvas GP PITCH POR QUE? O QUE? QUEM? QUANDO e QUANTO? COMO? 05
  • 14. Project Model Canvas GP PITCH JUSTIFICATIVAS Passado OBJ SMART REQUISITOS CUSTOS EQUIPE PRODUTO RESTRIÇÕES BENEFÍCIOS Futuro GRUPOS DE ENTREGAS LINHA DO TEMPO STAKEHOLDERS Externos & Fatores Externos RISCOSPREMISSAS 04
  • 15.
  • 16.
  • 17. Pausa para apresentação do SEMAT !!!!!!
  • 18. Não faltam teorias de Engenharia de Software Boehm Parnas Conway Dijkstra Meyer Wirth Constantine Sommerville Pressman
  • 19. Software Engineering doesn’t lack theories Não faltam teorias em Engenharia Core Theory – The Essence SEMAT quer fornecer o núcleo da teoria em que as teorias mais especializadas podem estar
  • 20. As Teorias são ilhas independentes
  • 21.
  • 22.  Reunião do SPIN São Paulo  Os modelos de qualidade  CMMI – Engenharia - Serviço - Desenvolvimento”  MPS Br –Guia Geral  MPS de Gestão de Pessoas  Mais informações e inscrições no site www.spinsp.org.br Grupo de Melhoria de Processos de Software
  • 23.
  • 24. Entendimento sobre Engenharia de Software Exercícios !!!!
  • 25.  Em grupos de até 5 alunos, discutam sobre...  Escolham um tema de projeto e elaborem um  EAP !!!!!  Caso de Uso !!!!  CANVAS !!!!  Pontos de Função !!!! Tamanho do software  Custo do Projeto !!!! COCOMO
  • 26.  Documentem as conclusões do grupo  Somente alunos presentes na sala de aula  Durante a atividade, passarei pelos grupos para conhecê-los
  • 27. Engenharia de Software 1. Processos de Software 2. Métodos Ágeis de Eng de Software 3. Engenharia de Requisitos 4. Gestão de Projetos de Software 5. Gestão de Configuração e Mudanças 6. Análise e Modelagem de Negócios 7. Arquitetura de Software 8. Qualidade de Processo de Software 9. Modelagem de Banco de Dados
  • 28. Engenharia de Software 10. Qualidade de Produto de Software 11. Padrões de Software 12. Métricas de Software 13. Projeto de Interface Humano-Computador
  • 29. Apresentar os conceitos que fundamentam a Engenharia de Software. Conscientizar sobre a importância do tema Engenharia de Software. Quebrar o paradigma de desenvolvimento no que se refere a métodos e técnicas. Conhecer de forma abrangente os Modelos de Maturidade existentes no mercado. Conhecer o Processo Unificado. Processos de Software
  • 30. Apresentar o Manifesto Ágil do Desenvolvimento de Software e explicar o que são metodologias ágeis. Explicar a Extreme Programming (XP), metodologia ágil de desenvolvimento de software: ciclo de vida, levantamento de requisitos e estimativas do sistema. Práticas de levantamento desenvolvimento e validação dos requisitos, práticas de codificação para o desenvolvimento com Ruby, conceitos e aplicação do pair programming, desenvolvimento baseado em TDD (Test Driven Development), codificação e refactoring. Métodos Ágeis de Engenharia de Software
  • 31. As bases do XP Extreme Programming  O XP tem como base quatro valores: comunicação, simplicidade, feedback e coragem.  Comunicação: A má comunicação é motivo de insucesso em quase todo tipo de projeto, inclusive nos projetos de software. Logo, este é um dos valores mais importantes do XP, bem como das metodologias ágeis como um todo. Esta comunicação deve fluir constantemente
  • 32.  Comunicação: A má comunicação é motivo de insucesso em quase todo tipo de projeto, inclusive nos projetos de software.  Logo, este é um dos valores mais importantes do XP, bem como das metodologias ágeis como um todo.  Esta comunicação deve fluir constantemente através das técnicas a serem aplicadas no processo de desenvolvimento;
  • 33.  Simplicidade: Manter a simplicidade é difícil e é um dos princípios do XP advindos do JIT.  Assim, faça a coisa mais simples que pode funcionar, mesmo assim, é um dos princípios mais difíceis de se alcançar, pois somos tentados a fazer algo complexo pensando no futuro, mas é importante lembrar que uma das filosofias do JIT é a eliminação de desperdício, assim, simplicidade é uma obrigação.
  • 34.  O JIT é a base para a melhoria da posição competitiva de uma empresa, em particular no que se refere aos fatores velocidade, qualidade e o preço dos produtos. Segundo Slack, Chambers e Johnston, Just in time (JIT) “significa produzir bens e serviços exatamente no momento em que são necessários – não antes para que não formem estoques e não depois para que seus clientes não tenham de esperar” (2009, p 482). Desta forma, o JIT visa atender à demanda instantaneamente, com qualidade e sem desperdício.
  • 35.  Feedback: Muito se fala em feedback na atualidade e aqui ele não é só necessário, como um dos princípios que fazem com que o XP tenha sucesso.  Para isso, o uso do TDD passa a ser tão importante, além disso, é importante o feedback do cliente, por isso os ciclos curtos, a integração contínua etc.
  • 36.  Coragem: Este é o ultimo valor do XP, mas não menos importante, pois é necessário ter coragem de jogar um código fora e iniciar do zero, coragem para mudanças.  A comunicação nos dá coragem para a mudança, pois temos a noção das reais necessidades do cliente.
  • 37.  Com base nestes valores, temos os princípios do XP.  Os quatro valores geram os princípios básicos do XP:  Feedback rápido através de ciclos curtos (iteração de uma a duas semanas) e comunicação continua (com todos os envolvidos no processo);  Simplicidade presumida, onde deve-se tratar os problemas de forma simples, ou seja, evitar tratar o problema com complexidade, utilizando recursos que nunca serão utilizados, fazendo apenas o necessário;  As mudanças devem ser feitas de forma incremental. Grandes modificações normalmente trazem grandes problemas, então tratar a mudança com ciclos de mudanças curtos é mais eficiente e atende as bases sistêmicas do paradigma.  Alta qualidade: ninguém gosta de pessoas desleixadas, então a qualidade deve ser sentida não só pelo cliente, mas pela equipe. O teste não é uma opção, é uma obrigação.
  • 38. Capacitar o aluno a alcançar consenso do cliente sobre o problema a ser solucionado, bem como as características da solução e gerenciar características. Especificar, detalhar e rastrear requisitos de soluções sistêmicas que atendam verdadeiramente às necessidades do cliente de solucionar o problema. Avaliar artefatos de software para garantir a qualidade do produto. Discernir as melhores técnicas a serem aplicadas frente às especificidades apresentadas em cada projeto de software. Engenharia de Requisitos
  • 39. Apresentar a importância do gerenciamento de projetos nas organizações bem como suas aplicações. Possibilitar uma visão geral dos conceitos de gerenciamento de projetos. Áreas de conhecimento conforme o PMBOK de maior impacto nos projetos de software. Analisar a adaptação do PMBOK para projetos ágeis. Gestão de Projetos de Software
  • 40. Motivar a utilização da gestão de configuração e mudanças. Estabelecer uma relação entre a engenharia de software e a gestão de configuração e mudança. Mostrar a relação existente entre a gestão de configuração e a gestão de mudanças. Modelar baselines, aplicar labels, recuperar artefatos na gestão de configuração de modo a facilitar o gestão de mudanças. Mostrar as ferramentas de apoio usadas na gestão de configuração e mudanças. Projetar soluções corporativas utilizando a gestão de configuração e mudanças. Gestão de Configuração e Mudanças
  • 41. Realizar a Modelagem de Negócio com o objetivo de entender o contexto dos requisitos de sistemas de software. Definição dos Cenários Operacionais, Nós Operacionais, Capacidades e Processos. Partição de processos de negócio pela identificação dos eventos de negócio. Coerência entre Evento, Processo, Dados e Estados. Derivação os requisitos de sistemas a partir dos artefatos de negócio. Análise e Modelagem de Negócios
  • 42. Construir e criticar arquiteturas de software para sistemas corporativos, a partir de requisitos não-funcionais do sistema. Entender como a concepção de arquitetura influencia no processo de desenvolvimento de software e como usar frameworks arquiteturais: Requisitos não funcionais, atributos de qualidades e táticas para alcançar. Criando a arquitetura utilizando ADD (Attribute-Driven Design). Documentando arquiteturas utilizando visões arquiteturais. Avaliação da arquitetura utilizando PoC (Proof of Concept), Conceitos de Execução, ATAM (Architecture Trade-Off Analysis Method), CBAM (Cost Benefit Analysis Method ) e QFD (Quality Function Deployment). Arquiteturas em linhas de produção. Modelos comuns de arquitetura. Arquitetura de Software
  • 43. Motivar a utilização da gestão de configuração e mudanças. Princípios de Qualidade de Processo de Software. Aspectos de Qualidade de Software. Visão Geral da maturidade de um processo de software: Modelos existentes (CMMI, MPS.BR, ISO 9001 e ISO 9000-3). Entender os principais aspectos de medição de maturidade de processo do modelo CMMI por Áreas Chaves de Processo (KPA´s). Entender os principais aspectos de medição de maturidade de processo do modelo MPS.BR. Entender as principais diretrizes e requisitos de qualidade das normas ISO 9001 e ISO 90003. Como implementar Modelos de Maturidade. Qualidade de Processo de Software
  • 44. Introduzir a arquitetura de Sistemas Gerenciadores de Banco de Dados e suas principais características (segurança, controle de concorrência, integridade da informação). Apresentar o Modelo Entidade-Relacionamento como ferramenta de modelagem conceitual de bancos de dados e o mapeamento dessa representação para o Modelo Relacional. Discutir a implicação do uso de SGBD-s relacionais no desenvolvimento de sistemas atuais, abordando em particular o uso da UML para modelagem e o mapeamento objeto-relacional. Modelagem de Banco de Dados
  • 45. - Introduzir a visão multidimensional ao invés da visão tabular derivada dos sistemas de processamento de transação, permitindo que as informações sejam dispostas em diferentes perspectivas, tornando a decisão mais natural, fácil e intuitiva, auxiliando o tomador de decisão já que se pode verificar tendências nos dados, ora utilizando de dados resumidos, ora dados mais detalhados obtendo insight preciosos. Aprender como desenvolver cubos OLAP através de uma ferramenta atual e de grande demanda pelo mercado, baseando-se em especificações de projeto. Análise e Projeto Orientado a Objeto
  • 46. -Apresentar os conceitos básicos de qualidadedo produto de software. - Analisar as diferenças entre garantia daqualidade do processo de software X qualidade do produto de software. - Apresentar as fases típicas de um processo estruturado de qualidade do produto de software. - Realizar um processode testes de software completo, abrangendo desde a elaboração da estratégiade testes, preparação dos casos de testes até o reporte dos defeitos encontrados. - Entender modelos de organização de testes(ex: fábrica de teste) e os papéis e responsabilidades tipicamente encontradosnestas estruturas. Qualidade de Produto de Software
  • 47. A partir de um modelo de análise orientado a objetos, resolver problemas na concepção de projetos orientados a objetos usando padrões e frameworks, entendendo os princípios que os fundamentam: Introdução a Padrões de Projeto. Padrões de Projeto clássicos (GoF). Padrões Arquiteturais (Martin Fowler). Frameworks de persistência e de teste unitário e outros catálogos de padrões. Padrões de Software
  • 48. Apresentar técnicas de medição para referência da qualidade e produtividade, através da utilização de Análise de Pontos de Função (APF), Pontos por Caso de Uso e o modelo paramétrico COCOMOII. Métricas de Software
  • 49. Introduzir o conceito de usabilidade e sua importância para a qualidade de sistemas interativos. Projetar interfaces humano-computador com boa usabilidade, bem como a estruturar o processo de desenvolvimento de forma a atingir esse objetivo. Projeto de Interface Humano-Computador