SlideShare uma empresa Scribd logo
Disciplina Engenharia de Software Ferramentas para análise - Metodologias Orientadas a Objetos 
Prof. Esp. Rafael H Mauro 
rafaelherman@yahoo.com.br
Metodologia de Desenvolvimento de Software 
•Metodologia em um sentido amplo é o conjunto de métodos, regras e postulados empregados por uma disciplina, procedimento particular ou conjunto de procedimentos.
Metodologia de Desenvolvimento de Software 
•Metodologia de Engenharia de Software pode ser considerada como uma lista de regras e diretrizes combinadas com alguma notação gráfica para modelar os requisitos e o projeto do sistema
Metodologia de Desenvolvimento de Software 
•Adotar uma metodologia para desenvolvimento de software significa munir-se de um conjunto de princípios , normas ferramentas conceituais, técnicas procedimentos e documentos que permitam ao engenheiro de software implementar sem ambigüidade a especificação contida no ciclo de vida do software.
Benefícios da adoção de uma metodologia 
•Os benefícios da adoção de uma Metodologia de Desenvolvimento de Software implicam em: 
 Desenvolvimento mais rápido; 
 Redução dos custos de desenvolvimento; 
 Geração de código automatizado; 
 Erros detectados mais cedo e por análise automática e estática; 
 Padronização de produtos(documentos, especificação, etc.); 
 Facilidade do controle do processo; 
 Melhor qualidade do produto desenvolvido; 
 Maior possibilidade do reuso dos produtos em várias etapas; e 
 Maior facilidade de manutenção.
A Necessidade de uma Metodologia 
•A partir do momento em que surge a necessidade de racionalizar o processo produtivo referente a qualquer atividade produtiva humana, se faz necessário o emprego de uma metodologia que vise a atender os objetivos organizacionais associados a: 
 Padronização (documentos, métodos, técnicas, etc.); 
 Planejamento; 
 Controle; 
 Produtividade; 
 Eficiência; 
 Qualidade; e etc.
Especificação de uma Metodologia 
•O pré-requisito indispensável para a especificação de uma Metodologia de Desenvolvimento de software é a definição do ciclo de vida do software a ser adotado no processo de desenvolvimento do software. O ciclo de vida do software constitui o modelo de implementação de mais alto nível de abstração. O ciclo de vida do software especifica: 1. As macros atividades a serem executadas durante o processo; 2. A seqüência de execução de cada atividade; e 3. Identifica, para cada atividade, seus pré-requisitos, produto(s), ponto(s) de controle(s), forma de controle, etc.
Especificação de uma Metodologia 
•Uma Metodologia de Desenvolvimento de Software detalhará o ciclo de vida, especificando um conjunto completo, único e internamente coerente de: 
–Princípios 
–Técnicas 
–Linguagem de representação(ferramentas conceituais) 
–Normas 
–Procedimentos 
–Documentos 
•que permitam ao Engenheiro de Software implementar sem ambigüidade a especificação contida no ciclo de vida do software
Especificação de uma Metodologia 
•Problema metodológico: uma questão pertencente à administração do desenvolvimento e não à tecnologia do desenvolvimento, em outras palavras, pode-se dizer que: 
–1. O engenheiro de software, enquanto técnico do desenvolvimento caberia dominar um conjunto de técnicas e ferramentas que lhe permitissem construir software de boa qualidade, eficiente e eficaz 
–2. O engenheiro de software enquanto administrador do desenvolvimento, caberia dominar um conjunto de critérios e de conhecimentos técnicos que lhe permitisse estabelecer - dado o ambiente de desenvolvimento e o tipo de software a ser desenvolvido, e elevado interesse da organização em que o processo ocorresse - a metodologia mais adequada à construção de um produto de boa qualidade, respeitando prazos e custos pré-estabelecidos.
Especificação de uma Metodologia 
•Aplicação e Evolução de uma Metodologia possui uma abordagem puramente empírica (pesquisa e desenvolvimento) 
•É necessário também que os grupos desenvolvam, em ambiente de desenvolvimento controladamente variado, um trabalho fortemente experimental, utilizando diferentes ferramentas e técnicas de desenvolvimento de sistemas, para produzir software de diferentes tipos.
Avaliação de uma Metodologia 
•Não possui um valor intrínseco, mensurável por si mesmo, independente de parâmetros externos qualificadores. Em nível alto de abstração, esses parâmetros devem referir-se: 
–Aos objetivos organizacionais; 
–Ao ambiente de desenvolvimento onde será implantada; 
–Ao tipo de software a ser desenvolvido. 
•Uma proposta metodológica deveria conter sua própria mensuração buscando explicitar: 
 Os parâmetros externos em relação aos quais foi testada (sempre que possível quantitativamente); 
 O nível de coerência interna (e/ou integração) entre as alternativas tecnológicas (ferramentas e técnicas) adotadas; 
O nível de suporte automatizado para as alternativas tecnológicas adotadas.
Avaliação de uma Metodologia 
•Considerando o Desenvolvimento de Software como um processo de construção de sucessivos modelos de um sistema do mundo “real”, iniciado em um nível elevado de abstração relativamente às caraterísticas “físicas” da tecnologia computacional, até chegar a um modelo de automação final, executável total ou parcialmente por computador, o ciclo de vida do software, contém em geral, as seguintes atividades: 
 Especificação de necessidades (análise de requisitos); 
 Especificação de Requisitos ; projeto (design); 
 implementação do software; 
 implantação e manutenção do software; e 
 Correção, Verificação e Validação.
Especificação de necessidades (análise de requisitos) 
•Uma característica essencial de um sistema sócio-técnico é atender as necessidades do mundo exterior. Essas necessidades podem ser especificadas por diferentes técnicas: 
–Levantamento detalhado do ambiente; 
–Levantamento dos eventos externo aos quais os sistemas deve reagir; 
–Pesquisa do mercado; e etc. 
•Linguagem Textual 
•Carência de ferramentas de apoio eficazes 
•Os resultados desta fase são utilizados para validação
Especificação de Requisitos ; projeto (design) 
•Durante essa atividade, inicia-se a modelagem interna do sistema. Nessa etapa podem ser utilizadas: 
–A análise funcional 
–A análise de dados 
–Análise e Projeto Orientados a Objetos 
•Ferramentas (ou diagramas) utilizados 
–Diagrama de Fluxo de Dados - DFD; 
–Diagrama Entidades-Relacionamentos - DER; 
–Diagrama de Estado-Transição - DET 
–Diagramas de Rede de Petri. 
–Diagramas da Linguagem UML
Projeto de Software (Design). 
•Detalhamento incorpora as características da tecnologia de automação a ser empregada, seu produto devendo ser validado em relação ao resultado da atividade anterior. 
•Nesta etapa podem ser usados dois tipos de variante do projeto estruturado, que são o Orientado por dado e o Orientado por função. 
•Problema: Descontinuidade em relação à atividade anterior somada a carência de ferramentas automatizadas que dêem apoio a sua execução. 
–A orientação a objetos elimina este problema 
•É abundante a quantidade de documentos, normas e procedimentos propostos para a execução dessa fase.
Implementação do software 
•Codificação do modelo 
•Preocupação com: 
–A correção; 
–A eficiência; e 
–A flexibilidade dos aspectos executáveis do modelo construído. 
•Utilização de ferramentas como: 
–Compiladores; 
–Interpretadores; 
–Editores; 
–Depuradores; 
–Geradores de código ; 
–Geradores de Massa de Teste; 
–Formuladores de Código Fonte; 
–Analisadores Estáticos, etc.
Implantação e manutenção do software 
•A modelagem completa do processo de desenvolvimento de software exige modelos para as atividades de Implantação e manutenção. 
•Manutenção costuma consumir uma grande quantidade de recursos alocados ao processo.
Correção, Verificação e Validação 
•Essas atividades, em geral, estão inseridas nos intervalos que separam as atividades geradoras do modelo de automação 
•Têm por objetivo garantir a consistência global do processo de desenvolvimento. 
•Devem garantir que o produto de cada etapa do ciclo de vida atenda a seus pré-requisitos, produza respostas corretas e respeite as restrições impostas ao processo.
Metodologia 
•Uma Metodologia identifica as principais atividades (análise, projeto, codificação, teste) a serem executadas e indica quais pessoas (usuários, gerentes, técnicos) devem estar envolvidos em cada atividade e que papel deverão desempenhar. 
•Também descreve os critérios de entrada, os critérios de saída e os pontos de conferências para decisões de prosseguir ou não no processo de desenvolvimento do software. 
•As metodologias mais populares: 
–Técnicas estruturadas ou técnicas de engenharias de informação (metodologias estruturadas e metodologias de engenharia de informação) 
–As técnicas orientadas a objeto e a metodologia orientada a objeto oriundas dessas técnicas, têm atraído muita atenção
REFORÇANDO..........
Exemplos de Processos de Desenvolvimento 
•Processo 
–APE: Análise e Projeto Estruturados 
•DeMarco, Page-Jones, Gane-Sarson 
–APOD: Análise e Projeto Orientados a Dados 
•Jackson, Warnier-Orr 
–APOO: Análise e Projeto Orientados a Objeto 
•Modelo Iterativo 
»Booch, OMT, OOSE 
»(R)UP: (Rational) Unified Process 
»
Metodologia de Desenvolvimento 
•Metodologia = Processo + Linguagem 
•A linguagem define formalmente os artefatos produzidos ao longo do processo 
•UML: Unified Modeling Language 
–UML é uma linguagem orientada a objeto e unificada 
•Cobre as atividades de análise e design 
•Unificação é uma grande vantagem 
–Evita problemas de “impedance mismatch” 
•Metodologia de Desenvolvimento Adotada na Disciplina 
–(R)UP + UML
RUP
O Que é RUP? 
O RUP (Rational Unified Process) é um processo de engenharia de software desenvolvido pela empresas Rational. 
Ele serve como um guia de como utilizar de maneira eficiente a UML (Unified Modeling Language). 
Utiliza desenvolvimento Iterativo e Incremental. 
Tem como objetivo oferecer um processo de desenvolvimento “bem definido” e “bem gerido”.
Histórico
“Melhores” Práticas do RUP 
São seis: 
1. Desenvolvimento de software interativo 
2. Gerenciamento de Requisitos 
3. Arquitetura baseada em Componentes 
4. Modelo de Software Visual (UML) 
5. Verificação contínua da qualidade do Software 
6. Gerenciamento e controle de mudanças
Processo 
Pode ser dividido em duas dimensões: 
1. Horizontal (Dinâmico) 
2. Vertical (Estático)
Processo (Dinâmico) 
Iniciação (Inception) 
Definição do escopo do projeto, identificação dos atores, casos de uso e descrição dos mais significativos 
Elaboração (Elaboration) 
Análise do sistema, definição da arquitetura de software 
Construção (Construction) 
Desenvolvimento iterativo e incremental do produto 
Transição (Transition) 
Atividades de “entrega” do software 
CADA FASE PODE SER DECOMPOSTA EM ITERAÇÕES
Processo (Estático) 
Estruturo do processo: 
Intervenientes (Workers) - Quem? (who) 
Atividades (Activities) - Como? (how) 
Artefatos (Artifacts) - O Que? (what) 
Fluxo de Trabalho (Workflows) - Quando? (when)
Processo (Estático) 
Fluxo de Trabalho (Workflow)
Processo (Estático) 
Fluxo de Trabalho “Chave”: 
Fluxo de Trabalho de Engenharia (Engineering) 
1. Modelação do negócio (Business modeling) 
2. Levantamento de Requisitos (Requirements) 
3. Análise & Projeto (Analysis & Design) 
4. Implementação (Implementation) 
5. Testes (Test) 
6. Implantação (Deployment) 
Fluxo de Trabalho de Suporte (Supporting) 
1. Gerência de projeto (Project Management) 
2. Gerência de configuração e mudança (Configuration and Change Management) 
3. Ambiente (Environment)
Qualidade, Padrões e Estratégia de Testes 
•Qualidade: Verificação a cada artefato/atividade; 
•Padrões: Guidelines definidos pelo usuário do processo; 
•Estratégias de Testes: Não restritivo, porém recomenda a verificação da qualidade dos testes aplicados;
Diretrizes para o Gerenciamento do Projeto 
 O gerenciamento de projeto de software é a arte de equilibrar objetivos concorrentes, gerenciar risco e superar limites para entregar com sucesso um produto que vá ao encontro das necessidades dos clientes e dos usuários. Os propósitos do gerenciamento de projeto são: 
 Fornecer uma estrutura para gerenciar projetos de software- intensivo; 
 Fornecer diretrizes práticas para planejar, montar equipes, executar, e monitorar projetos; 
 Fornecer uma estrutura para gerenciamento de risco; 
 O papel de gerente de projeto é alocar recursos, modelar prioridades, coordenar interações com clientes e usuários, e manter a equipe do projeto focalizada no objetivo. 
 O gerente de projeto estabelece um conjunto de práticas que assegurem integridade e qualidade aos artefatos do projeto.
Diretrizes para o Gerenciamento do Projeto 
 A disciplina de Gerenciamento do Rational Unified Process (RUP) não tenta cobrir todos os aspectos de gerenciamento de projeto. Por exemplo, não cobre questões como: 
 Gerência de pessoal: contratação, treinamento, instrução 
 Gerência de orçamento: definição, alocação 
 Gerência de contratos, com fornecedores e clientes
Diretrizes para o Gerenciamento do Projeto
Rational Suite Enterprise 
•Rational RequisitePro Gerência de Requisitos 
•Rational Unified Process Engenharia de Processo 
•Rational Rose Análise/Projeto 
–Rational QualityArchitect Gerador de Stubs para Teste 
•Rational PurifyPlus Suite para Teste 
–Purify -Análise de memória 
–Quantify -Análise de desempenho 
–PureCoverage -Cobertura de código 
•Rational Robot Automação de Testes 
•Rational TestManager Gerência de Testes 
•Rational ProjectConsole Gerência de Projeto 
•Rational ClearCase LT Gerência de Versão 
•Rational ClearQuest Gerência de Mudança
UML
•Porque utilizar UML? 
–Padronização dos Métodos OO 
•UML: O que é? 
•Diagramas e Processo de Software 
–Processo de desenvolvimento e os Diagramas da UML 
–Diagramas UML: Usos Comuns 
•Diagramas:Teoria e exemplos 
–Casos de Uso, Classe, Seqüência, Estados, Atividades 
•Estudo de Caso. 
•Exercícios
Porque utilizar UML? 
•UML é o resultado da combinação (unificação) de três métodos 
–Métodos de Booch, Rumbaugh (OMT) e Jacobson (OOSE) 
–Tem alcance maior do que seus “originários” 
•Padrão “de fato” para modelagem de software OO 
•Passou por um processo de padronização pela OMG (Object Management Group) 
•Comunicação 
–Diferentes grupos de desenvolvedores possuem o mesmo entendimento dos modelos
Porque utilizar UML? 
•Modelagem de sistemas de software (e outros) 
–Parte central para implantação de um bom software 
–Modelo – Abstração da realidade (simplificação) 
–Comunicação de aspectos de sistemas de SW: 
•Estrutura 
•Comportamento 
•UML fornece a notação e a semântica suficientes para modelagem de sistemas de software
UML: O que é? 
•Unified Modeling Language - UML 
•Linguagem de Modelagem Unificada 
•A UML é uma linguagem-padrão para a elaboração da estrutura de projetos. Possui três elementos principais: 
–Blocos básicos de construção da UML 
–Regras que determinam como estes blocos deverão ser combinados 
–Mecanismos básicos que se aplicam a toda a linguagem 
•A UML é apenas uma parte de um método para desenvolvimento de software. 
•A UML é independente do processo de desenvolvimento de software 
–Processo orientado a casos de usos, centrado na arquitetura, iterativo e incremental.
UML: O que é? 
•A UML é destinada a: 
–Visualizar (notação com semântica bem-definida) 
–Especificar (definir modelos precisos, sem ambigüidades e completos) 
–Construir (modelos podem ser mapeados para linguagens de programação e tabelas de BD (Relacionais ou OO). É possível a execução direta dos modelos, a simulação e a instrumentação de sistemas em execução) 
–Documentar (construção de artefatos críticos para controlar, medir e comunicar determinado sistema durante seu desenvolvimento e após sua implantação) os artefatos de um sistema complexo (ou não) de software.
UML: O que é? 
•A UML é uma linguagem, e como tal, fornece um vocabulário e as regras para a combinação de palavras desse vocabulário com a finalidade de comunicar algo (criação de modelos bem formados). 
•UML não é um processo, portanto não indica quais modelos deverão ser criados, nem quando deverão ser criados.
UML: O que é? 
•Um modelo conceitual da UML 
–Blocos básicos de construção da UML. Existem três tipos de blocos de construção: 
•1. Itens 
•2. Relacionamentos 
•3. Diagramas 
–Itens da UML. Quatro tipos: 
•1. Itens estruturais 
•2. Itens comportamentais 
•3. Itens de agrupamentos 
•4. Itens anotacionais 
–Itens Estruturais 
•Os itens estruturais são os substantivos utilizados em modelos da UML. São as partes estáticas do modelo, representando elementos conceituais ou físicos.
UML: O que é? 
•Itens Estruturais - sete tipos de itens estruturais: 
–As classes são descrições como conjuntos de objetos que compartilham os mesmos atributos, operações, relacionamentos e semântica. 
–Uma Interface é uma coleção de operações que especificam serviços de uma classe ou componente. Descreve o comportamento externamente visível desse elemento. Pode representar todo, ou parte, o comportamento de uma classe ou componente. Define um conjunto de especificações de operações (suas assinaturas), mas nunca um conjunto de implementações de operações. Uma interface costuma aparecer anexada à classe ou ao componente que realiza a interface.
UML: O que é? 
–As colaborações definem interações e são sociedades de papéis e outros elementos que funcionam em conjunto para proporcionar um comportamento cooperativo superior à soma de todos os elementos. Possuem dimensões estruturais, assim como comportamentais. Uma classe pode participar em várias colaborações. 
–Um caso de uso é a descrição de um conjunto de seqüência de ações realizadas pelo sistema que proporciona resultados observáveis de valor para um determinado ator. É utilizado para estruturar o comportamento de itens em um modelo. Um caso de uso é realizado por uma colaboração.
UML: O que é? 
•Os três tipos de itens restantes - classes ativas, componentes e nós - são semelhantes a classes, porém, estes são suficientemente diferentes e necessários para a modelagem de certos aspectos de sistemas orientados a objetos e, portanto, merecem um tratamento especial. 
•Os cinco primeiros tipos de itens são itens conceituais ou lógicos. Os dois últimos (componentes e nós) representam itens físicos.
UML: O que é? 
–As classes ativas são classes cujos objetos têm um ou mais processos ou threads e, portanto, podem iniciar a atividade de controle. Uma classe ativa é semelhante a uma classe, exceto pelo fato de que seus objetos representam elementos cujo comportamento é concorrente com o de outros elementos. 
–Os componentes são partes físicas e substituíveis de um sistema, que proporcionam a realização de um conjunto de interfaces. Em um sistema, encontram-se deferentes tipos de componentes próprios da implantação, como os componentes COM+ ou Java Beans, assim como componentes que são artefatos do processo de desenvolvimento, como arquivos de código-fonte. Tipicamente os componentes representam o pacote físico de elementos lógicos diferentes, como classes, interfaces e colaborações.
UML: O que é? 
–Um nó é um elemento físico existente em tempo de execução que representa um recurso computacional, geralmente com pelo menos alguma memória e, freqüentemente, capacidade de processamento. Um conjunto de componentes poderá estar contido em um nó e também poderá migrar de um nó para outro. 
–Além desses sete tipos de itens estruturais, existem, também, variações desses, como: atores, sinais e utilitários (tipos de classes), processos e threads (tipos de classes ativas), e aplicações, documentos, arquivos, bibliotecas, páginas e tabelas (tipos de componentes).
UML: O que é? 
–Itens comportamentais 
•São as partes dinâmicas dos modelos UML. São os verbos de um modelo, representando comportamentos no tempo e no espaço. Existem dois tipos de itens comportamentais: 
•Uma interação é um comportamento que abrange um conjunto de mensagens trocadas entre um conjunto de objetos em determinado contexto para a realização de propósitos específicos. O comportamento de uma sociedade de objetos ou de uma operação individual poderá ser especificado por meio de uma interação. As interações envolvem outros elementos, inclusive mensagens, seqüências de ações (os comportamentos chamados pelas mensagens) e ligações (as conexões entre os objetos). 
•Uma máquina de estado é um comportamento que especifica as seqüências de estados pelas quais objetos ou interações passam durante sua existência em resposta a eventos, bem como suas respostas a esses eventos. Uma máquina de estado abrange outros elementos, incluindo estados, transições (o fluxo de um estado a outro), eventos (itens que disparam uma transição) e atividades (as respostas às transições)
UML: O que é? 
–Itens de agrupamentos 
•São as partes organizacionais dos modelos UML. São os blocos em que os modelos podem ser decompostos. Existe apenas um tipo de itens de agrupamento, chamado Pacote. 
–Um pacote é um mecanismo de propósito geral para a organização de elementos em grupos. Os itens estruturais, os itens comportamentais e até outros itens de grupos podem ser colocados em pacotes. Ao contrário dos componentes (que existem em tempo de execução), um pacote é puramente conceitual (existem apenas em tempo de desenvolvimento). Existem algumas variações, como frameworks, modelos e subsistemas (tipos de pacotes). 
–Itens anotacionais 
•São as partes explicativas dos modelos UML. São comentários, incluídos para descrever, esclarecer e fazer alguma observação sobre qualquer elemento do modelo. Existe somente um tipo de item anotacional, chamado nota. Uma nota é apenas um símbolo para representar restrições e comentários anexados a um elemento ou a uma coleção de elementos.
UML: O que é? 
•Relacionamentos na UML. 
–1. Dependência - é um relacionamento semântico entre dois itens, nos quais a alteração de um (o item independente) pode afetar a semântica do outro (o item dependente). 
–2. Associação - é um relacionamento estrutural que descreve um conjunto de ligações, em que as ligações são conexões entre objetos. A agregação é um tipo especial de associação, representando um relacionamento estrutural entre o todo e suas partes. A composição é um tipo especial de agregação.
UML: O que é? 
•Relacionamentos na UML. 
–3. Generalização - é um relacionamento de especialização/generalização, nos quais os objetos dos elementos especializados (os filhos) são substituíveis por objetos de elemento generalizado (os pais). Dessa maneira, os filhos compartilham a estrutura e o comportamento dos pais. 
–4. Realização - é um relacionamento semântico entre classificadores, em que um classificador especifica um contrato que outro classificador garante executar. Os relacionamentos de realizações serão encontrados em dois locais: entre interfaces e as classes ou componentes que as realizam; e entre casos de uso e as colaborações que os realizam.
UML: O que é? 
•Mecanismos 
–Mecanismos básicos da UML. São os mecanismos básicos que se aplicam a toda a linguagem, que são: 
–1. Especificações - Cada parte da notação gráfica possui uma especificação capaz de fornecer uma declaração textual da sintaxe e da semântica do respectivo bloco de construção. 
•Exemplo: Ícone de classe - existe uma especificação que fornece o conjunto completo de atributos, operações e comportamentos de classe. O ícone poderia exibir somente uma parte de interesse em determinado diagrama. 
•O ícone de classe permite a visualização da mesma no sistema. 
•A especificação determina os detalhes da classe.
UML: O que é? 
•Mecanismos 
–2. Adornos - Em sua maioria, os elementos da UML possuem uma notação gráfica única e direta (representação visual). Por exemplo; a notação gráfica para classes expõe os aspectos mais importantes da classe (nome, atributos e operações). 
•Através de adornos pode-se definir detalhes como: 
–Se uma classe é Abstrata (nome da classe em itálico) 
–Visibilidade de atributos e operações 
•Todos os elementos da notação da UML possuem símbolos básicos que podem ser adornados.
UML: O que é? 
•Mecanismos 
–3. Divisões comuns - O mundo costuma ser dividido pelo menos de duas maneiras. 
•Primeiro, a Divisão Classe/Objeto: classe é a abstração; objeto é a manifestação concreta dessa abstração. 
•Quase todos os blocos de construção disponíveis na UML apresentam este mesmo tipo de dicotomia classe/objeto (abstração do elemento e instância desta abstração) 
•Ex.: 
–Casos de Uso e Instâncias de Casos de Uso 
–Componentes e Instâncias de Componentes 
–Nós e Instâncias de Nós
UML: O que é? 
•Mecanismos 
–3. Divisões Comuns 
•Segundo, separação de interface e implementação. 
•Interface declara um contrato. Implementação representa uma realização completa desse contrato, responsável pela manutenção fiel da semântica completa da interface. 
•Quase todos blocos de construção da UML apresentam esse mesmo tipo de dicotomia interface/implementação 
•Ex.: 
–Casos de Uso e as Colaborações que as realizam. 
–Operações e Métodos que as implementam.
UML: O que é? 
•Mecanismos 
–4. Mecanismos de extensão - A UML permite a sua própria ampliação (de maneira controlada), para isto são utilizados os mecanismos de extensibilidade da UML, os quais incluem: 
•Estereótipos - amplia o vocabulário da UML, permitindo a criação de novos tipos de blocos de construção que são derivados dos já existentes, mas específicos a determinados problemas. 
•Por exemplo: Modelar as exceções de linguagens como Java e C++ como uma classe marcada com um estereótipo (<<exception>>).
UML: O que é? 
•Valores atribuídos e Restrições 
–Valores atribuídos - estende as propriedades dos blocos de construção permitindo a criação de novas informações na especificação de um elemento. Por exemplo: Produtos com muitas versões ao longo do tempo. Marcar, com valores atribuídos, a versão e o autor deste produto. 
–Restrições - amplia a semântica dos blocos de construção permitindo acrescentar novas regras ou modificar as já existentes. Por exemplo: restringir um método de uma classe de modo que todos acréscimos (através de uma operação add(), por exemplo) sejam feitos ordenadamente. 
–O importante na utilização dos mecanismos de extensão é que seja controlada, para que um dos propósitos da UML não seja perdido - a comunicação de informações.
UML: O que é?
Diagramas e Processo de SW 
•Diagramas na UML 
–Um diagrama é a apresentação gráfica de um conjunto de elementos. Geralmente representada como gráficos de vértices (itens) e arcos (relacionamentos). Os diagramas são desenhados para permitir a visualização de um sistema sob diferentes perspectivas. 
–Um diagrama, ao menos talvez para sistemas triviais, representa uma visão parcial dos elementos que compõem o sistema. Um mesmo elemento pode aparecer em todos os diagramas, em apenas alguns ou em nenhum diagrama. Na teoria, um diagrama pode conter qualquer combinação de itens e de relacionamentos. Na prática, porém, aparecerá um pequeno número de combinações comuns, que são consistentes com as cinco visões mais úteis da arquitetura de um sistema complexo de software. 
•Visão do Caso de Uso, de Projeto, de Processo, de Implementação e de Implantação 
–A UML inclui vários diagramas
Diagramas e Processo de SW 
–1. Diagrama de classes - exibe um conjunto de classes, interfaces e colaborações, bem como seus relacionamentos. 
–2. Diagrama de objetos - exibe um conjunto de objetos e seus relacionamentos. 
–3. Diagrama de casos de uso - exibe um conjunto de casos de uso e atores (um tipo especial de classe) e seus relacionamentos. 
–4. Diagrama de seqüências - é um diagrama de interação cuja ênfase está na ordenação temporal das mensagens. 
–5. Diagrama de colaborações - é um diagrama de interação cuja ênfase está na organização estrutural dos objetos que enviam e recebem mensagens.
Diagramas e Processo de SW 
–6. Diagrama de gráficos de estados - exibem uma máquina de estados, formada por estados, transições, eventos e atividades. 
–7. Diagrama de atividades - é um tipo especial de diagrama de gráfico de estados, exibindo o fluxo de uma atividade para outra no sistema. 
–8. Diagrama de componentes - exibe as organizações e as dependências existentes em um conjunto de componentes. 
–9. Diagrama de implantação - mostra a configuração dos nós de processamento em tempo de execução e os componentes neles existentes.
Diagramas e Processo de SW 
•Diagramas 
–Atividades 
–Casos de Uso 
–Classes 
–Objetos 
–Seqüência 
–Colaboração 
–Estado 
–Componentes 
–Implantação 
•Processo de Software 
–Fluxo de negócios / métodos classe 
–Contexto/Requisitos de sistema 
–Estrutura/Relacionamentos (asp. estáticos) 
–Estrutura/Relacion. (asp. estáticos de instâncias) 
–Casos de Uso, Sistema (aspectos dinâmicos) 
–Casos de Uso, Sistema (aspectos dinâmicos) 
–Sistema, subsistema, classe (tempo de vida) 
–Implementação física (aspectos estáticos) 
–Nós físicos (aspectos estáticos)
Diagramas:teoria e exemplos 
•Diagrama de Casos de Uso 
–Especifica o comportamento de um sistema ou de parte de um sistema 
–E uma descrição de um conjunto de seqüências de ações, incluindo variantes realizadas pelo sistema realizadas pelo sistema para produzir um resultado observável do valor de um ator 
–Descrição textual do caso de uso
Diagramas:teoria e exemplos
Diagramas:teoria e exemplos 
•Diagrama de Casos de Uso 
–Descrição Textual 
Caso de Uso – Validar Usuário (ValidateUser) 
Fluxo de eventos principal: o caso de uso começa quando o sistema solicitar ao "Cliente" (Customer) um número PIN, seu número de identificação pessoal. O "Cliente" agora pode digitar o número PIN via teclado numérico. O "Cliente" confirma a entrada, pressionando a tecla 'Enter'. O sistema então verifica o número PIN para saber ser é válido. Se o número PIN for válido, o sistema reconhece a entrada, finalizando o caso de uso. 
Fluxo excepcional de eventos: o "Cliente" pode cancelar uma transação a qualquer momento, pressionando o botão Cancelar, reiniciando assim o caso de uso. Nenhuma alteração é realizada na conta do "Cliente". 
Fluxo excepcional de eventos: o "Cliente" pode limpar o número PIN a qualquer momento antes de submetê-lo e redigitar um novo número PIN. 
Fluxo excepcional de eventos: se o "Cliente" entrar um número PIN inválido, o caso de uso é reiniciado. Se isso ocorrer três vezes seguidas, o sistema cancela toda a transação, impedindo ao "Cliente" interagir com o caixa eletrônico por 60 segundos
Diagramas:teoria e exemplos 
•Diagrama de Casos de Uso 
–Descrição Textual 
Caso de Uso: Track Order 
Fluxo principal de eventos: Obter e verificar o número do pedido. include (Validate User). Para cada parte do pedido, consulte seu status e depois retorne um relatório para o usuário. 
Caso de Uso: Place Order 
Fluxo principal de eventos: include(Validate User). Receba os itens do pedido do usuário. (set priority). Submeta o pedido para o processamento.
Diagramas:teoria e exemplos
Diagramas: teoria e exemplos 
•Contexto
Diagramas:teoria e exemplos 
•Requisitos
Diagramas:teoria e exemplos 
•Diagrama de Classes 
–Servem para fazer a modelagem estática do sistema, dando suporte, principalmente, aos requisitos funcionais de um sistema (serviços que o sistema deverá fornecer aos usuários finais). 
–Os Diagrama de Classes são usados, tipicamente, de três formas: 
•Para fazer a modelagem do vocabulário de um sistema (abstrações do domínio do problema) 
•Para fazer a modelagem de colaborações simples: uma colaboração é uma sociedade de classes, interfaces e outros elementos que funcionam em conjunto para proporcionar algum comportamento cooperativo, maior do que a soma de todos os elementos. 
•Para fazer a modelagem do esquema lógico de um banco de dados
Diagramas:teoria e exemplos
Diagramas:teoria e exemplos
Diagramas:teoria e exemplos 
•Associações
Fim da Apresentação

Mais conteúdo relacionado

Mais procurados

Gerenciamento da Qualidade de Software 1.pptx
Gerenciamento da Qualidade de Software 1.pptxGerenciamento da Qualidade de Software 1.pptx
Gerenciamento da Qualidade de Software 1.pptxRoberto Nunes
 
3 engenharia de software
3   engenharia de software3   engenharia de software
3 engenharia de softwareFelipe Bugov
 
Gerenciamento da Qualidade
Gerenciamento da QualidadeGerenciamento da Qualidade
Gerenciamento da QualidadeMarcelo Yamaguti
 
Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1Erivelton Silva Rocha
 
Apresentação artigo teste software 26042010
Apresentação artigo   teste software 26042010Apresentação artigo   teste software 26042010
Apresentação artigo teste software 26042010Fabio Franzotti
 
Gerenciamento da Qualidade de Software 5.pptx
Gerenciamento da Qualidade de Software 5.pptxGerenciamento da Qualidade de Software 5.pptx
Gerenciamento da Qualidade de Software 5.pptxRoberto Nunes
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwareTiago Barros
 
Gerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptxGerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptxRoberto Nunes
 
Qualidade de Software - Introdução
Qualidade de Software - Introdução Qualidade de Software - Introdução
Qualidade de Software - Introdução Elaine Cecília Gatto
 
Estimativa de software usando pontos de função
Estimativa de software usando pontos de funçãoEstimativa de software usando pontos de função
Estimativa de software usando pontos de funçãoClaudio Martins
 
Gerenciamento de Configuração
Gerenciamento de ConfiguraçãoGerenciamento de Configuração
Gerenciamento de ConfiguraçãoMarcelo Yamaguti
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)elliando dias
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoJoeldson Costa Damasceno
 

Mais procurados (20)

Introducao swebok
Introducao swebokIntroducao swebok
Introducao swebok
 
Gerenciamento da Qualidade de Software 1.pptx
Gerenciamento da Qualidade de Software 1.pptxGerenciamento da Qualidade de Software 1.pptx
Gerenciamento da Qualidade de Software 1.pptx
 
3 engenharia de software
3   engenharia de software3   engenharia de software
3 engenharia de software
 
Apresentação RUP
Apresentação RUPApresentação RUP
Apresentação RUP
 
Introdução ao RUP
Introdução ao RUPIntrodução ao RUP
Introdução ao RUP
 
Processo de Software
Processo de SoftwareProcesso de Software
Processo de Software
 
Gerenciamento da Qualidade
Gerenciamento da QualidadeGerenciamento da Qualidade
Gerenciamento da Qualidade
 
Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1
 
Introdução ao RUP
Introdução ao RUPIntrodução ao RUP
Introdução ao RUP
 
Apresentação artigo teste software 26042010
Apresentação artigo   teste software 26042010Apresentação artigo   teste software 26042010
Apresentação artigo teste software 26042010
 
Gerenciamento da Qualidade de Software 5.pptx
Gerenciamento da Qualidade de Software 5.pptxGerenciamento da Qualidade de Software 5.pptx
Gerenciamento da Qualidade de Software 5.pptx
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de Software
 
Gerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptxGerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptx
 
Aula4
Aula4Aula4
Aula4
 
Visao Geral Rup
Visao Geral RupVisao Geral Rup
Visao Geral Rup
 
Qualidade de Software - Introdução
Qualidade de Software - Introdução Qualidade de Software - Introdução
Qualidade de Software - Introdução
 
Estimativa de software usando pontos de função
Estimativa de software usando pontos de funçãoEstimativa de software usando pontos de função
Estimativa de software usando pontos de função
 
Gerenciamento de Configuração
Gerenciamento de ConfiguraçãoGerenciamento de Configuração
Gerenciamento de Configuração
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e Validação
 

Destaque

Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Adriano Tavares
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelEduardo Nicola F. Zagari
 
Padrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVCPadrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVCAlmir Neto
 
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMPadrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMAricelio Souza
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasVagner Santana
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na PraticaAlessandro Kieras
 

Destaque (8)

Uml
UmlUml
Uml
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - Microkernel
 
Padrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVCPadrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVC
 
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMPadrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de Sistemas
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
 

Semelhante a 2 engenharia de software

Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
 
1 - APS – Iniciação Desenvolvimento Requisitos.pdf
1 - APS – Iniciação Desenvolvimento Requisitos.pdf1 - APS – Iniciação Desenvolvimento Requisitos.pdf
1 - APS – Iniciação Desenvolvimento Requisitos.pdfa29398
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trataRoni Reis
 
aula7 software ciclo de vida analise req
aula7 software ciclo de vida analise reqaula7 software ciclo de vida analise req
aula7 software ciclo de vida analise reqpatriciaalipiosilva
 
Aula 7 - Ciclo de vida do software.pptx
Aula 7 - Ciclo de vida do software.pptxAula 7 - Ciclo de vida do software.pptx
Aula 7 - Ciclo de vida do software.pptxAlexandreLisboadaSil
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareElaine Cecília Gatto
 
Es capítulo 2 - processos de software
Es   capítulo 2  - processos de softwareEs   capítulo 2  - processos de software
Es capítulo 2 - processos de softwareFelipe Oliveira
 
Aula 1 introdução à engenharia de software1 (1)
Aula 1   introdução à engenharia de software1 (1)Aula 1   introdução à engenharia de software1 (1)
Aula 1 introdução à engenharia de software1 (1)Tiago Vizoto
 
PDSI.INT- S01 Introdução a Eng Software e Processo.pdf
PDSI.INT- S01 Introdução a Eng Software e Processo.pdfPDSI.INT- S01 Introdução a Eng Software e Processo.pdf
PDSI.INT- S01 Introdução a Eng Software e Processo.pdfpedrina4
 
Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Elaine Cecília Gatto
 
Conceito de analise de desenvolvivento de sistemas
Conceito de analise de desenvolvivento de sistemasConceito de analise de desenvolvivento de sistemas
Conceito de analise de desenvolvivento de sistemasluanrjesus
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareCursoSENAC
 
aula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptxaula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptxMarcondesTiburcio
 
UM ESTUDO SOBRE ABORDAGENS DE TESTE E SUAS CONTRIBUIÇÕES PARA A QUALIDADE NO ...
UM ESTUDO SOBRE ABORDAGENS DE TESTE E SUAS CONTRIBUIÇÕES PARA A QUALIDADE NO ...UM ESTUDO SOBRE ABORDAGENS DE TESTE E SUAS CONTRIBUIÇÕES PARA A QUALIDADE NO ...
UM ESTUDO SOBRE ABORDAGENS DE TESTE E SUAS CONTRIBUIÇÕES PARA A QUALIDADE NO ...Fábio Pio
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 

Semelhante a 2 engenharia de software (20)

Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
1 - APS – Iniciação Desenvolvimento Requisitos.pdf
1 - APS – Iniciação Desenvolvimento Requisitos.pdf1 - APS – Iniciação Desenvolvimento Requisitos.pdf
1 - APS – Iniciação Desenvolvimento Requisitos.pdf
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
 
aula7 software ciclo de vida analise req
aula7 software ciclo de vida analise reqaula7 software ciclo de vida analise req
aula7 software ciclo de vida analise req
 
Aula 7 - Ciclo de vida do software.pptx
Aula 7 - Ciclo de vida do software.pptxAula 7 - Ciclo de vida do software.pptx
Aula 7 - Ciclo de vida do software.pptx
 
Processo e Processo de Software
Processo e Processo de SoftwareProcesso e Processo de Software
Processo e Processo de Software
 
Qualidade do Software
Qualidade do SoftwareQualidade do Software
Qualidade do Software
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de Software
 
Es capítulo 2 - processos de software
Es   capítulo 2  - processos de softwareEs   capítulo 2  - processos de software
Es capítulo 2 - processos de software
 
Análise de Sistemas Orientado a Objetos - 01
Análise de Sistemas Orientado a Objetos - 01Análise de Sistemas Orientado a Objetos - 01
Análise de Sistemas Orientado a Objetos - 01
 
Aula 1 introdução à engenharia de software1 (1)
Aula 1   introdução à engenharia de software1 (1)Aula 1   introdução à engenharia de software1 (1)
Aula 1 introdução à engenharia de software1 (1)
 
PDSI.INT- S01 Introdução a Eng Software e Processo.pdf
PDSI.INT- S01 Introdução a Eng Software e Processo.pdfPDSI.INT- S01 Introdução a Eng Software e Processo.pdf
PDSI.INT- S01 Introdução a Eng Software e Processo.pdf
 
Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4
 
347842.ppt
347842.ppt347842.ppt
347842.ppt
 
Conceito de analise de desenvolvivento de sistemas
Conceito de analise de desenvolvivento de sistemasConceito de analise de desenvolvivento de sistemas
Conceito de analise de desenvolvivento de sistemas
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
aula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptxaula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptx
 
UM ESTUDO SOBRE ABORDAGENS DE TESTE E SUAS CONTRIBUIÇÕES PARA A QUALIDADE NO ...
UM ESTUDO SOBRE ABORDAGENS DE TESTE E SUAS CONTRIBUIÇÕES PARA A QUALIDADE NO ...UM ESTUDO SOBRE ABORDAGENS DE TESTE E SUAS CONTRIBUIÇÕES PARA A QUALIDADE NO ...
UM ESTUDO SOBRE ABORDAGENS DE TESTE E SUAS CONTRIBUIÇÕES PARA A QUALIDADE NO ...
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 

Mais de Felipe Bugov

Conjuntos relacoes funcoes
Conjuntos relacoes funcoesConjuntos relacoes funcoes
Conjuntos relacoes funcoesFelipe Bugov
 
Exercícios diagrama de venn
Exercícios diagrama de vennExercícios diagrama de venn
Exercícios diagrama de vennFelipe Bugov
 
1 produtos notáveis
1 produtos notáveis1 produtos notáveis
1 produtos notáveisFelipe Bugov
 
Calendário de provas 2014 Semestre 1 UNIP
Calendário de provas 2014 Semestre 1 UNIPCalendário de provas 2014 Semestre 1 UNIP
Calendário de provas 2014 Semestre 1 UNIPFelipe Bugov
 
5 engenharia de software projetos
5   engenharia de software  projetos5   engenharia de software  projetos
5 engenharia de software projetosFelipe Bugov
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de softwareFelipe Bugov
 
1 engenharia de software
1   engenharia de software1   engenharia de software
1 engenharia de softwareFelipe Bugov
 
9 manual do sistema aps pim - versão estudantes (2012.1)
9 manual do sistema aps pim - versão estudantes (2012.1)9 manual do sistema aps pim - versão estudantes (2012.1)
9 manual do sistema aps pim - versão estudantes (2012.1)Felipe Bugov
 
Manual de atividades_complementares_cst_v2014
Manual de atividades_complementares_cst_v2014Manual de atividades_complementares_cst_v2014
Manual de atividades_complementares_cst_v2014Felipe Bugov
 
Manual de normalizacao
Manual de normalizacaoManual de normalizacao
Manual de normalizacaoFelipe Bugov
 
Sistema de nivelamento
Sistema de nivelamentoSistema de nivelamento
Sistema de nivelamentoFelipe Bugov
 
Manual de normalizacao
Manual de normalizacaoManual de normalizacao
Manual de normalizacaoFelipe Bugov
 
Manual de atividades_complementares_cst_v2014
Manual de atividades_complementares_cst_v2014Manual de atividades_complementares_cst_v2014
Manual de atividades_complementares_cst_v2014Felipe Bugov
 
9 manual do sistema aps pim - versão estudantes (2012.1)
9 manual do sistema aps pim - versão estudantes (2012.1)9 manual do sistema aps pim - versão estudantes (2012.1)
9 manual do sistema aps pim - versão estudantes (2012.1)Felipe Bugov
 

Mais de Felipe Bugov (17)

Conjuntos relacoes funcoes
Conjuntos relacoes funcoesConjuntos relacoes funcoes
Conjuntos relacoes funcoes
 
Conjuntos 1
Conjuntos 1Conjuntos 1
Conjuntos 1
 
Diagrama de venn1
Diagrama de venn1Diagrama de venn1
Diagrama de venn1
 
Exercícios diagrama de venn
Exercícios diagrama de vennExercícios diagrama de venn
Exercícios diagrama de venn
 
Aula de-funcao
Aula de-funcaoAula de-funcao
Aula de-funcao
 
1 produtos notáveis
1 produtos notáveis1 produtos notáveis
1 produtos notáveis
 
Calendário de provas 2014 Semestre 1 UNIP
Calendário de provas 2014 Semestre 1 UNIPCalendário de provas 2014 Semestre 1 UNIP
Calendário de provas 2014 Semestre 1 UNIP
 
5 engenharia de software projetos
5   engenharia de software  projetos5   engenharia de software  projetos
5 engenharia de software projetos
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de software
 
1 engenharia de software
1   engenharia de software1   engenharia de software
1 engenharia de software
 
9 manual do sistema aps pim - versão estudantes (2012.1)
9 manual do sistema aps pim - versão estudantes (2012.1)9 manual do sistema aps pim - versão estudantes (2012.1)
9 manual do sistema aps pim - versão estudantes (2012.1)
 
Manual de atividades_complementares_cst_v2014
Manual de atividades_complementares_cst_v2014Manual de atividades_complementares_cst_v2014
Manual de atividades_complementares_cst_v2014
 
Manual de normalizacao
Manual de normalizacaoManual de normalizacao
Manual de normalizacao
 
Sistema de nivelamento
Sistema de nivelamentoSistema de nivelamento
Sistema de nivelamento
 
Manual de normalizacao
Manual de normalizacaoManual de normalizacao
Manual de normalizacao
 
Manual de atividades_complementares_cst_v2014
Manual de atividades_complementares_cst_v2014Manual de atividades_complementares_cst_v2014
Manual de atividades_complementares_cst_v2014
 
9 manual do sistema aps pim - versão estudantes (2012.1)
9 manual do sistema aps pim - versão estudantes (2012.1)9 manual do sistema aps pim - versão estudantes (2012.1)
9 manual do sistema aps pim - versão estudantes (2012.1)
 

Último

Evangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdfEvangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdfPastor Robson Colaço
 
O QUINZE.pdf livro lidokkkkkkkkkkkkkkkkkkkk
O QUINZE.pdf livro lidokkkkkkkkkkkkkkkkkkkkO QUINZE.pdf livro lidokkkkkkkkkkkkkkkkkkkk
O QUINZE.pdf livro lidokkkkkkkkkkkkkkkkkkkkLisaneWerlang
 
Apresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao AssédioApresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao Assédioifbauab
 
Administração (Conceitos e Teorias sobre a Administração)
Administração (Conceitos e Teorias sobre a Administração)Administração (Conceitos e Teorias sobre a Administração)
Administração (Conceitos e Teorias sobre a Administração)zarinha
 
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdfmanual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdfrarakey779
 
Exercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfExercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfRILTONNOGUEIRADOSSAN
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfLeandroTelesRocha2
 
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdfGRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdfrarakey779
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Manual dos Principio básicos do Relacionamento e sexologia humana .pdf
Manual dos Principio básicos do Relacionamento e sexologia humana .pdfManual dos Principio básicos do Relacionamento e sexologia humana .pdf
Manual dos Principio básicos do Relacionamento e sexologia humana .pdfPastor Robson Colaço
 
Campanha 18 de. Maio laranja dds.pptx
Campanha 18 de.    Maio laranja dds.pptxCampanha 18 de.    Maio laranja dds.pptx
Campanha 18 de. Maio laranja dds.pptxlucioalmeida2702
 
Desastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessDesastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessRodrigoGonzlez461291
 
Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....
Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....
Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....LuizHenriquedeAlmeid6
 
AULA Saúde e tradição-3º Bimestre tscqv.pptx
AULA Saúde e tradição-3º Bimestre tscqv.pptxAULA Saúde e tradição-3º Bimestre tscqv.pptx
AULA Saúde e tradição-3º Bimestre tscqv.pptxGraycyelleCavalcanti
 
INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]
INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]
INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]ESCRIBA DE CRISTO
 
Recurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/AcumuladorRecurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/AcumuladorCasa Ciências
 
ATPCG 27.05 - Recomposição de aprendizagem.pptx
ATPCG 27.05 - Recomposição de aprendizagem.pptxATPCG 27.05 - Recomposição de aprendizagem.pptx
ATPCG 27.05 - Recomposição de aprendizagem.pptxmairaviani
 
Memórias_póstumas_de_Brás_Cubas_ Machado_de_Assis
Memórias_póstumas_de_Brás_Cubas_ Machado_de_AssisMemórias_póstumas_de_Brás_Cubas_ Machado_de_Assis
Memórias_póstumas_de_Brás_Cubas_ Machado_de_Assisbrunocali007
 
22-modernismo-5-prosa-de-45.pptxrpnsaaaa
22-modernismo-5-prosa-de-45.pptxrpnsaaaa22-modernismo-5-prosa-de-45.pptxrpnsaaaa
22-modernismo-5-prosa-de-45.pptxrpnsaaaaCarolineFrancielle
 
Fotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosFotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosbiancaborges0906
 

Último (20)

Evangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdfEvangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdf
 
O QUINZE.pdf livro lidokkkkkkkkkkkkkkkkkkkk
O QUINZE.pdf livro lidokkkkkkkkkkkkkkkkkkkkO QUINZE.pdf livro lidokkkkkkkkkkkkkkkkkkkk
O QUINZE.pdf livro lidokkkkkkkkkkkkkkkkkkkk
 
Apresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao AssédioApresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao Assédio
 
Administração (Conceitos e Teorias sobre a Administração)
Administração (Conceitos e Teorias sobre a Administração)Administração (Conceitos e Teorias sobre a Administração)
Administração (Conceitos e Teorias sobre a Administração)
 
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdfmanual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
 
Exercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfExercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdf
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
 
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdfGRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
 
Manual dos Principio básicos do Relacionamento e sexologia humana .pdf
Manual dos Principio básicos do Relacionamento e sexologia humana .pdfManual dos Principio básicos do Relacionamento e sexologia humana .pdf
Manual dos Principio básicos do Relacionamento e sexologia humana .pdf
 
Campanha 18 de. Maio laranja dds.pptx
Campanha 18 de.    Maio laranja dds.pptxCampanha 18 de.    Maio laranja dds.pptx
Campanha 18 de. Maio laranja dds.pptx
 
Desastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessDesastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadess
 
Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....
Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....
Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....
 
AULA Saúde e tradição-3º Bimestre tscqv.pptx
AULA Saúde e tradição-3º Bimestre tscqv.pptxAULA Saúde e tradição-3º Bimestre tscqv.pptx
AULA Saúde e tradição-3º Bimestre tscqv.pptx
 
INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]
INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]
INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]
 
Recurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/AcumuladorRecurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/Acumulador
 
ATPCG 27.05 - Recomposição de aprendizagem.pptx
ATPCG 27.05 - Recomposição de aprendizagem.pptxATPCG 27.05 - Recomposição de aprendizagem.pptx
ATPCG 27.05 - Recomposição de aprendizagem.pptx
 
Memórias_póstumas_de_Brás_Cubas_ Machado_de_Assis
Memórias_póstumas_de_Brás_Cubas_ Machado_de_AssisMemórias_póstumas_de_Brás_Cubas_ Machado_de_Assis
Memórias_póstumas_de_Brás_Cubas_ Machado_de_Assis
 
22-modernismo-5-prosa-de-45.pptxrpnsaaaa
22-modernismo-5-prosa-de-45.pptxrpnsaaaa22-modernismo-5-prosa-de-45.pptxrpnsaaaa
22-modernismo-5-prosa-de-45.pptxrpnsaaaa
 
Fotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosFotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anos
 

2 engenharia de software

  • 1. Disciplina Engenharia de Software Ferramentas para análise - Metodologias Orientadas a Objetos Prof. Esp. Rafael H Mauro rafaelherman@yahoo.com.br
  • 2. Metodologia de Desenvolvimento de Software •Metodologia em um sentido amplo é o conjunto de métodos, regras e postulados empregados por uma disciplina, procedimento particular ou conjunto de procedimentos.
  • 3. Metodologia de Desenvolvimento de Software •Metodologia de Engenharia de Software pode ser considerada como uma lista de regras e diretrizes combinadas com alguma notação gráfica para modelar os requisitos e o projeto do sistema
  • 4. Metodologia de Desenvolvimento de Software •Adotar uma metodologia para desenvolvimento de software significa munir-se de um conjunto de princípios , normas ferramentas conceituais, técnicas procedimentos e documentos que permitam ao engenheiro de software implementar sem ambigüidade a especificação contida no ciclo de vida do software.
  • 5. Benefícios da adoção de uma metodologia •Os benefícios da adoção de uma Metodologia de Desenvolvimento de Software implicam em:  Desenvolvimento mais rápido;  Redução dos custos de desenvolvimento;  Geração de código automatizado;  Erros detectados mais cedo e por análise automática e estática;  Padronização de produtos(documentos, especificação, etc.);  Facilidade do controle do processo;  Melhor qualidade do produto desenvolvido;  Maior possibilidade do reuso dos produtos em várias etapas; e  Maior facilidade de manutenção.
  • 6. A Necessidade de uma Metodologia •A partir do momento em que surge a necessidade de racionalizar o processo produtivo referente a qualquer atividade produtiva humana, se faz necessário o emprego de uma metodologia que vise a atender os objetivos organizacionais associados a:  Padronização (documentos, métodos, técnicas, etc.);  Planejamento;  Controle;  Produtividade;  Eficiência;  Qualidade; e etc.
  • 7. Especificação de uma Metodologia •O pré-requisito indispensável para a especificação de uma Metodologia de Desenvolvimento de software é a definição do ciclo de vida do software a ser adotado no processo de desenvolvimento do software. O ciclo de vida do software constitui o modelo de implementação de mais alto nível de abstração. O ciclo de vida do software especifica: 1. As macros atividades a serem executadas durante o processo; 2. A seqüência de execução de cada atividade; e 3. Identifica, para cada atividade, seus pré-requisitos, produto(s), ponto(s) de controle(s), forma de controle, etc.
  • 8. Especificação de uma Metodologia •Uma Metodologia de Desenvolvimento de Software detalhará o ciclo de vida, especificando um conjunto completo, único e internamente coerente de: –Princípios –Técnicas –Linguagem de representação(ferramentas conceituais) –Normas –Procedimentos –Documentos •que permitam ao Engenheiro de Software implementar sem ambigüidade a especificação contida no ciclo de vida do software
  • 9. Especificação de uma Metodologia •Problema metodológico: uma questão pertencente à administração do desenvolvimento e não à tecnologia do desenvolvimento, em outras palavras, pode-se dizer que: –1. O engenheiro de software, enquanto técnico do desenvolvimento caberia dominar um conjunto de técnicas e ferramentas que lhe permitissem construir software de boa qualidade, eficiente e eficaz –2. O engenheiro de software enquanto administrador do desenvolvimento, caberia dominar um conjunto de critérios e de conhecimentos técnicos que lhe permitisse estabelecer - dado o ambiente de desenvolvimento e o tipo de software a ser desenvolvido, e elevado interesse da organização em que o processo ocorresse - a metodologia mais adequada à construção de um produto de boa qualidade, respeitando prazos e custos pré-estabelecidos.
  • 10. Especificação de uma Metodologia •Aplicação e Evolução de uma Metodologia possui uma abordagem puramente empírica (pesquisa e desenvolvimento) •É necessário também que os grupos desenvolvam, em ambiente de desenvolvimento controladamente variado, um trabalho fortemente experimental, utilizando diferentes ferramentas e técnicas de desenvolvimento de sistemas, para produzir software de diferentes tipos.
  • 11. Avaliação de uma Metodologia •Não possui um valor intrínseco, mensurável por si mesmo, independente de parâmetros externos qualificadores. Em nível alto de abstração, esses parâmetros devem referir-se: –Aos objetivos organizacionais; –Ao ambiente de desenvolvimento onde será implantada; –Ao tipo de software a ser desenvolvido. •Uma proposta metodológica deveria conter sua própria mensuração buscando explicitar:  Os parâmetros externos em relação aos quais foi testada (sempre que possível quantitativamente);  O nível de coerência interna (e/ou integração) entre as alternativas tecnológicas (ferramentas e técnicas) adotadas; O nível de suporte automatizado para as alternativas tecnológicas adotadas.
  • 12. Avaliação de uma Metodologia •Considerando o Desenvolvimento de Software como um processo de construção de sucessivos modelos de um sistema do mundo “real”, iniciado em um nível elevado de abstração relativamente às caraterísticas “físicas” da tecnologia computacional, até chegar a um modelo de automação final, executável total ou parcialmente por computador, o ciclo de vida do software, contém em geral, as seguintes atividades:  Especificação de necessidades (análise de requisitos);  Especificação de Requisitos ; projeto (design);  implementação do software;  implantação e manutenção do software; e  Correção, Verificação e Validação.
  • 13. Especificação de necessidades (análise de requisitos) •Uma característica essencial de um sistema sócio-técnico é atender as necessidades do mundo exterior. Essas necessidades podem ser especificadas por diferentes técnicas: –Levantamento detalhado do ambiente; –Levantamento dos eventos externo aos quais os sistemas deve reagir; –Pesquisa do mercado; e etc. •Linguagem Textual •Carência de ferramentas de apoio eficazes •Os resultados desta fase são utilizados para validação
  • 14. Especificação de Requisitos ; projeto (design) •Durante essa atividade, inicia-se a modelagem interna do sistema. Nessa etapa podem ser utilizadas: –A análise funcional –A análise de dados –Análise e Projeto Orientados a Objetos •Ferramentas (ou diagramas) utilizados –Diagrama de Fluxo de Dados - DFD; –Diagrama Entidades-Relacionamentos - DER; –Diagrama de Estado-Transição - DET –Diagramas de Rede de Petri. –Diagramas da Linguagem UML
  • 15. Projeto de Software (Design). •Detalhamento incorpora as características da tecnologia de automação a ser empregada, seu produto devendo ser validado em relação ao resultado da atividade anterior. •Nesta etapa podem ser usados dois tipos de variante do projeto estruturado, que são o Orientado por dado e o Orientado por função. •Problema: Descontinuidade em relação à atividade anterior somada a carência de ferramentas automatizadas que dêem apoio a sua execução. –A orientação a objetos elimina este problema •É abundante a quantidade de documentos, normas e procedimentos propostos para a execução dessa fase.
  • 16. Implementação do software •Codificação do modelo •Preocupação com: –A correção; –A eficiência; e –A flexibilidade dos aspectos executáveis do modelo construído. •Utilização de ferramentas como: –Compiladores; –Interpretadores; –Editores; –Depuradores; –Geradores de código ; –Geradores de Massa de Teste; –Formuladores de Código Fonte; –Analisadores Estáticos, etc.
  • 17. Implantação e manutenção do software •A modelagem completa do processo de desenvolvimento de software exige modelos para as atividades de Implantação e manutenção. •Manutenção costuma consumir uma grande quantidade de recursos alocados ao processo.
  • 18. Correção, Verificação e Validação •Essas atividades, em geral, estão inseridas nos intervalos que separam as atividades geradoras do modelo de automação •Têm por objetivo garantir a consistência global do processo de desenvolvimento. •Devem garantir que o produto de cada etapa do ciclo de vida atenda a seus pré-requisitos, produza respostas corretas e respeite as restrições impostas ao processo.
  • 19. Metodologia •Uma Metodologia identifica as principais atividades (análise, projeto, codificação, teste) a serem executadas e indica quais pessoas (usuários, gerentes, técnicos) devem estar envolvidos em cada atividade e que papel deverão desempenhar. •Também descreve os critérios de entrada, os critérios de saída e os pontos de conferências para decisões de prosseguir ou não no processo de desenvolvimento do software. •As metodologias mais populares: –Técnicas estruturadas ou técnicas de engenharias de informação (metodologias estruturadas e metodologias de engenharia de informação) –As técnicas orientadas a objeto e a metodologia orientada a objeto oriundas dessas técnicas, têm atraído muita atenção
  • 21. Exemplos de Processos de Desenvolvimento •Processo –APE: Análise e Projeto Estruturados •DeMarco, Page-Jones, Gane-Sarson –APOD: Análise e Projeto Orientados a Dados •Jackson, Warnier-Orr –APOO: Análise e Projeto Orientados a Objeto •Modelo Iterativo »Booch, OMT, OOSE »(R)UP: (Rational) Unified Process »
  • 22. Metodologia de Desenvolvimento •Metodologia = Processo + Linguagem •A linguagem define formalmente os artefatos produzidos ao longo do processo •UML: Unified Modeling Language –UML é uma linguagem orientada a objeto e unificada •Cobre as atividades de análise e design •Unificação é uma grande vantagem –Evita problemas de “impedance mismatch” •Metodologia de Desenvolvimento Adotada na Disciplina –(R)UP + UML
  • 23. RUP
  • 24. O Que é RUP? O RUP (Rational Unified Process) é um processo de engenharia de software desenvolvido pela empresas Rational. Ele serve como um guia de como utilizar de maneira eficiente a UML (Unified Modeling Language). Utiliza desenvolvimento Iterativo e Incremental. Tem como objetivo oferecer um processo de desenvolvimento “bem definido” e “bem gerido”.
  • 26. “Melhores” Práticas do RUP São seis: 1. Desenvolvimento de software interativo 2. Gerenciamento de Requisitos 3. Arquitetura baseada em Componentes 4. Modelo de Software Visual (UML) 5. Verificação contínua da qualidade do Software 6. Gerenciamento e controle de mudanças
  • 27. Processo Pode ser dividido em duas dimensões: 1. Horizontal (Dinâmico) 2. Vertical (Estático)
  • 28. Processo (Dinâmico) Iniciação (Inception) Definição do escopo do projeto, identificação dos atores, casos de uso e descrição dos mais significativos Elaboração (Elaboration) Análise do sistema, definição da arquitetura de software Construção (Construction) Desenvolvimento iterativo e incremental do produto Transição (Transition) Atividades de “entrega” do software CADA FASE PODE SER DECOMPOSTA EM ITERAÇÕES
  • 29. Processo (Estático) Estruturo do processo: Intervenientes (Workers) - Quem? (who) Atividades (Activities) - Como? (how) Artefatos (Artifacts) - O Que? (what) Fluxo de Trabalho (Workflows) - Quando? (when)
  • 30. Processo (Estático) Fluxo de Trabalho (Workflow)
  • 31. Processo (Estático) Fluxo de Trabalho “Chave”: Fluxo de Trabalho de Engenharia (Engineering) 1. Modelação do negócio (Business modeling) 2. Levantamento de Requisitos (Requirements) 3. Análise & Projeto (Analysis & Design) 4. Implementação (Implementation) 5. Testes (Test) 6. Implantação (Deployment) Fluxo de Trabalho de Suporte (Supporting) 1. Gerência de projeto (Project Management) 2. Gerência de configuração e mudança (Configuration and Change Management) 3. Ambiente (Environment)
  • 32. Qualidade, Padrões e Estratégia de Testes •Qualidade: Verificação a cada artefato/atividade; •Padrões: Guidelines definidos pelo usuário do processo; •Estratégias de Testes: Não restritivo, porém recomenda a verificação da qualidade dos testes aplicados;
  • 33. Diretrizes para o Gerenciamento do Projeto  O gerenciamento de projeto de software é a arte de equilibrar objetivos concorrentes, gerenciar risco e superar limites para entregar com sucesso um produto que vá ao encontro das necessidades dos clientes e dos usuários. Os propósitos do gerenciamento de projeto são:  Fornecer uma estrutura para gerenciar projetos de software- intensivo;  Fornecer diretrizes práticas para planejar, montar equipes, executar, e monitorar projetos;  Fornecer uma estrutura para gerenciamento de risco;  O papel de gerente de projeto é alocar recursos, modelar prioridades, coordenar interações com clientes e usuários, e manter a equipe do projeto focalizada no objetivo.  O gerente de projeto estabelece um conjunto de práticas que assegurem integridade e qualidade aos artefatos do projeto.
  • 34. Diretrizes para o Gerenciamento do Projeto  A disciplina de Gerenciamento do Rational Unified Process (RUP) não tenta cobrir todos os aspectos de gerenciamento de projeto. Por exemplo, não cobre questões como:  Gerência de pessoal: contratação, treinamento, instrução  Gerência de orçamento: definição, alocação  Gerência de contratos, com fornecedores e clientes
  • 35. Diretrizes para o Gerenciamento do Projeto
  • 36. Rational Suite Enterprise •Rational RequisitePro Gerência de Requisitos •Rational Unified Process Engenharia de Processo •Rational Rose Análise/Projeto –Rational QualityArchitect Gerador de Stubs para Teste •Rational PurifyPlus Suite para Teste –Purify -Análise de memória –Quantify -Análise de desempenho –PureCoverage -Cobertura de código •Rational Robot Automação de Testes •Rational TestManager Gerência de Testes •Rational ProjectConsole Gerência de Projeto •Rational ClearCase LT Gerência de Versão •Rational ClearQuest Gerência de Mudança
  • 37. UML
  • 38. •Porque utilizar UML? –Padronização dos Métodos OO •UML: O que é? •Diagramas e Processo de Software –Processo de desenvolvimento e os Diagramas da UML –Diagramas UML: Usos Comuns •Diagramas:Teoria e exemplos –Casos de Uso, Classe, Seqüência, Estados, Atividades •Estudo de Caso. •Exercícios
  • 39. Porque utilizar UML? •UML é o resultado da combinação (unificação) de três métodos –Métodos de Booch, Rumbaugh (OMT) e Jacobson (OOSE) –Tem alcance maior do que seus “originários” •Padrão “de fato” para modelagem de software OO •Passou por um processo de padronização pela OMG (Object Management Group) •Comunicação –Diferentes grupos de desenvolvedores possuem o mesmo entendimento dos modelos
  • 40. Porque utilizar UML? •Modelagem de sistemas de software (e outros) –Parte central para implantação de um bom software –Modelo – Abstração da realidade (simplificação) –Comunicação de aspectos de sistemas de SW: •Estrutura •Comportamento •UML fornece a notação e a semântica suficientes para modelagem de sistemas de software
  • 41. UML: O que é? •Unified Modeling Language - UML •Linguagem de Modelagem Unificada •A UML é uma linguagem-padrão para a elaboração da estrutura de projetos. Possui três elementos principais: –Blocos básicos de construção da UML –Regras que determinam como estes blocos deverão ser combinados –Mecanismos básicos que se aplicam a toda a linguagem •A UML é apenas uma parte de um método para desenvolvimento de software. •A UML é independente do processo de desenvolvimento de software –Processo orientado a casos de usos, centrado na arquitetura, iterativo e incremental.
  • 42. UML: O que é? •A UML é destinada a: –Visualizar (notação com semântica bem-definida) –Especificar (definir modelos precisos, sem ambigüidades e completos) –Construir (modelos podem ser mapeados para linguagens de programação e tabelas de BD (Relacionais ou OO). É possível a execução direta dos modelos, a simulação e a instrumentação de sistemas em execução) –Documentar (construção de artefatos críticos para controlar, medir e comunicar determinado sistema durante seu desenvolvimento e após sua implantação) os artefatos de um sistema complexo (ou não) de software.
  • 43. UML: O que é? •A UML é uma linguagem, e como tal, fornece um vocabulário e as regras para a combinação de palavras desse vocabulário com a finalidade de comunicar algo (criação de modelos bem formados). •UML não é um processo, portanto não indica quais modelos deverão ser criados, nem quando deverão ser criados.
  • 44. UML: O que é? •Um modelo conceitual da UML –Blocos básicos de construção da UML. Existem três tipos de blocos de construção: •1. Itens •2. Relacionamentos •3. Diagramas –Itens da UML. Quatro tipos: •1. Itens estruturais •2. Itens comportamentais •3. Itens de agrupamentos •4. Itens anotacionais –Itens Estruturais •Os itens estruturais são os substantivos utilizados em modelos da UML. São as partes estáticas do modelo, representando elementos conceituais ou físicos.
  • 45. UML: O que é? •Itens Estruturais - sete tipos de itens estruturais: –As classes são descrições como conjuntos de objetos que compartilham os mesmos atributos, operações, relacionamentos e semântica. –Uma Interface é uma coleção de operações que especificam serviços de uma classe ou componente. Descreve o comportamento externamente visível desse elemento. Pode representar todo, ou parte, o comportamento de uma classe ou componente. Define um conjunto de especificações de operações (suas assinaturas), mas nunca um conjunto de implementações de operações. Uma interface costuma aparecer anexada à classe ou ao componente que realiza a interface.
  • 46. UML: O que é? –As colaborações definem interações e são sociedades de papéis e outros elementos que funcionam em conjunto para proporcionar um comportamento cooperativo superior à soma de todos os elementos. Possuem dimensões estruturais, assim como comportamentais. Uma classe pode participar em várias colaborações. –Um caso de uso é a descrição de um conjunto de seqüência de ações realizadas pelo sistema que proporciona resultados observáveis de valor para um determinado ator. É utilizado para estruturar o comportamento de itens em um modelo. Um caso de uso é realizado por uma colaboração.
  • 47. UML: O que é? •Os três tipos de itens restantes - classes ativas, componentes e nós - são semelhantes a classes, porém, estes são suficientemente diferentes e necessários para a modelagem de certos aspectos de sistemas orientados a objetos e, portanto, merecem um tratamento especial. •Os cinco primeiros tipos de itens são itens conceituais ou lógicos. Os dois últimos (componentes e nós) representam itens físicos.
  • 48. UML: O que é? –As classes ativas são classes cujos objetos têm um ou mais processos ou threads e, portanto, podem iniciar a atividade de controle. Uma classe ativa é semelhante a uma classe, exceto pelo fato de que seus objetos representam elementos cujo comportamento é concorrente com o de outros elementos. –Os componentes são partes físicas e substituíveis de um sistema, que proporcionam a realização de um conjunto de interfaces. Em um sistema, encontram-se deferentes tipos de componentes próprios da implantação, como os componentes COM+ ou Java Beans, assim como componentes que são artefatos do processo de desenvolvimento, como arquivos de código-fonte. Tipicamente os componentes representam o pacote físico de elementos lógicos diferentes, como classes, interfaces e colaborações.
  • 49. UML: O que é? –Um nó é um elemento físico existente em tempo de execução que representa um recurso computacional, geralmente com pelo menos alguma memória e, freqüentemente, capacidade de processamento. Um conjunto de componentes poderá estar contido em um nó e também poderá migrar de um nó para outro. –Além desses sete tipos de itens estruturais, existem, também, variações desses, como: atores, sinais e utilitários (tipos de classes), processos e threads (tipos de classes ativas), e aplicações, documentos, arquivos, bibliotecas, páginas e tabelas (tipos de componentes).
  • 50. UML: O que é? –Itens comportamentais •São as partes dinâmicas dos modelos UML. São os verbos de um modelo, representando comportamentos no tempo e no espaço. Existem dois tipos de itens comportamentais: •Uma interação é um comportamento que abrange um conjunto de mensagens trocadas entre um conjunto de objetos em determinado contexto para a realização de propósitos específicos. O comportamento de uma sociedade de objetos ou de uma operação individual poderá ser especificado por meio de uma interação. As interações envolvem outros elementos, inclusive mensagens, seqüências de ações (os comportamentos chamados pelas mensagens) e ligações (as conexões entre os objetos). •Uma máquina de estado é um comportamento que especifica as seqüências de estados pelas quais objetos ou interações passam durante sua existência em resposta a eventos, bem como suas respostas a esses eventos. Uma máquina de estado abrange outros elementos, incluindo estados, transições (o fluxo de um estado a outro), eventos (itens que disparam uma transição) e atividades (as respostas às transições)
  • 51. UML: O que é? –Itens de agrupamentos •São as partes organizacionais dos modelos UML. São os blocos em que os modelos podem ser decompostos. Existe apenas um tipo de itens de agrupamento, chamado Pacote. –Um pacote é um mecanismo de propósito geral para a organização de elementos em grupos. Os itens estruturais, os itens comportamentais e até outros itens de grupos podem ser colocados em pacotes. Ao contrário dos componentes (que existem em tempo de execução), um pacote é puramente conceitual (existem apenas em tempo de desenvolvimento). Existem algumas variações, como frameworks, modelos e subsistemas (tipos de pacotes). –Itens anotacionais •São as partes explicativas dos modelos UML. São comentários, incluídos para descrever, esclarecer e fazer alguma observação sobre qualquer elemento do modelo. Existe somente um tipo de item anotacional, chamado nota. Uma nota é apenas um símbolo para representar restrições e comentários anexados a um elemento ou a uma coleção de elementos.
  • 52. UML: O que é? •Relacionamentos na UML. –1. Dependência - é um relacionamento semântico entre dois itens, nos quais a alteração de um (o item independente) pode afetar a semântica do outro (o item dependente). –2. Associação - é um relacionamento estrutural que descreve um conjunto de ligações, em que as ligações são conexões entre objetos. A agregação é um tipo especial de associação, representando um relacionamento estrutural entre o todo e suas partes. A composição é um tipo especial de agregação.
  • 53. UML: O que é? •Relacionamentos na UML. –3. Generalização - é um relacionamento de especialização/generalização, nos quais os objetos dos elementos especializados (os filhos) são substituíveis por objetos de elemento generalizado (os pais). Dessa maneira, os filhos compartilham a estrutura e o comportamento dos pais. –4. Realização - é um relacionamento semântico entre classificadores, em que um classificador especifica um contrato que outro classificador garante executar. Os relacionamentos de realizações serão encontrados em dois locais: entre interfaces e as classes ou componentes que as realizam; e entre casos de uso e as colaborações que os realizam.
  • 54. UML: O que é? •Mecanismos –Mecanismos básicos da UML. São os mecanismos básicos que se aplicam a toda a linguagem, que são: –1. Especificações - Cada parte da notação gráfica possui uma especificação capaz de fornecer uma declaração textual da sintaxe e da semântica do respectivo bloco de construção. •Exemplo: Ícone de classe - existe uma especificação que fornece o conjunto completo de atributos, operações e comportamentos de classe. O ícone poderia exibir somente uma parte de interesse em determinado diagrama. •O ícone de classe permite a visualização da mesma no sistema. •A especificação determina os detalhes da classe.
  • 55. UML: O que é? •Mecanismos –2. Adornos - Em sua maioria, os elementos da UML possuem uma notação gráfica única e direta (representação visual). Por exemplo; a notação gráfica para classes expõe os aspectos mais importantes da classe (nome, atributos e operações). •Através de adornos pode-se definir detalhes como: –Se uma classe é Abstrata (nome da classe em itálico) –Visibilidade de atributos e operações •Todos os elementos da notação da UML possuem símbolos básicos que podem ser adornados.
  • 56. UML: O que é? •Mecanismos –3. Divisões comuns - O mundo costuma ser dividido pelo menos de duas maneiras. •Primeiro, a Divisão Classe/Objeto: classe é a abstração; objeto é a manifestação concreta dessa abstração. •Quase todos os blocos de construção disponíveis na UML apresentam este mesmo tipo de dicotomia classe/objeto (abstração do elemento e instância desta abstração) •Ex.: –Casos de Uso e Instâncias de Casos de Uso –Componentes e Instâncias de Componentes –Nós e Instâncias de Nós
  • 57. UML: O que é? •Mecanismos –3. Divisões Comuns •Segundo, separação de interface e implementação. •Interface declara um contrato. Implementação representa uma realização completa desse contrato, responsável pela manutenção fiel da semântica completa da interface. •Quase todos blocos de construção da UML apresentam esse mesmo tipo de dicotomia interface/implementação •Ex.: –Casos de Uso e as Colaborações que as realizam. –Operações e Métodos que as implementam.
  • 58. UML: O que é? •Mecanismos –4. Mecanismos de extensão - A UML permite a sua própria ampliação (de maneira controlada), para isto são utilizados os mecanismos de extensibilidade da UML, os quais incluem: •Estereótipos - amplia o vocabulário da UML, permitindo a criação de novos tipos de blocos de construção que são derivados dos já existentes, mas específicos a determinados problemas. •Por exemplo: Modelar as exceções de linguagens como Java e C++ como uma classe marcada com um estereótipo (<<exception>>).
  • 59. UML: O que é? •Valores atribuídos e Restrições –Valores atribuídos - estende as propriedades dos blocos de construção permitindo a criação de novas informações na especificação de um elemento. Por exemplo: Produtos com muitas versões ao longo do tempo. Marcar, com valores atribuídos, a versão e o autor deste produto. –Restrições - amplia a semântica dos blocos de construção permitindo acrescentar novas regras ou modificar as já existentes. Por exemplo: restringir um método de uma classe de modo que todos acréscimos (através de uma operação add(), por exemplo) sejam feitos ordenadamente. –O importante na utilização dos mecanismos de extensão é que seja controlada, para que um dos propósitos da UML não seja perdido - a comunicação de informações.
  • 60. UML: O que é?
  • 61. Diagramas e Processo de SW •Diagramas na UML –Um diagrama é a apresentação gráfica de um conjunto de elementos. Geralmente representada como gráficos de vértices (itens) e arcos (relacionamentos). Os diagramas são desenhados para permitir a visualização de um sistema sob diferentes perspectivas. –Um diagrama, ao menos talvez para sistemas triviais, representa uma visão parcial dos elementos que compõem o sistema. Um mesmo elemento pode aparecer em todos os diagramas, em apenas alguns ou em nenhum diagrama. Na teoria, um diagrama pode conter qualquer combinação de itens e de relacionamentos. Na prática, porém, aparecerá um pequeno número de combinações comuns, que são consistentes com as cinco visões mais úteis da arquitetura de um sistema complexo de software. •Visão do Caso de Uso, de Projeto, de Processo, de Implementação e de Implantação –A UML inclui vários diagramas
  • 62. Diagramas e Processo de SW –1. Diagrama de classes - exibe um conjunto de classes, interfaces e colaborações, bem como seus relacionamentos. –2. Diagrama de objetos - exibe um conjunto de objetos e seus relacionamentos. –3. Diagrama de casos de uso - exibe um conjunto de casos de uso e atores (um tipo especial de classe) e seus relacionamentos. –4. Diagrama de seqüências - é um diagrama de interação cuja ênfase está na ordenação temporal das mensagens. –5. Diagrama de colaborações - é um diagrama de interação cuja ênfase está na organização estrutural dos objetos que enviam e recebem mensagens.
  • 63. Diagramas e Processo de SW –6. Diagrama de gráficos de estados - exibem uma máquina de estados, formada por estados, transições, eventos e atividades. –7. Diagrama de atividades - é um tipo especial de diagrama de gráfico de estados, exibindo o fluxo de uma atividade para outra no sistema. –8. Diagrama de componentes - exibe as organizações e as dependências existentes em um conjunto de componentes. –9. Diagrama de implantação - mostra a configuração dos nós de processamento em tempo de execução e os componentes neles existentes.
  • 64. Diagramas e Processo de SW •Diagramas –Atividades –Casos de Uso –Classes –Objetos –Seqüência –Colaboração –Estado –Componentes –Implantação •Processo de Software –Fluxo de negócios / métodos classe –Contexto/Requisitos de sistema –Estrutura/Relacionamentos (asp. estáticos) –Estrutura/Relacion. (asp. estáticos de instâncias) –Casos de Uso, Sistema (aspectos dinâmicos) –Casos de Uso, Sistema (aspectos dinâmicos) –Sistema, subsistema, classe (tempo de vida) –Implementação física (aspectos estáticos) –Nós físicos (aspectos estáticos)
  • 65. Diagramas:teoria e exemplos •Diagrama de Casos de Uso –Especifica o comportamento de um sistema ou de parte de um sistema –E uma descrição de um conjunto de seqüências de ações, incluindo variantes realizadas pelo sistema realizadas pelo sistema para produzir um resultado observável do valor de um ator –Descrição textual do caso de uso
  • 67. Diagramas:teoria e exemplos •Diagrama de Casos de Uso –Descrição Textual Caso de Uso – Validar Usuário (ValidateUser) Fluxo de eventos principal: o caso de uso começa quando o sistema solicitar ao "Cliente" (Customer) um número PIN, seu número de identificação pessoal. O "Cliente" agora pode digitar o número PIN via teclado numérico. O "Cliente" confirma a entrada, pressionando a tecla 'Enter'. O sistema então verifica o número PIN para saber ser é válido. Se o número PIN for válido, o sistema reconhece a entrada, finalizando o caso de uso. Fluxo excepcional de eventos: o "Cliente" pode cancelar uma transação a qualquer momento, pressionando o botão Cancelar, reiniciando assim o caso de uso. Nenhuma alteração é realizada na conta do "Cliente". Fluxo excepcional de eventos: o "Cliente" pode limpar o número PIN a qualquer momento antes de submetê-lo e redigitar um novo número PIN. Fluxo excepcional de eventos: se o "Cliente" entrar um número PIN inválido, o caso de uso é reiniciado. Se isso ocorrer três vezes seguidas, o sistema cancela toda a transação, impedindo ao "Cliente" interagir com o caixa eletrônico por 60 segundos
  • 68. Diagramas:teoria e exemplos •Diagrama de Casos de Uso –Descrição Textual Caso de Uso: Track Order Fluxo principal de eventos: Obter e verificar o número do pedido. include (Validate User). Para cada parte do pedido, consulte seu status e depois retorne um relatório para o usuário. Caso de Uso: Place Order Fluxo principal de eventos: include(Validate User). Receba os itens do pedido do usuário. (set priority). Submeta o pedido para o processamento.
  • 70. Diagramas: teoria e exemplos •Contexto
  • 72. Diagramas:teoria e exemplos •Diagrama de Classes –Servem para fazer a modelagem estática do sistema, dando suporte, principalmente, aos requisitos funcionais de um sistema (serviços que o sistema deverá fornecer aos usuários finais). –Os Diagrama de Classes são usados, tipicamente, de três formas: •Para fazer a modelagem do vocabulário de um sistema (abstrações do domínio do problema) •Para fazer a modelagem de colaborações simples: uma colaboração é uma sociedade de classes, interfaces e outros elementos que funcionam em conjunto para proporcionar algum comportamento cooperativo, maior do que a soma de todos os elementos. •Para fazer a modelagem do esquema lógico de um banco de dados
  • 75. Diagramas:teoria e exemplos •Associações