Baixe o app para aproveitar ainda mais
Prévia do material em texto
Engenharia de Software I ENGENHARIA DE SOFTWARE OBJETIVOS E CONCEITOS 2 Questões... O que é um sistema de informação? Qual a importância de um sistema de Informação na atualidade? O que envolve um sistema de Informação? O que é a Engenharia de Software? Por que a Egenharia de Software é importante? 3 Introdução Todos os países, hoje me dia, dependem de sistemas complexos baseados em computadores; Infra-estruturas e serviços contam com sistemas baseados em computador; Maioria dos produtos elétricos inclui um computador e um software de controle; Manufaturas e distribuições industriais estão completamente automatizadas; O mesmo acontece com os Sistemas Financeiros. PRODUZIR E MANTER O SOFTWARE DENTRO DE CUSTO ADEQUADO É ESSENCIAL PARA O FUNCIONAMENTO DA ECONOMIA NACIONAL E MUNDIAL. 4 História da Engenharia de Software Seu conceito foi inicialmente proposto em 1968. Acontecido em uma conferência organizada para discutir o que foi chamado de: “CRISE DO SOFTWARE” Resultado da criação de novos hardware de computador baseados em circuitos integrados. Aplicações anteriormente consideradas não realizáveis, tornavam-se viáveis a partir dali. Softwares mais complexos que sistemas anteriores de sw. 5 Engenharia de Software e Ciência da Computação 6 Qual Papel da Engenharia de Software? Resolver Problemas 7 Definições O que é Engenharia de Software? Ocupa de todos os aspectos do desenvolvimento de software; Conjunto de: técnicas, métodos, ferramentas e processos; Isso utilizado: na especificação, construção, implantação e manutenção de um software ; visa: garantir a gerência, o controle e a qualidade dos artefatos gerados através de recursos humanos. Se dedica ao problema prático da produção do software. Como engenheiro de software, utilizamos nossos conhecimentos sobre computadores e computação para ajudar a resolver problemas. 8 Definições Método é um procedimento formal para produzir algum resultado. Uma abordagem estruturada para o desenvolvimento, com objetivo de facilitar a produção de alta qualidade dentro de custos adequados. Técnica Aplicação ótima dos métodos com compromisso maior com o resultado esperado, não com a aplicação formal dos métodos. Ex: chefe de cozinha pode preparar uma receita empregando ingredientes sequencialmente combinados em ordem e momentos específicos. O procedimento de preparo envolve a preocupação com o tempo e os ingredientes, mas pode não depender do tipo de equipamento de cozinha utilizado. 9 Definições Ferramenta é um instrumento ou sistema automatizado utilizado para realizar uma tarefa da melhor maneira. As ferramentas podem nos tornar mais precisos, eficientes e produtivos, isso pode melhorar a qualidade do produto. A produção de um documento com uso de computador e impressora o torna mais fácil de ler que um produzido por máquina de escrever. Entretanto nem sempre é necessária uma ferramenta para se fazer bem alguma coisa. Uma técnica culinária pode melhorar a qualidade de um molho, o que não acontece pelo uso de determinada vasilha ou colher. 10 Definições Procedimento é como uma receita. Indica como fazer. A combinação de ferramentas e técnicas que, em harmonia, produzem um resultado específico. Processo coordenação na aplicação das técnicas, métodos e ferramentas e recursos humanos durante a especificação, construção, implantação e manutenção de um software; 11 Definições Paradigma é como um estilo de fazer. Representa uma abordagem ou filosofia em particular para a construção de um software. Assim como diferenciamos a cozinha chinesa da francesa, podemos distinguir os paradigmas de desenvolvimento orientado a objetos do paradigma procedural. 12 Definições Software conjunto de artefatos gerados na solução de um problema computacional que tem como artefato principal um arquivo binário executável em um computador. Artefato qualquer produto gerado durante a especificação, construção, implantação ou manutenção de um software. Sistema software e seus artefatos de origem técnica. Ou seja, excluem-se os artefatos gerenciais e inclui-se infra- estrutura de hardware. 13 Definições Arquivo binário executável um arquivo de computador passível de interpretação e execução por uma arquitetura de computador. Originado pela tradução de um código-fonte via compilação e ligação em um arquivo binário executável. Código-fonte Conjunto de instruções lógicas construídas com uma linguagem de programação que obedece a um conjunto de algarismos de forma a garantir a solução de um problema computacional proposto. 14 Engenharia de Software Analisando as definições anteriores podemos encarar a Engenharia de Software como uma tecnologia em camadas: ferramentas métodos processo foco na qualidade 15 Engenharia de Software ferramentas métodos processo foco na qualidade É o “solo” e o porque de utilizarmos um processo de software Gerenciamento da Qualidade Total e filosofias similares produzem uma mudança cultural que permite o desenvolvimento crescente de abordagens mais maduras para a Engenharia de Software 16 Engenharia de Software ferramentas métodos processo foco na qualidade É a “fundação”; É o que intermedeia as camadas de tecnologias e permite um desenvolvimento de software racional e em tempo; Define um conjunto de áreas chave do processo (KPA) que deve ser estabelecido para um uso efetivo da Engenharia de Software; 17 Engenharia de Software ferramentas métodos processo foco na qualidade É o “como fazer”; Englobam um conjunto de tarefas que inclui análise de requisitos, projeto, implementação, teste e manutenção; 18 Engenharia de Software ferramentas métodos processo foco na qualidade • É o “instrumento apropriado”; • Dão suporte automatizado ou semi-automatizado aos métodos; • Quando as ferramentas que apoiam os métodos se integram, forma-se a Engenharia de Software auxiliada por computador – CASE – Computer Aided Software Engineering; 19 Produto de Software - Definição O Produto é composto por: 1- Instruções (programas) quando executadas produzem a função e o desempenho desejados 2 - Estruturas de Dados possibilitam que os programas manipulem adequadamente a informação 3 - Documentos descrevem a operação e o uso dos programas - Facilidade de manutenção Atributos essenciais: - Confiança - Eficiência - Aceitação Processo de Software O que é processo de software? É um conjunto de atividades e resultados associados que geram um produto de software; Um roteiro que o ajuda a criar a tempo um resultado de alta qualidade. Esse roteiro a ser seguido é chamado de processo de software; Esse processo é composto por 4 atividades fundamentais: 20 - Especificação - Desenvolvimento -Validação -Evolução do Software Custos de Engenharia de Software Não é uma resposta simples. Pois depende do processo e do tipo de software que esta sendo desenvolvido. Existem várias abordagens de desenvolvimento, e cada uma possui um perfil diferente de distribuição de custos. Exemplos por atividade de processo: Considerando o custo total por 100 unidades de custo, vejamos como essas unidades são empregadas para cada tipo de abordagem. 21 Distribuição de Custos nas Atividades de Engenharia de Software 22 Desafios da Engenharia de Software O Desafio da heterogeneidade Operar em sistemas distribuídos, através de redes com diferentes tipos de computadores com diferentes tipos de sistemas operacionais; A integração de um novo software com outro mais antigo e escrito em diferentes linguagens de programação. Temos a tarefa de desenvolver técnicas para construção de softwares confiáveis e flexíveis para adaptar-se a essa heterogeneidade. 23 Desafios da Engenharia de Software O Desafio da Entrega Algumas técnicas de desenvolvimento demandam tempo; Ambientes de negócio de hoje devem apresentar respostas ágeis e mudar rapidamente; O software de apoio deve acompanhar a velocidade da mudança. Diminuir o tempo de entrega dos sistemas grandes e complexos, sem comprometer sua qualidade. 24 Desafios da Engenharia de Software O Desafio da Confiança O software esta relacionado com os aspectos de nossa vida, é essencial que possamos confiar neles; Em sistemas remotos acessados através de paginas da Web isso é especialmente verdadeiro; Desenvolver Técnicas que demonstrem que o software pode ter a confiança de teus usuários. 25 Responsabilidade Profissional e Ética Devemos nos comportar de forma responsável ética e moralmente, para seremos respeitados como profissionais. Defender padrões normais de honestidade e integridade. Alguns itens de responsabilidade profissional: Confidencialidade: respeitar a confidencialidade de seus funcionários e clientes, dependente de ter ou não assinado acordo. Competência: voce não deve aceitar um trabalho que esteja fora de sua competência. Direitos sobre propriedade intelectual: estar ciente das leis locais que regem uso de propriedade intelectual como patentes e direitos autorais. Mau uso de computador: mau uso do computador de outros, desde o trivial como de execução de jogos nas maquinas da empresa ou sério como disseminação de vírus. Sociedade e instituições definem padrões de ética: ACM e IEEE (Institute of Electrical and Eletronic Engineers) 26 Pontos-Chave A Engenharia de Software esta relacionada a todos os aspectos de produção de software. Produtos de software são programas desenvolvidos e documentados, com atributos de: facilidade de manutenção, confiança, eficiência e aceitação. Processo de software inclui todas as atividades envolvidas no processo de desenvolvimento (especificação, desenvolvimento, validação e evolução). Métodos são meios organizados de produção de software. Ferramentas CASE são sistemas de software projetados para apoiar as atividades de rotina no processo de software. Engenheiros de software tem responsabilidades com a profissão e com a sociedade. Sociedades profissionais publicam códigos de conduta. 27 28 Conclusão ENGENHARIA DE SOFTWARE pode ser vista como uma abordagem de desenvolvimento de software elaborada com disciplina e métodos bem definidos. Objetivo Principal Produzir software de alta qualidade e de baixo custo. 29 Referências Engenharia de Software. Sommerville, I. – Ed. Pearson – Addison Wesley. Capitulo 1 Engenharia de Software. Pressman, R. – Ed. McGraw Hill Capitulo 1 Engenharia de Software Teoria e Prática. Pfleeger, L.S. – Ed. Pearson Capitulo 1 Engenharia de Software. Fundamentos, Métodos e Padrões. Pádua, W. – Ed. LTC Capitulo 1 Engenharia de Software I ENGENHARIA DE SOFTWARE OBJETIVOS E CONCEITOS ??? DUVIDAS ???
Compartilhar