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 l As economias de todos os países desenvolvidos são dependentes de software. l Mais e mais sistemas são controlados por software. l Engenharia de software preocupa-se com as teorias, modelos, métodos, processos e ferramentas para os desenvolvedores de software. l As despesas com software representam uma fração significativa do PIB em todos os países desenvolvidos. Engenharia de Software

3 l 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. l 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. l A engenharia de software preocupa-se com o custo efetivo do desenvolvimento de software. Custo 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? l Programas de computador e toda a documentação a eles associada. l 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? l É uma disciplina da engenharia que se ocupa de todos os aspectos da produção e da manutenção de software. l Tem engenheiros de software como protagonistas. l 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? l 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. l As teorias da Ciência da Computação são insuficientes para atuar como suporte completo à Engenharia de Software. l 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? l 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. l Engenheiros de Sistemas cuidam da especificação, desenho arquitetônico, integração e desenvolvimento de sistemas. l A Engenharia de Sistemas é anterior a Engenharia de Software.

9 5. O que é processo de software? l É um conjunto de atividades cujo objetivo é desenvolver ou evoluir um produto de software. l 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. l Define o ciclo de vida (fases) de um software, usando modelos e métodos de software. l Trata-se de uma metodologia para desenvolver software.

10 Exemplos de Processos de Software l Processo Unificado (Jacobson, Booch, Rumbaugh) l RUP – Rational Unifided Process (Rational/IBM) l 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. l 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). l SEA UP (SEA Tecnologia) l MetoDeS – Desenvolvida por Alunos como TCC

11 6. O que é modelo de processo de software? l Uma representação simplificada e abstrata de um processo de software, apresentada a partir de uma perspectiva específica. l 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ê l 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? l 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 l Descrevem modelos, gráficos, diagramas, notações, regras, restrições, práticas de desenho, l 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? l 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. l Custos variam em função do tipo de sistema que está sendo desenvolvido e dos requisitos, incluindo performance e nível de disponibilidade. l Custos de distribuição dependem do modelo de processo de desenvolvimento usado. l 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)? l Sistemas de Software que servem para dar suporte automatizado às atividades do processo. Ferramentas CASE devem ser sempre usadas. l Upper-CASE Ferramentas para suportar as atividades desde o início do processo, incluindo requerimentos e desenho (Jude, DB Designer, Power Design, Rational Rose). l 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? l O software deve fornecer as funcionalidades requeridas e atender aos requisitos não funcionais de performance, segurança, confiabilidade, usabilidade, manutenibilidade, entre outros. l Manutenibilidade Software deve poder ser alterado para atender as mudanças de necessidades. l Segurança e Confiabilidade Software deve ser confiável e seguro física e logicamente. l Eficiência Software não deve desperdiçar recursos do sistema. l 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? l Lidar com sistemas legados, com a cada vez maior diversidade de tecnologias e demandas por menores tempos de entrega. l Sistemas Legados Antigos, mas ainda úteis são os sistemas que devem ser mantidos e aprimorados l Heterogeneidade Os sistemas são distribuídos para várias plataformas e incluem uma composição de hardware e software. l 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). l 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