visão e princípios básicos da engenharia de software...atividade 1. explique por que é...
TRANSCRIPT
Visão e princípios básicos da Engenharia de Software
Prof. Naan Cardoso
Conteúdo
• O que é software?
• Tipos Fundamentais de Software;
• Engenharia de Software;
• Processo de Software;
• Modelo de processo de Software;
• Paradigmas de desenvolvimento de Software;
• Atributos de um bom software;
• Quais são os desafios da Engenharia de Software?
O que é Software?
Programa de computador e
documentação associada. Os
produtos de software podem ser
desenvolvidos para um cliente
específico ou para um mercado
geral.
Programa
Documentação do Sistema
Documentação do Usuário
Sites Web
Tipos fundamentais de software
• Produtos Genéricos
São sistemas desenvolvidos por uma organização evendido no mercado para qualquer cliente disposto a comprá-los.
• Produtos sob encomenda
São softwares desenvolvidos para um cliente especifico.
Engenharia de Software
“Engenharia de Software é uma disciplina deengenharia relacionada a todos os aspectosde produção de software.”
(SOMMERVILLE, 2007)
Produção de Software
Análise Econômica
Análise de requisitos de software
Especificação
Arquitetura de Software
Implementação (ou codificação)
Teste
Documentação
Suporte e Treinamento de Software
Manutenção
Engenharia de Software
“A engenharia de software não está relacionadaapenas com os processos técnicos dedesenvolvimento, mas também com as atividadesde gerenciamento de projetos de software e odesenvolvimento de ferramentas.”
(SOMMERVILLE, 2007)
Gerenciamento de Projeto
Atividade de Gerenciamento
Planejamento de Projeto
Cronograma do Projeto
Gerenciamento de Riscos
Processo de Software
Um processo de software é umconjunto de atividades e resultadosassociados que produz um produto desoftware.Especificação de
software
Desenvolvimento de software
Validação de software
Evolução de software
Modelo de Processo de Software
É uma descrição simplificada desse processo que apresenta uma visãodele
• Modelo workflow
Sequência de atividades do processo;
Representação das ações humanas.
• Fluxo de dados ou modelo de atividades
Demonstra as transformações ocorridas no processo;• Modelo de papel/ação.
Representa os papeis das pessoas envolvidas e suas atividades.
Paradigmas de desenvolvimento de software
A maioria dos modelos de processo de software é baseadaem um dos três modelos gerais:
• Modelo em cascata
• Desenvolvimento interativo
• Baseada em componentes
Atributos de um bom software
Característica do Produto
Facilidade de Manutenção
Confiança
Eficiência
Usabilidade
Crise de Software...
25% dos projetos são cancelados
O tempo de desenvolvimento é bem maior do que o estimado
75% dos sistemas não funcionam como planejado
A manutenção e reutilização são difíceis
Os problemas são proporcionais a complexidade dos sistemas
Crise de Software: Razões
Falta de envolvimento do
usuário
Análise e projeto inadequados
Falta de flexibilidade no projeto
Prazos longosElevada rotatividade
de pessoal
Má qualidade dos métodos, linguagens,
ferramentas e processos
Crise de Software: Razões
Velocidade da mudança tecnológica;
Dificuldade de formalização;
Velocidade na mudança dos mercados;
Velocidade na obsolescência dos sistemas;
Incapacidade das estruturas de SI para;
Acompanhar a velocidade das mudanças.
Crise de Software: Perguntas
Por que os custos são tão elevados?
▪ Não há controle sobre prazos ou
planejamento sobre equipes e recursos
▪ O levantamento de requisitos não é
realizado de forma integrada com o cliente
e dentro de padrões antecipadamente
projetados
Crise de Software: Perguntas
Por que os cronogramas não são cumpridos?
▪ Falta de interação entre usuário e analista
▪ Baixo conhecimento/descrição do problema
▪ Nível de experiência da equipe de
desenvolvimento
Crise de Software: Perguntas
Por que é difícil medir o progresso durante odesenvolvimento?
▪ Porque não há referências. Há falta de um plano com metas e prazos definidos.
Por que os erros não são detectados antes daliberação das versões?
▪ Controle de qualidade não é objetivo desde o princípio do desenvolvimento.
Crise de Software: Perguntas
Por que a produtividade é baixa?
▪ Aprendizado dos usuários ao longo do projeto
▪ Alterações dos requisitos provocadas pormudanças de tecnologia, legislação oumercado
▪ Implicações para a implementação somentepercebidas ao tempo da implementação
Quais são os desafios da Engenharia de Software?
• O desafio da heterogeneidade
• O desafio da entrega
• O desafio da confiança
Como garantir que o trabalho foi feito corretamente?
Responsabilidade profissional e ética
O Engenheiro de Software deve sempre defender padrõesnormais de honestidade e integridade.
Você não deve usar sua habilidade e sua capacidade para secomportar de maneira desonesta ou de modo que trará máreputação para a profissão de Engenharia de Software.
Responsabilidade profissional e ética
Padrões de comportamento aceitável:
1. Confidencialidade
2. Competência
3. Direitos sobre propriedade intelectual
4. Mau uso dos computadores
Responsabilidade profissional e ética
Código de ética e prática profissional da engenharia de software (ACM/IEEE-CS), diz que os engenheiros de software devem:
1. PÚBLICO: agir com interesse público
2. CLIENTE E EMPREGADOR: agir dentro dos melhores interesses de seucliente e empregador, de forma consistente com o interesse público
3. PRODUTO: assegurar que seus produtos e as modificações a elesrelacionadas atendam aos mais altos padrões profissionais possíveis
4. JULGAMENTO: manter a integridade e a independência em seu julgamentoprofissional
Responsabilidade profissional e ética
5. GERENCIAMENTO: os gerentes e líderes de engenharia de softwaredevem aceitar e promover uma abordagem ética no gerenciamento dedesenvolvimento e manutenção de software
6. PROFISSÃO: promover a integridade e a reputação da profissão de formaconsistente com o interesse público
7. COLEGAS: ser honestos e colaborativos com seus colegas
8. INDIVÍDUO: participar, ao longo da vida, aprendendo, respeitando epromovendo uma abordagem ética na prática da profissão.
Atividade
1. Explique por que é apropriado considerar que o software é mais do que os
programas que podem ser executados pelos usuários finais do sistema.
2. Quais são as diferenças entre o desenvolvimento de produto genérico de
software e o desenvolvimento de software sob encomenda?
3. Quais são os quatro principais atributos que todo produto de software deve
ter? Sugira quatro outros atributos que as vezes podem ser significativos.
4. Qual a importância da conformidade com o aspecto confiabilidade no
desenvolvimento de sistemas de software? Dê exemplos de 02 (dois)
problemas relacionados à não-conformidade com esse aspecto.
Atividade
5. Comente sobre a seguinte frase: “Se você não atacar os riscos doprojeto ativamente, então estes irão ativamente atacar você”.
6. Apresente 03 problemas encontrados no desenvolvimento de sistemasde software nos dias atuais e exemplifique.
7. Além dos desafios de heterogeneidade, entrega rápida e confiança,identifique outros problemas diários que a engenharia de softwareprovavelmente está enfrentando neste século.