Arquiteto de Soluções em Edenred, Anhaguera Educacional
15 de May de 2015•0 gostou•629 visualizações
1 de 30
Engenharia de Software Aula 1 - Intro
15 de May de 2015•0 gostou•629 visualizações
Baixar para ler offline
Denunciar
Software
Aula 1
O que é software?
Quem faz o software?
Por que um software é importante?
Quais são os passos para se fazer um software?
Como tenho certeza que fiz um software corretamente?
3. Panorama
• O que é software?
• Quem faz o software?
• Por que um software é importante?
• Quais são os passos para se fazer um software?
• Como tenho certeza que fiz um software
corretamente?
8. Caso Ariane 5 - 1996
• Projeto da Agência Espacial Européia
• 10 anos de desenvolvimento
• U$ 8 Bilhões
• Carga avaliada em U$ 500 Milhões
10. Ariane 5 - 1996
• Trecho da "conclusão inicial":
A anomalia interna de software do SRI ocorreu durante a
execução de uma conversão de dados de um número de
64 bits em ponto flutuante para um inteiro de16 bits com
sinal. O valor do número em ponto flutuante era maior do
que poderia ser representado pelo inteiro de 16 bits com
sinal. O resultado foi um operando inválido. A instrução
de conversão de dados (em código ADA) não estava
protegida contra erros de operando, embora outras
conversões de variáveis equivalentes no mesmo
segmento de código estivessem protegidas.
12. Um software se desgasta?
Software
Hardware
Adaptado de Roger S. Pressman (Eng. de Software)
13. O que é um bom software?
• Um bom software deve prover as funcionalidades e o desempenho requeridos
pelo usuário, além disso deve ser confiável e fácil de manter e usar.
• O Software sempre faz o que o cliente deseja. Portanto, mesmo que os
clientes pensem em novas formas de usa-lo, ele não dará problemas ou
apresentará resultados inesperados.
• Um bom software é criado quando você utiliza padrões de projetos e
princípios comprovados e verdadeiros. Você manteve seus objetos livremente
unidos e o seu código é aberto para extensão mas fechado para modificação.
Isso também ajuda a tornar o código mais reutilizável, por isso você não
precisa trabalhar em tudo novamente para usar partes de sua aplicação em
outras ocasiões.
• Organização modular, Abstração de procedimentos e dados, Ocultamento da
informação, Alta coesão, Baixo acoplamento
15. Conceitos da Engenharia de
Software
• QUALIDADE: Toda Engenharia deve se fundamentar no
comprometimento com a qualidade.
• PROCESSO: É a base da engenharia de software,
organizando de maneira sequencial e lógica, todas as
etapas de concepção e desenvolvimento do software.
• MÉTODOS: Fornecem a definição de “como fazer” o
desenvolvimento de software.
• FERRAMENTAS: Realizam o suporte automatizado ou
semi-automatizado para os processos e métodos.
(exemplo: ferramentas case)
16. Engenharia de Software
• Engenharia de Software é uma área da computação
voltada à especificação, desenvolvimento e manutenção
de sistemas de software, com aplicação de tecnologias
e práticas de gerência de projetos e outras disciplinas,
visando organização, produtividade e qualidade.
(Wikipédia)
• Engenharia de Software é a criação e a utilização de
sólidos princípios de engenharia a fim de obter software
de maneira econômica, que seja confiável e que
trabalhe em máquinas reais. (Friedrich Ludwig Bauer -
1960)
17. Diversidade na Engenharia de
Software - Tipos de aplicações
• Aplicações Stand-alone
• Aplicações transacionais
• Sistemas de controle embutidos
• Sistemas de processamento em lotes
• Sistemas de entretenimento
• Sistemas de modelagem e simulação
• Sistemas de coletas de dados
• Sistemas de sistemas
18. • Reuso de Software - como podemos montar um
sistema a partir de componentes e sistemas de
software preexistentes.
• Desenvolvimento entregue de maneira incremental,
principalmente sistemas do tipo Web.
• Interface de usuários são restringidas pela
capacidade de navegadores.
• Mudança na organização dos softwares corporativos
Engenharia de Software e a
Internet
20. Ética na Engenharia de
Software
• PÚBLICO: Engenheiros de software devem agir de acordo com o interesse público.
• CLIENTE E EMPREGADOR: Engenheiros de software devem agir de maneira que
seja do melhor interesse de seu cliente e empregador e de acordo com o interesse
público.
• PRODUTO: Engenheiros de software devem garantir que seus produtos e
modificações relacionadas atendam aos mais altos padrões profissionais possível.
• JULGAMENTO: Engenheiros de software devem manter a integridade e a
independência em seu julgamento profissional.
• COLEGAS: Engenheiros de software devem auxiliar e ser justos com seus colegas.
• SI PRÓPRIO: Engenheiros de software devem participar da aprendizagem contínua
durante toda a vida, e devem promover uma abordagem ética para a prática da
profissão.
21. SWEBOK
• Guide to the Software Engineering Body of
Knowledge, é um documento criado sob o
patrocínio da IEEE com a finalidade de servir de
referência em assuntos considerados, de forma
generalizada pela comunidade, como pertinentes
a área de Engenharia de Software.
• O SWEBOK apresenta uma classificação
hierárquica dos tópicos tratados pela Engenharia
de Software, onde o nível mais alto são as Áreas
do Conhecimento.
22. Engenharia de Software Áreas
de Conhecimento - SWEBOK
1. Requisitos de Software
2. Projeto de Software (Design)
3. Construção de Software
4. Teste de Software
5. Manutenção de software
6. Gerência de Configuração de Software
7. Gerência da Engenharia de Software
8. Processos de Engenharia de Software
9. Ferramentas e Métodos da Engenharia de Software
10.Qualidade de Software
24. Estudo de Caso Faz Site
• Atividade individual.
• O video será exibido 2x.
• Crie uma lista com todos os pontos que vocês
identificarem como problemas na forma como a
empresa Faz Site atuou na concepção,
desenvolvimento e entrega do projeto em questão.
28. • Um processo de software é um conjunto de
atividades relacionadas que levam à produção de
um produto de software. Essas atividades podem
envolver o desenvolvimento de software a partir do
zero em uma linguagem padrão de programação
como C# ou Java.
Processo de Software
29. Estudo de Caso Faz Site
• Atividade individual.
• Para o estudo de caso Faz Site, crie um processo
de software que na concepção de vocês
garantiriam a entrega do projeto em questão com
sucesso.