Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 ENGENHARIA DE SOFTWARE II Competências Propor soluções em conformidade com qualidade de código, desempenho e robustez na abordagem de objetos, alinhadas com especificações em nível de análise. Competências relacionadas/ Elementos da competência Propor abstrações coerentes para um software de acordo com a especificação em nível de análise. Construir diagramas utilizando corretamente a especificação da UML. Propor ajustes pertinentes na modelagem para satisfazer requisitos não funcionais. Evidenciar a compreensão sistêmica da especificação de projeto para um software orientado a objetos Atitudes requeridas Compreender problemas do mundo real e propor soluções de software utilizando orientação a objetos. Aplicar corretamente a linguagem UML para modelar sistemas que seguem o paradigma orientado a objetos. Adequar arquiteturas de sistemas a partir de ajustes na modelagem decorrentes de requisitos não funcionais. Construir uma arquitetura de sistemas a partir de ajustes na modelagem decorrentes de requisitos não funcionais. Construir uma arquitetura de sistema completa utilizando modelos UML. Evidências de produto ou resultado Resolução individual escrita de questionário e problematização. Projeto de especificação de estudo de caso. Projeto de especificação do estudo de caso. 2 Análise e Projeto de Software Orientado a Objetos Revisão de Engenharia de Software e Orientação a Objetos “Uma disciplina que reúne metodologias, métodos e ferramentas a serem utilizadas, desde a percepção do problema até o momento em que o sistema desenvolvido deixa de ser operacional, visando resolver problemas inerentes ao processo de desenvolvimento e ao produto de software.” Engenharia de Software é uma abordagem sistemática e disciplinada para o desenvolvimento de software. [Pressman, 2006] Aplicação de engenharia ao software deixar de desenvolver sistemas de maneira artesanal. Produto de Qualidade Processo Adequado 3 Processo de Software Processo de software é o conjunto de atividades que leva à produção de um produto de software [Sommerville, 2007] – Conjunto de ferramentas, métodos e práticas usadas para produzir um software. Ciclo de vida do software: Requerimento Projeto Implementação Verificação Manutenção 4 Processo de Software 1. Entender o problema (comunicação e análise) 2. Planejar uma solução (modelagem e design de software) 3. Realizar o plano (geração do código) 4. Examinar o resultado de precisão (testes e garantia de qualidade) RUP - Rational Unified Process RUP (ou Processo Unificado Racional), é um processo proprietário de Engenharia de software criado pela Rational Software Corporation, adquirida pela IBM, ganhando um novo nome IRUP que agora é uma abreviação de IBM Rational Unified Process e tornando-se uma brand na área de Software, fornecendo técnicas a serem seguidas pelos membros da equipe de desenvolvimento de software com o objetivo de aumentar a sua produtividade no processo de desenvolvimento. O RUP usa a abordagem da orientação a objetos em sua concepção e é projetado e documentado utilizando a notação UML (Unified Modeling 5 Language) para ilustrar os processos em ação. Utiliza técnicas e práticas aprovadas comercialmente. É um processo considerado pesado e preferencialmente aplicável a grandes equipes de desenvolvimento e a grandes projetos, porém o fato de ser amplamente customizável torna possível que seja adaptado para projetos de qualquer escala. Para a gerência do projeto, o RUP provê uma solução disciplinada de como assinalar tarefas e responsabilidades dentro de uma organização de desenvolvimento de software. O RUP é por si só, um produto de software. Com a função de modular e automatizar, e toda a sua metodologia é apoiada por diversas ferramentas de desenvolvimento integradas e vendidas pela IBM através de seus "Rational Suites". Métodos concorrentes no campo da engenharia de software incluem o "Cleanroom" (considerado pesado) e os Métodos Ágeis (leves) como a Programação Extrema (XP-Extreme Programming), Scrum, FDD e outros. 6 SCRUM Clique aqui e veja o vídeo (SCRUM em menos de 10 minutos) 7 Sistemas de Software Um dos componentes de um SI Compreende os módulos funcionais computadorizados que interagem entre si para proporcionar a automatização de diversas tarefas. Características intrínsecas: complexidade Modelos de Software Na construção de sistemas de software, assim como na construção de sistemas habitacionais, também há uma gradação e complexidade. Fio – A construção desses sistemas necessita de um planejamento inicial Modelo representação idealizada de um sistema que se planeja construir. Fio – Ex: Maquetes de edifícios e de aviões e planas e circuitos eletrônicos são apenas alguns exemplos de modelos. 8 Modelos de Software A construção de modelos atrasa o desenvolvimento do Software? – Gerenciamento da complexidade inerente ao desenvolvimento de software. – Comunicação entre as pessoas envolvidas. – Redução dos custos no desenvolvimento – Predição no comportamento futuro do sistema. Diagramas e Documentação – Apresentação de uma coleção de elementos gráficos que possuem um significado predefinido e que seguem algum padrão lógico. – Regras de notação bem definidas. – Representação concisa de um sistema a ser construído. “uma figura vale por mil palavras” – Documentação diagrama + informação textual associada. 9 Modelagem de Software A modelagem de sistemas de software consiste na utilização de notações gráficas e textuais com o objetivo de construir modelos que representam as partes essenciais de um sistema, considerando-se diversas perspectivas diferentes e complementares. O Paradigma da Orientação a Objetos Um paradigma é uma forma de abordar um problema – Forma pela qual um sistema de software é entendido e construído Primeira abordagem paradigma estruturado. – Uso da técnica de decomposição funcional – “dívida sucessivamente um problema complexo em subproblemas” Orientação a Objetos surgiu no fim dos anos 60. Alan Kay, um dos pais desse paradigma, formulou a chamada analogia biológica. – “Como seria um sistema de software que funcionasse como um ser vivo?” – Cada “célula” interagiria com outras células através do envio de mensagens para realizar um objetivo comum. – Cada célula se comportaria como uma unidade autônoma. – Agentes autônomos que interagem entre si.
Compartilhar