Engenharia de Software Respostas do Questionário 01

Slides:



Advertisements
Apresentações semelhantes
Desenvolvimento de Sistemas
Advertisements

Engenharia de Software
Engenharia de Software
Objetivos do Capítulo Utilizar o processo de desenvolvimento de sistemas delineado neste capítulo e o modelo de componentes de SI, do Capítulo 1, como.
Engenharia de Software
O Processo Praxis 3.0 Processos de Software 25/03/2017
Tipos de sistemas de Lehman
Por que a engenharia de software?
> Fases de Engenharia de SW > Gestão de Projectos de SW
Engenharia de Software
Rational Unified Process(RUP)
Engenharia de Software Professor Sandro de Paiva Carvalho.
FACULDADE DOS GUARARAPES
Introdução à Engenharia de Software
Faculdade de Ciências Sociais de Aplicadas de Petrolina – FACAPE
Metodologia de Desenvolvimento de Software
Engenharia de Software
Qualidade de Software Aula 2
Processo Desenvolvimento de Software Tradicional
SISTEMA DE INFORMAÇÕES DESENVOLVIMENTO DE SISTEMAS
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Análise e Projeto de Sistemas
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Como Desenvolver Sistemas de Informação
TSDD Teste de segurança durante o desenvolvimento.
Engenharia de Software
Configuração de manutenção
Engenharia de Software Guide to the SWEBOK (Guide to the Software Engineering Body of Knowledge) IEEE Computer Society.
Engenharia de Software Conceitos
Desafios do desenvolvimento de software
Prof.Alfredo Parteli Gomes
Fundamentos de Engenharia de SW
Processos de Desenvolvimento de Software – Parte 2
Fase de Elaboração: Fluxo de Requisitos
Análise e Projeto de Sistemas
Engenharia de Software
Engenharia de Software Professor Mário Dantas
REQUIREMENTS DEVELOPMENT DESENVOLVIMENTO DE REQUISITOS
Engenharia de Software
Engenharia de Software
Desenvolvimento Rápido de Aplicação (RAD)
Modelos de Processo de Software
PSBD II Projeto de Sistemas de Banco de Dados II
Introdução à Engenharia de Software
Bruno Silva Desenvolvido a partir de
O Processo Unificado (UP)
Engenharia de Software
Qualidade de Software Aula 4
Engenharia de software I
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Engenharia de Software
RUP - Cap. 4 – Processo Centrado na Arquitetura
Processo de Desenvolvimento de Software – PDS C Construção - PAS
Processos de Software.
Processos de Software.
Técnicas e Projeto de Sistemas
Modelos de Processos de Software
Engenharia de Software
© Nabor C. Mendonça Processo / Metodologia de Desenvolvimento de Software.
Profa. MSc. Daniela Gibertoni
Engenharia de Software
Uma Introdução à Engenharia de Software
Aula 02 de Eng. de Requisitos
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
ISO9001:2000 para Software Professor: Alexandre Vasconcelos Equipe: Amanda Pimentel Börje Karlsson Danielly Karine Erika Pessoa Jorge Cavalcanti Jose Edson.
Apresentação Leonardo Brussolo de Paula
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
Engenharia de Software Conceitos e elementos 1. Engenharia   Resolução de problemas através de soluções economicamente viáveis  Motivacão: Limitação.
O Processo Unificado (PU). 2 O que é o Processo Unificado (PU)? É um modelo de processo de software baseado no modelo incremental, visando a construção.
Transcrição da apresentação:

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. 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.

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.

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?

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).

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).

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.

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.

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.

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

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)

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

Associações entre Modelos, Métodos, Processos, Fases, Artefatos e Projetos

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.

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).

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.

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.

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).

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.