Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Engenharia e Qualidade de Software
Prof. Edson Moreno
Unidade I
Introdução
“Os conceitos básicos da engenharia surgiram há uns 5.000 anos com a engenharia civil, há uns 600 anos surgiu a administração de materiais e há uns 300 anos a engenharia industrial. 
A engenharia de software tem apenas 50 anos! Estamos no início da era do software. Com o computador, o ser humano automatiza o conhecimento. A humanidade prosperou nestes últimos 50 anos o que não conseguiu em 4.950 anos. 
O software foi o responsável”. (Prof. Edson Quedas Moreno)
Conteúdo programático da Unidade I –
engenharia de software e processos de apoio
Na Unidade I serão abordados os seguintes itens:
Capítulo 1 – Fundamentos da engenharia de software: conceitos e objetivos; o produto; aplicações; camadas; e a visão atual do desenvolvimento do software.
Capítulo 2 – Processo de software: o processo e o projeto; estrutura organizacional; modelos de processos de software; RUP; modelos PSP e TSP.
Capítulo 1 – Fundamentos da engenharia de software
“As tecnologias atuais resultam da convergência de sistemas de computadores e de sistemas de comunicação”.
Questões complexas desafiam o engenheiro de software: integração de diversos ambientes operacionais, mudanças constantes de regras e negócios, adaptações a novas tecnologias e a ligação de todos esses elementos.
 
(Pressman, 2011) – “Software de computadores continua a ser a tecnologia única mais importante no cenário mundial”.
(Sommerville, 2011) – “Produzir software que apresente uma boa relação custo/benefício é essencial para o funcionamento das economias nacionais e internacionais”.
 
1.1 Conceitos e objetivos da engenharia de software
Só após dimensionar o tamanho, a complexidade e as exigências de processamento é possível dimensionar a infraestrutura do sistema computacional que suportará o software e consequentemente iniciar o escopo do projeto do produto software.
O software não é manufaturado. Problemas de hardware podem ser corrigidos pela manufatura. O custo do software está concentrado no trabalho de engenharia, que contempla os seguintes itens:
 
 
Especificação, documentação e procedimentos.
Análise, projeto, codificação, implementação, testes, diagnósticos e implantação. 
Suporte ao cliente/usuário. 
1.2 O produto software
O software possui um duplo papel na produção.
O software não só pode constituir um produto completo. Por exemplo um software comercializado. 
O software pode também ser o veículo de melhora de outro produto. Pode melhorar outro software ou melhorar um produto industrial.
 
Exemplo: “Apesar da segurança fornecida pelo sistema operacional, o antivírus é vendido como produto completo que melhora a segurança de outro produto software, no caso o próprio sistema operacional”. 
1.2 O produto software (continuação)
O software não “se desgasta”, mas "se deteriora"! (Pressman, 2011)
 
1.3 Aplicações do software
Áreas do software
Software básico – Programas estruturais que dão apoio a outros programas.
Software de tempo real – Software para monitoramento, análise e controle de eventos.
Software empresarial – E-business (ERP, CRM e SCM).
Software para web – WebApps, e-commerce (B2B, B2C e C2C) e Cloud Computing.
 
1.3 Aplicações do software (continuação)
Áreas do software
Software científico e de engenharia – Processamento complexo de números.
Software embutido – Adaptado ao controle de produtos industrializados.
Software aplicativo para microcomputadores.
Software de inteligência artificial – Para resolver problemas complexos do conhecimento.
 
1.4 Qualidade, processos, métodos e ferramentas 
A engenharia de software é uma tecnologia em camadas. (Pressman, 2011)
A qualidade leva à cultura de melhoria contínua dos processos e abordagens cada vez mais efetivas para a engenharia de software.
 
Processo – Mantém integradas as camadas da tecnologia. O processo define o controle do gerenciamento do projeto por meio de modelos de processos, tais como: cascata, incremental, prototipagem, espiral, RUP, PSP e TSP.
Métodos – Incluem atividades organizadas para construir o produto software, por exemplo, as metodologias ágeis do desenvolvimento de software.
Ferramentas – Fornecem apoio automatizado ou semiautomatizado. Uma das ferramentas mais completas é chamada de CASE (Computer Aided Software Enginnering).
 
1.4 Qualidade, processos, métodos e ferramentas 
1.5 Fábrica de software
(Sommerville, 2011) Gerentes e profissionais técnicos enfrentam, na atualidade, “três principais desafios da engenharia de software”: 
O desafio do legado – Fazer manutenção e atualização de sistemas antigos.
O desafio da heterogeneidade – Desenvolvimento em diversas arquiteturas computacionais. 
O desafio do fornecimento – Entrega de sistemas em curto espaço de tempo.
 
Mito do desenvolvedor: preciso entregar logo o programa funcionando para o cliente. Só assim termino o projeto.
Realidade: dados industriais indicam que entre 50% e 70% do esforço gasto num programa será despendido depois que ele for entregue pela primeira vez ao cliente. O trabalho do desenvolvedor está restrito ao seu ambiente, que é diferente do ambiente do cliente/usuário, que também vai avaliar o produto, identificar falhas, erros, omissões e solicitar mudanças.
 
1.6 Mitos e realidades no desenvolvimento do software
Interatividade
A engenharia de software projeta e constrói o produto software de computador, bem como a infraestrutura necessária para que este funcione corretamente e com um bom desempenho. O software pode ser considerado o elemento mais importante de um sistema de informação? 
Assinale a alternativa correspondente à afirmativa ou negativa deste questionamento, bem como sua correta justificativa.
Não. A especificação do sistema de informação independe da implementação e do uso do software. É necessário ter o sistema de informação para depois poder especificar o software.
Não. Especifica o próprio computador.
Sim. O software é a base de um sistema de informação responsável pela inteligência empresarial e, bem elaborado, permite a tomada de decisão.
Sim. A organização de um conjunto de programas forma o produto software, que reflete o negócio por meio do sistema de informação, responsável por uma base de conhecimento pronta para ser utilizada. 
Sim. São instruções intelectualmente organizadas.
Interatividade
A engenharia de software projeta e constrói o produto software de computador, bem como a infraestrutura necessária para que este funcione corretamente e com um bom desempenho. O software pode ser considerado o elemento mais importante de um sistema de informação? 
Assinale a alternativa correspondente à afirmativa ou negativa deste questionamento, bem como sua correta justificativa.
Não. A especificação do sistema de informação independe da implementação e do uso do software. É necessário ter o sistema de informação para depois poder especificar o software.
Não. Especifica o próprio computador.
Sim. O software é a base de um sistema de informação responsável pela inteligência empresarial e, bem elaborado, permite a tomada de decisão.
Sim. A organização de um conjunto de programas forma o produto software, que reflete o negócio por meio do sistema de informação, responsável por uma base de conhecimento pronta para ser utilizada. 
Sim. São instruções intelectualmente organizadas.
Interatividade
Alternativa correta: D
A engenharia de software projeta e constrói o produto software de computador, bem como a infraestrutura necessária para que este funcione corretamente e com um bom desempenho. O software pode ser considerado o elemento mais importante de um sistema de informação?
Sim. A organização de um conjunto de programas forma o produto software, que reflete o negócio por meio do sistema de informação, responsável por uma base de conhecimento pronta para ser utilizada. 
Justificativa:
Sim. O softwareé considerado o elemento mais importante do sistema. A afirmativa corresponde ao conceito do software. O software automatiza as intenções do cliente ou usuário implementadas no sistema para uso.
Capítulo 2 – Processo de software
Produzir software é percorrer todo o ciclo de vida do desenvolvimento com base em processos, para torná-lo efetivo, ter um bom controle com um bom desempenho. 
(Sommerville, 2011 e 2003) –“A engenharia de software é uma disciplina da engenharia que se ocupa de todos os aspectos da produção de software. Desde os estágios iniciais de especificação de um sistema até a manutenção, para que este sobreviva ao longo do tempo”. 
2.1 Processo de software e o desenvolvimento do projeto
A estrutura básica apresenta as principais fases do desenvolvimento do software. Cada fase pode e deve ser elaborada com base em um ou mais processos que variam de acordo com tamanho, complexidade e qualidade exigida do software.
 
 
Se um processo estiver sem controle, as atividades tornam-se bastante caóticas. O processo fica sem acompanhamento, sem medições, sem comparações, com marcas de referência, ocorrem atividades e tarefas redundantes, conflitos na comunicação, na análise e, consequentemente, há aumento de erros. Veja o modelo básico de um processo com suas respectivas marcas de referência (input e output).
 
 
2.1 Processo de software e o desenvolvimento do projeto (continuação)
Estrutura para decomposição do processo
 
2.1 Processo de software e o desenvolvimento do projeto (continuação)
2.2 Estrutura organizacional orientada por modelos 
de processo de software
Estrutura organizacional para o desenvolvimento do software
 
CONSTRUÇÃO
Escolha da equipe, construção do código, testes, entrega e suporte.
 
PROJETO
Uso de metodologias, modelagem do produto e lógica de processamento.
 
ANÁLISE
Especificação dos requisitos, modelagem do negócio e escopo do projeto.
 
PLANEJAMENTO
Levantamento e gerenciamento dos requisitos do software.
 
2.3 Modelos de processo de software tradicionais
Modelo cascata
É considerado o modelo clássico de vida do desenvolvimento do software. Serve de base para os demais modelos.
 
Prototipagem
É a construção de um protótipo do esboço do software para melhorar o entendimento entre cliente e desenvolvedor.
 
2.3 Modelos de processo de software tradicionais (continuação)
Modelo incremental
É desenvolvido com o conceito de versionamento. A cada iteração* é gerada nova versão. Este método permite uma melhoria contínua do processo.
 
* A cada entrega de um incremento é feita uma iteração, que é uma estratégia de planejamento para retrabalhar o processo.
 
2.3 Modelos de processo de software tradicionais (continuação)
Modelo espiral
É um modelo evolucionário que combina a natureza iterativa da prototipagem com o estilo clássico do modelo cascata.
 
2.3 Modelos de processo de software tradicionais (continuação)
2.4 RUP – Rational Unified Process (Processo Unificado Racional)
O RUP é orientado por casos de uso. É um processo da engenharia de software proprietário comercializado pela IBM. Na horizontal são representadas as fases, que formam a estrutura dinâmica. Na vertical são representadas as disciplinas (workflows), que formam a estrutura estática. 
 
 
2.5 Modelos de processo pessoal e de equipe
 PSP - Personal Software Process (Processo de Software Pessoal)
O PSP é um processo de desenvolvimento específico para engenheiros de software. O PSP orienta o planejamento e o desenvolvimento dos componentes do software.
 A ideia é: “A melhoria da capacidade da organização depende da melhoria de cada indivíduo”.
 
 
2.5 Modelos de processo pessoal e de equipe (continuação)
 TSP - Team Software Process (Processo de Software da Equipe)
O TSP é uma extensão do PSP com enfoque na equipe de trabalho. 
O TSP foi “criado” para ser seguido por desenvolvedores previamente treinados no PSP para trabalhar em equipes auto-organizadas e desenvolver software de qualidade. 
O TSP pode ser uma solução para pequenas organizações de software que se consideram muito pequenas para enfrentar as complexidades do CMMI. 
 
Conceito e estrutura:
 As equipes são autogerenciadas – A gerência orienta e dá suporte; a equipe planeja e gerencia as tarefas do dia a dia; os processos se baseiam na experiência, no conhecimento e na maturidade.
O TSP provê um conjunto de elementos:
scripts de processos;
formulários, relatórios e gráficos; e 
papéis. 
Interatividade
O processo de controle da qualidade do software aborda inspeções de entrada e saída do processo, revisões e testes do processo, confiabilidade dos equipamentos, técnicas de medições e dos dados coletados.” O objetivo do processo de controle da qualidade do software é:
Estabelecer uma regra eficaz de acompanhamento dos requisitos do software.
Examinar minuciosamente o artefato de software e estabelecer a prática de revisões sucessivas.
Garantir as operações corretas das funcionalidades do software.
Maior agilidade no desenvolvimento do software.
Melhorar o desempenho do software.
Interatividade
“O processo de controle da qualidade do software aborda inspeções de entrada e saída do processo, revisões e testes do processo, confiabilidade dos equipamentos, técnicas de medições e dos dados coletados.” O objetivo do processo de controle da qualidade do software é:
Estabelecer uma regra eficaz de acompanhamento dos requisitos do software.
Examinar minuciosamente o artefato de software e estabelecer a prática de revisões sucessivas.
Garantir as operações corretas das funcionalidades do software.
Maior agilidade no desenvolvimento do software.
Melhorar o desempenho do software.
Interatividade
Alternativa correta: B
“O processo de controle da qualidade do software aborda inspeções de entrada e saída do processo, revisões e testes do processo, confiabilidade dos equipamentos, técnicas de medições e dos dados coletados.” O objetivo do processo de controle da qualidade do software é:
Examinar minuciosamente o artefato de software e estabelecer a prática de revisões sucessivas.
Justificativa:
A análise detalhada de cada artefato de software garante que o produto completo vai sofrer melhorias ao longo de seu ciclo de vida. A prática de revisões sucessivas por meio de iterações permitem implementar novos recursos e atualizações de tecnologias.
ATÉ A PRÓXIMA!

Mais conteúdos dessa disciplina