Engenharia de Software Aula 1 - Intro

30
Engenharia de Softwares e Gerência de Projetos Prof. Rudson Kiyoshi Souza Carvalho Anhanguera - 2015 Engenharia de Software - Parte 1

Transcript of Engenharia de Software Aula 1 - Intro

Page 1: Engenharia de Software Aula 1 - Intro

Engenharia de Softwares e Gerência de Projetos

Prof. Rudson Kiyoshi Souza Carvalho Anhanguera - 2015

Engenharia de Software - Parte 1

Page 2: Engenharia de Software Aula 1 - Intro

Engenharia de Softwares e Gerência de Projetos.

Page 3: Engenharia de Software Aula 1 - Intro

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?

Page 4: Engenharia de Software Aula 1 - Intro

Desenvolvimento de Programas de Computador

Page 5: Engenharia de Software Aula 1 - Intro

Quem pode programar?

Page 6: Engenharia de Software Aula 1 - Intro

Desenvolvimento Profissional de Software

Quem esta criando um software de maneira profissional e quem esta criando um software de maneira amadora?

Page 7: Engenharia de Software Aula 1 - Intro

Desenvolvimento Profissional de Software

Quando preciso de um software construído de maneira profissional e quando preciso de um software construído de maneira amadora?

Page 8: Engenharia de Software Aula 1 - Intro

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

Page 9: Engenharia de Software Aula 1 - Intro
Page 10: Engenharia de Software Aula 1 - Intro

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.

Page 11: Engenharia de Software Aula 1 - Intro
Page 12: Engenharia de Software Aula 1 - Intro

Um software se desgasta?

Software

Hardware

Adaptado de Roger S. Pressman (Eng. de Software)

Page 13: Engenharia de Software Aula 1 - Intro

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

Page 14: Engenharia de Software Aula 1 - Intro

Conceitos da Engenharia de Software

Adaptado de Roger S. Pressman (Eng. de Software)

Page 15: Engenharia de Software Aula 1 - Intro

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)

Page 16: Engenharia de Software Aula 1 - Intro

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)

Page 17: Engenharia de Software Aula 1 - Intro

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

Page 18: Engenharia de Software Aula 1 - Intro

• 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

Page 19: Engenharia de Software Aula 1 - Intro

Ética na Engenharia de Software

Page 20: Engenharia de Software Aula 1 - Intro

É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.

Page 21: Engenharia de Software Aula 1 - Intro

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.

Page 22: Engenharia de Software Aula 1 - Intro

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

Page 23: Engenharia de Software Aula 1 - Intro

Estudo de Caso Faz Site

Page 24: Engenharia de Software Aula 1 - Intro

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.

Page 25: Engenharia de Software Aula 1 - Intro
Page 26: Engenharia de Software Aula 1 - Intro

Processos de Software

Page 27: Engenharia de Software Aula 1 - Intro

O que é um processo de Software?

Page 28: Engenharia de Software Aula 1 - Intro

• 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

Page 29: Engenharia de Software Aula 1 - Intro

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.

Page 30: Engenharia de Software Aula 1 - Intro