Baixe o app para aproveitar ainda mais
Prévia do material em texto
Engenharia de Software2 Modulo 1 – Metodologias de desenvolvimento Prof. André de Paula – Pós-graduando em Web e sistemas de informação e Docência do ensino superior andrepns@gmail.com Prof. André de Paula – Engenharia de Software2 - andrepns@gmail.com Introdução • As metodologias consideradas tradicionais, também chamadas de “pesadas”, têm como característica marcante a sua divisão em etapas e/ou fases. • Essas fases são muito bem definidas e englobam atividades como Análise, Modelagem, Desenvolvimento e Testes. • Cada fase concluída gera um marco, que geralmente refere-se a algum documento, protótipo do software ou mesmo uma versão do sistema. • Esses marcos, dependendo do final da etapa que foram criados, podem gerar documentos, como Diagramas ou protótipos do software. METODOLOGIAS DE DESENVOLVIMENTO TRADICIONAIS P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m Continua Introdução (continuação) • Muitas metodologias pesadas são desenvolvidas no modelo em cascata, o que dificulta o controle do projeto, pois cada vez que precisa alterar um requisito é necessário voltar ao início do projeto. • O foco principal das metodologias tradicionais é a previsibilidade dos requisitos do sistema, que traz a grande vantagem de tornar os projetos completamente planejados, facilitando sua gerência, mantendo sempre uma linha e caracterizando o processo como bastante rigor. • Essa previsibilidade é alcançada porque é dedicado maior tempo na elaboração da documentação e na fase de análise. • Essas metodologias defendem que uma boa documentação oferece um embasamento maior para a manutenção do software e até previne a troca de recursos quando necessário. • Se caso um desenvolvedor sair do projeto por algum motivo, como por exemplo, tirar férias, todo o projeto estará documentado e o desenvolvedor que assumir estará munido de informações para tocar o projeto. METODOLOGIAS DE DESENVOLVIMENTO TRADICIONAIS P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m RUP • Para melhor analisarmos as características das metodologias pesadas, veremos o principal framework utilizado comercialmente no mercado, o RUP. • O maior expoente das metodologias “pesadas” é o RUP: • um Processo de Engenharia de Software criado pela Rational Software Corporation e oriundo do Processo Unificado – UP – para descrever como desenvolver um software usando técnicas comerciais, com o objetivo de aumentar a qualidade dos softwares gerados pela empresa desenvolvedora METODOLOGIAS DE DESENVOLVIMENTO TRADICIONAIS P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m O RUP é aplicável em classes variadas de projetos, sendo considerado um framework genérico para os processos de desenvolvimento, sendo que este deve ser configurado de acordo com o tamanho e a necessidade de cada projeto e/ou empresa desenvolvedora RUP • O RUP utiliza a Linguagem Unificada de Modelagem (UML) para especificar, modelar e documentar artefatos. • A UML se tornou um padrão empresarial para a modelagem orientada a objetos. • Antes de estudarmos a fundo o RUP, vamos estudar com detalhe a Orientação a Objetos e a UML. METODOLOGIAS DE DESENVOLVIMENTO TRADICIONAIS P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m Introdução Existem muitas definições para o que se chama, em desenvolvimento de software, de Orientação a Objetos. Estudando a bibliografia da área, observa-se que cada autor apresenta a sua visão do que entende por esta abordagem. Aí vão alguns conceitos: • a orientação a objeto pode ser vista como a abordagem de modelagem e desenvolvimento que facilita a construção de sistemas complexos a partir de componentes individuais; • o desenvolvimento orientado a objetos é a técnica de construção de software na forma de uma coleção estruturada de implementações de tipos abstratos de dados; ANÁLISE E PROJETO ORIENTADOS A OBJETOS P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m Continua Introdução Alguns conceitos (continuação): • desenvolvimento de sistemas orientado a objetos é um estilo de desenvolvimento de aplicações onde a encapsulação potencial e real de processos e dados é reconhecida num estagio inicial de desenvolvimento e num alto nível de abstração, com vistas a construir de forma econômica o que imita o mundo real mais fielmente; • a orientação a objetos é uma forma de organizar o software como uma coleção de objetos discretos que incorporam estrutura de dados e comportamento. ANÁLISE E PROJETO ORIENTADOS A OBJETOS P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co mVisando a ter a sua própria definição do que significa Orientação a Objetos, vamos apresentar aqui os principais conceitos relacionados a esta tecnologia ORIENTAÇÃO A OBJETOS: CONCEITOS Características de Objetos: • Um objeto é algo distinguível que contém atributos (ou propriedades) e possui um comportamento. • Cada objeto tem uma identidade e é distinguível de outro mesmo que seus atributos sejam idênticos. • Exemplos de objetos: o parágrafo de um documento, a janela num computador, o aluno Pedro neste curso, o carro do João • O conjunto de valores associados às propriedades do objeto definem o estado deste; • o comportamento descreve as mudanças do estado do objeto interagindo com o seu mundo externo, através das operações realizadas pelo objeto. ANÁLISE E PROJETO ORIENTADOS A OBJETOS P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m ORIENTAÇÃO A OBJETOS: CONCEITOS Classe: • Uma classe é o agrupamento de objetos com a mesma estrutura de dados (definida pelos atributos ou propriedades) e comportamento (operações) [RBP91]. • Uma classe é uma abstração que descreve as propriedades importantes para uma aplicação e não leva em conta as outras. • Exemplos de classes: Parágrafo, Janela, Aluno, Carro. • Cada classe descreve um conjunto possivelmente infinito de objetos individuais. • Cada objeto é uma instância de classe. • Cada instância de classe tem seu próprio valor para cada um dos atributos da classe mas compartilha os nomes e as operações com as outras instâncias de classe. ANÁLISE E PROJETO ORIENTADOS A OBJETOS P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m ORIENTAÇÃO A OBJETOS: CONCEITOS A OO caracteriza principalmente pela abstração, encapsulamento, herança e polimorfismo: • Abstração • A abstração consiste em enfocar os aspectos mais importantes de um objeto (visãoexterna; o que é e o que ele faz), • ignorando suas características internas (visão interna; como ele deve ser implementado). • Encapsulamento • O encapsulamento é o empacotamento de dados (atributos) e de operações sobre estes (métodos). • No caso da orientação a objetos, os dados não podem ser acessados diretamente mas através de mensagens enviadas para as operações. • A implementação de um objeto pode ser mudada sem modificar a forma de acessa- lo. ANÁLISE E PROJETO ORIENTADOS A OBJETOS P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m Continua ORIENTAÇÃO A OBJETOS: CONCEITOS • Herança • A herançaconsiste no compartilhamento de atributos e operações entre as classes numa relação hierárquica. • Este mecanismo permite a uma classe ser gerada a partir de classes já existentes; • por exemplo a classe automóvel herda da classe veículo algumas propriedades e operações. • Uma classe pode ser definida de forma abrangente (como no caso do exemplo anterior) e posteriormente refinada em termos de subclasses e assim sucessivamente. • Cada subclasse herda todas as propriedades e operações da sua superclasse, (que não precisam ser repetidas) adicionando apenas as suas especificas • Esta relação entre classes é uma das grandes vantagens de sistemas orientados a objetos por causa da redução de trabalho resultante durante o projeto e a programação destes. • Existem dois tipos de herança • herança simples, onde uma subclasse tem somente uma superclasse. • herança múltipla, na qual uma subclasse herda simultaneamente de várias superclasses ANÁLISE E PROJETO ORIENTADOS A OBJETOS P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m Continua ORIENTAÇÃO A OBJETOS: CONCEITOS • Polimorfismo • O polimorfismo significa que uma mesma operação pode se comportar de forma diferente em classes diferentes. • Exemplo de polimorfismo, a operação calcular o perímetro que é diferente para as instâncias de classe circulo e polígono ou a operação mover diferente para janela de computador e peça de xadrez. • Uma operação que tem mais de um método que a implementa é dita polimórfica. ANÁLISE E PROJETO ORIENTADOS A OBJETOS P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m Nos sistemas orientados a objetos, o suporte seleciona automaticamente o método que implementa uma operação correto a partir do nome da operação e da classe do objeto no qual esta se operando, da mesma forma que no mundo real onde o objeto real “tem conhecimento” intrínseco do significado da operação a realizar. Essa associação em tempo de execução é chamada de ligação dinâmica (ou “dynamic binding”). MODELAGEM ORIENTADA A OBJETOS • Um modelo é uma abstração que tem como propósito entender um problema antes de solucioná-lo. • A partir de modelos, é possível simular e testar sistemas antes de construí-los, • facilitar a comunicação com os usuários e os outros membros da equipe de desenvolvimento, • visualizar e reduzir a complexidade dos problemas a tratar. ANÁLISE E PROJETO ORIENTADOS A OBJETOS P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m UML O desenvolvimento de sistemas orientado a objetos envolve a utilização de metodologias bem definidas e sedimentadas. Uma Metodologia Orientada a Objeto (MOO) para desenvolvimento de sistemas consiste basicamente de: • Notações gráficas • Processos • Ferramentas • Além disso, uma boa metodologia deveria prover os seguintes aspectos: • Fórmula para estimativa de custos • Atividades de gerenciamento de projetos • Métricas para controle de atividades • Processos e fases bem definidos • Regras e políticas para garantia de qualidade de software • Regras e políticas para garantia de qualidade de software • Exemplos completos (cases) • Exemplos de situações diferentes e de sucesso • Técnicas para utilização do método LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m UML • A UML (Unified Modeling Language) não é um método, é um insumo de um método, é uma linguagem visual de modelagem indicada para especificar, visualizar, construir e documentar artefatos de sistemas complexos de software orientado a objeto. • A linguagem de modelagem é a notação que o método utiliza para expressar projetos, enquanto que o processo indica quais são os passos seguir para desenvolver um projeto. • O modelo de linguagem corresponde ao ponto principal da comunicação. Se uma pessoa quer conversar sobre o projeto com outra pessoa, é através do modelo de linguagem que elas se comunicam. Nessa hora, o processo não é utilizado LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m UML • A UML define uma notação e um meta-modelo. • A notação são todos os elementos de representação gráfica vistos no modelo (retângulo, setas, o texto, etc.), é a sintaxe do modelo de linguagem. • Um meta-modelo é um diagrama de classe que define de maneira mais rigorosa a notação. • É uma linguagem padrão para o desenvolvimento de estrutura de projetos de software. LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m UML • A UML pode ser definida também, como um conjunto de documentação de um sistema seguindo duas perspectivas: Estrutural e Comportamental. • Diagramas Comportamentais • De Caso de Uso (Use Case) • De Estados • De Atividades • De Interação • Diagramas Estruturais • De Classe • De Objeto • De Componentes • De implantação • De Pacotes • De Estrutura LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m UML LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m Diagrama de Caso de Uso • O Diagrama de Casos de Uso é desenvolvido nas fases iniciais. • É o resultado dos levantamentos de requisitos e serve para que um consultor de sistema valide com o cliente sua necessidade. LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m é por esse motivo que ele não contém uma linguagem muito técnica. Além disso, o diagrama é utilizado como start para o desenho técnico, ou seja para os demais diagramas Documento de Caso de Uso X Diagrama de Caso de Uso • O Documento de caso de uso é um documento narrativo que descreve a sequência de eventos de um ator que usa um sistema para completar um processo (uma função). • Este representa um conjunto de casos de uso (funções do sistema) e, portanto, o cliente visualiza as principais funcionalidades de seu sistema. • Tem como objetivo auxiliar a comunicação entre os analistas e o cliente. LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m Documento de Caso de Uso X Diagrama de Caso de Uso • Um diagrama de Caso de Uso descreve um cenário que mostra as funcionalidades do sistema do ponto de vista do usuário. • Os casos de uso de um projeto de software são descritos em uma linguagem com a seguinte notação: • Atores: • Casos de uso (documento de definição de funcionalidades); • Relacionamentos entre estes elementos. • Associações entre atores e casos de uso; • Generalizações entre os atores; • Generalizações, extends e includes entre os casos de uso LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m Diagrama de Caso de Uso (Representação): Atores: • Um ator é representado por um boneco e um rótulo com o nome doator. • Um ator é um usuário do sistema e representa qualquer entidade que interage com o sistema durante sua execução. • Essa interação se dá através de comunicações (troca de mensagens). • Um ator pode ser: • uma pessoa (usuário, secretária, aluno...), • um dispositivo (impressora, máquina...), • hardware (placa de modem, scanner...) • ou softwares (sistema de bd, aplicativos legados...) LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m Um ator cujo identificador seja aluno, não representa um aluno, mais sim um aluno qualquer, uma pessoa que esteja interagindo com o sistema na qualidade de aluno. Diagrama de Caso de Uso (Representação): Use Case: • Um documento de caso de uso é representado por uma elipse e um rótulo com o nome do caso de uso. • Este define uma grande função do sistema. • Porém, uma função pode ser subdividida em outras funções. É uma sequência de ações que o sistema executa e produz um resultado de valor para o ator. • Modela o dialogo entre os atores e o sistema; • é um fluxo de eventos completos. LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m Diagrama de Caso de Uso (Representação): Relacionamento: Os relacionamentos ligam os casos de uso entre si, criando relações lógicas entre estas entidades. Os relacionamentos podem ser dos seguintes tipos: LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m Diagrama de Caso de Uso (Representação): Relacionamento: Inclusão: Se um caso de uso inicia ou inclui o comportamento de outro, dizemos que ele usa o outro. • Ex: No caso de uso Comprar Item se o pagamento for feito com dinheiro podemos ter a inclusão Pagar Com Dinheiro. LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m O relacionamento de inclusão em UML é ilustrado com uma linha de generalização com o rótulo <<include>> Diagrama de Caso de Uso (Representação): Relacionamento: Extensão: Define pontos de extensão que adicionam comportamento a um caso de uso base, descrevendo uma variação do comportamento normal. O caso de uso base pode ser executado mesmo sem a extensão. Ex: O caso de uso Comprar Produto pode apresentar a extensão Compra por um Cliente Regular. Abaixo temos o diagrama UML LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m O relacionamento de inclusão em UML é ilustrado com uma linha de generalização com o rótulo <<Extend>> Diagrama de Caso de Uso (Representação): Relacionamento: Generalização: Indica um caso de base que possui diferentes especializações e inclui comportamento ou sobrescreve o caso de uso base. O caso de uso Pagar Fatura apresenta as generalizações : Pagamento com cartão e Pagamento com Cheque , conforme o diagrama Abaixo: LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m Diagrama de Caso de Uso (Representação): Relacionamento: Os relacionamentos em um diagrama de casos de uso podem envolver dois atores e dois casos de uso, ou um ator e um caso de uso e assim sucessivamente. O relacionamento é representado através de uma seta: LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m Diagrama de Caso de Uso (Representação): LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m Exemplo I: Diagrama de "Use Cases" para um sistema automatizado de Gestão de Organizações Educacionais. É composto por um módulo de Finanças, onde controla o fluxo de caixa, contas a receber e contas a pagar, bem como despesas gerais. Um módulo de Gestão, que suporta os demais módulos e um módulo Educacional provendo suporte para a gestão educacional como: Controle de Matriculas, Lista de Chamadas, Lista de Cursos disponíveis por professor, entre outros etc. Diagrama de Caso de Uso (Representação): Como é possível perceber, o diagrama de caso de uso passa uma visão macro do Sistema, para obter informações detalhadas é necessário analisar os documentos de caso de uso, pois são neles que encontramos dados de atores e suas funções, telas do sistema, passo a passo de cada funcionalidade, campos do sistema, regras de negócio, exceções e pré- condições. LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m Diagrama de Caso de Uso (Representação): LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m Exemplo II: Se um caso de uso é muito complexo, recomenda-se dividi-lo em vários outros casos de uso, para auxiliar na compreensão do mesmo. O exemplo abaixo apresenta um Diagrama de Caso de uso, de um caso de uso que foi segregado em vários outros com o objetivo de simplificar. Diagrama de Caso de Uso (Representação): LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m Exemplo III: A figura abaixo representa um diagrama de caso de uso com atores diferentes (sistemas e usuários), nele podemos perceber que outras entidades e sistemas também são chamados de atores. Além disso, podemos verificar um exemplo e inclusão (do inglês incluide) e um de extensão (do inglês extend). Para receber um veículo que foi locado é necessário tratar o pagamento, porém o atendente somente imprimirá os detalhes da locação, se o cliente solicitar ou o atendente precisar analisar algum problema na locação. É um sistema de Gestão de Empresas de Locação de Veículos. Diagrama de Caso de Uso (Representação): A estrutura do documento de caso de uso pode ser observada no modelo de doc de caso de uso.pdf e exemplo de doc de caso de uso.pdf que seguem a parte. LINGUAGEM UNIFICADA DE MODELAGEM (UML) P ro f. A n d ré d e Pau la – En gen h aria d e So ftw are 2 - an d rep n s@ gm ail.co m
Compartilhar