8

Click here to load reader

SweESalunos.pdf

Embed Size (px)

Citation preview

Page 1: SweESalunos.pdf

Software e Engenharia de Software

��� � ��� ����� � ������������ � � � � ������

1) O queé software? � Programasdecomputador � Entidade abstrata. � Ferramentas (mecanismos) pelas quais:

exploramos os recursosdo hardware.

executamos determinadas tarefas

resolvemos problemas.

interagimoscom a máquina.

tornamos o computador operacional.

1) O queé software?

Conceito mais amplo que inclui também: � Instruções que executam uma função

desejada. � Estrutura de dados para manipular

informação.� Documentos para desenvolver, operar e

manter os programas.

2) Dificuldades para desenvolversoftware � Saber o queo softwaredeve fazer : quais os

requisitos (abstração); � Ferramentas; linguagem; so� Tempo ecustos elevadosdedesenvolvimento. � Prever falhas (antes deentregar). � Tratar manutenção e versões. � Produtividade não crescecom a demandade

serviços.

3) Característicasdo Software � softwarenão éum elemento físico; é um elemento

lógico (não tem propriedades físicas, como visualizar, medir ...)

� abstração maior; o produto final édiferente� o softwarenão podeser manufaturado; custos

estão concentradosno desenvolvimento enão na manufatura.

� o processo degerenciamento édiferente; orelacionamento entreaspessoas édiferente;

3) Característicasdo Software� existem diferentes abordagens para sechegar no

produto final� o softwarenão sedesgastacom o uso; mas

deteriora-se� não há peçasde reserva. => manutenção, correção,

aperfeiçoamento. � não éconstruído aproveitando-secomponentes

prontos. � um erro duranteum teste=> erro de projeto; mais

difícil de testar.

Page 2: SweESalunos.pdf

4) CrisedeSoftware

Alguns autores associam a palavra “crise” aos problemas para desenvolver software

4. Crise do Software – Eras da Computação��� � ��� � ����� ��� ���������� ��������� ���������� �� !� "#��$ �� �%���& �(' ��) � "#�*$ � + ,�� ' � '�- �� �$ �*. �( � '/� ��021 �� 3 � ��.%-

4. Crise do Software – Eras da Computação�(� 4 5�� � � �*67� ' $��8�*���� 9 ��) � � �* :��;��<� �� = �7!> �@? �*��)� 37A�B >�� � $C� �&� $��D �*����� ������ �*����� �(��� -*� �� ,�* E . �� ,�D$��� �*����� �����

4. Crise do Software – Eras da Computação5�� 4 F(� � = ��� . ��� �����*���� � � � �� �* A � � �� G(��H $ � � I�J� K ����$ � �����L$���G/��� M ��. �* ���

4. Crise do Software – Eras da ComputaçãoF(� 4 NONONON�PQ����� � �������� � � � �� �* R�� :>/� . � ��) � � �* � ? ��$��* TSU��������� � � � !>�� � ��021 � �V�(����) �

4. Crise do Software – Eras da Computação� �*���� ��� ����WX������021 � 4 �� # ,��!G�) ��Y� � ��6C� ' $��DWX�(����0:1 � � Z � � � ��� '*B � � G � ) B

J ) 6 � )� = �(� . �(� ����W[�(����0:1 � � �V�* . ��) B ��� � ��) B NONON� P\����� � �DWX�(����0:1 � � A]3 J � � B ) 6�$��

.2��' V��) � �* � P_^ B 6�������$ � ���* +$��>�� � 6����� � B ) 6`$����� :>/� . � � � . ��021 �L��� �< �() B� ������� � '/� �* !NONON

Page 3: SweESalunos.pdf

4) CrisedeSoftware

Problemas: � Software inadequado. � Cronogramas ecustos imprecisos - dificuldades

em prever o progresso duranteo desenvolvimento. � Inexistência de dados históricos sobreo processo

dedesenvolvimento. � Comunicação deficiente- insatisfação deusuários.� Carênciadeconceitos quantitativos sobre

confiabilidade, qualidade, reusabilidade. � Software existenteé dedifícil manutenção.

4) CrisedeSoftware

Solução: � Combinar métodos para as fases de

desenvolvimento. � Ferramentas para automatizar esses

métodos. � Técnicas para assegurar qualidade.

=> Disciplina: Engenharia de Software.

5) Engenharia de Software� Abordagem sistemática para o desenvolvimento,

operação edescartede software. � Aplicação práticadeconhecimento científico ao

projeto econstrução de software. � Disciplina que utiliza princípiosdeengenharia

para produzir emanter softwares dentro deprazosecustos estimados.

5) Engenharia de Software� Objetivos: Melhorar a qualidade do

software eaumentar a produtividade esatisfação profissional de engenheiros de software.

� Definição: Disciplina que utilizaumconjunto de métodos, técnicas e ferramentas para analisar, projetar e gerenciar desenvolvimento e manutenção de software.

5) Engenharia de Software5) Engenharia de Software

� Métodos e Técnicas: como fazer� Metodologias: como aplicar� Ferramentas: Automatizam os métodos,

dão apoio à utili zação dos mesmos.CASE => (Computer-Aided Software Engineering): Ferramentas integradas para desenvolver software.

Page 4: SweESalunos.pdf

6) Princípios da Engenharia de Software

� Formalidade: reduz inconsistências� Abstração: aspectos importantes, ignorar

detalhes� Decomposição: lidar com complexidade� Generalização: reutili zação, custo� Flexibili zação: mudanças, processo

incremental

7) Paradigmas da Engenharia de Software

À E. S. estáassociado um conjunto depassos

(que englobam métodos, ferramentas, etc)

denominado paradigma

Ciclo de Vida Clássico

Ciclo de Vida Clássico

Problemas para aplicação: � Na prática, projetos não seguem o fluxo

seqüencial. � Acomodações de incertezas no início do

projeto é difícil . � Versão funcional dos programas

disponível após os últimos estágios doprojeto

Prototipação

Page 5: SweESalunos.pdf

Prototipação� Localiza“aspectos visíveis” para o usuário (E/S). � A iteração pode adequar o protótipo às

necessidadesdo usuário. � O protótipo podeser descartado ou fazer partedo

produto final. � Problemas: Cliente insiste queo protótipo seja

com ligeiras modificações, a versão final doproduto. Decisões esoluções improvisados tornam-separtedo produto final.

Linguagens de Quarta Geração

Linguagens de Quarta Geração� Ferramentas para especificação de alto nível

(L4G):

Consulta a base de dados.

Geração de relatórios.

Manipulação de dados.

Definição e interação com Telas.

Geração de código.

Linguagens de Quarta Geração� Domínio predominante : Sistemas

comerciais de informação. � Boa produtividade para sistemas pequenos e

médios e aplicação específicas.� Problemas: Para sistemas grandes, demanda

muito tempo; e ainda permaneceanecessidade de projeto

Evolucionário Evolucionário� Tudo merece uma nova chance� Incorporação de diferente partes e criação

de diferentes versões� Inclui prototipação� Permite o desenvolvimento exploratório

Page 6: SweESalunos.pdf

Incremental� Abordagem intermediária � Combina vantagens dos paradigmas ciclo de vida

clássico e evolucionário� Identificação das funções do sistema,

estabelecimento de incrementos e prioridades� Cada incremento pode utilizar um paradigma de

desenvolvimento diferente� Dificuldade para dividir e gerenciar versões

,QFUHPHQWDO

����������� � ������ �����������

������ ��� ������������ !�"�#�� ��� ����

$�� ��%������&�� "'#�� ��(��#� �) �+*�� �,���-�

./�� � ) ���0�� (� ���(���

����1��(2���� 2������ �� ��������

�������3'�����0�� (� ���(���

./�� � ) ��*'� �,������

415 6 7 8�9;:�< =0>�?19/@,A 8�7 ?415 6 7 8,9!:B 5 =0:�A

Espiral EspiralC Paradigma mais realístico - sistemas

grandesC É um metamodel oC Incorpora análise de riscos. C Permite prototipação em mais de um estágio

C Problemas: O modelo é relativamente novo.Requer esperteza. Pode nunca terminar.

Combinação de Paradigmas7) Paradigmas da Engenharia de SoftwareC Que paradigma usar ?

Depende da natureza da aplicação.

Métodos e ferramentas disponíveis, etc.

Page 7: SweESalunos.pdf

8) Uma Visão Genérica da E.S. 8) Uma Visão Genérica da E.S.

1) Definição

Função, desempenho, interface, restriçõesde projeto, critérios de validação.

Análise de sistemasPlanejamento de projeto de software.Análise de requisitos.

8) Uma Visão Genérica da E.S.

2) Desenvolvimento :Estruturade dados, Arquitetura de software, detalhes procedimentais,programas, testes.

Projeto de software.Codificação.Testes

8) Uma Visão Genérica da E.S.

3) Manutenção

Corre tiva: para corrigir defeitos;Adaptativa: para acomodar mudanças noambiente externo do software (S. O., periféricos, etc)Perfectiva: para inclusão de novas funcionalidades

8) Uma Visão Genérica da E.S.������������������� �

��

8) Uma Visão Genérica da E.S.

Page 8: SweESalunos.pdf

8) Uma Visão Genérica da E.S.