Sumário. Engenharia de Software. Gestão da Complexidade. Objectivos. Engenharia de Software



Documentos relacionados
Engenharia de Software

Análise de Sistemas. Conceito de análise de sistemas

Introdução. Aulas. ltodi.est.ips.pt/es. Detalhes administrativos Definição de engenharia de software Contexto Relação com outras áreas e disciplinas

MODELAGEM DE SISTEMA Apresentação

Gestão do Risco e da Qualidade no Desenvolvimento de Software

Modelo Cascata ou Clássico

GESTÃO DAS INFORMAÇÕES DAS ORGANIZAÇÕES MÓDULO 11

1 ARQUITECTURA DO PRODUTO - MODULARIZAÇÃO E SISTEMAS DE PLATAFORMAS NA INDUSTRIA FERROVIÁRIA

ARQUITECTURAS DE SOFTWARE

Introdução Fatores de Qualidade Garantia de Qualidade Rivisões de Software Conclusão. Qualidade. Plácido A. S. Neto 1

Como elaborar um Plano de Negócios de Sucesso

A NANOTEC Uma Iniciativa em Nanotecnologia

Base de Dados para Administrações de Condomínios

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

SISTEMAS DE INFORMAÇÃO PARA GESTÃO

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Atividade da gerência da qualidade

NP EN ISO 9001:2000 LISTA DE COMPROVAÇÃO

Programa de Parcerias e Submissão de Propostas 2014/15

Matemática Aplicada às Ciências Sociais

REDE TEMÁTICA DE ACTIVIDADE FÍSICA ADAPTADA

Engenharia de Software

ActivALEA. active e actualize a sua literacia

Desenvolvimento Iterativo. Unified Process (UP) Esta abordagem ao desenvolvimento

PROPOSTA DE PROGRAMA DE ACÇÃO PEDAGÓGICA SOBRE ARQUITECTURA, CIDADE E TERRITÓRIO PARA CRIANÇAS ANDREIA SALAVESSA

Universidade Federal de Minas Gerais ICEx / DCC

A Gestão, os Sistemas de Informação e a Informação nas Organizações

Mestrado em Segurança da Informação e Direito no Ciberespaço. Segurança da informação nas organizações Gestão de Configuração

Encontro Investigação, Desenvolvimento e Inovação Lisboa, 07de Outubro de 2013

Auditoria e Qualidade de Software ISO/IEC 9126 Engenharia de Software Qualidade de Produto

Modelação e Simulação

TRANSIÇÃO DA ISO 9001:2000 PARA ISO 9001:2008 DOCUMENTO SUMÁRIO DE ALTERAÇÕES ALTERAÇÕES QUE PODEM AFECTAR O SISTEMA

Avaliando o Cenário Político para Advocacia

Addis Ababa, ETHIOPIA P. O. Box 3243 Telephone 517 Fax:

Plataforma de Simulação de RSSF e modelo de energia em RSSF. Pedro Marques da Silva

DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho.

Processos de Desenvolvimento de Software

QUALIDADE E EXCELÊNCIA NA SOCIEDADE DA INFORMAÇÃO. Manuel Antunes

3. Engenharia de Requisitos

Qualidades. Atributos de Qualidade. Atributos de Qualidade. Categorias de Qualidades. Arquitecturas de Software

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado.

Análise e Concepção de Sistemas de Informação

PROJECTO DE RESOLUÇÃO N.º 255/IX RECOMENDA AO GOVERNO A TOMADA DE MEDIDAS COM VISTA AO DESENVOLVIMENTO DO SOFTWARE LIVRE EM PORTUGAL

PRESSUPOSTOS BASE PARA UMA ESTRATÉGIA DE INOVAÇÃO NO ALENTEJO

Desenvolvimento de Interfaces Prototipação

Desenho de Software. Desenho de Software 1

SEMINÁRIOS AVANÇADOS GESTÃO DE PROJECTOS

Indice. Parte I - Um Modelo de Gestão de Projectos. Introdução... 1

Representação do Conhecimento

Engenharia de Software

CSCW - Trabalho Cooperativo Suportado por Computador

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software

CEF/0910/26436 Relatório final da CAE (Univ) - Ciclo de estudos em funcionamento

LEAN PRODUCTION Produção Magra. Processo Criativo. Instituto Superior de Educação e Ciências

As Comunidades de Prática (CoPs) ao Serviço da Organização

FUNDAÇÃO MINERVA CULTURA ENSINO E INVESTIGAÇÃO CIENTÍFICA NOTA EXPLICATIVA

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário. As Normas da família ISO As Normas da família ISO 9000

sistemas de informação nas organizações

. evolução do conceito. Inspecção 3. Controlo da qualidade 4. Controlo da Qualidade Aula 05. Gestão da qualidade:

Módulo 2 Análise de Grupos de Interesse

Análise de Ponto de Função

Introdução. Projecto EDSF / APF. Manual de Boas Práticas na Utilização da Energia

Ficha da Unidade Curricular (UC)

1 Introdução A motivação e o problema da pesquisa

Oficina de Multimédia B. ESEQ 12º i 2009/2010

AVALIAÇÃO DE PROGRAMAS E DE PROJECTOS PEDAGÓGICOS

Mestrado em Sistemas Integrados de Gestão (Qualidade, Ambiente e Segurança)

Selling Tools. Dale Carnegie Training Portugal

Verificação é um processo para se determinar se os produtos, (executáveis ou

NCE/10/01121 Relatório preliminar da CAE - Novo ciclo de estudos

O que fazer para transformar uma sala de aula numa comunidade de aprendizagem?

B U S I N E S S I M P R O V E M E N T

Modelo de processos para la industria de software

Inovação. Desenvolvimento Sustentado da Inovação Empresarial

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

MBA MARKETING: ENFASE EM VENDAS. Negociação Aplicada a Vendas Prof. Dr. Cleverson Renan da Cunha

NCE/11/01396 Relatório preliminar da CAE - Novo ciclo de estudos

A psicologia tem uma dimensão prática que se integra em vários contextos e instituições sociais: escolas, hospitais, empresas, tribunais, associações

Plataforma de Gestão de Actualizações de Software Descrição do Problema

Departamento de Engenharia Informática DISTRIBUTED PROBLEM SOLVING

Notas de Aula 02: Processos de Desenvolvimento de Software

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

Melhorias de Processos de Engenharia de Software

Controlo da Qualidade Aula 05

Realizou-se dia 24 de Março, na Maia, nas instalações da Sonae Learning Center, a 6ª sessão da CoP, desta vez presencial.

Análise de complexidade

SISTEMA DE INCENTIVOS À I&DT

Projeto de Sistemas I

Planificação Anual. Escola Secundária de Pombal - (400634) Referência ANO LECTIVO / 2011 COMPETÊNCIAS GERAIS

O modelo de balanced scorecard

Empreendedorismo De uma Boa Ideia a um Bom Negócio

Negócios à Sua dimensão

AUDITORIAS DE VALOR FN-HOTELARIA, S.A.

Projeto de Engenharia TC022 Introdução a Engenharia Prof. Dr. Sergio Scheer

Transcrição:

Engenharia de Software Engenharia de Software António Rito Silva Rito.Silva@inesc-id.pt Objectivos Problemas Qualidades Técnicas Conclusões Referências Sumário Engenharia de Software 2 Objectivos A engenharia de software trata da construção de programas cuja complexidade requer a intervenção de equipas de engenheiros. Devido às necessidades de interacção e cooperação entre os membros da equipa de engenheiros, a engenharia de software deve possuir um conjunto de princípios não só aplicáveis aos produtos desenvolvidos como também ao processo de desenvolvimento desses produtos. Gestão da Complexidade Análise do problema Decomposição em subproblemas tratáveis Síntese da solução Composição das soluções para cada um dos subproblemas Engenharia de Software 3 Engenharia de Software 4

Intervenientes Cliente controla os fundos, negocia o contracto e estabelece requisitos Programador constrói uma especificação e desenvolve o programa de acordo Utilizador define os requisitos e utiliza o sistema Delimitar o Problema Fronteira do sistema com o exterior, outros sistemas incluídos Objectos/entidades do sistema Actividades do sistema Engenharia de Software 5 Engenharia de Software 6 Construir a Solução Por analogia com outras engenharias é necessário definir um conjunto de etapas que estabeleçam as interacções entre todos os intervenientes. Estas etapas podem (não necessariamente) estar associadas à construção de modelos Definição e análise de requisitos Desenho do sistema Implementação dos programas Testes Entrega Manutenção Problemas Diferentes disciplinas para a Engenharia de Software: Ciência da computação Ciências da gestão Ciências cognitivas Ciências humanas Ciências sociais... Experiência tem grande impacto Engenharia de Software 7 Engenharia de Software 8

Opiniões Coincidentes Comunidade Académica A experiência não se transmite no contexto universitário Comunidade Profissional A engenharia de software não é uma engenharia mas sim um ofício, em que as técnicas se transmitem por um processo baseado no relacionamento mestre/discípulo Opinião Divergente A Engenharia de Software é uma Engenharia de uma Ciência, a Ciência da Computação O desenvolvimento de software é processo de formalização Todas as engenharias têm de considerar aspectos não técnicos Engenharia de Software 9 Engenharia de Software 10 Contudo... Existem diferenças de fundo relativamente às engenharias que têm a física como ciência base pois o software é construído para incorporar alterações, os sistemas são evolucionários existem três tipos de sistemas no que diz respeito à evolução: S, P e E Sistema S Mundo Real Problema Requisitos Comparação Sujeito a Alteração Sistema Informação Engenharia de Software 11 Engenharia de Software 12

Sistema S O problema e a solução são bem conhecidos A especificação de requisitos é formal e a sua implementação é inferida dos requisitos, e.g. multiplicação de matrizes O desenvolvimento centra-se na correcção da implementação da solução O sistema é estático e não suporta facilmente qualquer alteração ao problema Não evolui, se o mundo real se altera o resultado é um problema completamente novo que deve ser especificado Sistema P Mundo Real Problema Abstracção Requisitos Comparação Sujeito a Alteração Sistema Informação Engenharia de Software 13 Engenharia de Software 14 Sistema P Nem sempre é possível entender e especificar completamente o problema Mesmo que exista uma solução teórica a sua implementação não é prática ou é impossível, e.g. jogo de xadrez Para desenvolver uma solução define-se uma abstracção do problema e os requisitos são escritos tendo como base essa abstracção A solução é aceitável se os resultados fazem sentido no mundo que o problema abstrai Uma alteração à abstracção do problema provoca a alteração dos requisitos Sistema E Mundo Real Problema Abstracção Requisitos Comparação Sujeito a Alteração Sistema Informação Engenharia de Software 15 Engenharia de Software 16

Sistema E O sistema está embutido no mundo real e vai-se alterar quando este se alterar A solução é um modelo dos processos abstractos que representam o mundo real, ou seja, o sistema é parte integral do mundo que modela, e.g. um sistema de predição da saúde da economia de um país Estes sistemas estão constantemente a ser alterados Qualidades Qualidade do produto Qualidades internas (Modularidade) versus Qualidades externas (Fiabilidade) Qualidade do processo Definição de actividades e sua melhoria Qualidade dos recursos A qualidade dos recursos é um dos factores mais determinantes Qualidade do negócio Relação entre o custo e o resultado Engenharia de Software 17 Engenharia de Software 18 Qualidade do Produto O desenvolvimento de software produz diversos tipos de artefactos: Requisitos Desenhos Componentes de Código Casos de Teste... Deve-se avaliar a qualidade de cada um destes artefactos Modelo Boehm O modelo Boehm baseia-se na ideia de que um sistema deve ser útil Assim a utilidade do sistema é avaliada na perspectiva do utilizador O utilizador usual quer que o sistema ofereça a sua funcionalidade com fiabilidade, eficiência e facilidade de utilização Os clientes querem o sistema seja utilizado noutros contextos pelo que desejam a sua portabilidade A equipa de manutenção quer que o sistema seja fácil de testar, compreensível e modificável Engenharia de Software 19 Engenharia de Software 20

Qualidade do Processo Um modelo de maturidade do processo identifica onde o processo incorpora mecanismos de retroalimentação e controlo para que produtos de grande qualidade sejam desenvolvidos de acordo com o calendário e sem grandes surpresas de gestão Qualidade dos Recursos Modelo de maturidade da equipa mede as capacidades da equipa: Inicial não existem actividades para desenvolver as capacidades da equipa Repetição estabelecem-se práticas básicas de trabalho dentro da equipa Definição define-se um plano estratégico para identificar e desenvolver as capacidades da equipa Gestão os grupos de trabalho são estruturados em termos das capacidades e conhecimento dos elementos da equipa Optimização a gestão tem como objectivo melhorar as capacidades das pessoas e da equipa Engenharia de Software 21 Engenharia de Software 22 Abstracção Técnicas Permite concentrar nos aspectos relevantes Métodos de Análise e Desenho Meio de comunicação, verificação e reutilização Protótipos de Interface Comunicação com o cliente e o utilizador Processo de Software Gestão do desenvolvimento Técnicas Arquitecturas de Software Para a qualidade do produto Reutilização Tirar partido de resultados anteriores, requisitos, desenho, testes,... Métricas Medir para avaliar do sucesso e melhorar os resultados Ferramentas e Ambientes Integrados Os ambientes de desenvolvimento integrados permitem uma aumento de produtividade Engenharia de Software 23 Engenharia de Software 24

Conclusões P1 Qualidade é Número 1 A qualidade deve ser quantificada e devem ser definidos mecanismos para a motivar e recompensar o seu alcance A entrega de um produto de baixa qualidade é catrastrófica no médio prazo Conclusões P2 A Qualidade está nos Olhos do Espectador Não existe uma definição de qualidade Desenho elegante para equipa de desenvolvimento Tempo de resposta para os utilizadores Preço de desenvolvimento do software se o projecto é sensível aos custos Satisfazer todos os requisitos inclusive os inesperados Cada projecto deve decidir sobre as suas prioridades! Engenharia de Software 25 Engenharia de Software 26 Conclusões P3 Produtividade e Qualidade Técnica são Inseparáveis Quanto maiores forem os requisitos de qualidade menor será a produtividade Quanto maior for a produtividade menor será a qualidade P4 Software de Grande Qualidade é Possível A equipa de desenvolvimento deve conhecer as técnicas que já demonstraram contribuir para aumentar a qualidade Conclusões P5 Não Tentar Introduzir Qualidade num Produto a Posteriori Se já é difícil introduzir qualidade durante o desenvolvimento, então a sua introdução à posteriori é impraticável P6 Pouco Fiável é Pior que Pouco Eficiente A falta de fiabilidade é mais difícil de detectar e de corrigir Engenharia de Software 27 Engenharia de Software 28

Referências Pfleeger98, Capítulo1. Pfleeger98, Capítulo 10 1 Pfleeger98, Capítulo 11 4(Product Quality Models), 6(People Maturity Model) David95 Engenharia de Software 29