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

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

Programa Analítico de Disciplina INF323 Engenharia de Software II

UML: Introdução. História Visão geral Modelo conceitual da UML. Bibliografia. UML: introdução

ALM Aplicações em Linguagem de Montagem. Introdução. A produção de Software é uma atividade build and fix. build. fix

Requisitos de Sistemas

INF1013 MODELAGEM DE SOFTWARE

UML 2.0 Método, Linguagem e Ferramenta. Prof. Cesar Augusto Tacla

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

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

Engenharia de Software

Introdução. Introdução. Introdução. Planejamento da disciplina. Modelagem de Processos de Negócio. Prof.: Clarindo Isaías Pereira da Silva e Pádua

Curso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

Diagrama de Sequência Notação Objetos. Diagrama de Sequência Notação Mensagens. Diagrama de Sequência Notação Mensagens. Tipos de Mensagens

CARGA HORÁRIA Engenharia de Software Código: horas PRÉ-REQUISITOS: Paradigmas de Programação

APLICAÇÃO DA ENGENHARIA DE REQUISITOS E ESPECIFICAÇÃO DE REQUISITOS NA IDENTIFICAÇÃO DE ESCOPO DE SISTEMA

CARGA HORÁRIA Engenharia de Software Código: horas PRÉ-REQUISITOS: Paradigmas de Programação

UML e seus diagramas

Introdução. Diagramas de Interação. Introdução. Introdução. Introdução. Introdução. Os modelos de análise não respondem a algumas perguntas:

Engenharia de Software II

Introdução ao RUP. Livar Correia de O. C. Cunha Effektiv Solutions

Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil

Engenharia de Software

A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. História da UML. O que é modelagem?

Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU)

Agenda TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS. Aula 2 19/08/2012

Análise de Sistemas. Aula 5

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

Engenharia de Software. Herbert Rausch Fernandes

Análise e Projetos de Sistemas - INF014

O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

UML Unified Modeling Language Linguagem de Modelagem Unificada Requisitos, Casos de Uso no ArgoUML

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

UML Visão Geral UML Visão geral v.1.1, Novembro de 2001

Engenharia de Software Introdução

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

Desenvolvimento de Projetos

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

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

Fábricas de Software. Processos de Software. Fábricas de Software. Fábricas de Software 17/08/2010. Jorge Dias

wuniversidade FEDERAL DO MARANHÃO CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO CURSO DE CIÊNCIA DA COMPUTAÇÃO

Análise e Projeto Orientados a Objetos

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

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

CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS. Tereza Gonçalves Kirner

Ciência da Computação ENGENHARIA DE SOFTWARE. Capítulo 1 Introdução

UML. Trabalho Análise e Projeto de Sistemas. Aluna: Luana Alves Businaro

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

MODELOS DE PROCESSOS (PARTE 2)

Agenda TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS. Aula 3 21/08/2012

Diagrama de Atividades

Engenharia de Software

Engenharia de Software

Requisitos de Sistemas

UNIVERSIDADE FEDERAL DO PARANÁ UFPR BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

Aula 1 - Introdução à disciplina e Processos de desenvolvimento de software e suas atividades básicas

Modelos de Processo de Software

Engenharia de Software - 1

Engenharia de Software I Processos de desenvolvimento de SW. profa. Denise Neves

Tópicos da Aula. A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. Introdução à UML e Diagrama de Casos de Uso.

Modelos Prescritivos de Processo

Processo. Processo unificado. Principais Características do UP. Principais Características do UP RUP. Unified Process (Processo Unificado)

PROCESSO UNIFICADO FOCADO EM BANCO

Universidade Estadual de Ponta Grossa PRÓ-REITORIA DE GRADUAÇÃO DIVISÃO DE ENSINO

SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO DE CIÊNCIAS DA SAÚDE PROGRAMA DE MESTRADO PROFISSIONAL EM INFORMÁTICA EM SAÚDE

Modelos Prescritivos de Processo

Engenharia de Software

Processo de Desenvolvimento de Software

Modelos de Processo de Software

Projeto e Desenvolvimento de Sistemas de Informação

Tópicos da Aula. O que é anunciado. Falha de Comunicação no Desenvolvimento de Software. Engenharia de Software: Conceitos Fundamentais

O Fluxo de Requisitos

Cadeira: Engenharia de Software

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

Introdução ao RUP Rational Unified Process

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

Engenharia de Software Orientada a Objetos - OOSE. Método de Jacobson

Visão Geral da UML. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS

RUP Unified Process. Profª Jocelma Rios

Processo de Desenvolvimento. Edjandir Corrêa Costa

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Campus Curitiba PLANO DE ENSINO

Marcelo Henrique dos Santos

CK119: Engenharia de Software

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO DE CIÊNCIAS DA SAÚDE PROGRAMA DE MESTRADO PROFISSIONAL EM INFORMÁTICA EM SAÚDE

Especificação de Sistemas e SysML

Processos de Software

Modelos em Sistemas de Informação. Aula 2

Engenharia de Software. Processos. Desenvolvimento de Software Tradicionais 2014/2. Prof. Luís Fernando Garcia

Transcrição:

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

Programa 1. O processo de engenharia de software 2. Engenharia de requisitos 3. Modelagem de sistemas 4. Conceitos de orientação a objetos 5. Desenvolvimento de sistemas orientados a objetos 6. Projeto de interface humano-computador 7. Ferramentas de apoio a análise e projeto de software

Bibliografia Básica Software Engineering: A Practitioner's Approach by Roger Pressman (Hardcover - Jan 20, 2009) Software Engineering: (Update) (8th Edition) (International Computer Science Series) by Ian Sommerville (Hardcover - Jun 4, 2006) UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design (2nd Edition) (Addison-Wesley Object Technology Series) by Jim Arlow and Ila Neustadt, 2005. The Unified Modeling Language Reference Manual (2nd Edition) (The Addison-Wesley Object Technology Series) by James Rumbaugh, Ivar Jacobson, and Grady Booch (Hardcover - Jul 29, 2004). Analise e Projetos de Sistemas de Informaçao - Raul Sidnei Wazlawick, Editora Campus.

Bibliografia básica Unified Modeling Language User Guide, The (2nd Edition) (Addison-Wesley Object Technology Series) by Grady Booch, James Rumbaugh, and Ivar Jacobson (Hardcover - May 29, 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

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

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.

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?

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...

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.