A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Engenharia de Software

Apresentações semelhantes


Apresentação em tema: "Engenharia de Software"— Transcrição da apresentação:

1 Engenharia de Software
Faculdade de Tecnologia de Mauá Tecnologia em Informática e Negócios Engenharia de Software Jarbas Thaunahy Santos de Almeida Home page: MSN:

2 A importância do software
Atualmente, uma grande parte da população mundial depende de aplicações de software para realizar suas operações diárias. Se alguns sistemas de uso global deixarem de funcionar, aproximadamente 40% da população mundial sofrerá as conseqüências do problema (Reed, 2000).

3 A importância do software
O principal objetivo da engenharia de software é, sem dúvida, melhorar a qualidade do software. A qualidade de produtos de software, entretanto está fortemente relacionada à qualidade do processo de software. (Fuggetta, 2000).

4 A importância do software
Para muitos engenheiros de software, a qualidade do processo de software é tão importante quanto à qualidade do produto. Assim, na década de 90 houve uma grande preocupação com a modelagem e melhorias no processo de software. (Rocha, 2001).

5 Software Consiste em um conjunto de informações em diferentes níveis de abstração e em um conjunto de transformações e decisões associadas a essas transformações.

6 Software A engenharia de software, embora possua várias definições, segundo Pressman (2000) é uma disciplina que pode ser vista, de forma objetiva, como o estabelecimento e o uso dos princípios básicos da engenharia com a finalidade de desenvolver software de maneira sistemática e econômica, resultando em um produto confiável e eficiente.

7 Engenharia de software
Elementos fundamentais: Métodos Ferramentas Procedimentos

8 Métodos Envolvem um amplo conjunto de tarefas que incluem:
1. planejamento e estimativa de projeto, 2. análise de requisitos de software e de sistemas, 3. projeto da estrutura de dados, 4. arquitetura de programas e algoritmo de processamento, 5. codificação, 6. teste e 7. manutenção.

9 Ferramentas Proporcionam apoio automatizado ou semi-automatizado aos métodos. Atualmente, existem ferramentas para sustentar cada um dos métodos citados anteriormente.

10 Ferramentas Quando as ferramentas são integradas de forma que a informação criada por uma ferramenta possa ser usada por outra, é estabelecido um sistema de suporte ao desenvolvimento de software chamado engenharia de software auxiliado por computador (CASE – Computer-Aided Software Engineering).

11 Procedimentos Constituem o elo que mantém juntos os métodos e as ferramentas e possibilita o desenvolvimento racional e oportuno do software de computador. Definem a seqüência em que os métodos serão aplicados.

12 Mitos do software Por que demora tanto tempo para que os programas sejam concluídos? Por que os custos são tão elevados? Por que não descobrimos todos os erros antes de entregarmos o software aos nossos clientes?

13 Visão genérica Fases do processo de desenvolvimento Definição
Manutenção

14 Paradigmas da engenharia de software
O ciclo de vida clássico; Prototipação; O modelo espiral; Técnicas de 4ª geração.

15 Ciclo de vida clássico Também chamado modelo cascata, o paradigma do ciclo de vida requer uma abordagem sistemática, seqüencial ao desenvolvimento do software, que se inicia no nível do sistema e avança ao longo da análise, projeto, codificação, teste e manutenção.

16 Ciclo de vida clássico Engenharia de sistemas Análise Projeto
Codificação Teste Manutenção

17 Prototipação É um processo que capacita o desenvolvedor a criar um modelo do software que será implementado. Pode assumir uma das seguintes formas: Protótipo em papel; Protótipo de trabalho; Programa existente.

18 Prototipação Início Fim Coleta e refinamento de requisitos Engenharia
Projeto rápido Construção do protótipo Avaliação do protótipo pelo cliente Refinamento Engenharia produto Fim

19 Modelo espiral Foi desenvolvido para abranger as melhores características tanto do ciclo de vida clássico como da prototipação, acrescentando, ao mesmo tempo, um novo elemento – a análise de riscos – que falta a esses paradigmas.

20 Modelo espiral Planejamento Análise de riscos Avaliação do cliente
Coleta inicial dos requisitos e planejamento do projeto Análise de riscos baseada nos requisitos iniciais Análise de riscos baseada na reação do cliente Planejamento baseado nos comentários do cliente Decisão de prosseguir/ não prosseguir Protótipo de software inicial Avaliação do cliente Protótipo no nível seguinte Sistema construído pela engenharia Avaliação do cliente Engenharia

21 Técnicas de 4ª geração Abrange um amplo conjunto de ferramentas de software que possuem algo em comum: cada uma delas possibilita que o desenvolvedor de software especifique alguma característica do software num nível elevado. A ferramenta gera então, automaticamente, o código-fonte, tendo como base a especificação do desenvolvedor.

22 Técnicas de 4ª geração Coleta de requisitos Estratégia de “projeto”
Implementação usando 4ª geração Teste

23 Obtenção preliminar dos requisitos
Análise de requisitos Prototipação Técnicas de 4ª geração Modelo espiral Projeto Técnicas de 4ª geração Prototipação enésima iteração Codificação Modelo espiral enésima iteração Técnicas de 4ª geração Realização de testes Sistema operacional Manutenção

24 Garantia de qualidade de software
Todos os métodos, ferramentas e procedimentos trabalham na direção de uma meta única: produzir software de alta qualidade. O que significa qualidade de software?

25 SQA – Software Quality Assurance
Métodos e ferramentas de análise, projeto, codificação e teste; Revisões técnicas formais que são aplicadas durante cada fase de engenharia de software; Uma estratégia de teste de múltiplas fases; Controle da documentação de software e das mudanças feitas nela; Um procedimento para garantir a adequação aos padrões de desenvolvimento de software (quando aplicáveis); Mecanismos de medição e divulgação.

26 Qualidade de software Conformidade a requisitos funcionais e de desempenho explicitamente declarados, a padrões de desenvolvimento claramente documentados e a características implícitas que são esperadas de todo software profissionalmente desenvolvido.

27 Qualidade de software Os requisitos de software são a base a partir da qual a qualidade é medida. A falta de conformidade aos requisitos significa falta de qualidade. Padrões especificados definem um conjunto de critérios de desenvolvimento. Se os critérios não forem seguidos, o resultado quase que seguramente será a falta de qualidade. Há um conjunto de requisitos implícitos que freqüentemente não são mencionados (a manutenibilidade, por exemplo).

28 Fatores de Qualidade de software McCall
Portabilidade Reusabilidade Interoperabilidade Manutenibilidade Flexibilidade Testabilidade Revisão do produto Transição do produto Operação do produto Corretitude / Confiabilidade / Eficiência / Integridade / Usabilidade

29 Revisão do produto Manutenibilidade: o esforço exigido para localizar e reparar erros num programa. Flexibilidade: o esforço exigido para modificar um programa operacional. Testabilidade: o esforço exigido para testar um programa a fim de garantir que ele execute sua função pretendida.

30 Transição do produto Portabilidade: o esforço exigido para transferir o programa de um ambiente de sistema de hardware e/ou software para outro. Reusabilidade: à medida que um programa (ou partes de um programa) pode ser reusado em outras aplicações – relacionada ao empacotamento e escopo das funções que o programa executa. Interoperabilidade: o esforço exigido para se acoplar um sistema a outro.

31 Operação do produto Corretitude: à medida que um programa satisfaz sua especificação e cumpre os objetivos visados pelo cliente. Confiabilidade: à medida que se pode esperar que um programa execute sua função pretendida com a precisão exigida. Eficiência: a quantidade de recursos de computação e de código exigida para que um programa execute sua função. Integridade: à medida que o acesso ao software ou a dados por pessoas não-autorizadas pode ser controlado. Usabilidade: O esforço para aprender, operar, preparar a entrada e interpretar a saída de um programa.

32 Algumas Métricas utilizadas
Auditabilidade: a facilidade com que se pode checar a conformidade aos padrões. Inteireza: o quanto a implementação total da função requerida foi conseguida. Concisão: a compactação do programa em termos de linhas de código. Consistência: o uso de técnicas de projeto e documentação uniformes ao longo do projeto de desenvolvimento de software. Expansibilidade: o quanto o projeto de arquitetura, procedimental e de dados podem ser ampliados.

33 Algumas Métricas utilizadas
Independência de hardware: o quanto o software é desvinculado do hardware que opera. Instrumentação: o quanto o programa monitora sua própria operação e identifica erros que venham a ocorrer. Modularidade: a independência funcional dos componentes do programa. Operabilidade: a facilidade de operação de um programa. Simplicidade: o quanto um programa pode ser entendido sem dificuldade.

34 Bibliografia REED, K. Software engineering – a new millenium? IEEE Software, jul-ago, 2000. FUGGETTA, A. Software process: a roadmap. In: The future of software engineering, 2000. PRESSMAN, Roger S. Engenharia de Software. São Paulo: Makron Books, 1995. ROCHA, Ana Regina Cavalcanti da. Qualidade de software. São Paulo: Prentice Hall, 2001.


Carregar ppt "Engenharia de Software"

Apresentações semelhantes


Anúncios Google