S13 - Software e Engenharia de Software - Continuação

Documentos relacionados
ENGENHARIA DE SOFTWARE. Aula 02 Engenharia de Software

ENGENHARIA DE SOFTWARE

S12 - Software e Engenharia de Software

FUNDAMENTOS DE ENGENHARIA DE SOFTWARE. Professor: Paulo Vencio

S11 - Software e Engenharia de Software

Engenharia de Software

Processos de Gerenciamento de Projetos. Parte 02. Gerenciamento de Projetos Espaciais CSE-301. Docente: Petrônio Noronha de Souza

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

Engenharia de Software

S14 - Engenharia de Requisitos cap.5

FUNDAMENTOS DA ANÁLISE E PROJETO DE SISTEMAS. Projeto de Programas PPR0001

Gerenciamento da Integração de Projetos. Parte 03. Gerenciamento de Projetos Espaciais CSE-301. Docente: Petrônio Noronha de Souza

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

Material Disciplina Tópicos em Engenharia de Software Parte 2. (Requisitos,Projeto,Implementação,Gerencia mento e Qualidade)

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

Engenharia de Software

Por que estudar Engenharia de Software AULA PROF. ABRAHAO LOPES

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins.

TESTES DE SOFTWARE Lista de Exercício 01. Luiz Leão

METODOLOGIAS ÁGEIS FEATURE DRIVEN DEVELOPMENT E AUP

Disciplina - Requisitos. Grupo Yuni Luiz Eduardo Káthia

Engenharia de Software: Uma Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1 o semestre de 2015

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS. Aula 5. Agenda

Conceitos de Engenharia de Software. Prof.ª: Érika A. Barrado

Análise de Requisitos, Estimativas e Métricas

CIÊNCIA DA COMPUTAÇÃO. Aula 5

Gerenciamento de integração de projeto

Disciplina: Engenharia de Software. 3 Bimestre Aula 2: EVOLUÇÃO DE SOFTWARE

GERENCIAMENTO DA QUALIDADE DO PROJETO

Rational Unified Process (RUP)

Gerência e Planejamento de Projeto. Engenharia de Software I Profa. Elisa Yumi Nakagawa 1 o semestre de 2015

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

RUP Rational Unified Proccess (Processo Unificado da Rational) Equipe WEB Cercomp

Capítulo 2 - Processos de Software

Teste de Software. Objetivo: Executar software para revelar erros/falhas ainda não descobertos. Pode gastar 40% do esforço de desenvolvimento

Engenharia de Software II

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

GESTÃO DE PROJETOS Unidade 2 Gerenciamento da Integração. Luiz Leão

INF014 Análise e Projeto de Sistemas Processos Unificado -RUP

PDS. Aula 1.4 Modelos de Processo. Prof. Dr. Bruno Moreno

Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 2ª Parte Prof. Sandra Pais Soares

Requisitos de Sistemas

1) Deixe tudo bem organizado e registrado

Engenharia de Software

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Desenvolvimento ágil de software

Escolhendo um Modelo de Ciclo de Vida

Gerência e Planejamento de Projeto. Engenharia de Software Profa. Elisa Yumi Nakagawa 1 o semestre de 2016

ENGENHARIA DOS REQUISITOS

Crise do Software. Crise de tecnologia - hardware caminha mais rápido que o software

Análise e Projeto de Sistemas de Informação (APSI)

Planejamento dos Custos

Gerenciamento de Projetos

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Prof. Fabiano Papaiz IFRN

Processos de Software

Modelos Prescritivos de Processo

ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Campus: Data: / / Nome:

ISO/IEC Roteiro IEC ISO. Histórico ISO/IEC ISO

Introdução a Teste de Software

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

1. A função DevOps, que se concentra principalmente em Produtos & Serviços:

ENGENHARIA DE REQUISITOS

Gerência da Configuração de Software. Teresa Maciel DEINFO/UFRPE

Transcrição:

S13 - Software e Engenharia de Software - Continuação ENGENHARIA DE SOFTWARE PRESSMAN, 2011 Gilberto Wolff UTFPR

Roteiro O processo de software A prática da Engenharia de software Mitos relativos ao software Como tudo começa

Engenharia de Software É uma tecnologia de camadas Deve estar fundamentada na qualidade (foco na qualidade) É o que dá sustentabilidade a ela, segundo Pressman, 2011

O processo de Software Processo é um conjunto de atividades, tarefas e ações, realizadas na elaboração de bens (tangíveis produtos e/ou intangíveis - serviços) No contexto da Eng.ª de software, um processo não é uma prescrição rígida, é uma abordagem adaptável que possibilita às pessoas realizar o trabalho de selecionar e escolher o conjunto apropriado de ações e tarefas A intenção é a de sempre entregar software dentro do prazo e com qualidade suficiente para satisfazer àqueles que patrocinaram sua criação e àqueles que irão utilizá-lo

O processo de Software Um método de processo (framework) estabelece o alicerce para um processo de Eng.ª de software completo, por meio da identificação de um pequeno número de atividades estruturais, aplicáveis a todos os projetos de software, independentemente de tamanho ou complexidade Um método de processo genérico para Eng.ª de software compreende cinco atividades: Comunicação Stakeholders Planejamento Mapa Modelagem Esboço (ideia do todo) Construção geração do código e testes Emprego entrega para avaliação cliente

O processo de Software As atividades do método do processo de Engª de software são complementadas por uma série de atividades de apoio Em geral, elas são aplicadas ao longo de um projeto, ajudando a equipe a gerenciar, a controlar o progresso, a qualidade, as mudanças e o risco

O processo de Software As atividades de apoio típicas são : Controle e acompanhamento do projeto; Administração de riscos; Garantia da qualidade de software; Revisões técnicas; Medição; Gerenciamento da configuração de software; Gerenciamento da reusabilidade; e, Preparo e produção de artefatos de software.

A prática da Engenharia de Software No livro How to solve it Como resolver isto?, Polya apud Pressman, 2011, apontou a essência da prática da Eng.ª de software: Compreender o problema (comunicação e análise) Planejar uma solução (modelagem e projeto de software) Executar o plano (geração de código) Examinar o resultado para ter precisão (testes e garantia da qualidade)

A prática da Engenharia de Software Essas etapas conduzem as seguintes questões essenciais: Compreenda o problema respondendo às questões: Quem tem interesse na solução do problema? Quem são os interessados - Stakeholders? Quais são as incógnitas? Que dados, funções e recursos são necessários para resolver apropriadamente o problema? O problema pode ser compartimentalizado ( dividido em partes )? É possível representá-lo em problemas menores que talvez sejam mais fáceis de serem resolvidos? O problema pode ser representado graficamente? É possível criar um modelo analítico?

É possível representar uma solução de maneira que conduza a uma implementação efetiva? É possível criar um modelo de projeto? A prática da Engenharia de Software Essas etapas conduzem as seguintes questões essenciais: Planeje uma solução faça um pequeno projeto Você já viu problemas similares anteriormente? Existem padrões que são reconhecíveis em uma potencial solução? Existe algum software que implemente os dados, as funções e características necessárias? Algum problema similar já foi resolvido? Em caso positivo, existem elementos da solução que podem ser reutilizados? É possível definir subproblemas? Em caso positivo, existem soluções aparentes e imediatas para eles?

A prática da Engenharia de Software Essas etapas conduzem as seguintes questões essenciais: Execute / leve adiante o plano A solução se adéqua ao plano? O código fonte pode ser atribuído ao modelo de projeto? Cada uma das partes componentes da solução está provavelmente correta? O projeto e o código foram revistos, ou melhor, provas da correção foram aplicadas ao algoritmo?

A prática da Engenharia de Software Essas etapas conduzem as seguintes questões essenciais: Examine o resultado realize um número adequado de testes É possível testar cada parte da solução? Foi implementada uma estratégia de testes razoável? A solução produz resultados que se adequam aos dados, às funções e características necessárias? O software foi validado em relação à todas solicitações dos interessados?

7º Princípio: pense A prática da Engenharia de Software Princípio - uma importante afirmação ou lei subjacente em um sistema de pensamento 7 Princípios gerais de Hooker - ajudam a estabelecer um modo de pensar para a prática segura da Eng.ª de software 1º Princípio: a razão de existir agrega valor real ao sistema? 2º Princípio: faça de forma simples 3º Princípio: mantenha a visão 4º Princípio: o que um produz outros consomem 5º Princípio: esteja aberto para o futuro 6º Princípio: planeje com antecedência visando a reutilização

Mitos relativos ao Software - Gerenciamento Mito: Já temos um livro que está cheio de padrões e procedimentos para desenvolver software. Ele não supre meu pessoal com tudo que eles precisam saber? Realidade: O livro com padrões pode existir, mas ele é usado? Os praticantes da área estão cientes de que ele existe? Esse livro reflete a prática moderna da Eng.ª de software? É completo? É adaptável? Está alinhado para melhorar o tempo de entrega, mantendo ainda o foco na qualidade? Em muitos casos, a resposta para todas essas perguntas é não!

Mitos relativos ao Software - Gerenciamento Mito: Se o cronograma atrasar, poderemos acrescentar mais programadores e ficarmos em dia. Realidade: O desenvolvimento de software não é um processo mecânico como o de fabricação. Segundo Brooks, 95 apud Pressman, 2011, acrescentar pessoas num projeto de software atrasado só o tornará mais atrasado ainda. A princípio essa afirmação pode parecer um contrassenso, no entanto, quando novas pessoas entram, as que já estavam terão de gastar tempo situando os recém-chegados, reduzindo, consequentemente, o tempo destinado ao desenvolvimento produtivo. Pode-se adicionar pessoas, mas somente de forma planejada e bem coordenada.

Mitos relativos ao Software - Gerenciamento Mito: Se eu decidir terceirizar o projeto de software, posso simplesmente relaxar e deixar essa empresa realizá-lo. Realidade: Se uma organização não souber gerenciar e controlar projetos de software, ela irá, invariavelmente enfrentar dificuldades ao terceirizá-los.

Mitos relativos ao Software - Clientes Mito: Uma definição geral dos objetivos é suficiente para começar a escrever os programas podemos preencher detalhes posteriormente. Realidade: Embora nem sempre seja possível uma definição ampla e estável dos requisitos, uma definição de objetivos ambígua é receita para um desastre. Requisitos não ambíguos (normalmente derivados da iteratividade) são obtidos somente pela comunicação contínua e eficaz entre cliente e desenvolvedor.

Mitos relativos ao Software - Clientes Mito: Os requisitos de software mudam continuamente, mas as mudanças podem ser facilmente assimiladas, pois o software é flexível. Realidade: É verdade que os requisitos de software mudam, mas o impacto da mudança varia dependendo do momento em que ela foi introduzida. Quando as mudanças dos requisitos são solicitadas cedo (antes do projeto ou da codificação terem começado), o impacto sobre os custos é relativamente baixo. Entretanto, conforme o tempo passa, ele aumenta rapidamente - recursos foram comprometidos, uma estrutura de projeto foi estabelecida e mudar pode causar recursos adicionais e modificações fundamentais no projeto.

Mitos relativos ao Software Profissionais da área Mito: Uma vez feito um programa e o colocado em uso, nosso trabalho está terminado. Realidade: Uma vez alguém já disse que o quanto antes se começar a codificar, mais tempo levará para terminá-lo. Levantamentos indicam que entre 60 e 80% de esforço será despendido após a entrega do software ao cliente pela primeira vez.

Mitos relativos ao Software Profissionais da área Mito: Até que o programa entre em funcionamento, não há maneira de avaliar sua qualidade. Realidade: Um dos mecanismos de garantia da qualidade de software pode ser aplicado desde a concepção de um projeto a revisão técnica. Revisores de software são um filtro de qualidade que mostram ser mais eficientes do que testes para encontrar certas classes de defeitos de software.

Mitos relativos ao Software Profissionais da área Mito: O único produto passível de entrega é o programa em funcionamento. Realidade: Um programa funcionando é somente uma parte de uma configuração de software que inclui muitos elementos. Uma variedade de produtos derivados (exemplo, modelos, documentos, planos) constitui uma base para uma engenharia bem sucedida e, mais importante, uma orientação para suporte de software.

Mitos relativos ao Software Profissionais da área Mito: A Eng.ª de software nos fará criar documentação volumosa e desnecessária e, invariavelmente, irá nos retardar. Realidade: A Eng.ª de software não trata de criação de documentos, trata da criação de um produto de qualidade. Melhor qualidade conduz à redução de retrabalho e, menos retrabalho resulta em maior rapidez na entrega.

Como tudo começa Todo projeto de software é motivado por alguma necessidade de negócio, tal como: A necessidade de corrigir um defeito em uma aplicação existente A necessidade de adaptar um sistema legado a um ambiente de negócios em constante transformação A necessidade de estender as funções e os recursos de uma aplicação existente, ou a necessidade de criar um novo produto, serviço ou sistema

Software CasaSegura

Referências ENGHOLM JÚNIOR, H. Engenharia de software na prática. São Paulo : Novatec Editora, 2010. Paula Filho, W. de P. Engenharia de software: fundamentos, métodos e padrões. 3.ed. Rio de Janeiro : LTC, 2011. PRESSMAN, R. S. Engenharia de software: uma abordagem profissional. 7.ed. Porto Alegre : AMGH, 2011.