Engenharia de Software

Slides:



Advertisements
Apresentações semelhantes
Projeto Qualified Curriculum
Advertisements

Programa das Aulas 20/09/05 - Apresentação da disciplina
Requisitos de Software
Qualidade de Software Aula 4
Objetivos Medir a Funcionalidade de Sistemas de acordo com a perspectiva do usuário Medir o desenvolvimento e a manutenção de software independentemente.
Gerenciamento do escopo
Análise de Pontos de Função Carlos Eduardo Vazquez
Amintas engenharia.
Engenharia de Software
Rational Unified Process
Identificando requisitos
Planificação do Projecto de SW
Engenharia de Software
O padrão de gerenciamento de projetos de um projeto
Gerenciamento do escopo do projeto
Gerenciamento da qualidade do projeto
Centrado na arquitetura
INTRODUÇÃO A INFORMÁTICA
Faculdade de Ciências Sociais de Aplicadas de Petrolina – FACAPE
Walter de Abreu Cybis Outubro, 2003
Adélia Barros Requisitos Adélia Barros
Engenharia de Requisitos
O processo de coletar os requisitos (escopo do cliente)
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Requisitos Funcionais e Não-Funcionais/ Documento de Requisitos
Como Desenvolver Sistemas de Informação
TSDD Teste de segurança durante o desenvolvimento.
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Gerenciamento do Escopo
Classes e objetos Modelagem
UFRPE – Modelos de Qualidade Teresa Maciel
GERENCIAMENTO DE AQUISIÇÕES PMBOK
Engenharia de Requisitos
José Roberto Blaschek Gerência do Escopo José Roberto Blaschek.
Prof.Alfredo Parteli Gomes
Planejamento e Gerenciamento de Projetos
Visão Geral PRO.NET.
Cap 4 – Métricas do Processo e Projeto de Software
1 Cap 5 –Planejamento de Projetos de Software Ricardo L Schneider FES.
PMBOK 5ª Edição Capítulo 11
PMBOK 5ª Edição Capítulo 5
Fase de Elaboração: Fluxo de Requisitos
Gestão de Projetos Ms. Karine R. de Souza
IEEE Std IEEE Melhores Práticas para Especificações de Requisitos de Software (ERS)
PMBOK 5ª Edição Capítulo 9
Qualidade.
GESTÃO DE PROJETOS Aula 5 1.
Prof. Alexandre Vasconcelos
Qualidade do Produto de Software
Projeto de Banco de Dados
Aula 4: Áreas de Conhecimento em Gerenciamento de Projeto, Escopo
Técnicas e Projeto de Sistemas
Gerenciamento de Projetos
Processo de Aquisição Adilson de Almeida Cezar Meriguetti
O Processo de desenvolvimento de software
Agenda GERÊNCIA DE PROJETOS PMI – Project Management Institute
QUALIDADE DE SOFTWARE & AVALIAÇÃO DE DESEMPENHO DE SISTEMAS II
Qualidade de Processo de Software CMM e CMMI Aldo Rocha.
Engenharia de Software
Qualidade de Software Aula 4
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.
Gestão de defeitos.
GERENCIAMENTO DE PROJETOS DE T.I
Requisitos de Software
Fase de Concepção Levantamento de Requisitos, Organização de Requisitos, Planejamento dos Ciclos Iterativos.
Hukarz Open Source Process D01 Alan Kelon, Silvio Meira Recife, 01/12/2006.
Prof.: Bruno Rafael de Oliveira Rodrigues ENGENHARIA DE SOFTWARE.
TÉCNICAS DE ESTIMATIVAS
Estimativa, Teste e Inspeção de Software
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
Transcrição da apresentação:

Engenharia de Software Cláudio Larieira Claudio.larieira@veris.edu.br

Plano de Aula – 3o. período Requisitos Conceitos Tipos de requisitos Atividades de gestão e engenharia Técnicas de elicitação Fontes de requisitos Workshop sobre Requisitos Estimativas Estimativas de Tamanho e Esforço : FPA, UCP, LOC e WBS Métricas de Software Possíveis Indicadores

Requisitos

Pondo em prática ... Você aceitaria ou não o documento de requisitos do Sistema de Segurança apresentado ? E o projeto ?

Dificuldades em se obter Requisitos Usuários nem sempre sabem o que efetivamente desejam do sistema Diferença de linguagem entre os usuários e a equipe de projeto, ocasionando problemas de entendimento Requisitos iguais, expressados de maneira diferente, por diferentes usuários Fatores políticos na definição de requisitos Constante mudança de requisitos em função de mudanças de cenário econômico e de negócio Ansiedade dos usuários em ter o software implementado rapidamente, não permitindo que se executem adequadamente as atividades de requisitos Resistência ao software a ser implementado Complexidade dos problemas de negócio

Requisitos Segundo IEEE (The Institute of Electrical and Electronics Engineers), Requisito é : “ Uma condição ou capacidade requerida por um usuário para resolver um problema ou atingir um objetivo” “Uma condição ou capacidade que deve ser atingida ou possuída por um sistema ou partes de um sistema para satisfazer um contrato, padrão, especificação ou outros documentos”

Características de um Requisito Segundo Wiegers, todo requisito deve ser : Completo – descrevendo plenamente a necessidade a ser implementada Correto – atendendo de maneira inequívoca a necessidade solicitada Exequível – podendo ser implementado dentro das limitações e ambiente do sistema Necessário – correspondendo a algo que o usuário realmente necessita Priorizado – podendo ser alocado nas iterações ou release de um software conforme o momento adequado Não ambíguo – sem margem de dúvidas ou de interpretação Verificável – passível de verificação e validação

Os requisitos se dividem em : Tipos de Requisito Os requisitos se dividem em : Requisitos de Usuário – descrevendo as funções que o sistema deverá ter e as limitações sob as quais deverá operar Requisitos de Sistema – descrevendo a maneira como o sistema deverá responder às necessidades dos usuários Requisitos de Software – descrevendo detalhadamente a maneira como o software deverá ser construído

Os requisitos de sistema se dividem em : Funcionais – descrevendo os comportamentos esperados para o sistema Não funcionais – descrevendo as restrições sobre os serviços ou as funções oferecidas pelo sistema, tais como : De produto : facilidade de uso, desempenho, espaço, confiabilidade e portabilidade Organizacionais : entrega, implementação e padrões Externos : interoperabilidade, éticos e legais

Requisitos Não-funcionais (segundo Sommerville) Requisitos do Produto Requisitos Organizacionais Requisitos Externos Requisitos de Confiabilidade Requisitos de Eficiência Requisitos de Portabilidade Requisitos de Interoperabilidade Requisitos Éticos Requisitos de Facilidade de Uso Requisitos de Entrega Requisitos de Implementação Requisitos de Padrões Requisitos Legais Requisitos de Desempenho Requisitos de Espaço Requisitos de Privacidade Requisitos de Segurança

Requisitos podem ser obtidos através de : Fontes de Requisitos Requisitos podem ser obtidos através de : Entrevistas e discussões com potenciais usuários Documentos sobre produtos próprios ou de concorrentes Especificações de sistemas atuais Relatórios de problemas ou de solicitação de melhoria de sistemas atuais Pesquisas de marketing ou questionários de usuários Observação de usuário trabalhando Análise de cenários

Atividades de Requisitos Os requisitos são tratados em Engenharia de Software sob duas perspectivas : Engenharia de Requisitos : atividades relacionadas ao desenvolvimento do requisito Gestão de Requisitos : atividades relacionadas ao gerenciamento dos requisitos documentados

Atividades de Requisitos Mercado, Cliente, Gerenciamento Requisitos Analisa, Documenta, Revisa, Negocia Desenvolvimento de Requisitos Requisitos em Baseline Gestão de Requisitos Baseline corrente Baseline revisada Processo de Mudança de Requisitos Mercado, Cliente, Gerenciamento Ambiente de Projeto Mudanças de Requisitos Mudanças de Projeto

Atividades de Requisitos Engenharia de Requisitos envolve : Elicitação – identificar os usuários e coletar os requisitos Análise – compreender o domínio do problema, resolver conflitos e priorizar requisitos Especificação – documentar os requisitos de maneira compreensível, através de modelagem Verificação - garantir que eles estejam adequados

Atividades de Requisitos Gestão de Requisitos envolve : Identificação – garantir que cada requisito tenha uma identidade única dentro do projeto Controle de Mudanças – avaliar o impacto e o custo as mudanças Rastreabilidade - permitir que haja uma “amarração” entre os requisitos documentados e a implementação do software Manutenção da baseline – garantir a integridade da base de requisitos do projeto

Documentos de Requisitos Todos os requisitos a serem implementados devem ser consolidados em um artefato onde possam ser identificados e claramente especificados para que componham a baseline do projeto de software Os documentos de requisitos devem ser colocados sob gestão de configuração para que se mantenha a integridade das informações e visibilidade de progresso e mudanças ao longo do tempo de projeto

Possíveis abstrações de Documentos de Requisitos Documento de Definição do Sistema - requisitos em um nível mais alto, com a visão de negócio ou de sistema, para que se estabeleça um entendimento e comprometimento dos requisitos juntos aos usuários System Requirements Specification - requisitos em um nível de abstração intermdíario, com a visão de implementação do sistema Software Requirements Specification - requisitos em um nível de abstração mais baixo, com a visão de implementação do software, para que se apresente à equipe de projeto os requisitos e a solução a ser implementada

Outras possíveis abstrações de Documentos de Requisitos Requisitos de Negócio Documento de Visão e Escopo Atributos de Qualidade Requisitos de Usuário Outros Requisitos Não Funcionais Documento de Caso de Uso Requisitos do Sistema Requisitos Funcionais Limitações Especificação de Requisitos de Software

Usando técnica de Casos de Uso Usando técnicas de Análise Essencial : Requisitos Algumas possibilidades de se fazer engenharia de requisitos em projetos de software combinadas com WBS : Usando técnica de Casos de Uso Usando técnicas de Análise Essencial : Diagrama de Contexto, DFD, DER, tabelas de decisão, árvores de decisão e pseudo-código Usando técnicas de JAD Usando técnicas de entrevista e questionário Usando técnicas de Prototipação

Pondo em prática ... E agora que você conhece um pouco mais sobre Requisitos, você aceitaria ou não o documento de requisitos do Sistema de Segurança apresentado ? Liste argumentos para a sua decisão.

Estimativas

Estimativas de tamanho de software Métricas mais conhecidas : LOC (line of code) : Através de contagem de linhas de programação obtém-se o esforço necessário WBS (Work Breakdown Structure) : Através de “deliverables”, encontra-se o tamanho do software FPA (Function Point Adjusted) : Através de contagem dos elementos de transação e de dados, obtém-se o tamanho funcional do software UCP (Use Case Point) : Semelhante ao FPA, porém voltado a Casos de Uso COCOMO (Constructive Cost Model) : Modelo onde se obtém custo, esforço e prazo

FPA – Function Point Adjusted A métrica de ponto de função, primeiramente proposta por Albrecht (IBM, em 1979), pode ser usada efetivamente como um meio de mensurar as funcionalidades entregues por um sistema. Pontos de Função são derivados usando um relacionamento empírico baseado em medidas quantificáveis do domínio de informação do software e suas respectivas complexidades Estes valores sobre o domínio da informação são definidos da seguinte maneira : Número de external inputs (EIs) Número de external outputs (EOs) Número de external inquiries (EQs) Número de internal logical files (ILFs) Número de external interface files (EIFs)

Function Points

Métricas de Software Alguns sites de apoio : FPA : International Function Point Users Group (http://www.ifpug.org) Brazilian Function Point Users Grupo (http://www.bfpug.org) ISBSG (http://www.isbsg.org) COCOMO : Site com a técnica (http://sunset.usc.edu/research/COCOMOII/index.html)

Métricas de Software

Pondo em prática ... Pergunta : Como avaliar que a Fábrica de Software do estudo de caso está desempenhando bem? Escolha ao menos 5 maneiras de medir.

Aprendendo com dados quantitativos e qualitativos Organizações podem aprender e melhorrar através de : Coleta e análise de dados quantitativos sobre processos de desenvolvimento e produtos Coleta e análise de dados qualitativos, por exemplo, o que os desenvolvedores pensam sobre os processos de desenvolvimento e produtos

Triângulo da Qualidade de McCall’s b l y P o r t a b i l y F l e x i b t y R e u s a b i l t y T e s t a b i l y I n t e r o p a b i l y P R O D U C T E V I S N P R O D U C T A N S I P R O D U C T E A I N C o r e c t n s U s a b i l t y E f i c e n y R e l i a b t y I n t e g r i y

Medidas, Métricas e Indicadores Uma medida provê uma indicação quantitativa da extensão, quantidade, dimensão, capacidade ou tamanho de algum atributo de um produto ou processo O glossário IEEE define uma métrica como “uma medida quantitativa do grau a qual um sistema, um componente ou um processo possui de um dado atributo.” Um indicador é uma métrica ou a combinação de métricas que provêem uma visão sobre um processo de software, um projeto ou o produto propriamente dito

Descomplicando ... O quê é uma métrica ? É um processo que permite aos desenvolvedores/gestores obter visão sobre medidas quantitativas de um software e do processo de software melhorando a eficácia de planejamento e controle Por quê isto é importante ? Elimina a subjetividade das análises a serem realizadas Antecipa tendências na implementação do software Permite realizar comparações

Métricas de Software O quê é possível medir em um software ? Tamanho Esforço Custo Prazo Risco Recurso computacional crítico Retrabalho Erros em testes Falhas em produção Produtividade da equipe Etc.

Métricas de Software Quais os possíveis indicadores ? Tamanho – pontos de função, pontos por caso de uso, linhas de código, etc. Esforço – horas de esforço por tipo de complexidade de programa Custo – custo médio por programa Prazo – desvio médio de projeto Retrabalho – quantidade de retornos de teste Erros em testes – quantidade de defeitos em funcionalidade Falhas em produção – quantidade de páginas web não encontradas Produtividade da equipe - número de linhas codificadas por mês Etc.

Processo de Mensuração Formulação – A derivação das medidas de software e das métricas apropriadas para a representação do que se espera conhecer sobre o software, projeto ou processo. Coleta – O mecanismo usado para acumular os dados requeridos para derivar as métricas formuladas. Análise – A consolidação das informações obtidas e a aplicação de ferramentas matemáticas. Interpretação – A avaliação dos resultados da métrica resulta em um esforço para obter uma visão sobre a qualidade representada do software, projeto ou processo. Feedback – Recomendações derivadas da interpretação das métricas transmitidas ao time de desenvolvimento.

Pondo em prática ... Pergunta : Quais indicadores você estabeleceria para gerenciar sua Fábrica de Software ? Escolha ao menos 5.

Nesta aula, tratamos sobre : Encerrando nossa aula Nesta aula, tratamos sobre : Requisitos Conhecendo melhor o conceito sobre requisitos, os tipos possíveis e as atividades propostas pela Engenharia de Software para tratá-los Discutindo sobre técnicas de elicitação alternativas à técnica de WBS proposta pelo PMBOK Aprendendo como avaliar de maneira mais objetiva a qualidade dos requisitos recebidos