1 / 19

Engenharia de Software Respostas do Questionário 01

Engenharia de Software Respostas do Questionário 01. 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.

ruby
Download Presentation

Engenharia de Software Respostas do Questionário 01

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 • 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, eXtremeProgramming – 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.

More Related