Engenharia de Software Respostas do Question - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

Engenharia de Software Respostas do Question

Description:

Respostas do Question rio 01 As economias de todos os pa ses desenvolvidos s o dependentes de software. Mais e mais sistemas s o controlados por software. – PowerPoint PPT presentation

Number of Views:141
Avg rating:3.0/5.0
Slides: 20
Provided by: comb1435
Category:

less

Transcript and Presenter's Notes

Title: Engenharia de Software Respostas do Question


1
Engenharia de SoftwareRespostas do
Questionário 01
2
Engenharia de Software
  • As economias de todos os países desenvolvidos são
    dependentes de software.
  • Mais e mais sistemas são controlados por
    software.
  • Engenharia de software preocupa-se com as
    teorias, modelos, métodos, processos e
    ferramentas para os desenvolvedores de software.
  • As despesas com software representam uma fração
    significativa do PIB em todos os países
    desenvolvidos.

3
Custo de Software
  • O custo de software geralmente domina o custo dos
    sistemas e o custo de software em um PC
    geralmente são maiores que o custo de hardware.
  • Software custa mais para ser mantido do que para
    ser desenvolvido. Para sistemas com um ciclo de
    vida longo, o custo de manutenção é muitas vezes
    superior ao custo de desenvolvimento.
  • A engenharia de software preocupa-se com o custo
    efetivo do desenvolvimento de software.

4
Questões freqüentes sobre engenharia de software
  1. O que é software?
  2. O que é engenharia de software?
  3. Qual é a diferença entre engenharia de software e
    ciência da computação?
  4. Qual é a diferença entre engenharia de software e
    engenharia de sistemas?
  5. O que é processo de software?
  6. O que é modelo de processo de software?
  7. O que são métodos da engenharia de software?
  8. Quais são os custos da engenharia de software?
  9. O que é Ferramenta CASE (Computer-Aided Software
    Engineering)?
  10. Quais os atributos de um bom software?
  11. Quais os desafios chave enfrentados pela
    engenharia de software?

5
1. O que é software?
  • Programas de computador e toda a documentação a
    eles associada.
  • Produtos de software podem ser desenvolvidos para
    um cliente em particular (personalizados) ou
    podem ser desenvolvidos para o mercado em geral
    (genéricos).

6
2. O que é engenharia de software?
  • É uma disciplina da engenharia que se ocupa de
    todos os aspectos da produção e da manutenção de
    software.
  • Tem engenheiros de software como protagonistas.
  • Os engenheiros de software devem adotar uma
    abordagem sistemática e organizada ao seu
    trabalho e devem usar ferramentas e técnicas
    apropriadas, dependendo do problema a ser
    resolvido, das restrições e dos recursos
    disponíveis (premissas).

7
3. Qual é a diferença entre engenharia de
software e ciência da computação?
  • Ciência da Computação se ocupa da teoria e dos
    fundamentos engenharia de software se ocupa das
    práticas para desenvolver e entregar software de
    qualidade.
  • As teorias da Ciência da Computação são
    insuficientes para atuar como suporte completo à
    Engenharia de Software.
  • São complementares, pois a primeira fornece
    infra-estrutura de software para que a segunda se
    ocupe da solução de problemas complexos de alto
    nível que requerem uma solução baseada em
    software.

8
4. Qual é a diferença entre engenharia de
software e engenharia de sistemas?
  • Engenharia de Sistemas (suportados por
    computador) se ocupa de todos os aspectos do
    desenvolvimento de sistemas baseados em
    computadores, incluindo hardware, software,
    peopleware e o processo de engenharia.
  • Engenheiros de Sistemas cuidam da especificação,
    desenho arquitetônico, integração e
    desenvolvimento de sistemas.
  • A Engenharia de Sistemas é anterior a Engenharia
    de Software.

9
5. O que é processo de software?
  • É um conjunto de atividades cujo objetivo é
    desenvolver ou evoluir um produto de software.
  • Atividades que fazem parte de todos os processos
    (de desenvolvimento) de software
  • Especificação o que o sistemas deve fazer e
    quais as suas restrições (requisitos).
  • Desenvolvimento produção de um software.
  • Validação verificar que o software é o que o
    cliente deseja.
  • Evolução modificar o software em resposta às
    novas demandas.
  • Define o ciclo de vida (fases) de um software,
    usando modelos e métodos de software.
  • Trata-se de uma metodologia para desenvolver
    software.

10
Exemplos de Processos de Software
  • Processo Unificado (Jacobson, Booch, Rumbaugh)
  • RUP Rational Unifided Process (Rational/IBM)
  • PRAXIS Processo para Aplicativos eXtensíveis
    InterativoS (Wilson de Pádua Paula Filho)
  • Para projetos realizados individualmente ou por
    pequenas equipes, com duração de seis meses a um
    ano.
  • XP eXtreme Programming
  • Projetos cujos requisitos mudam com muita
    freqüência, orientados a objetos, desenvolvido
    por equipes de até 12 desenvolvedores, com
    processo incremental (ou interativo).
  • SEA UP (SEA Tecnologia)
  • MetoDeS Desenvolvida por Alunos como TCC

11
6. O que é modelo de processo de software?
  • Uma representação simplificada e abstrata de um
    processo de software, apresentada a partir de uma
    perspectiva específica.
  • Exemplos de perspectivas de processo são
  • Workflow (fluxo de trabalho) seqüência de
    atividades
  • Data-flow (fluxo de dados) fluxo de informações
  • Role/action (papeis e ações) quem faz o quê
  • Modelos de Processos Abstratos são
  • Cascata
  • Evolucionário
  • Incremental
  • Transformação Formal
  • Integração a partir de componentes reutilizáveis
  • Modelos ágeis (como eXtreme Programing)

12
7. O que são métodos de engenharia de software?
  • Os métodos, de acordo com o SWEBOK, Capítulo 10,
    são
  • Abordagem Estruturada
  • Orientada a Dados
  • Orientada a Objetos
  • Baseado em Protótipos
  • Descrevem modelos, gráficos, diagramas, notações,
    regras, restrições, práticas de desenho,
  • Orientam o processo, recomendando práticas mais
    adequadas e atividades a serem seguidas

13
Associações entre Modelos, Métodos, Processos,
Fases, Artefatos e Projetos
14
8. Quais os custos da engenharia de software?
  • Aproximadamente 60 do custo está no
    desenvolvimento e 40 está nos testes. Para
    software customizado, o custo de evolução quase
    sempre supera o custo de desenvolvimento.
  • Custos variam em função do tipo de sistema que
    está sendo desenvolvido e dos requisitos,
    incluindo performance e nível de disponibilidade.
  • Custos de distribuição dependem do modelo de
    processo de desenvolvimento usado.
  • O processo de engenharia de software em si, assim
    como qualquer processo de gestão e planejamento,
    tem um custo e é importante que os stakeholders
    estejam a par deles.

15
9. O que é CASE (Computer-Aided Software
Engineering)?
  • Sistemas de Software que servem para dar suporte
    automatizado às atividades do processo.
    Ferramentas CASE devem ser sempre usadas.
  • Upper-CASE
  • Ferramentas para suportar as atividades desde o
    início do processo, incluindo requerimentos e
    desenho (Jude, DB Designer, Power Design,
    Rational Rose).
  • Lower-CASE
  • Ferramentas para suportar as atividades finais
    como programação e depuração e teste de programas
    (Netbeans, Eclipse, Ant, JUnit).

16
10. Quais os atributos de um bom software?
  • O software deve fornecer as funcionalidades
    requeridas e atender aos requisitos não
    funcionais de performance, segurança,
    confiabilidade, usabilidade, manutenibilidade,
    entre outros.
  • Manutenibilidade
  • Software deve poder ser alterado para atender as
    mudanças de necessidades.
  • Segurança e Confiabilidade
  • Software deve ser confiável e seguro física e
    logicamente.
  • Eficiência
  • Software não deve desperdiçar recursos do
    sistema.
  • Usabilidade
  • Software deve ser de fácil utilização para os
    usuários para os quais foi desenhado.

17
11. Quais os grandes desafios da engenharia de
software?
  • Lidar com sistemas legados, com a cada vez maior
    diversidade de tecnologias e demandas por menores
    tempos de entrega.
  • Sistemas Legados
  • Antigos, mas ainda úteis são os sistemas que
    devem ser mantidos e aprimorados
  • Heterogeneidade
  • Os sistemas são distribuídos para várias
    plataformas e incluem uma composição de hardware
    e software.
  • Entrega
  • Existe forte e crescente pressão para uma entrega
    mais rápida, muitas vezes com clientes
    subestimando a complexidade.

18
Síntese
  • Engenharia de Software ocupa-se de todos os
    aspectos da produção de software.
  • Produtos de software consistem de programas
    (desenvolvidos sob encomenda ou não) e toda a
    documentação associada. Características
    essenciais são manutenibilidade, segurança e
    confiabilidade, eficiência e usabilidade.
  • O processo de software (ou metodologia) consiste
    em atividades que fazem parte de desenvolvimento
    de produtos de software. As atividades básicas
    são especificação e análise, desenho e
    construção, teste e validação e evolução (RUP,
    PRAXIS, Processo Unificado, eXtreme Programming
    XP, METODES, PDS).
  • Métodos são maneiras organizadas de produzir
    software. Incluem sugestões a serem seguidas,
    notações, regras, modelos, orientando o processo
    de desenvolvimento (Estruturada, Orientada a
    Dados, Orientada a Objetos, Baseada em
    Protótipos).

19
Síntese
  • Ferramentas CASE são sistemas de software
    desenhados para dar suporte a atividades do
    processo de software como organização de
    requisitos, produção e consistência de diagramas,
    rastreamento, codificação e teste de programas.
  • Os Engenheiros de Software devem ir além dos
    aspectos técnicos, pois, como nos ensina a Teoria
    Geral de Sistemas, os sistemas são abertos,
    influenciando e sendo influenciados pelo meio
    onde estão inseridos.
Write a Comment
User Comments (0)
About PowerShow.com