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

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

Engenharia de Software Respostas do Questionário 01

Apresentações semelhantes


Apresentação em tema: "Engenharia de Software Respostas do Questionário 01"— Transcrição da apresentação:

1 Engenharia de Software Respostas 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
O que é software? O que é engenharia de software? Qual é a diferença entre engenharia de software e ciência da computação? Qual é a diferença entre engenharia de software e engenharia de sistemas? O que é processo de software? O que é modelo de processo de software? O que são métodos da engenharia de software? Quais são os custos da engenharia de software? O que é Ferramenta CASE (Computer-Aided Software Engineering)? Quais os atributos de um bom software? 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.


Carregar ppt "Engenharia de Software Respostas do Questionário 01"

Apresentações semelhantes


Anúncios Google