tópicos desta aula: o que é engenharia de software? o que...

26
ADS / REDES / ENGENHARIA Prof. Celso Candido PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Tópicos desta Aula: O que é Engenharia de Software? O que é Software? Para que serve? Qual sua importância?

Upload: dodan

Post on 10-Nov-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Tópicos desta Aula: O que é Engenharia de Software? O que é Software? Para que serve? Qual sua importância?

Page 2: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

2

Será que seria uma das disciplinas da Informática, ou da Ciência da Computação?

O que é Engenharia de Software?

No geral Informática faz parte da Ciências da Computação.

E ambas fazem parte da Engenharia de Software.

Page 3: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

3

Segundo o dicionário Aurélio Eletrônico temos as seguintes definições para informática e ciência:

O que é Engenharia de Software?

Informática – Visa ao tratamento da informação através do uso de equipamentos e procedimentos da área de processamento de dados.

Ciência – Conjunto de conhecimentos socialmente adquiridos ou produzidos, historicamente acumulados, dotados de universalidade e objetividade que permitem sua transmissão, e estruturados com métodos, teorias e linguagens próprias, que visam compreender e, poss., orientar a natureza e as atividades humanas.

Page 4: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

4

O que é Engenharia de Software? Processamento de dados – Manipulação dos dados em um sistema computacional, que tecnicamente equivale à execução de instruções por processador(es), e que abrange a entrada, verificação, armazenamento, recuperação, transformação e produção de novas informações a partir dos dados iniciais.

Page 5: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

5

O que é Engenharia de Software? Engenharia – Arte de aplicar conhecimentos científicos e empíricos e certas habilitações específicas à criação de estruturas, dispositivos e processos que se utilizam para converter recursos naturais em formas adequadas ao atendimento das necessidades humanas.

Vamos fazer uma analise dos itens em negrito, para entendermos melhor a Engenharia:

Arte (Matéria Dominada) – Em engenharia é a idéia de transformar o material através do emprego das faculdades humanas. Na Engenharia de Software, a matéria dominada consiste em máquinas de processamento da informação configuradas e programadas.

Page 6: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

6

O que é Engenharia de Software? Conhecimentos Científicos – Uma parte dos métodos da engenharia provém da ciência e a outra parte dos métodos da Engenharia de Software provém da Ciência da Computação.

Conhecimentos Empíricos – Provém da experiência prática dos métodos da engenharia, e não apenas da pesquisa científica.

Dispositivos e Estruturas – O engenheiro reúne dispositivos em estruturas capazes de satisfazer uma necessidade humana. A criação de estruturas é essencial para que se extraia uma função útil do conjunto de dispositivos

Habilitações Específicas – Toda engenharia é uma atividade realizada por pessoas. Para isto, estas pessoas têm de ter habilitações específicas.

Page 7: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

7

O que é Engenharia de Software? Processos – Em engenharia, são “maneiras pelas quais se realiza uma operação, segundo determinadas normas”. O método da engenharia se baseia na ação sistemática, sem improvisação.

Recursos Naturais – Toda engenharia parte de recursos naturais. Em Engenharia de Software são as máquinas de tratamento da informação.

Atendimento as necessidades Humanas – Conhecimento, alimentação, moradia, segurança, afeição, auto-estima..., fazem parte das necessidades humana, justificadas por produtos da engenharia em sua satisfação. Já a Engenharia de Software procura gerar valor através dos recursos do processamento de informação.

Formas Adequadas – São conversões para satisfazer às necessidades humanas. Na Engenharia de Software, estas formas são os programas de computador.

Page 8: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

8

Uma aplicação?

O que é um Software?

Um programa do computador?

Alguma coisa que permita executar uma determinada tarefa?

Page 9: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

9

São programas para sistemas informatizados com documentação associada aos requisitos, modelos de projeto, manuais de usuário, etc.

O que é um Software?

Geralmente desenvolvidos para clientes particulares (sistemas personalizados) ou para uso geral no mercado.

Podem ser desenvolvidos nos formatos: Genéricos – Para qualquer cliente, como exemplo temos: Excel ou

Word. Sendo suas especificações da organização que os desenvolve.

Personalizados – Desenvolvido de acordo com as especificações estabelecidas pelo cliente.

Softwares novos podem ser desenvolvidos, reconfigurando um software genérico ou softwares existentes. Exemplo: SAP, Web Services, etc.

Page 10: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

10

São um conjunto de determinadas atividades com o objetivo de desenvolver, atualizar ou evoluir um software.

O que é um Processo de Software?

As atividades genéricas para todos ou quase todos os processos de software são:

Especificação – O sistema deverá fazer o que? Quais as restrições de desenvolvimento?

Desenvolvimento – Como será a produção do sistema de software, projeto e programação.

Validação – Usado para verificar se o software está dentro das expectativas do cliente.

Evolução – Como serão as mudanças no software em função da demanda, em comum acordo com os requisitos dos clientes ou do mercado.

Page 11: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

11

Software é uma escrita em linguagem de computador, para uma máquina capaz de interpretá-lo. Qual é a definição

para Software? O software é composto por uma seqüência de instruções (comandos) e declarações de dados, armazenável em meio digital.

Ao ser interpretado, o computador direciona à realização das tarefas especificamente planejadas, para as quais o software foi projetado.

Page 12: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

12

1. Encher a barriga do programador?

Para que serve o Software?

2. Ser pirateado?

3. Fazer o computador funcionar?

4. Facilitar a vida das pessoas?

5. Complicar a vida do Help Desk?

6. Fazer o usuário gastar dinheiro com vírus?

Page 13: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

13

Todas as alternativas possuem um algo de verdadeiro, mas as principais são 3 e 4.

O software nada mais é do que um acessório do computador, usado para aumentar produtividade ou facilitar o trabalho em um sistema computacional.

Então deduzimos que o software é uma ferramenta computacional.

Page 14: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

14

Alguém inventa uma ferramenta, isto é, projeta, fabrica em série e vende.

O valor do projeto é um investimento com seu retorno diluído no valor do produto final.

O único custo em seu desenvolvimento é o “projeto”, pois o custo de se produzir em série é nulo ou quase nulo.

O valor final cobrado é, em sua maioria absoluta, o valor da matéria prima mais os custos de produção.

Se for comercializado com um valor muito elevado, teremos um problema, alguém irá comprar sua ferramenta, copiar e vender mais barato.

O software, em sua forma básica, não pode ser comercializado, pois não é físico.

Page 15: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

15

Pergunta: Se um software for escrito a mais ou menos uns 20 anos atrás, poderá ser utilizado atualmente?

Não, aplicações escritas há 20 anos ou até menos, modificadas ao longo do tempo são impossíveis de manter os sistemas atuais, teriam dificuldades de leitura e interpretação.

Não há quem conheça estes sistemas, falta documentação de seu desenvolvimento, e pequenas alterações podem fazer o sistema falhar.

Exemplo: Sistemas críticos em um tráfego aéreo com funcionamento “estranho” não são substituídos, porque não há como usar um ou vários componentes que não se fabricam mais, o computador principal da aeronave não saberia como interpreta-los.

Page 16: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

16

O Gerentão:

O manual é útil para minhas duvidas de instalação?

MITOS

O manual que acompanha nosso Sistema contém todos os padrões e procedimentos que os desenvolvedores precisam saber, como:

As técnicas usadas são adequadas ao que está sendo desenvolvido?

Ele é completo?

Possui possíveis causas e possíveis soluções?

Ele é usado?

Page 17: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

17

O Gerentão:

Será desenvolvido por computadores de última geração:

MITOS

Mais importante que um sistema de última geração é ter um conjunto de softwares adequados ao projeto?

Se o cronograma atrasar adicionaremos mais programadores para que o prazo seja respeitado:

Os softwares (ferramentas) que auxiliam no desenvolvimento do projeto são úteis?

Geralmente sua causa se dá a um treinamento inadequado aos novos programadores, programadores não qualificados ou sobrecarregados.

Page 18: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

18

Como o Cliente é informado:

Só precisamos de uma documentação com os objetivos gerais para começar a escrever o programa, demais detalhes podem ser preenchidos ao longo do projeto.

MITOS

O projeto já começou com os parâmetros definidos de forma ruim.

Geralmente é a principal causa para o fracasso dos Projetos de Desenvolvimento de Software.

Todo cuidado é pouco ao passarmos informações ao cliente.

O cliente é o detentor dos recursos financeiros do projeto.

Page 19: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

19

Como o Cliente é informado:

Se houver mudanças nos requisitos, poderão ser facilmente readequados aos novos parâmetros do projeto.

MITOS

Toda atenção à definição inicial dos requisitos é essencial para alcançarmos o sucesso.

Ao analisarmos os impactos negativos das mudanças, iremos verificar uma escala crescente conforme o projeto se desenvolve.

o Para sua definição teríamos um impacto de 1x. o Para a implementação de 1,5x a 6x aproximadamente. o Para a manutenção de 60x a 100x. Neste caso seria mais

barato desenvolver um novo software.

Page 20: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

20

O Desenvolvedor:

Após finalizar a escrita do programa e coloca-lo em funcionamento nossos serviços estarão finalizados.

MITOS

Os primeiros problemas acontecem entre 50% a 70% após entregar a primeira versão do sistema ao cliente.

A qualidade do programa só poderá ser medida após sua implantação. Os testes são apenas para localizar problemas no código antes da implantação.

Após a entrega do programa os desenvolvedores deverão verificar quais adequações deverão ser reprogramadas.

Page 21: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

21

O Desenvolvedor:

Precisamos ter em mente que a única coisa que deverá ser entregue em um projeto bem-sucedido é o programa funcionando.

MITOS

Efetuar testes no software com usuário irá identificar dificuldades de uso por parte do usuário no código fonte.

Possuir um cronograma para manutenção e deixar o cliente ciente dessas possíveis manutenções é crucial para o sucesso.

Uma documentação bem elaborada é crucial para manutenções futuras e para um bom treinamento do usuário.

Page 22: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

22

O software é de difícil compreensão por parte das necessidades do usuário.

O sistema não consegue acompanhar a evolução dos requisitos na empresa.

Existem muitas dificuldades sobre o entendimento do software.

Muitos módulos são incompatíveis como os sistemas existentes.

SINTOMAS

Foram detectados graves problemas nas etapas avançadas de desenvolvimento do projeto ou mesmo na época de sua implantação ou uso.

O desempenho do software se revelou inaceitável. Falta de coordenação e treinamento na equipe.

Page 23: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

23

VAMOS TREINAR UM POUCO

Page 24: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

24

Vamos formar alguns grupos para a solução dos problemas que serão apresentados.

Os integrantes dos grupos deverão discutir as possíveis soluções para o problema apresentado. O método a ser utilizado será o de tentativa e erro.

Os grupos deverão apresentar a solução encontrada, verbalmente ou no quadro negro de preferência, caso haja tempo.

Será mediado um debate rápido entre os grupos, em torno da solução apresentada, apontando os erros que forem surgindo.

Obs.: A solução encontrada deverá ser compreendida todos os grupos e por todos os alunos que tiveram acesso as informações apresentadas pelo grupo.

Page 25: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

25

Problemas a serem resolvidos:

Exemplo 01 – Indo ao Médico: Descrever uma visita ao médico, separando as fases dentro dos 3 tópicos que foram analisados. (Dados, Informação e Conhecimento).

Exemplo 02 – Indo ao Mecânico: Descrever uma visita ao mecânico, separando as fases dentro dos 3 tópicos que foram analisados. (Dados, Informação e Conhecimento)

Exemplo 03 – O uso do software para auxiliar o médico e/ou mecânico:

De que forma?

Page 26: Tópicos desta Aula: O que é Engenharia de Software? O que ...profcelso.orgfree.com/Arquivos_Aulas/07-Proces_Desen_Soft/AULAS/01... · Engenharia de Software são as máquinas de

ADS / REDES / ENGENHARIA Prof. Celso Candido

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

26

AULAS DE APOIO

Este arquivo será disponibilizadas para estudos para aprimoramento, estudos e consultas no formato PDF. Alguns estarão disponíveis para impressão, outros, somente para leitura.

www.aulasprof.6te.net ou www.profcelso.orgfree.com/