Engenharia de Software. Tema 1. Introdução à Engenharia de Software Profa. Susana M. Iglesias



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

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

QUALIDADE DE SOFTWARE

Introdução à. Engenharia de Software. Givanaldo Rocha de Souza

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

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

EMENTAS DAS DISCIPLINAS

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

MODELAGEM DE SISTEMAS DE INFORMAÇÃO

Curso de Especialização em Tecnologia da Informação. Engenharia de Software

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

Banco de Dados Orientado a Objetos

Engenharia de Software

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Engenharia de Software

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

Processos de Desenvolvimento de Software

Requisitos do usuário, do sistema e do software [Sommerville, 2004]

Apostila da disciplina Introdução à Engenharia de Software Professor: Sandro Melo Faculdades São José Curso de Tecnologia de Sistemas de Informação

Engenharia de Software

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

Avaliação de Desempenho de Sistemas

Qualidade de Software

Curso Técnico em Informática Organização Curricular. A carga horária total dos módulos é oferecida conforme quadro síntese abaixo:

Processo de Software - Revisão

GBD PROF. ANDREZA S. AREÃO

UM SISTEMA WEB PARA TORCEDORES EM CAMPEONATOS ESPORTIVOS ESTUDANTIS

Engenharia de Software Unidade I Visão Geral

Organização Curricular do Curso Superior de Tecnologia em Sistemas para Internet

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

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

UNIVERSIDADE FEDERAL DE OURO PRETO PROJETO BÁSICO CURSO DE APERFEIÇOAMENTO EM PRODUÇÃO E ORGANIZAÇÃO DE CONTEÚDO NA EAD CURSO PARA DOCENTES DA UFOP

Utilizando os Diagramas da UML (Linguagem Unificada de Modelagem) para desenvolver aplicação em JSF

Ementas Disciplinas Eletivas

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

O Processo de Engenharia de Requisitos

Curso Superior de Tecnologia em Banco de Dados e Sistemas para Internet Disciplina: Projeto Integrador III Prof.: Fernando Hadad Zaidan

Metodologia de Desenvolvimento de Sistemas

Gerenciamento de Requisitos Gerenciamento de Requisitos

ITIL v3 - Operação de Serviço - Parte 1

IMPLEMENTAÇÃO DE UM SISTEMA DE SELEÇÃO DE PEÇA USANDO CONCEITOS DE PROGRAMAÇÃO DE SISTEMA DE AUTOMAÇÃO. João Alvarez Peixoto*

Requisitos de Software

Teste de Software: Um Breve Estudo do Importante Processo no Desenvolvimento de Softwares

DESENVOLVIMENTO DE FIRMWARE E SOFTWARE APLICATIVO DE CONTROLE PARA UMA MÁQUINA DE ENSAIOS GEOLÓGICOS

ENGENHARIA DE SOFTWARE

Integralização: A) TEMPO TOTAL MÍNIMO = 03 (TRÊS) ANOS LETIVOS MÁXIMO = 05 (CINCO) ANOS LETIVOS B) TEMPO ÚTIL (Carga Horária) = 2.

Simulador Virtual para Treinamento em Visão de Máquina com LabVIEW

ÁREA DISCIPLINAR DE CIÊNCIA E TECNOLOGIA DA PROGRAMAÇÃO. Tem sob a sua responsabilidade as seguintes unidades curriculares:

PROJETO DE COOPERAÇÃO TÉCNICA INTERNACIONAL. Projeto 914 BRA PRODOC-MTC/UNESCO DOCUMENTO TÉCNICO Nº 03

Gerenciamento da Integração (PMBoK 5ª ed.)

3. Fase de Planejamento dos Ciclos de Construção do Software

Qualidade de Software

3 Qualidade de Software

Pós Graduação Engenharia de Software

Diagrama de Estrutura Composta

Engenharia de Software II

UM SISTEMA WEB PARA GERÊNCIA DE CAMPEONATOS DE BASQUETEBOL

Qualidade de Software. Qualidade de Software. Adequado à Especificação. Alguns Atributos de Qualidade. Equipe de Qualidade

PROCESSOS DE CRIAÇÃO DE APLICATIVOS

Ciência da Computação ENGENHARIA DE SOFTWARE. UML-Unified Modeling Language Linguagem de Modelagem Unificada

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

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

ADMINISTRAÇÃO E SERVIÇOS DE REDE

Resumo Descritivo dos Conteúdos das Disciplinas de Ementa Aberta para

Desenvolvimento de Sistemas Tolerantes a Falhas

Professor: Curso: Disciplina: Aula 4-5-6

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: Arquitetura de Software Aula 03

Unidade I Conceitos BásicosB. Conceitos BásicosB

ANEXO 5 ESCOPO DO ESTUDO DE VIABILIDADE TÉCNICA, ECONÔMICA E JURÍDICA

Prof. Vitório Bruno Mazzola INE/CTC/UFSC 1. INTRODUÇÃO

o(a) engenheiro(a) Projeto é a essência da engenharia 07/02/ v8 dá vazão

UNIVERSIDADE PAULISTA UNIP INSTITUTO DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE ENGENHARIA COMPUTAÇÃO

Habilitação. Informática Integrado ao Ensino Médio. Componente Curricular : Técnicas de Programação para Internet I TITULAÇÃO

Ambiente de Simulação Virtual para Capacitação e Treinamento na Manutenção de. Disjuntores de Subestações de Energia Elétrica,

Sistema Datachk. Plano de Projeto. Versão <1.0> Z u s a m m e n a r b e i t I d e i a s C o l a b o r a t i v a s

Política Gestão de Configuração e Mudança

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Práticas de. Engenharia de Software. Givanaldo Rocha de Souza

UML e a Ferramenta Astah. Profa. Reane Franco Goulart

Apresentar os conceitos básicos da metodologia de desenvolvimento Processo Unificado, utilizando como aporte o Processo Unificado Rational RUP

c. Técnica de Estrutura de Controle Teste do Caminho Básico

Engenharia de Sistemas Computacionais

CAPABILITY MATURITY MODEL FOR SOFTWARE. Eduardo Mayer Fagundes

Automação de back-office Estratégia e gestão financeira Melhoria de processos e indicadores

Válvulas de Controle-"Case"- Copesul. Nelzo Luiz Neto da Silva 1 Jader Weber Brum 2

Introdução à Computação

Processos de Software

QUESTIONÁRIO DE AVALIAÇÃO Primeira Fase

Análise e Projeto de Software

Principais Responsabilidades:

Classificação de Sistemas: Sistemas Empresariais

Análise e Projeto de Sistemas

Unidade IV GERENCIAMENTO DE SISTEMAS. Prof. Roberto Marcello

XIX CONGRESSO DE PÓS-GRADUAÇÃO DA UFLA 27 de setembro a 01 de outubro de 2010

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Permite a coleta de dados em tempo real dos processos de produção, possuindo, também, interfaces para a transferência dos dados para os sistemas

Introdução ao Gerenciamento de Projetos. Prof. Ivan Bottger

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

Transcrição:

Engenharia de Software Tema 1. Introdução à Engenharia de Software Profa. Susana M. Iglesias

Sistemas Computacionais Automatiza ou apóia a realização de atividades humanas (processamento da informação) Caracterizado por Hardware Software Informações Usuários Procedimentos ou tarefas Documentação

Sistemas Computacionais (Sistema de Alarme) Sensores de Movimento Sensores das Portas Sirenes Controle de Alarme Sintetizador de voz Contatador Telefônico Centro de Controle Externo Ian Sommerville, 2006

Sistemas Computacionais Sistema de Automação Bancária Sistema de Folha de Pagamento Sistema de Controle Acadêmico Sistema de Biblioteca Sistema de Controle de Tráfego Urbano Sistema de Controle de Elevadores Sistema de Editoração de Jornais e Revistas

Sistemas Computacionais Hardware: partes eletrônicas e mecânicas (rígidas) que possibilitam a existência do software, o armazenamento de informações e a interação com o usuário Software: parte abstrata, funciona num hardware a partir de instruções codificadas numa LP que permitem o processamento e armazenamento de informações na forma de dados codificados e podem ser controladas pelo usuário. Este controle, bem como a troca de informações entre o usuário e o sistema é feita através da interface de usuário, composta por hardware e software. Informação: componente fundamental nos sistemas baseados em computador. São os dados que representam elementos do domínio que tornam o sistema útil para os usuários Usuários: também elementos centrais no desenvolvimento de um sistema baseado em computador. As metas de cada usuário, de acordo com o papel que cada um desempenha no domínio, devem poder ser satisfeita pelo sistema. Tarefas ou procedimentos compreendem as atividades que o sistema realiza ou permite realizar. Elas devem estar de acordo com os processos da organização (ou do negócio). Documentação: envolve os manuais de usuário, documentação do sistema (fundamentais no desenvolvimento para a comunicação entre a equipe de desenvolvimento e para a transição entre as suas diversas etapas e durante a manutenção de um sistema em sua fase operacional.

Engenharia de Sistemas O desenvolvimento do sistema deve ser pensado como um todo. Os problemas que o sistema deve resolver devem ser analisados e uma solução envolvendo todos os componentes deve ser proposta. O desenvolvimento de cada componente do sistema pode ser conduzido utilizando um "engenharia" específica. É importante ressaltar que o termo engenharia está sendo utilizado de forma imprecisa.

Engenharia de Sistemas Análise do Sistemas Identificação das necessidades Estudo de Viabilidade Análise Econômica e Técnica Definição do Sistema - Requisitos Planejamento do desenvolvimento Engenharia do Sistema Engenharia do Hardware Equipamentos utilizados, engenharia de redes, placas dedicadas, etc. Engenharia do Software Programas, Ferramentas, Sistemas Operacionais Engenharia de Processos, Informações e Pessoal

Análise de Sistemas Cliente Comercial NF Vendas

Análise de Sistemas. Modelagem DFD Pedido Cliente Calcular Valor Tabela de Preços Emitir Nota Atender Pedido Gerente DFD segundo DeMarco & Yourdon, 1976

Análise de Sistemas. Soluções??

Engenharia de Software Termo relativamente novo Que é engenharia? Engenharia Arte de construir (conh. Científico e empírico), adequada ao atendimento de necessidades humanas Engenhar Idear, maquinar, inventar, engendar, produzir Sistema Conj de partes que integram entre sim procurando um objetivo comum (Soft+Hard+People) Software Subsistema de um sistema computacional

Engenharia de Software Segundo Friedrich Ludwig Bauer, "Engenharia de Software é a criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica, que seja confiável e que trabalhe eficientemente em máquinas reais". O próprio significado de engenharia já traz os conceitos de criação, construção, análise, desenvolvimento e manutenção. Desenvolvimento multi-versional de software multipessoal Abordagem sistemática, disciplinada e quantificada ao desenvolvimento, operação e manutenção de software Disciplina do conhecimento humano que tem por objetivo definir e exercitar processos (humanos atuando como máquinas), métodos (planos de processos), ferramentas e ambientes (máquinas apoiando processos e métodos) para construção de software que satisfaça necessidades de cliente e usuário dentro de prazos e custos previsíveis.

Engenharia de Software Engenharia de software é uma área do conhecimento da computação voltada para a especificação, desenvolvimento e manutenção de sistemas de software aplicando tecnologias e práticas de gerência de projetos e outras disciplinas, objetivando organização, produtividade e qualidade. Atualmente, essas tecnologias e práticas englobam linguagens de programação, banco de dados, ferramentas, plataformas, bibliotecas, padrões, processos e a questão da Qualidade de Software. Os fundamentos científicos para a engenharia de software envolvem o uso de modelos abstratos e precisos que permitem ao engenheiro especificar, projetar, implementar e manter sistemas de software, avaliando e garantindo suas qualidades. Além disso, a engenharia de software deve oferecer mecanismos para se planejar e gerenciar o processo de desenvolvimento de um sistema de informação Sistema Computacional, pois ambos se confundem.

Engenharia de Software Segundo o SWEBOK (Corpo de Conhecimento da Engenharia de Software), as áreas de conhecimento da Engenharia de Software são: Requisitos de Software Projeto (Design) de Software Implementação de Software Teste de Software Manutenção de software Gerência de Configuração de Software Gerência de Engenharia de Software Processos de Engenharia de Software Ferramentas e Métodos de Engenharia de Software Qualidade de Software

Engenharia de Software Conforme Pressman, a Engenharia de Software (ES) é uma tecnologia em camadas. E a base de todas essas camadas é o foco na qualidade do software desenvolvido. Portanto, inclusive do ponto de vista didático, é interessante estudarmos a ES em suas camadas de Processo, Métodos e Ferramentas. Ferramentas Métodos Processo Foco: A qualidade ES Camadas - Pressman

Engenharia de Software Que diferencia Ciência da Computação e Engenharia de Software? CC aborda teorias e fundamentos ES aborda aspetos práticos de desenvolvimento e entrega em prazo de software útil Todo ES deve ter uma boa base em ciência da computação Atualmente, a CC ainda não possui teorias suficientes a engenharia de software.

Engenharia de Software Que diferencia Engenharia de Sistemas e Engenharia de Software? A ESis está interessada em todos os aspectos de um sistema baseado em computador, (hardware software, fatores humanos, informação e o processo). A ES de software é parte dela.

Engenharia de Software Todo engenheiro de software deve desenvolver com: Rigor e Formalidade Separação de interesses Modularidade Abstração Antecipação de mudanças Generalidade Possibilidades de evolução

Engenharia de Software - Conceitos Teorias Princípios Modelos e Formalismos Ferramentas e Ambientes Métodos e Técnicas Metodologias Paradigmas

Ciclo de Vida (Uma visão genérica) Engenharia é a análise, design, construção verificação e gerencia da entidade técnica ou social. Independentemente da entidade as seguintes questões devem ser respondidas Qual é o problema a ser resolvido? Quais são as características da entidade que são usadas para resolver o problema. Como a entidade e a solução são compreendidas? Como a entidade vai ser construída? Qual vai ser a aproximação vai ser usada para detectar erros cometidos no design e construção da entidade? Como a entidade vai suportar a longo prazo, quando as correções, adaptações e melhoras sejam solicitadas pelo usuário da entidade?

Ciclo de Vida (Fases) Independentes da área de aplicação, tamanho do projeto ou complexidade Definição Centrada em QUÉ? Desenvolvimento Centrada em COMO? Manutenção Centrada em CAMBIO

Ciclo de Vida (Definição) Definição (QUE) que informações serão processada, que funções e performance é desejado, que comportamento do sistema pode ser esperado, que interfaces devem ser estabelecidas, que restrições de design existem e que critérios de validação devem ser definidos para obter um sistema exitoso.

Ciclo de Vida (Definição) Definição (QUE) Define requerimentos chaves são identificados Os métodos usados na definição dependem do paradigma selecionado ou a combinação deles, Independentemente do paradigma definen-se 3 tarefas acontecem de alguma forma Engenharia de informação ou sistema Planejamento do projeto de software (planejamento, riscos, gerenciamento ) Análise de requerimentos (Fase de análise e modelação)

Ciclo de Vida (Desenvolvimento) Desenvolvimento: COMO? como a informação vai ser estruturada, como as funções serão implementadas numa arquitetura de software, como os detalhes procedimentais serão implementados, como serão caracterizadas as interfaces, como o design será trasladado a linguagem de programação e Como será testada a performance

Ciclo de Vida (Desenvolvimento) Os métodos aplicados na fase de desenvolvimento podem variar Devem ocorrer 3 tarefas técnicas específicas Desenho de software Geração de código Teste de software

Ciclo de Vida (Manutenção) Manutenção (CAMBIO) Associada à correção de erros, requerimentos de adaptação, melhoras por cambios dos requerimentos do cliente. Reaplica passos d definição e deenvolvimento pero no contexto do software existente. 4 tipos de cambios podem ser encontrados Correção Adaptação Melhora Prevenção

Ciclo de Vida Atividades complementares às fases Controle e seguimento de software Revisões técnicas formais Verificação de qualidade de software Preparação e produção de documentação Gerenciamento de reusabilidade Gerenciamento e análise de riscos

Design - Desenvolvimento