Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes



Documentos relacionados
Engenharia de Software-2003

Engenharia de Software I: Introdução. Graduação em Informática 2009 Profa. Itana Gimenes

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Engenharia de Software

Introdução à Computação

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE

Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva.

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Processo Unificado (RUP)

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

Engenharia de Software

Engenharia de Software

UML - Unified Modeling Language

Projeto de Sistemas I

Processos de Desenvolvimento de Software

Modelos de Processo (métodos)

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

PROFESSOR: CRISTIANO MARIOTTI

O Processo de Desenvolvimento de Software. Engenharia de Software

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

Tópicos. Engenharia de Software: Uma Visão Geral

Características do Software

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

Introdução à Engenharia de Software

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

Desempenho e Segurança em Sistemas de Informação. Profa.: Me. Christiane Zim Zapelini christianezapelini@nwk.edu.br

Engenharia de Requisitos

Projeto Disciplinar de Infra-Estrutura de Software ECOFROTA TRIBUNAL THEMIS

Engenharia de Software

Engenharia de Software 01 - Introdução. Márcio Daniel Puntel marciopuntel@ulbra.edu.br

Ciência da Computação ENGENHARIA DE SOFTWARE. Análise dos Requisitos de Software

Engenharia de Software Unidade I Visão Geral

Análise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com

Introdução ao RUP Rational Unified Process. por Denize Terra Pimenta Outubro/2004

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

SISTEMA COMPUTACIONAL PARA ANÁLISES DE DADOS EM AGRICULTURA DE PRECISÃO

Diagrama de Caso de Uso e Diagrama de Sequência

Unified Process. Sueleni Mendez Batista. Orientadora: Dra. Elisa Hatsue Moriya Huzita

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

UML: Casos de Uso. Projeto de Sistemas de Software

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

Engenharia de Software

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

Processos de Software

REPROJETO DA ORGANIZAÇÃO COM SISTEMAS DE INFORMAÇÃO

REPRESENTAÇÃO DE REQUISITOS VARIÁVEIS COM UML, SEGUINDO O MÉTODO ICONIX

Processo de Desenvolvimento Unificado

Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I Aula 3

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

ENGENHARIA DE SOFTWARE I

Wilson Moraes Góes. Novatec

UML: Unified Modeling Language. Graduação em Informática 2008 Profa. Itana Gimenes

Introdução à Engenharia de. Software. Introdução à Engenharia de. Software. O que é a Engenharia de Software? Software

ENG1000 Introdução à Engenharia

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Introdução à Engenharia de Software

O que é um processo de software?

REQUISITOS. Prof. Msc. Hélio Esperidião

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Visão Geral Parte 1. O que é engenharia de software?

Professor: Curso: Disciplina:

Processos de Desenvolvimento de Software. Prof. Hélio Engholm Jr

Engenharia de Software

Engenharia de Requisitos Estudo de Caso

Processo de Desenvolvimento de Software. Engenharia de Software.

build UNIP Sistemas de Informação Análise Essencial de Sistemas 3 Prof.Marcelo Nogueira A produção de Software é uma atividade build and fix.

Casos de Uso O que é. Casos de Uso. Objetivos de um Caso de Uso. Atores. Atores e Casos de Uso. Diagramas de Caso de Uso

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Modelagem de Processos. Prof.: Fernando Ascani

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Engenharia de Software

Concepção e Elaboração

ARQUITETURA DE SOFTWARE

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

IntroduçãoaoGuia SWEBOK. Ernani Lopes Isensee 2014

Projeto de Arquitetura

UML Visão Geral. Índice. Introdução. Diagramas. Modelos e diagramas. Elementos de modelação. Referências

CURSO: Tecnologia em Análise e Desenvolvimento de Sistemas SÉRIE: 3º Semestre TURNO: Noturno DISCIPLINA: ANÁLISE DE SISTEMAS ORIENTADA A OBJETOS

REPROJETO DA ORGANIZAÇÃO COM SISTEMAS DE INFORMAÇÃO

Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva.

SISTEMATIZAÇÂO DOS TIPOS DE INFORMAÇÂO DO PLANEJAMENTO ESTRATÉGICO EMPRESARIAL E DE TECNOLOGIA DA INFORMAÇÂO E COMUNICAÇÂO

Laudon & Laudon MIS, 7th Edition. Pg. 1.1

Introdução ao Processo Unificado (PU)

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

Transcrição:

Engenharia de Software: Introdução Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Programa 1. O processo de engenharia de software 2. UML 3. O Processo Unificado 1. Captura de requisitos 2. Análise de software 3. Projeto de software 4. Geração de código 4. Ferramentas de Apoio ao Processo de Software

Estratégias Desenvolvimento de um projeto de software em grupo de dois alunos Prova escrita Eventuais trabalhos que podem valer pontos Ferramenta: Jude

Bibliografia Básica PRESSMAN, R., Software Engineering: A Practioner s Approach, McGraw-Hill Series in Computer Science. McDERMID, J. A. (Ed.), Software Engineer's Reference Book, Butterworth-Heinmann, 1991. SOMMERVILLE, I., Software Engineering, Addison-Wesley. BOOCH, G., RUMBAUGH, J., JACOBSON, I., The Unified Modeling Language User Guide, Addison-Wesley, Janeiro 1999. RUMBAUGH, J., JACOBSON, I BOOCH, G., Unified Modeling Language Reference Manual, Addison-Wesley, Dezembro, 2005. JACOBSON, I BOOCH, G., RUMBAUGH, J., Unified Software Development Process, Addison-Wesley, Janeiro 1999.

Motivação Compreender as etapas de desenvolvimento de software. Conhecer a diferença entre o desenvolvimento de software de pequeno e grande porte. Conhecer as principais técnicas de desenvolvimento de software. Estar apto a especificar projetos de software em UML (Unified Modeling Language)

Conceitos Software criação intelectual compreendendo os programas, procedimentos, regras e qualquer documentação correlata à operação de um sistema de processamento de dados. ISO9000-3 Produto de Software Conjunto completo de programas de computador, procedimentos e documentação correlata, assim como dados designados para entrega a um usuário. ISO9000-3 Outros termos: sistemas de software, aplicações, aplicativos.

O Papel do Software na sociedade Software está presente na grande maioria das atividades da sociedade: Banco Comunicação Transporte Escola Previdência Supermercado Cinema Bares Parques de diversão

Exemplos de Riscos de Utilização de Software LAS (London Ambulance System) o objetivo é automatizar o tratamento de chamadas de emergência e a atribuição de ambulâncias a acidentes. É o maior serviço de ambulância do mundo, abrangendo uma população de aproximadamente 6.8 milhões. LAS transporta mais de 5.000 pacientes por dia, recebe entre 2.000 e 2.500 chamadas diariamente. Falhas no sistema em 26 e 27 de Outubro de 1992 causaram problemas tais como: alocação ineficiente de ambulâncias (duplicada e atrasada - múltiplas ambulâncias foram enviadas para o mesmo acidente ou o veículo mais próximo não foi enviado para o acidente mais próximo); uma crescente lista de mensagens de exceção e uma enorme lista de espera; um aumento do tempo de resposta proporcional ao aumento de mensagens e da lista de espera; um número crescente de telefonemas repetidos ( call backs ).

Como Produzir software? ambiente Sistema de Software Automatizar Computador Mundo Real

Características de Software Software é desenvolvido e não manufaturado no sentido clássico. Software não se deteriora... não existem componente de reposição. Software é feito sob encomenda, ao invés de ser construído a partir de componentes. A evolução tecnológica afeta diretamente as facilidades que podem ser incorporadas ao software e as técnicas de construção destes.! Tempo para transferência de tecnologia.

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

Engenharia de Software Uma definição: O estabelecimento e uso de um conjunto de princípios para se obter, economicamente, um software que seja confiável e trabalhe eficientemente em máquinas reais. Três elementos chaves: métodos ferramentas procedimentos (gerenciamento de projetos)

A Evolução do Software Os primeiros anos A segunda era A terceira era A quarta era sistemas batch distribuição limitada software personalizado sistemas multiusuários sistemas em tempo real banco de dados software produto sistemas distribuídos incorporação de inteligência hardware de baixo custo impacto do consumidor sistemas desktop poderosos tecnologia de orientação a objetos sistemas especialistas redes neurais computação paralela comunicação intergaláctica 1950 1960 1970 1980 1990 2000

Modelos de Processo de Desenvolvimento de Software Modelo de ciclo de vida descrições abstratas do processo de desenvolvimento e modificação, tipicamente, mostrando os principais estágios de desenvolvimento e manutenção de um software executável. Processo de Software Desenvolvimento Manutenção Uso

A idéia do processo de software Tenho uma lista de nomes pessoas... Essas pessoas tem códigos de identificação... Quero uma lista em ordem alfbética... mas seria bom também ter um relatório por departamento Processo de Software... For x:= 1.. n do...... Métodos Ferramentas Procedimentos

Requisitos do Sistema Requisitos do Software Análise O Modelo Cascata Projeto de Programas Codificação Teste Operação

Requisitos do Sistema Requisitos do Software Análise Projeto do Programa Codificação Testes Operação

O Modelo Transformacional Iteração Transformação Descrição Conceitos Requisitos Arquitetura Projeto Detalhado V&V Iteração

O Modelo Espiral 1. Define objetivos, alternativas e restrições 2. Analisa Riscos 4. Planeja próximo ciclo 3. Desenvolve produto

From Sommerville

Modelo 4GT Análise de Requisitos Estratégias de Projeto Implementação usando 4GT Testes

Abordagem Prototipação Validar a precisão dos requisitos ou aceitabilidade das decisões. Validar a viabilidade de uma estratégia proposta. Observações: protótipos só são válidos se construídos rapidamente protótipos devem ser desprezados.

Abordagem Incremental Definir e desenvolver uma pequena parte do sistema de cada vez. Desenvolver um núcleo do sistema inicialmente e depois adicionar funcionalidades em subprojetos. Grande atração é que gera sistemas parciais executáveis e utilizáveis de onde se pode obter feedbacks e ganhar credibilidade do usuário. Na prática é difícil de desenvolver uma abordagem incremental sem ter um entendimento completo dos requisitos.

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

Seleção de Estágios de Desenvolvimento Análise de requisitos Especificação do software Projeto da arquitetura Projeto detalhado Implementação (Manutenção e evolução) What? How?

Análise de requisitos (Sistema e Software) Software é sempre parte de um sistema maior que envolve hardware, pessoas, etc.- Modelo de negócios Coleta de requisitos do software especificamente. Técnicas de comunicação

Especificação do sistema Expressar os requisitos de maneira formal através de diagramas bem definidos ou especificações matemáticas.

Projeto da arquitetura Determinar a estrutura do software com seus componentes e conectores.

Projeto Detalhado Projetar a concretização da especificação do software, definindo base de dados, representações de interfaces, algoritmos, etc.

Implementação Escrever o projeto do sistema em uma linguagem de programação.

Manutenção e Evolução Corrigir eventuais erros no software e efetivar atualizações.

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

Métodos de Construção de Software Abordagem sistemática para construir software Procedimentos Notação Ferramenta Exemplo: Análise estruturada, OMT, Catalysis, Processo Unificado Paradigma de desenvolvimento Estruturado, orientado a objetos A escolha deve considerar: características técnicas da aplicação características técnicas do método cobertura do ciclo de vida (Pode-se usar mais de um método)

Observações sobre o processo de desenvolvimento Sempre deve existir um processo de software definido - padrões de qualidade. O modelo canônico deve ser tratado como uma referência que deve ser adaptada para cada situação. 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.