S12 - Software e Engenharia de Software

Documentos relacionados
S11 - Software e Engenharia de Software

FUNDAMENTOS DE ENGENHARIA DE SOFTWARE. Professor: Paulo Vencio

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

ENGENHARIA DE SOFTWARE. Aula 01 A natureza do software

S14 - Engenharia de Requisitos cap.5

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

S13 - Software e Engenharia de Software - Continuação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

ENGENHARIA DE SOFTWARE

ANÁLISE E PROJETO DE SISTEMAS

Currículos dos Cursos UFV CIÊNCIA DA COMPUTAÇÃO. COORDENADOR Alcione de Paiva Oliveira

CURSO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO MATRIZ CURRICULAR MATUTINO Fase N.

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Engenharia de Software

MATRIZ CURRICULAR BACHARELADO EM ENGENHARIA DA COMPUTAÇÃO. 1º Período

- 1ª Lista de Exercícios -

Engenharia de Software: Uma Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1 o semestre de 2015

1º PERÍODO Carga horária Teórica Prática Total

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

Aula 06 - Máquina Multinível e Von Neumann

Engenharia Software. Ení Berbert Camilo Contaiffer

Figura 4.2: Matriz Curricular

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO Data: 29/08/2011 Currículo de Cursos Hora: 16:19:21

Engenharia de Software: Visão Geral

Conceitos de Engenharia de Software. Prof.ª: Érika A. Barrado

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO Data: 23/09/2015 Currículo de Cursos Hora: 07:48:26

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO Data: 05/07/2017 Currículo de Cursos Hora: 17:30:22

DISCIPLINA/ATIVIDADE. Total disciplinas Atividades Complementares DISCIPLINA/ATIVIDADE

Crise do Software. Crise de tecnologia - hardware caminha mais rápido que o software

Informática. Cloud Computing e Storage. Professor Márcio Hunecke.

Engenharia de Software II

Engenharia de Software I

CURSO DE CIÊNCIA DA COMPUTAÇÂO (65C) HABILITAÇÃO: BACHARELADO TURNO: DIURNO (a partir de 2014)

ARQUITETURA DE SISTEMAS OPERACIONAIS. VISÃO GERAL DE UM SISTEMA OPERACIONAL Prof. André Luís Alves E. M. DR. LEANDRO FRANCESCHINI

Desenvolvimento de Projetos

Manutenção Leitura: Sommerville; Pressman

PERÍODO LETIVO ENGENHARIA DE COMPUTAÇÃO

Curso de Bacharelado em Ciência da Computação

Ementário das disciplinas do curso de Engenharia da Computação. - Núcleo Básico -

MODELAGEM DE SISTEMAS Unidade 1 Conceitos Básicos de Modelagem. Luiz Leão

Engenharia Reversa e Reengenharia Software 13/05/2015

Grade Curricular do Curso de Graduação em Engenharia de Computação

Fundamentos de Inteligência Artificial [5COP099]

FUNDAMENTOS DA ANÁLISE E PROJETO DE SISTEMAS. Projeto de Programas PPR0001

Engenharia de Software

SISTEMAS DISTRIBUÍDOS

Engenharia de Software

Linguagens de Programação

Características de Sistemas Distribuídos

MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DO NORTE DE MINAS GERAIS CAMPUS JANUÁRIA

Instituto Superior Politécnico Tocoísta

O que é um sistema distribuído?

Engenharia de Software II

ATUALIZAÇÃO DE MATRIZES CURRICULARES CURSO DE ENGENHARIA MECATRÔNICA

Transcrição:

S12 - Software e Engenharia de Software ENGENHARIA DE SOFTWARE PRESSMAN, 2011 Gilberto Wolff UTFPR

Introdução

Introdução

Introdução

Introdução Busquem respostas para: 1. Há diferença entre Software e Programa? 2. Quais são as diferenças?

Roteiro Introdução Definindo software Conceitos de software??? Características do software Curva de defeitos para o hardware Curva de defeitos para o software Campo de aplicação de software Novos desafios para Engenheiros de software Software legado A natureza única das WebApps Engenharia de software

Definindo Software 1- INSTRUÇÕES (programas de computador) que quando executadas fornecem características, funções e desempenho desejados 2 - ESTRUTURAS DE DADOS que possibilitam aos programas manipular informações adequadamente 3 - INFORMAÇÃO DESCRITIVA tanto na forma impressa como na virtual, descrevendo a operação e o uso dos programas

Conceitos de Software 1 -??? 2 -??? 3 -??? Pesquisem pelo menos três conceitos de autores renomados e, cite-os no Trabalho que estão fazendo

Características do Software 1- Ele é desenvolvido ou passa por um processo de engenharia; ele não é fabricado no sentido clássico 2- Ele não se desgasta mas se deteriora 3- A maioria dos softwares continua sendo construída de forma personalizada (sob encomenda)

Curva de defeitos para o hardware Taxa de defeitos mortalidade infantil desgaste tempo

Curva de defeitos para o software Taxa de defeitos Aumento da taxa de defeitos devido a efeitos colaterais curva real mudança curva idealizada tempo

Campo de aplicações de software DE SISTEMA - conjunto de programas escritos para atender a outros programas DE APLICAÇÃO - programas sob medida que solucionam uma necessidade específica de negócio CIENTÍFICO / DE ENGENHARIA - caracterizado por algoritmos para processamento de números EMBUTIDO - residente num produto ou sistema e utilizado para implementar e controlar características e funções para o usuário final e para o próprio sistema

Campo de aplicações de software PARA LINHA DE PRODUTOS - projetado para prover capacidade específica de utilização por muitos clientes diferentes PARA WEB - chamadas de WebApps, essa categoria é centralizada em redes, abarca uma vasta gama de aplicações DE INTELIGÊNCIA ARTIFICIAL - faz uso de algoritmos não numéricos para solucionar problemas complexos que não são passiveis de computação ou de análise direta

Novos desafios para Eng.º de Software COMPUTAÇÃO MUNDIAL ABERTA - o rápido crescimento de redes sem fio pode, em breve, conduzir a uma verdadeira computação distribuída e pervasiva (ampliada, compartilhada,...) NETSOURSING (RECURSOS VIA INTERNET) - a internet está se tornando, rapidamente, tanto um mecanismo computacional, como um provedor de conteúdo SOFTWARE ABERTO - uma tendência crescente que resulta na distribuição de código fonte para aplicações de sistemas, de forma que muitas pessoas possam contribuir para seu desenvolvimento Quais são os desafios?????

Software legado SÃO SOFTWARES ANTIGOS, MUITO ANTIGOS!!! Sistemas de software legado... Foram desenvolvidos a décadas atrás e tem sido continuamente modificados para se adequar a mudanças de requisitos de negócios e a plataformas computacionais. A proliferação de tais sistemas está causando dores de cabeça para grandes organizações que os consideram dispendiosos de manter e arriscados de evoluir (DAYANI-FARD, H., et al., 1999)

A natureza única das WebApps (1990 1995) WebApps são os sistemas e aplicações baseados na Web (PRESSMAN, 2011) Os seguintes atributos são encontrados na maioria dos WebApps: Uso intensivo de redes; Simultaneidade; Carga não previsível; Desempenho; Disponibilidade; Orientadas a dados; Sensibilidade no conteúdo; Evolução contínua; Imediatismo; Segurança; Estética

Engenharia de Software Para desenvolver softwares preparados para enfrentar os desafios do século XXI, deve-se perceber alguns fatos reais: Os softwares estão incorporados em nossas vidas e o número de usuários é cada vez maior Os requisitos de tecnologia de informação demandados por indivíduos, empresas e órgãos governamentais estão mais complexos a cada ano Indivíduos, negócios e governos dependem, em ordem crescente de software para decisões estratégicas e táticas

Engenharia de Software Para desenvolver softwares preparados para enfrentar os desafios do século XXI, deve-se perceber alguns fatos reais: À medida que o valor de uma aplicação específica aumente, a probabilidade é de que a sua base de usuários e longevidade também cresçam Essas constatações levam à Engenharia de Software

Engenharia de Software Surgiu com objetivo de utilizar princípios de engenharia no desenvolvimento de software para aumentar a qualidade dos produtos oferecidos, diminuir os custos e riscos relacionados e criar processos repetíveis e eficazes para serem utilizados nos ciclos de manutenção e desenvolvimento de software (ENGHOLM JÚNIOR, 2010)

Engenharia de Software - conceito Segundo Friedrich L. Bauer apud Engholm Júnior, 2010, é a criação e 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

Engenharia de Software É uma tecnologia de camadas Deve estar fundamentada na qualidade (foco na qualidade) É o que dá sustentabilidade a ela, segundo Pressman, 2011

Engenharia de Software foco na qualidade é a pedra fundamental A gestão da Qualidade Total, Seis Sigma, e filosofias similares, promovem uma cultura de aperfeiçoamento contínuo de processos e, é esta cultura que no final das contas, leva ao desenvolvimento de abordagens cada vez mais efetivas na engenharia de software

Engenharia de Software processo A base para eng.ª de software é a camada de processo O processo de eng.ª de software é a liga que mantém as camadas de tecnologias coesas e possibilita o desenvolvimento de software de forma racional e dentro do prazo

Engenharia de Software métodos O processo define um método que deve ser estabelecido para entrega efetiva da eng.ª de software Os métodos de eng.ª de software fornecem as informações técnicas para desenvolver software. Os métodos envolvem as seguintes tarefas: comunicação; análise de requisitos; modelagem de projeto; construção de programa; testes e suporte

Engenharia de Software ferramentas Fornecem suporte automatizado ou semiautomatizado para o processo e para os métodos Quando as ferramentas são integradas, de modo que as informações criadas por uma ferramenta possam ser usadas por outra, é estabelecido um sistema para o suporte ao desenvolvimento do software, denominado eng.ª de software com auxílio do computador

Engenharia de Software áreas de conhecimento Segundo o SWEBOK apud Engholm Júnior, 2010, as áreas de conhecimento da engenharia de software são: Requisitos de software; Análise e desenho de software; Implementação de software; Manutenção de software; e, Gerência de configuração de software.

Referências ENGHOLM JÚNIOR, H. Engenharia de software na prática. São Paulo : Novatec Editora, 2010. Paula Filho, W. de P. Engenharia de software: fundamentos, métodos e padrões. 3.ed. Rio de Janeiro : LTC, 2011. PRESSMAN, R. S. Engenharia de software: uma abordagem profissional. 7.ed. Porto Alegre : AMGH, 2011.