A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Disciplina: Análise e Projeto de Sistemas I Aula 04: Engenharia de Software Profa. MSc. Daniela Gibertoni.

Apresentações semelhantes


Apresentação em tema: "Disciplina: Análise e Projeto de Sistemas I Aula 04: Engenharia de Software Profa. MSc. Daniela Gibertoni."— Transcrição da apresentação:

1 Disciplina: Análise e Projeto de Sistemas I Aula 04: Engenharia de Software Profa. MSc. Daniela Gibertoni

2 Profa. MSc Daniela Gibertoni 2 Software Software não é apenas o programa, mas todos os dados de documentação e configuração associados, necessários para que o programa opere corretamente. Um sistema de software consiste, geralmente, de um conjunto de programas separados; arquivos de configuração, que são utilizados para configurar esses programas; documentação do sistema, que descreve a estrutura do sistema; a documentação do usuário, que explica como usar o sistema; e sitesWeb por meio dos quais os usuários obtém informações recentes sobre o produto.

3 Profa. MSc Daniela Gibertoni 3 Dois tipos de software Produtos genéricos: são sistemas do tipo stand-alone, produzidos por uma organização de desenvolvimento e vendidos no mercado para qualquer cliente disposto a comprá-los. Dentre os exemplos deste tipo de produtos estão os softwares para PCs, como banco de dados, processadores de texto e ferramentas de gerenciamento de projetos. Produtos sob encomenda (ou personalizados): são os sistemas encomendados por um determinado cliente. O software é desenvolvido especialmente para aquele cliente por uma empresa de software. Uma diferença importante entre esses dois tipos de software é que, em produtos genéricos, a organização que desenvolve o software controla sua especificação. Para produtos encomendados, a especificação é normalmente desenvolvida e controlada pela organização que compra o software

4 Profa. MSc Daniela Gibertoni 4 ERP Muitas empresas de software desenvolvem um produto genérico e modificam-no de acordo com as necessidades de um cliente específico. Sistemas de planejamento de recursos empresariais (ERP – Enterprise Resource Planning), como sistemas SAP, são os melhores exemplos desse método. Nesse caso, um sistema grande e complexo é adaptado a uma empresa, incorporando informações sobre as regras e os processos de negócio, relatórios necessários, etc.

5 Profa. MSc Daniela Gibertoni 5 O que é Engenharia de Software É uma disciplina de engenharia relacionada com todos os aspectos da produção de software, desde os estágios iniciais de especificação do sistema até sua manutenção, depois que este entrar em operação. Dois pontos importantes:  Disciplina de engenharia: os engenheiros fazem as coisas funcionarem. Eles aplicam teorias, métodos e ferramentas onde for apropriado, mas eles os usam de forma seletiva e sempre procuram descobrir soluções para os problemas. Os engenheiros reconhecem também que devem trabalhar sob restrições organizacionais e financeiras, e procuram soluções sem perder de vista essas restrições.  Todos os aspectos da produção de software: a engenharia de software não está relacionada apenas com os processos técnicos de desenvolvimento de software, mas também com atividades como gerenciamento de projeto de software e o desenvolvimento de ferramentas, métodos e teorias que apóiem a produção de software.

6 Profa. MSc Daniela Gibertoni 6 A diferença entre engenharia de software e ciência da computação Ciência da computação diz respeito às teorias e aos métodos que constituem a base de computadores e sistemas de software; Engenharia de software se dedica aos problemas práticos da produção de software. Algum conhecimento da ciência da computação é essencial para os engenheiros de software.

7 Profa. MSc Daniela Gibertoni 7 A diferença entre engenharia de software e engenharia de sistemas A engenharia de sistemas diz respeito a todos os aspectos do desenvolvimento e da evolução de sistemas complexos, nos quais o software desempenha um papel importante. A engenharia de sistemas está relacionada ao desenvolvimento de hardware, projeto de políticas e de processos e implantação do sistema, assim como com a engenharia de software.

8 Profa. MSc Daniela Gibertoni 8 Processo de software Um processo de software é um conjunto de atividades e resultados associados que produz um produto de software. Existem quatro atividades fundamentais de processo:  Especificação de software: clientes e engenheiros definem o software a ser produzido e as restrições para a sua operação;  Desenvolvimento de software: o software é programado e projetado;  Validação de software: na qual o software é verificado para garantir que é o que o cliente deseja;  Evolução do software: o software é modificado para se adaptar às mudanças dos requisitos do cliente e do mercado.

9 Profa. MSc Daniela Gibertoni 9 Modelo de processo de software Um modelo de processo de software é uma descrição simplificada desse processo de software que apresenta uma visão dele. Os modelos de processo incluem as atividades, que fazem parte do processo de software, os produtos de software e os papéis das pessoas envolvidas. Exemplos:  Um modelo de workflow: mostra a sequência de atividades ao longo do processo, com suas entradas, saídas e dependências entre elas. As atividades neste modelo representam ações humanas;  Um modelo de fluxo de dados: representa o processo como um conjunto de atividades, no qual cada atividade realiza alguma transformação de dados. Mostra como a entrada de um processo, como uma especificação é transformada em uma saída. As atividades nesse modelo podem representar transformações realizadas por pessoas ou por computadores;  Um modelo de papel ação: representa os papéis das pessoas envolvidas no processo de software e as atividades pelas quais são responsáveis.

10 Profa. MSc Daniela Gibertoni 10 Modelo de processo de software O modelo em cascata: considera as atividades apresentadas anteriormente e as representa como fases separadas de processo, como especificação de requisitos, projeto de software, implementação, teste e assim por diante. Depois que cada estágio é concluído, ele é aprovado e o desenvolvimento prossegue para o estágio seguinte; Desenvolvimento iterativo: esta abordagem intercala as atividades de especificação, desenvolvimento e validação. Um sistema inicial é desenvolvido rapidamente com base em especificações muito abstratas. É então refinado com as informações do cliente, para produzir um sistema que satisfaça as necessidades deste. O sistema pode, então, ser entregue. Como alternativa, ele pode ser reimplementado, utilizando uma abordagem mais estruturada, para produzir um sistema mais robusto e mais fácil de ser mantido. Engenharia de software baseada em componentes (Component Based Software Engineering): esta técnica supõe que partes do sistema já existam. O processo de desenvolvimento concentra-se mais na integração dessas partes do que no seu desenvolvimento a partir do início.

11 Profa. MSc Daniela Gibertoni 11 Custos da engenharia de software Modelo cascata 0255075 EspecificaçãoProjeto DesenvolvimentoIntegração e teste 0255075 Especificação Desenvolvimento iterativoTeste de sistema Desenvolvimento iterativo 0255075 Especificação Desenvolvimento Integração e teste Engenharia de software baseada em componentes 100

12 Profa. MSc Daniela Gibertoni 12 Custos de desenvolvimento e evolução ao longo da vida do software 0100200300 Desenvolvimento de sistema Evolução do sistema 0255075 Especificação DesenvolvimentoTeste de sistema Custos de desenvolvimento do produto Modelo cascata 400 100

13 Profa. MSc Daniela Gibertoni 13 Métodos de engenharia de software É uma abordagem estruturada para o desenvolvimento de software, cujo objetivo é facilitar a produção de software de alta qualidade dentro de custos adequados. Métodos tais como Análise Estruturada, orientado para função (ainda usado), método orientados a objetos e agora com a fusão de ambas, a UML (Unified Modeling Language)

14 Profa. MSc Daniela Gibertoni 14 Atributos de um bom software Características do produtoDescrição Facilidade de manutençãoO software deve ser escrito de modo que possa evoluir para atender as necessidades de mudança dos clientes. É um atributo fundamental, pois a mudança de software é uma consequência inevitável de um ambiente de negócios em constante mutação ConfiançaO nível de confiança do software tem uma série de características, incluindo confiabilidade, proteção e segurança. Um software confiável não deve causar danos físicos ou econômicos no caso de falha no sistema

15 Profa. MSc Daniela Gibertoni 15 Atributos de um bom software Características do produtoDescrição EficiênciaO software não deve desperdiçar os recursos do sistema, como memória e ciclos do processador. Portanto, a eficiência inclui tempo de resposta, tempo de processamento, utilização de memória etc UsabilidadeO software deve ser usável, sem esforço excessivo, pelo tipo de usuário para o qual ele foi projetado. Isso significa que ele deve apresentar uma interface com o usuário e documentação adequadas.

16 Profa. MSc Daniela Gibertoni 16 Responsabilidade profissional e ética Confidencialidade: você deve respeitar a confidencialidade de seus funcionários ou clientes, independentemente de ter ou não assinado um acordo formal; Competência: você não deve desvirtuar seu nível de competência. Você não deve conscientemente aceitar um trabalho que esteja fora de sua competência; Direitos sobre propriedade intelectual: você deve estar ciente das leis locais que regem o uso de propriedade intelectual tais como patentes e direitos autorais. Você deve tomar cuidado para assegurar que a propriedade intelectual de funcionários e clientes seja protegida; Mau uso de computadores: você não deve usar suas habilidades técnicas para fazer mau uso dos computadores de outras pessoas. O mau uso de computadores varia desde o relativamente trivial (execução de jogos na máquina do funcionário, por exemplo) até o extremamente sério (disseminação de vírus).

17 Profa. MSc Daniela Gibertoni 17 Exercícios 1- Quais são as diferenças entre o desenvolvimento de produto genérico de software e o desenvolvimento de software sob encomenda? 2 – Por que é apropriado considerar que o software é mais do que os programas que podem ser executados pelos usuários finais do sistema? 3- Quais são os quatro principais atributos que todos os produtos de software devem ter? Sugira quatro outros atributos que às vezes podem ser significativos.

18 Profa. MSc Daniela Gibertoni 18 Modelo em cascata – ciclo de vida de software Definição de requisitos Projeto de sistema e software Implementação e teste de unidade Integração e teste de sistema Operação e manutenção

19 Profa. MSc Daniela Gibertoni 19 Modelo em cascata – ciclo de vida de software Análise e definição de requisitos: os serviços, restrições e objetivos do sistema são definidos por meio de consulta aos usuários do sistema. Eles são, portanto, definidos detalhadamente e servem como uma especificação de sistema; Projeto de sistema e software: o processo de projeto de sistema divide os requisitos em sistemas de hardware ou de software. Ele estabelece uma arquitetura geral do sistema. O projeto de software envolve a identificação e a descrição das abstrações fundamentais do sistema de software e suas relações;

20 Profa. MSc Daniela Gibertoni 20 Modelo em cascata – ciclo de vida de software Implementação e teste de unidade: durante esse estágio, o projeto de software é realizado como um conjunto de programas ou unidades de programa. O teste unitário envolve a verificação de que cada unidade atende à sua especificação; Integração e teste de sistema: as unidades individuais de programa ou os programas são integrados e testados como um sistema completo para garantir que os requisitos de software foram atendidos. Após os testes, o sistema de software é liberado para o cliente; Operação e manutenção: geralmente (embora não necessariamente) esta é a fase mais longa do ciclo de vida. O sistema é instalado e colocado em operação. A manutenção envolve a correção de erros não detectados nos estágios anteriores do ciclo de vida, no aprimoramento da implementação das unidades de sistema e na ampliação dos serviços de sistema à medida que novos requisitos são identificados.

21 Profa. MSc Daniela Gibertoni 21 Referência bibliográfica SOMMERVILLE, Ian. Engenharia de software. Ed. Prentice Hall, São Paulo, 2007. Cap.1 e 4


Carregar ppt "Disciplina: Análise e Projeto de Sistemas I Aula 04: Engenharia de Software Profa. MSc. Daniela Gibertoni."

Apresentações semelhantes


Anúncios Google