Software e Engenharia de Software. O que é software? Programas de computador Entidade abstrata. Ferramentas (mecanismos) pelas quais: –exploramos os recursos.

Slides:



Advertisements
Apresentações semelhantes
Manutenção em software Conceitos básicos
Advertisements

Engenharia de Software Prof ª. Isabel Sofia de Brito Prof ª. Maria Fernanda Pedro.
Engenharia de Software
Engenharia de Software
Gerência de Projetos Wesley Peron Seno Introdução
Engenharia de Software
Engenharia de Software
Prototipação de Software
Especificação de Software
Modelos de Processos de desenvolvimento de Software
INTRODUÇÃO A INFORMÁTICA
FACULDADE DOS GUARARAPES
CK 119: Engenharia de Software DC/CC/UFC © Rossana Andrade, Setembro CK119: Engenharia de Software Rossana Andrade Ph.D, SITE, University of Ottawa,
Adélia Barros Introdução à Engenharia de Software Modelos de Processo Adélia Barros
Processo Desenvolvimento de Software Tradicional
Modelos de Processos de Software
Processos de Software II
ENGENHARIA DE SOFTWARE
Fundamentos de Engenharia de SW
IFSul – Campus Venâncio Aires
Engenharia de Software
Engenharia de Software
Engenharia de Software
Modelos de Processo de Software
Análise e Projeto de Sistemas de Informação 2o. Semestre de 2014
Introdução à Engenharia de Software
Processos de Software.
Processos de Software.
Engenharia de Software
Engenharia de Software
Engenharia de Software
Engenharia de Software
Aula 02 de Eng. de Requisitos
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
Database Systems: Design, Implementation, and Management Eighth Edition Capítulo 4 Projeto Banco de Dados.
Apresentação Leonardo Brussolo de Paula
1 Engenharia de Requisitos, Liane Cafarate, 2009 Engenharia de Software Engenharia de Requisitos Docência Orientada: Henrique Michel Persch
SPEM (Software Process Engineering Metamodel): Uma Linguagem para Modelagem de Processos de Software.
GERÊNCIA DE REQUISITOS Engenharia de Requisitos Departamento de Informática Pontifícia universidade Católica do Rio de Janeiro (PUC-Rio) Joanna.
FUNÇÃO CONTROLE É a função que compara as ações planejadas com os resultados obtidos. A partir dessa análise é possível dar início a eventuais correções.
Controle Pessoal Financeiro Danilo H. D. Pereira Erison da Silva Fábio G. Bettio.
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.
Introdução POO Thiago Medeiros Sistemas de Informação Definição: Sistemas de Informação é uma combinação de pessoas, dados, processos, redes de.
Gerência de Projetos. Benefícios Obtidos com GP Benchmark de problemas mais comuns em projetos.
QFD: Desdobramento da Função Qualidade
Material Produzido por: Prof. Edilton Santos – Centro Universitário Jorge Amado1 Curso: Sistemas de Informação Disciplina: Engenharia de Software. Carga.
Gestão da Segurança da Informação e Série ISO/IEC 27000
A abordagem de resolução de Problemas Autores: Laundon & Laudon Abordagem de resolução de problemas – significa considerar os sistemas de informação junto.
3 Gerenciamento do Escopo Capítulo 3 Professores: Marcos Eduardo da Silva Santos Maria Wilda Fernandes Felipe.
Conteúdo da última aula 1 Ref. Bibliográfica - PMBOK Cap 2 e 3.
3. SELEÇÃO DE PRESTADOR DE SERVIÇOS LOGÍSTICOS 3
Capítulo 1 Introdução aos Sistemas Operacionais Curso Técnico de Redes de Computadores Professor Emerson Felipe Administração de Sistemas Operacionais.
CONCEITOS NA ANÁLISE DE SISTEMAS ANÁLISE É O ESTUDO DE UM PROBLEMA QUE ANTECEDE À EXECUÇÃO DE UMA AÇÃO. ANÁLISE DE SISTEMAS NO DOMÍNIO ESPECÍFICO DO DESENVOLVIMENTO.
Disciplina: Análise e Projeto de Sistemas
ANÁLISE ERGONÔMICA DOS POSTOS DE TRABALHO (Material Adaptado do Programa de Pós-Graduação da Engenharia de Produção e Sistemas da Universidade Federal.
1 ISO (ALGUNS ASPECTOS RELEVANTES) Prof. M.Sc Jefferson L. C. Salles.
Atividade Sistemática Trabalho em Equipe Identificar Problemas Potenciais, suas Causas e seus Efeitos. O FMEA tem a função de identificar os problemas.
K A I Z E N KAI ZEN MudançaBom MELHORIA CONTÍNUA Regina Panazzo (Gestão Empresarial/2009)
Detalhamento da Norma de Sistema de Gestão Ambiental: NBR ISO 14001:2004 Prefácio Introdução 1 Objetivo e campo de aplicação 2 Referências normativas 3.
B.I. Business Inteligence PROFESSOR MARCELO CAMPINHOS.
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.
 Mapeamento de seus cenários internos e externos, identificando requisitos essenciais a serem atendidos;  Tradução de requisitos em informações a serem.
Disciplina: Análise e Projeto de Sistemas I Aula 04: Engenharia de Software Profa. MSc. Daniela Gibertoni.
SOFTWARE Software Aplicativo – Executa Tarefas de Processamento de informações para usuários finais. Software de Sistemas – Gerencia e Apóia operações.
Elaboração de Projeto de Pesquisa
Fatores de Avaliação Know-how : É a soma total de quaisquer habilidades, conhecimentos e experiências requeridas por um cargo, de maneira a propiciar um.
Padronização e Melhoria
Sistemas de Informações Sistemas Informações Empresariais 1. Engenharia de Sistemas Márcio Aurélio Ribeiro Moreira
ORÇAMENTO BASE ZERO.
Transcrição da apresentação:

Software e Engenharia de Software

O que é software? Programas de computador Entidade abstrata. Ferramentas (mecanismos) pelas quais: –exploramos os recursos do hardware. –executamos determinadas tarefas –resolvemos problemas. – interagimos com a máquina. –tornamos o computador operacional.

O que é software? Conceito mais amplo que inclui também: Instruções que executam uma função desejada. Estrutura de dados para manipular informação. Documentos para desenvolver, operar e manter os programas.

Tipos de Sistemas de Software Software básico Software para sistema em tempo real Software comercial Software para engenharia e aplicações científicas Software embarcado (ex. microwave) Software para computadores pessoais (shrink- wrap) Software baseado em inteligência artificial Software de entretenimento

A Evolução do Software Os primeiros anos sistemas batch distribuição limitada software personalizado A segunda era sistemas multiusuários sistemas em tempo real banco de dados software produto A terceira era sistemas distribuídos incorporação de inteligência hardware de baixo custo impacto do consumidor A quarta era sistemas desktop poderosos tecnologia de orientação a objetos sistemas especialistas redes neurais computação paralela A quinta era Netbooks Web 2.0 Serviços Web Computa- ção em nuvens 2010

Dificuldades para desenvolver software Saber o que o software deve fazer : quais os requisitos (abstração); Ferramentas; linguagem; so Tempo e custos elevados de desenvolvimento. Prever falhas (antes de entregar). Tratar manutenção e versões. Produtividade não cresce com a demanda de serviços.

Características do Software software não é um elemento físico; é um elemento lógico (não tem propriedades físicas, como visualizar, medir...) abstração maior; o produto final é diferente o software não pode ser manufaturado; custos estão concentrados no desenvolvimento e não na manufatura. o processo de gerenciamento é diferente; o relacionamento entre as pessoas é diferente;

Características do Software existem diferentes abordagens para se chegar no produto final o software não se desgasta com o uso; mas deteriora-se não há peças de reserva. => manutenção, correção, aperfeiçoamento. não é construído aproveitando-se componentes prontos. Um erro durante um teste => erro de projeto; mais difícil de testar.

Crise de Software Alguns autores associam a palavra “crise” aos problemas para desenvolver software

Crise de Software Problemas: Software inadequado. Cronogramas e custos imprecisos - dificuldades em prever o progresso durante o desenvolvimento. Inexistência de dados históricos sobre o processo de desenvolvimento. Mitos da ES Comunicação deficiente - insatisfação de usuários. Carência de conceitos quantitativos sobre confiabilidade, qualidade, reusabilidade. Software existente é de difícil manutenção.

Crise de Software Solução: Combinar métodos para as fases de desenvolvimento. Ferramentas para automatizar esses métodos. Técnicas para assegurar qualidade. => Disciplina: Engenharia de Software.

Engenharia de Software Engenharia de Software Abordagem sistemática para o desenvolvimento, operação, manutenção e descarte de software. Aplicação prática de conhecimento científico ao projeto e construção de software. Disciplina que utiliza princípios de engenharia para produzir e manter softwares dentro de prazos e custos estimados. “.. construção por muitas pessoas de um software com múltiplas visões”. (Parnas 1987)

Engenharia de Software Engenharia de Software Objetivos: Melhorar a qualidade do software e aumentar a produtividade e satisfação profissional de engenheiros de software. Definição: Disciplina que utiliza um conjunto de métodos, técnicas e ferramentas para analisar, projetar e gerenciar desenvolvimento e manutenção de software.

Engenharia de Software Engenharia de Software

Métodos e Técnicas: detalhes de como fazer Metodologias: como aplicar Ferramentas: automatizam os métodos, dão apoio a utilização. CASE => (Computer-Aided Engineering): Ferramentas integradas para desenvolver software.

ES e outras áreas

Princípios da Engenharia de Software Princípios da Engenharia de Software Formalidade: reduz inconsistências Abstração: aspectos importantes, ignorar detalhes Decomposição: lidar com complexidade Generalização: reutilização, custo Flexibilização: mudanças, processo incremental

Processo de Software À E. S. está associado um conjunto de passos (que englobam métodos, ferramentas, etc) denominado paradigma

Processo de Software Um conjunto estruturado de atividades requeridas para desenvolver um sistema de software Um modelo de processo de software é uma representação abstrata de um processo. Apresenta uma descrição de um processo de alguma perspectiva particular

Ciclo de Vida Clássico (cascata) modelo mais antigo e o mais amplamenteconhecido da engenharia de software modelado em função do ciclo da engenharia convencional requer uma abordagem sistemática, seqüencial ao desenvolvimento de software O resultado de uma fase é entrada para outra fase.

Ciclo de Vida Clássico (cascata) Ciclo de Vida Clássico (cascata)

Engenharia de sistemas envolve a coleta de requisitos em nível dosistema, com uma pequena quantidade deprojeto e análise de alto nível esta visão é essencial quando o software devefazer interface com outros elementos(hardware, pessoas e banco de dados)

Análise de Requistos de Software o processo de coleta dos requisitos é intensificado e concentrado especificamente no software deve-se compreender o domínio da informação, a função, desempenho e interfaces exigidos

Projeto tradução dos requisitos do software para umconjunto de representações que podem seravaliadas quanto à qualidade, antes que acodificação se inicie

Codificação tradução das representações do projeto parauma linguagem “artificial” resultando eminstruções executáveis pelo computador

Teste Concentra-se: nos aspectos lógicos internos do software,garantindo que todas as instruções tenham sido testadas nos aspectos funcionais externos, paradescobrir erros e garantir que a entrada definida produza resultados que concordem com os esperados.

Manutenção provavelmente o software deverá sofrer mudanças depois que for entregue ao cliente causas das mudanças: erros, adaptação do software para acomodar mudanças em seu ambiente externo e exigência do cliente para acréscimos funcionais e de desempenho

Ciclo de Vida Clássico Problemas para aplicação: Na prática, projetos não seguem o fluxo seqüencial. Acomodações de incertezas no início do projeto é difícil. Versão funcional dos programas disponível após os últimos estágios do projeto

Ciclo de Vida Clássico O modelo Cascata trouxe contribuições importantes para o processo de desenvolvimento de software: –imposição de disciplina, planejamento e gerenciamento; –a implementação do produto deve ser postergada até que os objetivos tenham sido completamente entendidos

Evolutivo Tudo merece uma nova chance – situações para acomodar um processo que evolui com o tempo Incorporação de diferente partes e criação de diferentes versões - são iterativos Inclui prototipação Permite o desenvolvimento exploratório

Evolutivo

Incremental Abordagem intermediária Combina vantagens dos paradigmas ciclo de vida clássico e evolutivo Identificação das funções do sistema, estabelecimento de incrementos e prioridades Cada incremento pode utilizar um paradigma de desenvolvimento diferente Dificuldade para dividir e gerenciar versões

Incremental O valor agregado ao Cliente está na entrega em cada incremento de modo que a funcionalidade do sistema estará disponível mais cedo Incrementos iniciais funcionam como protótipos para ajudar a evocar requisitos para incrementos posteriores Menores riscos de falha no projeto em geral Os serviços do sistema de alta prioridade tendem a receber a maioria dos testes

Incremental

Espiral Modelo que acopla a natureza iterativa da prototipação co os aspectos controlados e sitemáticos do modelo cascata Dividio em regiões ou atividades de trabalho. Cada volta do espiral representa um desenvolvimento completo. O loop mais interno se concetra mais na definição dos requisitos A gerência pode adaptar o modelo e suas fases

Espiral

Espiral Paradigma mais realístico - sistemas grandes É um metamodelo Incorpora análise de riscos. Permite prototipação em mais de um estágio Problemas: O modelo é relativamente novo. Requer esperteza. Pode nunca terminar, precisa ser evolutiva e controlável.

Considerações sobre processos Considerações sobre processos Que processo usar ? Depende da natureza da aplicação. Métodos e ferramentas disponíveis, etc.

Outros processos RAD (Rapid Application Development) Processo formal Modelo de componentes Open Processos ágeis Scrum XP OpenUP

Que processo usar Sempre deve existir um processo de software definido - padrões de qualidade. Criar um processo baseado em fases específico para cada projeto. O profissional deve estar apto a avaliar a aplicação a ser desenvolvida e a situação do ambiente de desenvolvimento para decidir qual o melhor processo de software a ser definido.

Uma Visão Genérica da E.S.

Análise do Sistema Definição Análise de Requisitos Planejamento do Projeto de Software Processo de Software Desenvolvi mento Manutenção Projeto do Software CodificaçãoTestes CorreçãoAdaptaçãoMelhora mentos O Que? O Como? A Obrigação...

Uma Visão Genérica da E.S. Uma Visão Genérica da E.S. 1) Definição Função, desempenho, interface, restrições de projeto, critérios de validação. Análise de sistemas Planejamento de projeto de software. Análise de requisitos.

Uma Visão Genérica da E.S. Uma Visão Genérica da E.S. 2) Desenvolvimento: Estrutura de dados, arquitetura de software, detalhes procedimentais, programas, testes. Projeto de software. Codificação. Testes

Uma Visão Genérica da E.S. Uma Visão Genérica da E.S. 3) Manutenção Corretiva: para corrigir defeitos; Adaptativa: para acomodar mudanças no ambiente externo do software (S.O., periféricos, etc) Perfectiva: para inclusão de novas funcionalidades

Uma Visão Genérica da E.S. Uma Visão Genérica da E.S.

O Ciclo de Vida Canônico Estudo de Viabilidade Iniciação do projeto Especificação de requisitos Projeto da arquitetura Projeto detalhado Codificação Teste de unidade Teste de aceitação Teste operacional Encerramento do projeto Operação Desativação do produto O modelo canônico deve ser tratado como uma referência que deve ser adaptada para cada situação.

Referências Pressman, R. Software Engineering: A Practitioner's Approach. McGraw-Hill, 6 th edition, Sommerville, I. Software Engineering:) International Computer Science Series) 8 th edition, 2006.