Engenharia de Software Unidade I Visão Geral



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

Engenharia de Software

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

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

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

Engenharia de Software

Engenharia de Software

QUALIDADE DE SOFTWARE

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

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

MODELAGEM DE SISTEMAS DE INFORMAÇÃO

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

Requisitos de Software

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

Introdução à Ciência da Computação

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

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

Processo de Software - Revisão

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Qualidade de Software

Engenharia de Software

Aula 04. Prof Wesley Sathler

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

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

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

A NECESSIDADE DE UMA NOVA VISÃO DO PROJETO NOS CURSOS DE ENGENHARIA CIVIL, FRENTE À NOVA REALIDADE DO SETOR EM BUSCA DA QUALIDADE

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

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

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

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

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

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

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

UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini

Gerenciamento de Qualidade. Paulo C. Masiero Cap SMVL

Disciplina: Técnicas de Racionalização de Processos Líder da Disciplina: Rosely Gaeta NOTA DE AULA 04 O PROJETO DE MELHORIA DOS PROCESSOS

EMENTAS DAS DISCIPLINAS

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

Cartilha do ALUNO EMPREENDEDOR POLITÉCNICA

Fundamentos de Engenharia de Software. Josino Rodrigues

Análise e Projeto de Sistemas

Administração de Sistemas de Informação I

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

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

IIH Introdução à Informática e Hardware

Objetivos Específico

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

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

Qualidade de Software

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

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

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

2 Investimentos em Tecnologia da Informação

Tecnologia da Informação. Prof Odilon Zappe Jr

Motivos para você ter um servidor

Catálogo de cursos 2016

Processo de Desenvolvimento de Software

LOGÍSTICA Professor: Dr. Edwin B. Mitacc Meza

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Unidade IV GERENCIAMENTO DE SISTEMAS. Prof. Roberto Marcello

Esta é uma história sobre 4 (quatro) pessoas: TODO MUNDO, ALGUÉM, QUALQUER UM e NINGUÉM.

Introdução a Computação

Processos de Desenvolvimento de Software

O modelo Entidade-Relacionamento. Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento

Catálogo decursos. metodologiaadvance.com.br MAIS DE 50 OPÇÕES DE CURSOS! VEJA ABAIXO ALGUNS DELES: DESENVOLVIMENTO DE SITES PARA INTERNET

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

Unidade II MODELAGEM DE PROCESSOS

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

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

SISTEMA DE GESTÃO DE MANUTENÇÃO APLICADO NO IFRN CAMPUS MOSSORÓ

Ética Profissional. Antônio Lopes, professor da USP, apresenta o conceito bastante preciso para Ética Profissional em seu livro Ética Profissional.

Engenharia de aplicações web

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

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

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

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

Administração de Sistemas de Informação Gerenciais

PROCESSOS DE CRIAÇÃO DE APLICATIVOS

Qualidade de Software

Sist i em em I a n I fo f rm r at m i at zad

Engenharia de Software

Unidade I Conceitos BásicosB. Conceitos BásicosB

Projeto de Desenvolvimento de Software

Engenharia de Software Aula 8 (Versão )

Processos de Software

CAPABILITY MATURITY MODEL FOR SOFTWARE. Eduardo Mayer Fagundes

A TECNOLOGIA REINVENTOU COMO CONSUMIDORES ASSISTEM TV

DESENVOLVENDO O SISTEMA

IMPLANTAÇÃO DOS PILARES DA MPT NO DESEMPENHO OPERACIONAL EM UM CENTRO DE DISTRIBUIÇÃO DE COSMÉTICOS. XV INIC / XI EPG - UNIVAP 2011

COMO REDIGIR ARTIGOS CIENTÍFICOS. Profa. EnimarJ. Wendhausen

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

Implantação do Sistema de Controle de Tempos Nas Agências de Atendimento - TMA

Transcrição:

Conteúdo programático Engenharia de Software Unidade I Visão Geral Prof. Francisco Gerson A. de Meneses O que é Produtos de Software Distribuição de Software Um sistema de Software O software em um cenário problemático O que fazer? franciscogerson10@gmail.com O que é Um sistema de Software Software não é apenas o programa, são os programas de computador com sua documentação associada e os dados de configuração necessários para fazer com que esses programas operem corretamente. Um sistema de software, usualmente, consiste em: uma série de programas separados, arquivos de configuração que são usados para configurar esses programas, documentação do sistema, que descreve a estrutura desse sistema, documentação do usuário, que explica como utilizar o sistema, e em alguns casos sites Web para que os usuários possam fazer download das informações recentes do produto. Produtos de Software Há dois tipos de produtos de software: Os desenvolvidos para o mercado (produtos genéricos). Ex.: O pacote MS Office, SGBD s (Sistemas Gerenciadores de Bancos de Dados). Os desenvolvidos para um cliente específico (produtos sob encomenda ou personalizados) Ex: Programas de Controle de Estoque ou para Controle de Vendas em uma determinada Loja, Sistema para um determinado Supermercado. Não há um consenso sobre as categorias genéricas que poderiam ser aplicadas para enquadrar os softwares que são desenvolvidos; porém pode-se atribuir uma classificação conjugando-se o ambiente e a finalidade para os quais se destina. Além dos softwares: Básicos (Sistemas Operacionais), Aplicativos (Funcionalidades aos usuários) e Utilitários (Manutenção e preservação dos dados) Podemos destacar:

Software embutido: pode assumir características de software básico, software aplicativo ou ambos simultaneamente. Em geral o software embutido cuida de toda a operacionalidade de um dispositivo e reside em uma memória só de leitura (read-only). Tais dispositivos vão desde um simples relógio de pulso, um palm, chips com funções de controle em automóveis, celulares, fornos de microondas etc. Software de tempo real (real time): Refere-se ao imediatismo de resposta decorrente de sua atividade de monitoração, análise ou controle, que tanto pode ser parte de um software básico quanto aplicativo. Software inteligente : Refere-se ao uso de algoritmos e recursos oriundos da área da Inteligência Artificial, que favorecem funções que são direcionadas para a solução de problemas específicos. Software especialista: Refere-se ao software especialmente desenvolvido para uma área do conhecimento, ou negócio restrito, onde exige-se alto grau de especialização, funcionando, inclusive, como um assistente técnico no auxílio ao usuário. Quando incorporam softwares inteligentes, pode-se dizer que se trata da inteligência aplicada a uma especialidade. Distribuição de Software Software comercial Software shareware Software livre (Free Software) Software gratuito (Freeware) Segundo definição do SEI (Software Engineering Institute): Engenharia é a aplicação sistemática do conhecimento cientifico na criação e construção de soluções para problemas práticos a serviço do gênero humano. Engenharia de Software é uma forma de engenharia que aplica os princípios da ciência da computação e matemática para alcançar soluções com melhor custo-benefício para o problema do software. (SEI, 1990). Para o IEEE (Institute of Electrical and Electronic Engineers): Engenharia de Software trata-se da aplicação sistemática, disciplinada, quantificável para o desenvolvimento, operação e manutenção do software. (IEEE, 1990). A atividade de engenharia não pode prescindir da garantia da qualidade do produto, da conformidade às normas, e do planejamento e gerenciamento de custos e prazos. O Software como fruto da engenharia é o grande objetivo que se busca, a fim de conseguir obter-se um produto confiável, funcionando de maneira eficiente e economicamente viável. Por funcionamento eficiente deve-se considerar que o software deverá atender às necessidades do usuário, SOB A ÓTICA DELE.

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 sua qualidade. A engenharia de software deve oferecer mecanismos para se planejar e gerenciar o processo de desenvolvimento. A partir da década de 1960: Aumento da demanda pela criação de software motivados por: a acentuada quebra da hegemonia da aplicação de computadores nas áreas militares e acadêmicas, ascensão da aplicação na indústria, o surgimento de novas linguagens de programação (COBOL, por exemplo), O desenvolvimento de software ocorria de maneira informal, sem a aplicação de qualquer método. O desenvolvimento de software dependia totalmente de quem o construía, caracterizando-se mais por uma obra de arte do que propriamente um produto de formalismo técnico. Os profissionais que desenvolviam o software, por sua vez, estavam envolvidos com a realidade da tecnologia em si e não propriamente com os problemas que deveriam ser resolvidos. Haviam características do hardware que mereciam muita atenção nos projetos a serem desenvolvidos e, não raramente, eram restritivas, especialmente aquelas pertinentes ao dimensionamento de recursos, já que o hardware era o item de maior custo. À medida que tais softwares eram desenvolvidos e crescia o número de sistemas baseados em computadores, passou-se a verificar que os desenvolvimentos eram marcados por: atrasos e falhas na maioria dos projetos que resultavam em metas não atingidas, custos imprevisíveis e sistemas de difícil manutenção. Em 1968, constatada a situação caótica em que se encontrava o desenvolvimento de software, que ficou conhecida como a crise do software, foi realizada na Alemanha, uma conferência internacional como uma tentativa de se encontrar caminhos que viessem a melhorar o desenvolvimento de software. A conferência foi promovida pelo grupo de estudo em ciência da computação, do comitê de ciências da OTAN, figurando como principal organizador o Professor Fritz Bauer, que escolheu deliberadamente para título da conferência a frase Engenharia de Software, por ser provocativa, implicando a necessidade de um software que fosse concebido sobre critérios, que tivesse fundamentações teóricas, por meio de práticas disciplinadas, ou seja, que fosse criado segundo processos formais de engenharia. A partir de então passou-se a criar uma consciência da urgência de padrões e deu-se então o surgimento de alguns modelos ao longo do tempo, como os conhecidos: Modelo Estruturado Modelo Essencial Modelo Orientado a Objetos Embora se tenha caminhado muito, sob o ponto de vista das padronizações e conseqüentes vantagens oferecidas pelo conceito de engenharia, o que falta, ainda, efetivamente, é que se pratique o que se prega.

O software em um cenário problemático Os modelos criados vivem um processo constante de maturação adequando-se a novas realidades dos negócios. Assim o que falta é simplesmente colocar algum método em prática e, definitivamente, abandonar o descaso do desenvolvimento anárquico e suas conseqüências. (TONSIG, 2008). É ainda mais freqüente do que se imagina a presença de desenvolvedores entregando aos seus clientes, softwares sem qualidade: Mal estruturados, Consumidores de recursos de máquina, Que não atendem completamente às necessidades reais dos usuários, Atrasos na entrega, quer seja um novo desenvolvimento ou customizações, Com custos elevados, Não utilizam qualquer tipo de método formal na gestão do projeto e documentação do produto. O software em um cenário problemático O que fazer? O aumento do grau de complexidade dos softwares: normalmente tratam uma gama muito grande de variáveis, são intervenientes nos processos automatizados, clientes cada vez mais exigentes. portanto, é fator fundamental o planejamento, como parte integrante da aplicação de um modelo de desenvolvimento. Os paradigmas de engenharia de software propiciam métodos e técnicas que mostram exatamente como deve-se proceder para construir software. Por método pode-se entender um caminho a ser percorrido em etapas, onde se aplica um conjunto de técnicas, o que permitirá a construção de um software eficiente e seguro. Decorrentes de aprimoramento das melhores práticas, hoje existem vários métodos para o desenvolvimento de software. O objetivo básico do estabelecimento de um método padronizado de desenvolvimento de sistemas é obter: maior consistência no trabalho, trabalho sistematizado, padronização de documentos e linguagens, melhor qualidade oferecida ao usuário, maior facilidade de treinamento de novos analistas, melhor controle dos resultados obtidos, maximização dos resultados. Ainda sobre o método, para Roger Pressman (Pressman 1995), Os métodos envolvem um amplo conjunto de tarefas que incluem: planejamento e estimativa de projeto, análise de requisitos de software e de sistemas, projeto da estrutura de dados, arquitetura de programa e algoritmo de processamento, codificação, teste manutenção.

Exercício Assim como um engenheiro civil ou um médico seguem determinados procedimentos diante de diversas situações quanto às suas atividades profissionais, também um desenvolvedor de software deve seguir procedimentos na construção de um sistema de informação. Se tais procedimentos não existirem, a construção de software estará ligada ao caos; portanto, um método visa proporcionar procedimentos a serem seguidos em cada etapa do desenvolvimento de um software. Para cada etapa de um determinado método aplicam-se uma ou várias técnicas. 1. Formule um conceito para software? 2. Explique os tipos de produtos de software? 3. Liste as categorias de software e comente cada uma? 4. Diferencie software livres de softwares gratuitos 5. Formule um conceito para Engenharia de 6. O que motivou o surgimento da Engenharia de 7. Quais os problemas mais comuns, ainda existentes, na produção de software? 8. Quais os objetivos básicos do estabelecimento de métodos padronizados no desenvolvimento de sistemas? 9. Os métodos envolvem um amplo conjunto de tarefas que incluem várias atividades, cite-as: 10.Quais as vantagens de se aplicar os conceitos da Engenharia de Bibliografia TONSIG, S. L. Engenharia de Software Análise e Projeto de Sistemas. Editora Ciência Moderna, 2ª Edição, 2008. SOMMERVILLE, Ian. Engenharia de Software. São Paulo: Addison-Wesley, 6ª Edição, 2003. PRESSMAN, Roger S. Engenharia de Software. Rio de Janeiro: McGraw-Hill, 2007. Notas de aula