Prof. Luiz A. Nascimento

Documentos relacionados
Engenharia de Software. Engenharia de Software. . Atualmente existe um destaque todo especial para a. Engenharia de Software

Engenharia de Software

Desenvolvimento de Projetos

14/11/2014. Engenharia de Software. Modelos de software. Modelo Clássico - Cascata

Introdução. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior

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

Por que estudar Engenharia de Software AULA PROF. ABRAHAO LOPES

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

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

ENGENHARIA DE SOFTWARE

Análise e Projeto de Software

Engenharia de Software

Engenharia de Software I

Projeto Integrador. <Projeto Integrador> Documento Visão. Versão <1.0>

P R O C E SSO D E D E S E N VOLVIMENTO D E S O F T WAR E

Aula 12. Aquisição de Hardware

Engenharia de Software II

Projeto de Desenvolvimento de Software

CICLO DE VIDA DO SOFTWARE. Nas empresas também é difícil adotar apenas um ciclo de vida, na maioria das vezes possui mais de um.

ENGENHARIA DE SOFTWARE

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

Engenharia de Software: Visão Geral

Modelos de Processo de Software

Gerência e Planejamento de Projeto. Engenharia de Software Profa. Elisa Yumi Nakagawa 1 o semestre de 2016

DICIONÁRIO DA ESTRUTURA ANALÍTICA DO PROJETO - SISCOP. Data Versão Descrição Autor

Software: na visão da ES

Modelos de Processo de Software

Definições e ciclo de vida

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

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

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

Aula 2 POO 1 Introdução. Profa. Elaine Faria UFU

FATORES E MÉTRICAS DE QUALIDADE

Requisitos de Sistemas

- Prototipação Iterativa - Observação Direta

Gerência e Planejamento de Projeto. Engenharia de Software I Profa. Elisa Yumi Nakagawa 1 o semestre de 2015

Engenharia de Software

Medidas de Esforço de Desenvolvimento de Software

Introdução 2014/1 Prof. Luís Fernando Garcia

Unidade II MODELAGEM DE PROCESSOS. Profa. Gislaine Stachissini

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

AN INTRODUCTION TO SOFTWARE ENGINEERING

Engenharia de Software

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

Princípios da Engenharia de Software aula 03

15/03/2018. Professor Ariel da Silva Dias Introdução a Engenharia de Software. O mundo moderno poderia existir sem software?

Introdução à Engenharia de Software

Prof. Emiliano S. Monteiro

INTRODUÇÃO: INTERAÇÃO HUMANO- COMPUTADOR. Aula 2

DESENVOLVIMENTO BASEADO EM COMPONENTES

Professor: João Augusto

Análise e Projeto de Sistemas

Introdução à Engenharia de Software

Engenharia de Software II

Instituto Federal Sul-rio-grandense. Placa universal para controle de máquinas de lavar roupa Plano de Projeto - versão 1.0

Abordagem para Construção de SI. Ciclo de Vida de Sistemas Tradicionais

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

Medidas de Esforço de Desenvolvimento de Software

Engenharia de Software II

Engenharia de Software

ENGENHARIA DE SOFTWARE. Introdução

ENGENHARIA DE SOFTWARE

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

Engenharia de Software II

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

FUNDAMENTOS DE ENGENHARIA DE SOFTWARE. Professor: Paulo Vencio

Análise de Sistemas CONTEXTUALIZAÇÃO

Sistema Mobi-Lar Engenharia de Software

Refere-se a um conjunto de problemas encontrados no desenvolvimento de software:

Escopo: PROCESSOS FUNDAMENTAIS

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

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

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

Modelos de Processo de Software. SSC Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Engenharia de Software Processo de Desenvolvimento de Software

Professor Emiliano S. Monteiro

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

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

Análise e Projeto Orientado a Objetos

DESENHO DE CARGOS E TAREFAS

Engenharia de Software ENGENHARIA DE REQUISITOS

Clientes gerentes Usuarios finais do sistema Clientes engenheiros Gerentes contratantes Arquitetos do sistema. Definicao de requisitos

Introdução a Engenharia de Software

ORGANIZAÇÃO CURRICULAR TÉCNICO NA ÁREA DE INFORMÁTICA: HABILITAÇÃO TÉCNICO EM INFORMÁTICA NA MODALIDADE A DISTÂNCIA /1

O Estudo de Viabilidade. Prof. Nilton Prof. Pedro

Uma compreensão completa dos Requisitos do Software é fundamental para obter um software e um processo de desenvolvimento com alta qualidade

Documentação de Software. Simone Vasconcelos

Qualidade de software. Prof. Emiliano Monteiro

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

Introdução à Qualidade de Software

Engenharia de Software II

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

Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software

Engenharia Software. Ení Berbert Camilo Contaiffer

Transcrição:

Prof. Luiz A. Nascimento Qual a importância da Engenharia de Software? O desenvolvimento de um software envolve processos muitos complexos. A engenharia de software estabelece um modelo para se construir um programa. A programação é apenas uma atividade complexa, mas é apenas uma etapa do processo que envolve principalmente o programador. A engenharia de software envolve diversos intervenientes que vão desde o analista de sistemas até o cliente usuário final. Alguns programas muito simples são feitos por apenas um indivíduo sem precisar utilizar uma técnica estabelecida. A maioria dos softwares nas empresas são complexos e necessitam de técnicas de desenvolvimento em equipe que envolvem várias pessoas. Por que para construir um software precisa utilizar técnicas de engenharia? O desenvolvimento de um software envolve profissionais especializados em atividades complexas. Atividades de engenharia como a construção de uma casa necessitam de técnicas de engenharia para a qualidade do produto final. É muito difícil determinar o prazo final de entrega de um software. Atividades de engenharia também necessitam de engenheiros para elaborar um cronograma para definir a entrega do produto. Os custos de um software é muito difícil de determinar. É necessário fazer um estudo com um orçamentista para definir os cálculos das despesas de uma obra. 1

O que é um software? Um produto que os profissionais de software constroem e mantém ao longo do tempo. Pressman Conjunto de programas (arquivos de configuração, documentação, etc.). Summerville Existem tipos diferentes de software? Um software pode ser classificado como: Básico Aplicativo Sistemas Cientifico e de Engenharia Embutido Computador Pessoal Aplicações Web Inteligência Artificial Comercial Por que dizem que estamos vivendo uma crise de software? Porque existem muitos problemas no desenvolvimento do software. A crise do software está relacionada à problemas que são encontrados no desenvolvimento de software de computador que não se limitam ao não funcionamento de forma adequada. Envolve também outros problemas: Como se desenvolve um software; Como mantemos um volume crescente de software existente; Como administrar a crescente demanda por mais software. 2

O Software atualmente é mais importante e faz mais diferença na qualidade de um sistema do que o Hardware (Era da Informação). completeza da informação usabilidade otimização Interface para web inteligência funcionalidade compatibilidade suporte O ideal é que se crie um software economicamente viável, que seja confiável e que funcione eficientemente em máquinas reais. Deve-se ser possível construir um software com várias versões por várias pessoas. Equipe básica de desenvolvimento: O Engenheiro de software é responsável por todas as diretrizes do projeto e desenvolvimento de sistemas de software. O Analista de sistemas é responsável por extrair conhecimento dos usuários e clientes para desenvolvimento do software. Especifica o software através de um modelo que o programador entenda. Programador é o responsável em codificar o software de acordo com o projeto em uma linguagem de programação. 3

Escolas ensinam a criar pequenos programas Não há tempo para ensinar (horas aula) Abordam tarefas faceis de executar Mais fácil de aprender É difícil ensinar sofwares complexos Não há tempo disponível Dificuldade em aprender Necessita trabalho supervisionado em grupo Pessoas aprendem na prática nas empresas (+- 1 ano) Disciplina que lida com a construção de sistemas de software: Flexíveis Modulares Robustos Confiáveis Usáveis Adequados ao contexto onde são inseridos. Péquenos Programas x Programas Complexos Pequenos programas são relativamente faceis de construir. Apenas uma pessoa desenvolve Poucas linhas de código Pouca manutenção Programas complexos são difíceis de construir. Necessidade de decomposição em módulos Interface entre módulos Grande quantidade de códigos Várias pessoas desenvolvem 4

Programação Projeto simples e pequeno Uma pessoa O que a pessoa quer Engenharia Projeto grande e complexo Equipes O que os clientes querem Um produto Poucas modificações Tempo de vida curto Barato Pouco impacto Uma família de produtos Modificações em paralelo Tempo de vida longo Caro Grande impacto Atualmente os softwares mais complexos são desenvolvido com técnicas de engenharia. O desenvolvimento necessita de projeto e de gerenciamento do processo. Falhas em software indicam erro de projeto ou de implementação. A manutenção do software é mais complicada que a do hardware. Software não desgasta (Normalmente deve ser projetado para o maior tempo de vida útil possível). A maioria dos softwares são construídos sob medida e não a partir de componentes existentes. Com a tecnologia de Orientação a Objetos e a reusabilidade de códigos está mudando este cenário. 5

Os prazos são excedidos. Os custos são cada vez maiores por causa de sua complexidade. Muitos erros de software são descobertos pelo cliente depois de sua entrega. Existe grande dificuldade em medir o progresso do desenvolvimento de software. Não é dedicado tempo suficiente para coletar dados sobre o desenvolvimento do software. Muitas coisas são estimadas. A comunicação entre o cliente e o desenvolvedor é falha. Falta de testes Gerentes com pouco know-how Pouco treinamento para o pessoal Falta de investimento em Engenharia de Software Colocar mais programadores agiliza o processo e evita atrasos. Utilizar um computar mais potente resolve os problemas de desenvolvimento. Uma declaração geral e obvia é suficiente para iniciar o desenvolvimento. Mudanças podem ser feitas sem problemas na fase de desenvolvimento. Os programadores conseguem fazer quase tudo. 6

Um programa está terminado ao funcionar. Quanto mais cedo escrever um código mais rápido o programa será terminado. Só é possível avaliar a qualidade de um software em funcionamento. A única coisa a ser entregue em um sistema é o programa. Uso de técnicas de engenharia para o desenvolvimento de um software com qualidade. Existe a necessidade de se adotar uma metodologia para o desenvolvimento e o gerenciamento dos processos. Sistema sem projeto definido por humanos Ex. Casas em uma favela ou plantas na floresta Ex. Conjunto residencial ou plantas na fazenda. Sistema com projeto definido por humanos Usuários Pouco conhecimento de suas necessidades Não conhecem/dominam as capacidades e limitações dos computadores Omissão de informações óbvias Usuários com opiniões diferentes Linguagem diferente do desenvolvedor Desenvolvedor Pouco conhecimento sobre o domínio do problema Orçamento Linguagem diferente do usuário Limitações técnicas 7

Requisitos Projeto Modelo Cascata. Baseado em projetos clássicos de engenharia Implementaçã o Testes Manutenção Análise / Engenharia de sistemas Contexto e processo de negócios Análise de requisitos O que tem que ser feito Projeto Como deve ser feito Implementação Construção Validação Testes e homologação Modelo Cascata Vantagens Desacoplamento da equipe Fases do produto bem definida Melhor visão geral do processo Modelo Cascata Desvantagens Não trabalha em paralelo Etapas complexas Dificuldade de retrabalho Pouca interação com o usuário Dificuldade da declaração de todas as exigências pelo cliente Pouca paciência do cliente 8