Introdução à. Engenharia de Software. Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu.



Documentos relacionados
Uma Introdução à Engenharia de Software

Engenharia de Software

Engenharia de Software Unidade I Visão Geral

MODELAGEM DE SISTEMAS DE INFORMAÇÃO

Introdução à Engenharia de Software. Profª Jocelma Rios

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

QUALIDADE DE SOFTWARE

Engenharia de Software III

Unidade I Conceitos BásicosB. Conceitos BásicosB

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

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

Análise e Projeto de Sistemas

Qualidade 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. Qualidade de Software. Adequado à Especificação. Alguns Atributos de Qualidade. Equipe de Qualidade

UM SISTEMA WEB PARA TORCEDORES EM CAMPEONATOS ESPORTIVOS ESTUDANTIS

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

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB

Processo de Software - Revisão

Assunto 9 : Tecnologias de Inteligência Artificial nos Negócios

Engenharia de Software

EMENTAS DAS DISCIPLINAS

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

Classificação de Sistemas: Sistemas Empresariais

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

Requisitos de Software

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

DCC / ICEx / UFMG. O que é anunciado. Falha de Comunicação no Desenvolvimento de Software. Eduardo Figueiredo.

Processos de gerenciamento de projetos em um projeto

Engenharia de Software

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

3 Qualidade de Software

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

ISO 9001: SISTEMAS DE GESTÃO DA QUALIDADE

Tópicos da Aula. Que é são requisitos? Tipos de Requisitos. Requisitos Funcionais. Classificação de Requisitos. Requisitos de Software.

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

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

Auditoria de Sistemas de Informação. Everson Santos Araujo

Fundamentos de Engenharia de Software. Josino Rodrigues

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

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

DESENVOLVENDO O SISTEMA

Atividades da Engenharia de Software ATIVIDADES DE APOIO. Atividades da Engenharia de Software. Atividades da Engenharia de Software

Porque estudar Gestão de Projetos?

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

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

Especialização em Engenharia de Software e Banco de Dados

Engenharia de Software II

UM SISTEMA WEB PARA GERÊNCIA DE CAMPEONATOS DE BASQUETEBOL

GERÊNCIA DE PROJETOS DE SOFTWARE. Introdução

Gerenciamento de Requisitos Gerenciamento de Requisitos

Introdução à Engenharia de Software

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

Engenharia de Software

Introdução Ciclo de vida tradicional de desenvolvimento Prototipagem Pacotes de software Desenvolvimento de 4ª geração Terceirização

Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Desenvolvimento de Sistemas Tolerantes a Falhas

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

Introdução à Computação

Qualidade de Software

29/05/2012. Gestão de Projetos. Luciano Gonçalves de Carvalho FATEC. Agenda. Gerenciamento de Integração do Projeto Exercícios Referências FATEC

Principais Responsabilidades:

Engenharia de aplicações web

BUSCANDO UM PROCESSO DE DESENVOLVIMENTO DE SOFTWARE PARA AUXILIAR A GESTÃO DE PRODUÇÃO DO PBL-VE E DO PBL-VS

UM SISTEMA WEB PARA GERÊNCIA DE CAMPEONATOS DE VOLEIBOL

UNIP - UNIVERSIDADE PAULISTA. Arquitetura de computadores

MINISTÉRIO DO PLANEJAMENTO, ORÇAMENTO E GESTÃO DIRETORIA DE ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE AQUISIÇÕES

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

4. SISTEMAS DE APOIO À DECISÃO

Processo de Desenvolvimento de Software Workshop de Engenharia de Software

PLANO DA SITUAÇÃO DE APRENDIZAGEM CURSOS TÉCNICOS. 2. Tipo Estudo de Caso X Situação Problema Pesquisa Projeto

Gerenciamento de projetos.

Processos de Desenvolvimento de Software

Introdução a Banco de Dados Aula 03. Prof. Silvestri

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

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

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT

Projeto de Desenvolvimento de Software. Apresentação (Ementa) e Introdução

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

Introdução. Gerência de Projetos de Software. Sumário. Sistemas de Informação para Processos Produtivos

Pós Graduação Engenharia de Software

Engenharia de Software

Capítulo 2 Objetivos e benefícios de um Sistema de Informação

Módulo 12 Gerenciamento Financeiro para Serviços de TI

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

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

Profa. Dra. Ana Paula Gonçalves Serra

Concurso da Prefeitura São Paulo. Curso Gestão de Processos, Projetos e Tecnologia da Informação. Tema: Gestão de Projetos - Conceitos Básicos

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

Banco de Dados I. Construindo modelos de dados confiáveis

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

O Processo de Engenharia de Requisitos

Engenharia de Software II

Transcrição:

"Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE." Engenharia de Software Introdução à Engenharia de Software Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu.br/givanaldorocha Material original gentilmente cedido pelo professor Fábio Procópio

Segundo Pressman (2006), um software é um conjunto composto por instruções de computador, estruturas de dados e documentos; Produtos de software podem ser: Genéricos desenvolvidos para serem vendidos para uma grande variedade de clientes, por exemplo, softwares para PC, tais como Excel e Word. Personalizados desenvolvidos para um único cliente de acordo com as suas especificações. Segundo o IEEE (1992), Engenharia de software é a aplicação de uma abordagem sistemática, disciplinada e quantificável, para o desenvolvimento, operação e manutenção do software; isto é, a aplicação de engenharia ao software. ;

Para Bauer (1969) apud Pressman (2006), a Engenharia de Software é a criação e a utilização de sólidos princípios de engenharia a fim de obter softwares econômicos que sejam confiáveis e que trabalhem eficientemente em máquinas reais ; A Engenharia de Software almeja inserir as mesmas sistemáticas existentes em outras áreas da engenharia: custos aceitáveis; gerenciamento do processo de desenvolvimento; garantia do trabalho em equipe e; desenvolvimento de softwares com qualidade.

Engenheiros de software devem dependendo do problema a ser resolvido, das restrições de desenvolvimento e dos recursos disponíveis adotar uma abordagem sistemática e organizada para seu trabalho, além de usar ferramentas e técnicas apropriadas.

Alguns princípios devem ser trabalhados na Engenharia de Software como forma de manter o bom funcionamento do produto final: evitar dependência de determinadas pessoas ou processos; abstrair aspectos importantes; subdividir problemas complexos; reutilizar resultados (código) e; flexibilização e modularização para facilitar a manutenção.

A Engenharia de Software é multidisciplinar e podemos dizer que une as seguintes áreas: Ciências da Computação: abrange arquitetura de computadores, lógica de programação, estrutura de dados algoritmos, etc. Administração: o engenheiro de software atua como gestor de um projeto, administrando prazos, equipe, custos, resultados etc. Comunicação: habilidade para saber se expressar com clientes ou usuários; Técnicas de solução de problemas: o engenheiro de software deve ser um solucionador de problemas, um gerador de soluções integradas e inteligentes.

Surgimento da Eng. de Software Década de 50 surgiram os primeiros softwares; pesquisas eram voltadas para o hardware; hardware disponível apenas nos centros de pesquisa; software desenvolvido sem utilizar técnicas de engenharia.

Surgimento da Eng. de Software Década de 60 surgiram os microprocessadores e o hardware deixou de representar um problema; software tornou-se o foco dos pesquisadores; organizações começaram a desenvolver grandes sistemas.

Surgimento da Eng. de Software A falta de metodologia as equipes de trabalho não tinham um modelo de como desenvolver; não havia documentação adequada do que estava sendo executado; E agora: como dar manutenção em um sistema que não tem projeto?

As economias de todas as nações desenvolvidas são dependentes de software. Cada vez mais sistemas são controlados por software. Os dispêndios com software representam uma fração significativa do PIB em todos os países desenvolvidos.

Os custos dos produtos eram altos; Os recursos destinados ao projeto, normalmente, eram insuficientes; As soluções propostas não conseguiam agradar aos clientes. DESAFIOS da Engenharia de Software: Reduzir custos; Melhorar a qualidade do software e; Atender às expectativas do cliente.

Os custos de software dominam os custos de sistemas computacionais. Em um PC, os custos de software são frequentemente maiores que o custo do hardware. Manter um software custa mais que desenvolvê-lo. A engenharia de software dedica-se ao desenvolvimento de software com custos adequados.

Uma das principais queixas dos clientes é que os prazos e os custos não são respeitados; Outro problema bastante comum, é a ineficiência durante a etapa de definição de requisitos que não atendem às necessidades dos clientes; Os gerentes e os coordenadores de projetos são, comumente, despreparados para controlar o desenvolvimento adequado de um software.

Aproximadamente 60% dos custos são custos de desenvolvimento e 40% são custos de testes. Para software sob encomenda, os custos de evolução normalmente excedem de desenvolvimento. Os custos variam dependendo do tipo de sistema que está sendo desenvolvido e dos requisitos de atributos de sistema, tais como desempenho e confiabilidade.

Camadas da Eng. de Software Ferramentas Métodos Processo Foco na qualidade

Camadas da Eng. de Software Processo (métodos + ferramentas) une os métodos às ferramentas; define a sequência dos métodos que serão aplicados e; define as ferramentas que serão disponibilizadas. Métodos (como fazer) há diferentes métodos para as diferentes etapas do desenvolvimento; existem métodos para análise de requisitos, projeto, codificação, testes e manutenção. Ferramentas (apoio automatizado) CASE (Computer Aided Software Engineering); análise estruturada, análise essencial ou orientada a objetos; ferramentas de banco de dados; linguagens de programação.

Estrutura de um Processo (1/4) Estrutura de um processo aplicável à maioria dos projetos de software, sejam eles de pequena, média ou alta complexidade: 1. Comunicação Contempla alta comunicação e colaboração com o cliente/usuário e abrange o levantamento de requisitos. 2. Planejamento Descreve as tarefas técnicas, os riscos prováveis, os recursos necessários, os produtos que serão produzidos e um cronograma.

Estrutura de um Processo (2/4) Estrutura de um processo aplicável à maioria dos projetos de software, sejam eles de pequena, média ou alta complexidade: 3. Modelagem Constrói modelos que permitem ao desenvolvedor e ao cliente entender melhor os requisitos do software e o software que atenderá esses requisitos. 4. Construção Contempla a criação dos códigos e a execução de testes.

Estrutura de um Processo (3/4) Estrutura de um processo aplicável à maioria dos projetos de software, sejam eles de pequena, média ou alta complexidade: 5. Implantação Avaliação e feedback do cliente quanto ao software desenvolvido

Estrutura de um Processo (4/4) Um Processo de Software é o conjunto de atividades cuja meta é o desenvolvimento ou evolução de um software. As atividades genéricas em todos os processos de software são: Especificação: o que o sistema deve fazer e suas restrições de desenvolvimento. Desenvolvimento: produção do sistema de software. Validação: verificação de que o software é o que o cliente deseja. Evolução: mudança do software em resposta às demandas de mudança.

Com o aumento da complexidade dos softwares, cada vez mais, torna-se difícil classificá-lo. Abaixo, seguem áreas potenciais: software básico; software de tempo real; software comercial; software científico e de engenharia; software embutido; software de computador pessoal; software linguagens de 4ª geração; software educativo; software de Inteligência Artificial (IA); software de gestão empresarial; software de informações gerenciais; software de apoio à decisão.

Atributos de um bom software Facilidade de manutenção O software deve evoluir para atender às necessidades de mudança. Confiança O software deve ser confiável. Eficiência O software não deve desperdiçar os recursos do sistema. Usabilidade O software deve ser aceito pelos usuários para o qual foi projetado. Isso significa que ele deve ser compreensível, usável e compatível com outros sistemas.

Desafios-chave enfrentados Heterogeneidade, entrega e confiança. Heterogeneidade Técnicas de desenvolvimento para construção de software que podem lidar com plataformas heterogêneas e ambientes de execução. Entrega Técnicas de desenvolvimento para conduzir a entrega mais rápida de software. Confiança Técnicas de desenvolvimento que mostram que o software pode ter a confiança dos seus usuários.

PRESSMAN, Roger S. Engenharia de Software. Mc Graw Hill, 6 ed, Porto Alegre, 2010. SOMMERVILLE, Ian. Engenharia de Software. Pearson, 9 ed, São Paulo, 2011. HAHNE, Maria Nazaré Munari Angeloni. Material Didático (Engenharia de Software), Equipe Univali, 2007.