Prévia do material em texto
2/10/2022 1 Fernanda Farinelli Profa. Fernanda Farinelli PROJETO DE SISTEMAS DE INFORMAÇÃO Projeto de Engenharia Projetos bem feitos versus projetos mal feitos 2/10/2022 2 Fernanda Farinelli ● Causa de problemas ○ Falta de comunicação e entendimento da demanda/problema ○ Desalinhamento entre Orçamento / Custos ○ Mão-de-obra deficiente; ○ Material caro; ○ Clima ... ○ Projeto mal feito ● Graves consequências … Porque uma obra pode não dar certo? Fernanda Farinelli Falhas de projeto 2/10/2022 3 Fernanda Farinelli Retrabalho Fernanda Farinelli Prejuízo e desperdício 2/10/2022 4 Fernanda Farinelli Problemas de projeto ? Fernanda Farinelli Podemos evitar, corrigir ou adaptar? 2/10/2022 5 Fernanda Farinelli Mesmo quando pequenos, não são bem vistos Fernanda Farinelli ● Alguns aspectos que devem ser levados em conta em um projeto de construção civil: ○ Análise da topografia da área ○ Sondagem do solo ○ Informações da estrutura da construção ○ Projeto de arquitetura e estilo arquitetural ○ Projeto de Engenharia ○ Informações sobre as construções vizinhas ○ Layout uniforme e consistente de todos os ambientes. Projetos bem feitos de engenharia 2/10/2022 6 Fernanda Farinelli Benefícios de projetos bem feitos Garantia da funcionalidade Fernanda Farinelli Benefícios de projetos bem feitos Conforto térmico e acústico 2/10/2022 7 Projeto de Software Não é diferente 2/10/2022 8 Fernanda Farinelli Problemas e dificuldade no desenvolvimento de Software ● Grau de incerteza sobre o que é o resultado esperado ● O desenvolvimento de produtos de software é caro ● O tempo estimado para desenvolvimento de um produto de software geralmente é superado ● Produtos de software dificilmente atingem o padrão de qualidade esperado ● O grau de progresso no desenvolvimento de um produto de software é difícil de medir 2/10/2022 9 Fernanda Farinelli Engenharia de Software ● Objetivos: ● Identificar os problemas envolvidos com o desenvolvimento de software ● Analisar as causas destes problemas ● Propor soluções viáveis para a resolução destes problemas ● Organizar o conhecimento sobre técnicas para o desenvolvimento de software ● Garantir e manter as boas práticas Fernanda Farinelli Engenharia de Software ● Se refere a: ● modelos de ciclo de vida ● métodos e ferramentas de desenvolvimento ● técnicas para gerência e controle da qualidade ● técnicas para estimativa de tamanho e custo ● documentação ● outras técnicas que estabelecem padrões para as atividades de produção e manutenção de software 2/10/2022 10 Processo de Software Conjunto de atividades, métodos, práticas e tecnologias utilizadas para o desenvolvimento e manutenção de software e produtos relacionados. Fernanda Farinelli É importante diferenciar ● Modelo de Processo: ● Conjunto de regras abstratas que especificam a forma geral de processos. ● Apresenta uma filosofia que embasa as etapas do processo ● Processo: ● Conjunto de regras que definem como um projeto deve ser executado. ● “Processo herda de modelo sobrescrevendo seus métodos.” ● Projeto: ● Execução concreta de um conjunto de atividades que visam à criação de um produto. ● “É uma instância de um processo”. 2/10/2022 11 Modelos de Processo de Software Existem vários modelos de processo de software cada um representa uma tentativa de colocar ordem em uma atividade inerentemente caótica Fernanda Farinelli Modelos de Processo de Software ● Modelo cascata ● Modelo incremental ● Modelo Espiral ● Paradigma de Prototipação 2/10/2022 12 Modelo clássico de processo Cascata ou waterfall ● Mais antigo/mais tradicional ● Determina macroatividades sequenciais ● Um atividade só começa quando a anterior finaliza Modelo clássico de processo Cascata ou waterfall ● Vantagens: ● Trouxe disciplina, planejamento e gerenciamento ao desenvolvimento ● Documentação rígida (idealmente completa) em cada atividade (?) ● Reflete abordagens adotadas em outras engenharias ● A implementação do produto deve ser postergada até que os objetivos tenham sido completamente entendidos 2/10/2022 13 Modelo clássico de processo Cascata ou waterfall ● Desvantagens: ● Projetos reais raramente seguem um fluxo sequencial ● O cliente não consegue estabelecer todos os requisitos à priori ● Difícil se adequar a mudanças inevitáveis de requisitos ● Uma versão executável somente ficará pronta na fase final do projeto Modelo de prototipação ● O objetivo é entender os requisitos do usuário e, assim, obter uma melhor definição dos requisitos do sistema. ● Possibilita que o desenvolvedor crie um modelo (protótipo)do software que deve ser construído ● Apropriado para quando o cliente não definiu detalhadamente os requisitos. 2/10/2022 14 Fernanda Farinelli Modelo Incremental ● Processo interativo e incremental ● Combina elementos do modelo cascata sendo aplicado de maneira interativa ● Visa apresentar um produto operacional a cada incremento realizado. ● Os requisitos de usuário são priorizados e os requisitos de prioridade mais alta são incluídos nos incrementos iniciais Modelo incremental ● O valor pode ser entregue para o cliente com cada incremento e, desse modo, a funcionalidade de sistema é disponibilizada mais cedo. ● O incremento inicial age como um protótipo para auxiliar a elicitar os requisitos para incrementos posteriores do sistema. ● Riscos menores de falha geral do projeto. ● Os serviços de sistema de mais alta prioridade tendem a receber mais testes. 2/10/2022 15 Modelo em Espiral de Boehm ● O modelo espiral acopla a natureza iterativa da prototipação com os aspectos controlados e sistemáticos do modelo cascata. ● O modelo espiral é dividido em uma série de atividades de trabalho ou regiões de tarefa. ● Cada loop na espiral representa uma fase no processo. ● As voltas devem ser repetidas quantas vezes forem necessárias até que o software possa ser completamente entregue Modelo em Espiral de Boehm ● Sem fases definidas, tais como especificação ou projeto – os loops na espiral são escolhidos dependendo do que é requisitado. 2/10/2022 16 Processo Unificado Não é diferente Fernanda Farinelli RUP – Rational Unified Process 2/10/2022 17 Fernanda Farinelli RUP – Rational Unified Process ● Desenvolvimento de Software Interativo ● Gerenciamento de requisitos ● Uso de arquitetura baseada em componentes ● Modelagem visual ● Verificação contínua da qualidade ● Gerenciamento de mudanças ● Conjunto de atividades ○ bem definidas ○ com responsáveis ○ com artefatos de entrada e saída ○ com dependências entre as mesmas e ordem de execução ○ com modelo de ciclo de vida ○ descrição sistemática de como devem ser realizadas ○ Modelagem UML 2/10/2022 18 Fernanda Farinelli Fernanda Farinelli Processo Unificado ● UP é um framework genérico de um processo de desenvolvimento ● UP é baseado em componentes e utiliza toda a definição da UML ● UP é dirigido pelos use cases, centrado na arquitetura, iterativo e incremental (conceitos-chave) ● UP repete vários ciclos até a aposentadoria do sistema ○ Cada ciclo gera um produto liberado para uso. ● Cada ciclo possui 4 fases: tempo Concepção Elaboração Construção Transição 2/10/2022 19 Fernanda Farinelli Processo Dirigido por caso de uso ● Benefícios: use cases associam todos os workflows de forma conjunta. ● Dirigem várias atividades de desenvolvimento: ○ Criação e validação da arquitetura do sistema ○ Criação de casos de teste ○ Planejamento das iterações ○ Criação de documentação do usuário ○ Implantação do sistema ● Sincronizam conteúdo dos modelos criados em cada workflow. Fernanda Farinelli Processo Centrado na Arquitetura ● Benefícios: ○ Fornece uma base sólida para a construção do software ○ Melhor compreensão do sistema e organização do desenvolvimento. ● Descrição arquitetura envolve elementos de modelo mais importantes - coleção devisões dos modelos do sistema. ● UP prescreve um refinamento sucessivo à arquitetura. ● A arquitetura representa a forma, enquanto que os use cases representam funcionalidade arquitetura e use cases devem ser balanceados 2/10/2022 20 Fernanda Farinelli Diagramas UML Link aula gravada https://sgapucminasbr.sharepoint.com/:v:/r/sites/team_sga_123_2022_1_9147 100/Documentos%20Compartilhados/General/Recordings/Exibir%20Apenas/A ula%20PSI-20220205_094321- Meeting%20Recording.mp4?csf=1&web=1&e=9nMKly https://sgapucminasbr.sharepoint.com/:v:/r/sites/team_sga_123_2022_1_9147100/Documentos Compartilhados/General/Recordings/Exibir Apenas/Aula PSI-20220205_094321-Meeting Recording.mp4?csf=1&web=1&e=9nMKly