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

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

Profa. MSc. Daniela Gibertoni

Apresentações semelhantes


Apresentação em tema: "Profa. MSc. Daniela Gibertoni"— Transcrição da apresentação:

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

2 Profa. MSc Daniela Gibertoni
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. Profa. MSc Daniela Gibertoni

3 Profa. MSc Daniela Gibertoni
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. Profa. MSc Daniela Gibertoni

4 Profa. MSc Daniela Gibertoni
Dois tipos 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 Profa. MSc Daniela Gibertoni

5 Profa. MSc Daniela Gibertoni
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. Profa. MSc Daniela Gibertoni

6 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. Profa. MSc Daniela Gibertoni

7 O que é Engenharia de Software
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. Profa. MSc Daniela Gibertoni

8 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. Profa. MSc Daniela Gibertoni

9 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. Profa. MSc Daniela Gibertoni

10 Profa. MSc Daniela Gibertoni
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. Profa. MSc Daniela Gibertoni

11 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; Profa. MSc Daniela Gibertoni

12 Modelo de processo de software
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. Profa. MSc Daniela Gibertoni

13 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. Profa. MSc Daniela Gibertoni

14 Modelo de processo de software
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. Profa. MSc Daniela Gibertoni

15 Custos da engenharia de software
Modelo cascata 25 50 75 100 Especificação Projeto Desenvolvimento Integração e teste Desenvolvimento iterativo 25 50 75 100 Especificação Desenvolvimento iterativo Teste de sistema Engenharia de software baseada em componentes 25 50 75 100 Especificação Desenvolvimento Integração e teste Profa. MSc Daniela Gibertoni

16 Profa. MSc Daniela Gibertoni
Custos de desenvolvimento e evolução ao longo da vida do software 100 200 300 400 Desenvolvimento de sistema Evolução do sistema Custos de desenvolvimento do produto Modelo cascata 25 50 75 100 Especificação Desenvolvimento Teste de sistema Profa. MSc Daniela Gibertoni

17 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) Profa. MSc Daniela Gibertoni

18 Atributos de um bom software
Características do produto Descrição Facilidade de manutenção O 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ça O 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 Profa. MSc Daniela Gibertoni

19 Atributos de um bom software
Características do produto Descrição Eficiência O 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 Usabilidade O 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. Profa. MSc Daniela Gibertoni

20 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). Profa. MSc Daniela Gibertoni

21 Profa. MSc Daniela Gibertoni
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. Profa. MSc Daniela Gibertoni

22 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 Profa. MSc Daniela Gibertoni

23 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; Profa. MSc Daniela Gibertoni

24 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. Profa. MSc Daniela Gibertoni

25 Comentários importantes – modelo cascata
O resultado de cada fase consiste de um ou mais documentos aprovados (‘assinados’); A fase seguinte não deve começar antes que a fase anterior tenha terminado. Obs.: na prática, esses estágios se sobrepõem e trocam informações entre si; durante o projeto são identificados problemas com requisitos; durante a codificação, são encontrados problemas de projeto e assim por diante. O processo de software não é um modelo linear simples; envolve uma sequência de iterações das atividades de desenvolvimento. Profa. MSc Daniela Gibertoni

26 Vantagens e desvantagens do modelo cascata
Documentação produzida em cada fase Aderência a outros modelos de processo de engenharia Desvantagens: Divisão inflexível do projeto em estágios distintos. Os compromissos devem ser assumidos no estágio inicial do processo, o que torna difícil reagir às mudanças de requisitos do usuário Profa. MSc Daniela Gibertoni

27 Considerações finais modelo cascata
O modelo cascata deve ser usado apenas quando os requisitos forem bem compreendidos e houver pouca probabilidade de mudanças radicais durante o desenvolvimento do sistema. No entanto, o modelo em cascata reflete o tipo de modelo de processo usado em outros projetos de engenharia. Consequentemente, processos de software baseados nessa abordagem são ainda usados para o desenvolvimento de software. Profa. MSc Daniela Gibertoni

28 Modelo em espiral O modelo em espiral

29 Desenvolvimento em espiral
Foi originalmente proposto por Boehm, 1988 Cada loop na espiral está dividido em quatro setores: 1- Definição de objetivos: os objetivos específicos dessa fase do projeto são definidos. As restrições sobre o processo e o produto são identificadas e um plano detalhado de gerenciamento é elaborado. Os riscos de projeto são identificados; 2- Avaliação e redução de riscos: para cada risco de projeto identificado, uma análise detalhada é realizada. Providências são tomadas para reduzir o risco. Por exemplo, se houver risco de que os requisitos não sejam apropriados, um protótipo do sistema poderá ser desenvolvido; Profa. MSc Daniela Gibertoni

30 Desenvolvimento em espiral
3- Desenvolvimento e validação: após a avaliação de risco, um modelo de desenvolvimento para o sistema é selecionado. Por exemplo, se os riscos da interface com o usuário forem dominantes, um modelo de desenvolvimento apropriado pode ser a prototipação evolucionária. Se os riscos de segurança constituírem a principal consideração, o desenvolvimento baseado em transformações formais pode ser o mais apropriado e assim por diante. O modelo em cascata pode ser o mais apropriado se o principal risco identificado for a integração de subsistemas. Profa. MSc Daniela Gibertoni

31 Desenvolvimento em espiral
4- Planejamento: o projeto é revisado e uma decisão é tomada para prosseguimento ao próximo loop da espiral. Se a decisão for pelo prosseguimento, serão elaborados planos para a próxima fase do projeto. Um ciclo da espiral começa com a elaboração dos objetivos, como desempenho e funcionalidade. Os caminhos alternativos para alcançar esses objetivos e as restrições impostas sobre cada um deles são, então, enumerados.Cada alternativa é avaliada em relação a cada objetivo e as fontes de riscos de projeto são identificadas. O próximo passo é resolver esses riscos por meio de atividades de coleta de informações, tais como análise mais detalhada, prototipação e simulação. Após a avaliação dos riscos, é realizada uma parte do desenvolvimento, seguida pela atividade de planejamento para a próxima fase do processo. Profa. MSc Daniela Gibertoni

32 Profa. MSc Daniela Gibertoni
Exercícios 1- Explique como o modelo em cascata de processo de software pode ser acomodado no modelo do processo espiral. Profa. MSc Daniela Gibertoni

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


Carregar ppt "Profa. MSc. Daniela Gibertoni"

Apresentações semelhantes


Anúncios Google