Buscar

Aulas 01a10 Arquitetura de Sistemas Estacio com info das Web Aulas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 145 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 145 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 145 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Aula 01
Componentes de Sistemas
Menu
01
02
03
04
05
06
07
08
09
10
1. Identificar os Fundamentos e Objetivos de um Componente;
2. Apresentar um Exemplo de Componente e Definir o que não é um Componente;
3. Correlacionar Arquitetura de Sistemas e Arquitetura de Componentes;
4. Entender Especificação de Componentes, Implementação de Componentes e Níveis de Modelo.
Fundamentos de um Componente
Objetivos
Arquitetura
Especificação 
Ex
 
 
01
02
03
04
05
06
07
08
09
10
O conceito principal do uso de componentes está relacionado ao ditado “dividir para conquistar”.
Isso significa gerenciar a complexidade, quebrando um grande problema em pedaços menores a serem desenvolvidos. Na sequência, integra-se esses pequenos módulos simples para resolver problemas complexos.
Componentes seguem essa definição para sua construção, com a diferença que estão relacionados a objetos de negócio, dados, interfaces que combinadas resolvem os problemas apresentados.
Quando resolvemos criar um sistema de informação, utilizando a abordagem de componentes, será necessário primeiro mapear esses componentes em modelos conceituais, depois construi-los separadamente e, somente ao final, integrá-los para a solução do problema.
3
Introdução
01
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Aula 03
APLICANDO UML
1- Entender como os Modelos UML ajudam no Desenvolv. de SW por Componentes;
2- Estudar a Utilização de UML na Arquitetura de Sist. Modelados por Componentes;
3- Compreender como os Modelos UML Ajudam no Processo de Desenvolvimento e 
 Garantem mais Confiabilidade ao Conceito de Arquitetura de Sistemas.
Menu
01
02
03
04
05
06
07
08
09
10
O problema científico: Realização da pesquisa bibliográfica e sua discussão.
As técnicas para a pesquisa bibliográfica e sua discussão.
 
 
01
02
03
04
05
06
07
08
09
10
Quando pensamos em componentes a partir de suas interfaces, criamos um número maior de possibilidades de uso e reduzimos significativamente o número de mudanças futuras.
A partir de um objeto simples estruturado (componente), é necessário combinar funcionalidade e dados para resolver os problemas em sistemas computacionais.
O grande desafio na abordagem por componentes na arquitetura de sistemas está em conseguirmos identificar claramente as interfaces e como elas resolvem os problemas que se apresentam. Isso está relacionado às dependências entre componentes.
Pode até ser uma surpresa para alguns que, quando definem seus objetos, estão pensando somente na reutilização e não em como suas interfaces se relacionam em contextos variados.
Objetivo de Componentes
Objetos simples, combinando funcionalidades;
Identificação das interfaces dos componentes;
Pensar componentes a partir de suas interfaces aumenta as possibilidades de reuso;
Componentes para resolver problemas de forma natural – depende da experiência.
7
Fonte: https://www.arduino.cc
Sobre o segundo item das características dos componentes (próximo slide), como mostra a imagem para sistemas de automação, componentes eletrônicos têm as mesmas características de componentes de sistemas:
Fundamentos de um Componente
Objetivos
Arquitetura
Especificação 
Ex
01
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Aula 05
Identificação de Componentes
Menu
01
02
03
04
05
06
07
08
09
10
69
Entender a Importância da Identificação de Componentes para um Melhor Resultado na Arquitetura de Sistemas;
Estudar os Elementos que Compõe a Identificação de Componentes como Primeiro Processo da Metodologia aqui Apresentada;
Compreender a Relação entre a Identificação de Componentes e os Outros Processos da Metodologia Apresentada na Disciplina.
 
 
01
02
03
04
05
06
07
08
09
10
Aula 06
Interação de Componentes – Parte I
Menu
01
02
03
04
05
06
07
08
09
10
80
Entender a Importância das Definições de Interface e Interação de Componentes para um Melhor Resultado na Arquitetura de Sistemas;
Estudar como são Definidos e Implementados os Elementos de Interação de Componentes na Arquitetura de Sistemas;
Compreender como estes Elementos de Interação Contribuem para o Sucesso do Projeto.
 
 
01
02
03
04
05
06
07
08
09
10
Aula 07
Interação de Componentes – Parte II
Menu
01
02
03
04
05
06
07
08
09
10
Entender a Importância das Definições de Interface e Interação de 
 Componentes para um Melhor Resultado na Arquitetura de Sistemas;
2. Estudar como são Definidos e Implementados os Elementos de 
 Interação de Componentes na Arquitetura de Sistemas;
3. Compreender como estes Elementos de Interação Contribuem para o 
 Sucesso do Projeto.
 
 
01
02
03
04
05
06
07
08
09
10
Aula 09
Provisionamento e Construção – Parte I
Menu
01
02
03
04
05
06
07
08
09
10
120
Entender a Importância do Provisionamento e Construção de Componentes para um Melhor Resultado na Arquitetura de Sistemas;
Estudar os elementos que Compõe a Etapa de Construção de Componentes como parte Integrante da Metodologia Apresentada na Disciplina;
Compreender a relação entre Construção de Componentes e os Outros Processos.
 
 
01
02
03
04
05
06
07
08
09
10
O que não é um Componente
O fato de termos uma classe ou uma função escrita em uma linguagem de programação, compilada e instalada em nosso ambiente, por si só não atribui a este código a funcionalidade de um componente de software;
É necessário que tenhamos uma interface bem definida e que padrões de interação sejam suportados pelo componente, para ser classificado como componente.
10
01
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Aula 10
Provisionamento e Construção - Parte II
Menu
01
02
03
04
05
06
07
08
09
10
132
Continuar o entendimento da Importância do Provisionamento e Construção de Componentes para um Melhor Resultado na Arquitetura de Sistemas;
Estudar os elementos que Compõe a Etapa de Construção de Componentes como parte Integrante da Metodologia Apresentada;
Compreender a relação entre Construção de Componentes e os Outros Processos.
 
 
01
02
03
04
05
06
07
08
09
10
Componentes, no contexto da arquitetura de sistemas, são unidades de software estruturados de acordo com alguns princípios específicos.
Os princípios fundamentais que regem os componentes estão relacionados ao conceito de objetos, conforme descrito a seguir:
4
União de dados e funções
Um objeto de software consiste em dados que podem assumir valores e
funções que tratam esses dados. Os dados e funções devem ter uma 
ligação natural entre eles, formando o conceito de classe.
Encapsulamento
Conceito de esconder de quem vai usar a classe os detalhes de sua 
funcionalidade e de dados, deixando à mostra somente como acionar 
e o resultado a ser alcançado pelo acionamento.
Não importa para quem vai usar tal componente, como as coisas 
acontecem dentro dele, e, sim, se o resultado esperado foi alcançado.
Identidade
Cada componente encapsulado tem uma identidade única de dadose funções
e pode assumir estados pré-determinados.
Fundamentos de um Componente
Objetivos
Arquitetura
Especificação 
Ex
01
Fundamentos de Componentes
01
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Camadas da Arquitetura de Sistemas
13
Fonte: O Autor
01
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Níveis de Modelo
Um modelo de algo apresenta uma perspectiva ou visão resumida do que é do que permite aquela coisa;
É importante frisar que existem modelos conceituais mais fortes e modelos conceituais mais fracos.
Ex. Planta de Casa, Diagrama de Domínio de Software.
15
Categoria de Modelos
Modelo Conceitual – Independente do tipo de software ou de tecnologia, representam o problema a ser resolvido;
Modelo de Especificação – Representa os componentes desoftware a serem utilizados;
Modelo de Implementação – Informam os detalhes de implementação que devem estar presentes dentro dos códigos.
01
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Síntese da Aula
Vimos o conceito de componentes e como estes são definidos e interagem;
Apresentamos um exemplo de componente e definimos o que não é um componente;
Analisamos a especificação e implementação de componentes, quais os níveis de modelos no contexto da arquitetura de sistemas.
16
Próxima Aula
Definições e uso de Workflow;
O impacto do gerenciamento de processos;
As especificações de um Workflow.
02
01
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Atividade 1
17
Quando falamos de componentes na Arquitetura de Sistemas, estamos falando de objetos computacionais simples que podem ser ligados de maneira lógica para resolver problemas complexos. Neste contexto, podemos fazer um paralelo das imagens a seguir com este conceito?
Fonte: www.legosse.com.br
 
 
01
02
03
04
05
06
07
08
09
10
Introdução
Sempre que estamos iniciando em alguma atividade é muito importante que tenhamos um conjunto de informações iniciais, fornecidas por quem já tem experiência nestas atividades, para que o resultado seja positivo desde a primeira vez. 
Essas informações são chamadas de processos, que em conjunto, assumem a forma de metodologia.
19
O uso de metodologias nos garante um aumento na maturidade na condução dos projetos, mesmo quando os profissionais envolvidos não têm muita experiência. Isso se deve ao fato de as metodologias servirem de referência e de guia na condução dos trabalhos e nelas estarem contidas todas as boas práticas da área de referência.
Nesta aula, faremos contato com metodologias de gestão e metodologias de desenvolvimento e realizaremos a correlação entre as duas, seus usos e resultados a serem alcançados. Dessa maneira ficará evidente sua importância e sua aplicação no contexto da arquitetura de sistemas.
02
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Workflow
20
Fonte: O Autor
Workflow representa a metodologia de desenvolvimento de sistemas baseada na metodologia RUP.
Parte-se da ideia do sistema, em seguida efetua-se a coleta de requisitos que, após validados, são encaminhados para a análise.
Depois que os modelos conceituais de negócio são desenvolvidos, o processo é encaminhado para a especificação das funcionalidades e interfaces de sistemas.
Ao final desse processo, as especificações são encaminhadas para codificação pela equipe de desenvolvimento, para, em seguida, serem efetuados os testes integrados e, por último, a implantação do novo sistema.
02
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
21
Fonte: PMBoK 5ª Edição
Gerenciamento de Processos
Refere-se ao conjunto de conhecimentos que serão utilizados para guiar a condução do projeto de desenvolvimento de software.
Esses conjuntos de processos garantem que o resultado dos projetos será um sucesso, baseado nos grupos de processos que contém ações, distribuídas em 10 áreas do conhecimento da Gestão de Projetos, segundo o PMI®:
Iniciação;
Planejamento;
Execução;
Monitoramento e Controle;
Encerramento da Gestão.
Cada um dos grupos de processos se integra às áreas de conhecimento em uma sequência lógica que, quando seguida, viabiliza a execução do desenvolvimento com muito mais assertividade.
02
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
22
Gerenciamento de Processos
02
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
23
Fonte: 
PMBoK 5ª Edição
Gerenciamento de Processos
02
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
24
Fonte: 
PMBoK 5ª Edição
Gerenciamento de Processos
02
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
25
Fonte: PMBoK 5ª Edição
Gerenciamento de Processos
02
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
26
Fonte: PMBoK 5ª Edição
Gerenciamento de Processos
Conjunto de controles que deve ser desenvolvido em todas as etapas do projeto, da iniciação ao encerramento.
Gerenciar processos é melhorar a execução e o planejamento do projeto para garantir os 5 pilares: escopo, tempo, custo, qualidade e satisfação do cliente.
02
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
27
Diferenças entre métodos
Em alguns métodos de desenvolvimento, prega-se que os requisitos devam ser levantados até ser alcançada sua totalidade, independentemente do tempo que isso demore, com o objetivo de reduzir mudanças futuras.
Outros métodos pregam que os requisitos mínimos devam ser levantados para iniciar ondas de desenvolvimento, e, com o passar do tempo, chegam a situação ideal sem perder muito tempo com requisitos. A justificativa seria: já que os requisitos vão mudar mesmo, então não se deve perder tempo com isso.
Atenção
Aqui nesta aula, nós faremos uma abordagem intermediária, onde se gasta no máximo 5% do esforço total do projeto com levantamento de requisitos e, ao mesmo tempo, garante-se que eles tenham sido bem definidos e validados.
Isso somente é possível com a prototipação para validar requisitos em tempo de modelagem conceitual.
02
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
28
Fonte: O Autor
Levantamento de Requisitos
Fica claro que vão existir trabalhos de gestão e trabalhos de desenvolvimento.
Os dois tipos de trabalhos vão coexistir em workflows diferentes, que interagem e se integram para gerar um sistema muito mais assertivo do ponto de vista de funcionalidade e em conformidade com escopo, tempo, custo, riscos e qualidade.
FASES
ENTREGAS
02
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Outro ponto importante em uma metodologia é o conjunto de padrões a serem seguidos para garantir o uso de boas práticas e que as funcionalidades sejam construídas conforme seus requisitos.
Metodologia de Desenvolvimento
A metodologia de desenvolvimento tem como objetivo guiar o processo de produção de software, de forma que os componentes gerados tenham alta qualidade, produzidos mais rapidamente garantindo sua efetividade;
É objetivo de uma metodologia definir de forma clara “quem”, “o que”, “quando”, “como”, e “onde” executar as ações de desenvolvimento de software.
29
Quem?
O que?
Quando?
Como?
Onde?
02
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Metodologia de Gestão
A Metodologia de Gestão deve contemplar quantas fases forem necessárias a garantir que todas as áreas de conhecimento serão abordadas e de forma a garantir que escopo, tempo, custos e qualidade atinjam os níveis de definidos pelas corporações como sendo os ideais.
30
As fases da metodologia devem seguir um modelo interativo e incremental. Nele, cada fase é dividida em uma ou mais interações que visam uma entrega ao final. Cada entrega de cada fase deve garantir que o resultado está como grau de maturidade necessário àquele momento do projeto.
 Exemplo das fases de um processo de desenvolvimento, testes e manutenções dos software
02
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Grupos alternativos de interface para os componentes podem ser utilizados e este é o momento de pensar as integrações referenciais entre componentes para que os problemas sejam minimizados e as integridade sejam respeitadas. 
Interação entre Componentes
A interação de componentes define como cada uma das operações do sistema será alcançada, utilizando a arquitetura de componentes. Usa-se a interação entre os modelos para descobrir as operações nas interfaces de negócios. Quanto mais interações são consideradas, operações e padrões de uso comuns sãoconseguidos e que passam a poder ser reutilizados.
31
A interação de componentes é o momento onde todos os fatores do sistema são levantados, com uma clara compreensão das dependências entre eles, chegando-se até o nível mais detalhado 
 de operações.
02
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
A arquitetura não deve ser efetivamente alterada nesta fase. Essa tarefa de especificação detalhada só deve ser realizada quando a definição da arquitetura estiver estável e todas as operações das interfaces forem identificadas.
O ato de escrever as regras detalhadas para cada operação pode ajudar você a descobrir parâmetros que estejam faltando ou informações que precisem ser complementadas, mas a ênfase está em identificar cada detalhe em uma arquitetura estável.
Especificação de Componentes
É na fase final da especificação que ocorrem as especificações detalhadas das operações e as suas restrições. Para uma dada interface devem-se definir os potenciais estados dos componentes e suas assinaturas, em seguida, especificar as condições prévias e posteriores para as operações. Além disto são aqui levantadas as regras de negócios e restrições.
32
Além desses detalhes na especificação da interface, esta etapa também apresenta a especificação de restrições, que são específicas para um componente e determinam como as definições de tipo de interfaces individuais vão corresponder a cada elemento no contexto desse componente.
02
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Síntese da Aula
Vimos o conceito de metodologia de gestão na Arquitetura de Sistemas;
Apresentamos o uso de metodologias de desenvolvimento e abordamos dois exemplos dentro da Arquitetura de Sistemas;
Analisamos a integração entre as duas e seus resultados no que diz respeito a Arquitetura de Sistemas.
33
Próxima Aula
Utilização de UML na Arquitetura de Sistemas;
Seu impacto na criação e integração dos componentes de sistemas.
02
03
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
I. Quais são as três características de um projeto de desenvolvimento de software?
34
Atividade 2 (w)
Contínuo, Mensurável e Realizável
Temporário, Mensurável e Realizável
Temporário, Gera um resultado único e Elaborado Progressivamente
Gera um resultado único, Mensurável e Realizável
II. Qual das respostas abaixo melhor define o conceito de ciclo de vida de projeto de desenvolvimento de software?
As partes do projeto.
Iniciação, planejamento, execução, monitoramento e controle e encerramento.
As etapas que compõem o desenvolvimento de um projeto.
As operações de um projeto.
III. O processo de decomposição para definição do escopo de um projeto de desenvolvimento de software é uma técnica utilizada para construir um(a):
Diagrama de rede de precedência
Método de diagrama de caminho crítico
Estrutura Analítica do Projeto (EAP)
Análise de variação
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Quando falamos de metodologia estamos falando de método para se executar algo. Existem métodos para execução ligados ao produto que se quer gerar e métodos para execução ligados a gestão do que se quer gerar. A diferença entre eles está nos resultados de cada um. 
35
Atividade 2 (ppt)
Por exemplo, se seguirmos uma receita para fazer 1000 salgados estamos usando uma metodologia de produto e se ao mesmo tempo monitorarmos e controlarmos o tempo e o custo da produção estaremos utilizando uma metodologia de gestão. As duas servem para um melhor resultado do que queremos fazer, mas tem focos diferentes. 
Na imagem abaixo você consegue identificar o uso destas duas metodologias?
Fonte: slideplayer.com.br
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Uma metodologia de desenvolvimento de sistemas gera um conjunto de entregas que começam em modelos conceituais de negócio, que vão evoluindo para modelos de sistemas até chegarem à implementação e construção do sistema. Seguir esse conjunto de etapas ajuda muito para que os sistemas sejam mais eficazes e eficientes.
Como visto na aula anterior, o uso de metodologias nos garante o aumento na maturidade na condução dos projetos, mesmo quando os profissionais envolvidos não têm muita experiência. Isso se deve ao fato de as metodologias servirem de referência e de guia na condução dos trabalhos e nelas estarem contidas toda a boa prática da área de referência.
Nesta aula, faremos contato com a metodologia Unified Modeling Language (UML) para desenvolvimento de sistemas e veremos como seus modelos podem ser extremamente úteis no contexto da arquitetura de sistemas.
37
INTRODUÇÃO 
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Por que precisamos de UML na AS
38
Fonte: O Autor
UML foi concebida para modelagem de projeto de sistemas orientado a objetos.
Esse conceito tem uma relação direta com o desenvolvimento orientado a componentes, do conceito de arquitetura de sistemas.
Mas lembre-se que o foco desta disciplina está nos aspectos externos de componentes de sistemas e não no desenvolvimento dos módulos internos, mesmo que eles também possam ser modelados utilizando UML.
Neste contexto, um dos itens que usaremos em nossa disciplina é a modelagem de pacotes de interface, em que os componentes são modelados sem a preocupação com a codificação, mas, sim, com a junção dos elementos do sistema para definir sua lógica de funcionamento.
Veremos nesta aula que UML pode nos ajudar a definir e projetar a arquitetura do sistema, servindo como ferramenta de suporte à técnica de modelagem por componentes da arquitetura de sistemas.
Não vamos aqui definir ou indicar uma ferramenta de modelagem UML específica, já que todas as ferramentas que se propõem a isso atendem aos objetivos propostos nesta disciplina.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
UML e Suas Generalizações
39
Como atingir conformidade em requisitos com UML?
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Conformidade de Requisitos
40
Ao definirmos nossos componentes, é necessário que sejam geradas as especificações de comportamento destes componentes. 
É através destes comportamentos que vamos garantir que as funcionalidades levantadas, estejam implementadas e em conformidade com os requisitos validados pelos partes interessadas.
Ao definirmos o comportamento dos componentes, estamos sendo mais precisos em relação a integração do modelo e completos em relação a sua funcionalidade.
Ao efetuarmos os testes de comportamento, durante a homologação, estamos garantindo que a aplicação está 
 em conformidade com os requisitos.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
DIAGRAMA DE INTERAÇÃO DE COMPONENTES - É um diagrama de colaboração utilizado para interação entre componentes.
Técnicas de Modelagem UML
Veremos aqui como usaremos UML para modelar os vários artefatos necessários na modelagem de sistemas por componentes.
Estes artefatos vão servir aqui no contexto de nossa disciplina para modelar o negócio e o sistema, na forma Edos componentes que compõem a Arquitetura do Sistema.
41
Fonte: O Autor
Exemplo
Para modelarmos os conceitos de negócios, usaremos o diagrama de classes, pois ele descreve o modelo de conceito do negócio.
Outro exemplo é o diagrama de especificação de interface que apresenta a especificação das interfaces. Nesse mesmo caminho temos os seguintes modelos:
diagrama de modelo de negócio,
diagrama de componentes e diagrama de implantação.
Temos também as seguintes variações:
DIAGRAMA DE FUNCIONALIDADES DE INTERFACE - Descreve o modelo de negócio, suas interfaces e as regras de funcionalidades para essas interfaces.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Modelo Conceitualde Negócio
O modelo conceitual de negócio não é um modelo de software, mas sim um modelo de informação que define o domínio do problema. Visa a identificar e definir as relações existentes dentro do negócio. Usaremos o diagrama de classe UML para representá-lo, mas é importante ficar claro que a ferramenta é independente do modelo, ou seja, poderemos generalizar cada classe do modelo e amarrá-las do ponto de vista de restrições. Depois, quando formos definir os pacotes, poderemos separar o negócio do sistema.
42
Modelo Conceitual de Sistemas
Diagrama de Casos de Uso;
Descrição de Casos de Uso;
Diagrama de Domínio.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Modelo Conceitual de Negócio
Os modelos conceituais de negócio, normalmente, definem classes conceituais e suas associações e, como previsto nesse modelo, as associações terão suas multiplicidades.
O modelo pode conter atributos, caso isso seja significativo para explicar o negócio, mas seu uso não é obrigatório. A ênfase desse modelo é definir o domínio e não normalizar suas relações.
43
Modelo Conceitual de Sistemas
Diagrama de casos de uso
O diagrama de casos de uso é modelo que define a funcionalidade do sistema a ser desenvolvido e contém os seguintes elementos:
Podem ser associações entre atores e objetos, generalização entre atores ou generalizações (extends e includes) entre objetos.
Os relacionamentos ajudam a representaro negócio dentro do diagrama de casos de uso. 
Representados por um boneco e um rótulo com o nome do ator., que é um usuário humano ou um outro sistema computacional.
Representados por uma elipse e um rótulo com o nome do objeto. Um objeto define uma grande função do sistema. A implicação é que uma função pode ser estruturada em outras funções e, portanto, um objeto pode ser explodido em níveis mais baixos ou detalhados.
O primeiro tipo de relacionamento que veremos é a associação, que representa a que objeto(s) os atores se relacionam ou, ainda, como um segundo ator se relaciona com os mesmos objetos do primeiro, a que está relacionado.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Relação entre objetos
Quando estamos falando da relação entre objetos, temos o include, que informa que o objeto A é parte do objeto B, caso exista entre eles uma relação do tipo include partindo de A.
Outro tipo de relação entre objetos é o extends. Esse tipo de relação representa que o objeto D é uma extensão do objeto A, compartilhando suas funcionalidades e implementando algumas novas, que existem somente para ele.
44
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Descrição de casos de uso
Descrevem, geralmente na forma textual, as funcionalidades existentes no diagrama de casos de uso, na forma como seus atores interagem com os objetos do sistema.
Descrevem também como os objetos se relacionam entre si e, por último, a funcionalidade dos objetos.
45
Fonte: O Autor
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Diagrama de domínio
O diagrama de domínio é uma variação do diagrama de classes e utiliza quase a mesma notação. Representa o domínio de dados a serem tratados e armazenados pelo sistema, ou seja, os elementos DAO do sistema. Garante uma visão sistêmica entre os componentes de interface e os componentes dedados do sistema.
46
Fonte: O Autor
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Especificação de Interface
A especificação de interfaces de componentes é a forma de descrever como os elementos que quiserem utilizar estes componentes devem acessá-lo:
sua assinatura, com os parâmetros e retornos oferecidos
quais os atributos que ele manipula e 
quais as funções disponíveis para uso.
47
Os componentes podem ser agrupados em pacotes, que reúnem componentes com funcionalidades e atributos complementares, dentro do conceito de família de componentes.
Estes pacotes vão apresentar as informações necessárias para que possam ser utilizados no conceito de arquitetura de componentes, por meio de suas funcionalidades e operações.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Síntese da Aula
Vimos os elementos de UML e como estes contribuem na Arquitetura de Sistemas;
Apresentamos o uso destes modelos para o desenvolvimento de sistemas com o conceito da Arquitetura de Componentes;
Analisamos a integração destes modelos e seus resultados no que diz respeito a Arquitetura de Sistemas.
48
Próxima Aula
A importância de Requisitos na Arquitetura de Sistemas;
O Impacto de Requisitos no desenvolvimento de sistemas por componentes.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Os modelos conceituais utilizados na UML garantem que os elementos de negócio, referente ao sistema que está sendo desenvolvido, sejam completamente mapeados e garantem também que haja uma migração consistente dos modelos conceituais de negócio para os modelos conceituais de sistemas.
Desta maneira conseguimos que nossos sistemas atendam a seus objetivos e sejam desenvolvidos, segundo o melhor conjunto de boas práticas. 
Você acha que podemos fazer um paralelo entre este conceito e a construção de um equipamento, atendendo as normas da ABNT e definições do INMETRO?
49
Atividade 3 (ppt)
Fonte: http://www.inmetro.com.br
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Atividade 3 (w)
50
Questão 1:
UML é uma linguagem de modelagem de uso geral que pode ser usada com os principais métodos de objetos e de componentes, podendo ainda ser aplicada a todos os domínios de aplicação e plataformas de implementação;
Um relacionamento estendido entre casos de uso significa que o caso de uso base incorpora implicitamente, sob alguma condição, o comportamento de outro caso de uso.
Um relacionamento de inclusão entre casos de uso significa que o caso de uso base incorpora explicitamente o comportamento de outro caso de uso.
Relacionamentos de inclusão e extensão são representados pela mesma notação do relacionamento de dependência, com a seta apontada para o caso de uso base.
A alternativa completamente CORRETA é:
A) I – II - III
B) I – III – IV
C) II – III – IV
D) I – III – IV
E) I – II – III -IV
 
 
01
02
03
04
05
06
07
08
09
10
A) Diagrama de mensagens
B) Diagrama de sequência
C) Diagrama de execução em linha de tempo
D) Diagrama de estado
E) Nenhuma das respostas anteriores
Atividade 3 (w)
Questão 2:
Diagramas de casos de uso são compostos por atores, casos de uso e seus relacionamentos;
Diagramas de classes são compostos por classes e seus relacionamentos;
Diagramas de sequência são compostos por objetos e suas trocas de mensagens, ou seja, chamadas de métodos para outros objetos;
Considerando as sentenças acima, marque a opção correta:
A) Somente as afirmativas I e III são verdadeiras.
B) Somente as afirmativas II e III são verdadeiras. (objetos = casos de uso)
C) Somente as afirmativas I e II são verdadeiras.
D) As afirmativas I, II e III são verdadeiras.
E) Somente a alternativa I é verdadeira.
Questão 3:
O diagrama UML, que apresenta um conjunto de objetos envolvidos em um cenário e a especificação das mensagens trocadas entre esses objetos ao longo de uma linha de tempo, é chamado de:
51
 
 
01
02
03
04
05
06
07
08
09
10
A) F, V e F
B) F, V e V
C) V, F e F
D) V, V e F
E) F, F e V
Atividade 3 (w)
Questão 4: Em UML, são exemplos de diagramas responsáveis por representar o aspecto estrutural de um software:
A) Diagrama de classes e diagrama de pacotes
B) Diagrama de entidade relacionamento e diagrama de pacotes
C) Diagramas de classes, diagrama de pacotes e use case
D) Use case e diagrama de classes
E) Nenhuma das respostas anteriores
Questão 5:
A atividade de análise de requisitos procura descobrir o que os stakeholdersde um projeto de sistema de software querem que o sistema faça. Para ajudar na comunicação com os usuários e clientes vários diagramas da UML podem ser utilizados.
Com relação à utilização dos diagramas da UML na atividade de análise de requisitos, analise se as sentenças a seguir são faltas ou verdadeiras e depois assinale a opção correta:
( ) Diagrama de classes desenhado a partir da perspectiva conceitual é uma boa maneira de construir um vocabulário rigoroso do domínio.
( ) Um diagrama de atividades é recomendo para exibir o fluxo de trabalho da organização, mostrando como o software e as atividades humanas interagem.
( ) Um diagrama de objetos é indicado para representar um conceito que tenha um ciclo de vida com vários estados e os eventos que mudam esses estados.
52
 
 
01
02
03
04
05
06
07
08
09
10
Atividade 3 (w)
Questão 6:
A UML é uma famosa linguagem usada para análise e projeto orientado a objetos. O seu diagrama de sequência tem como características, EXCETO:
A) Geralmente é construído a partir dos Casos de Uso.
B) Usado para representar interações entre objetos de um cenário, realizadas através de operações ou métodos.
C) Dá ênfase ao fluxo de controle de uma atividade para outra.
D) Dá ênfase à ordenação temporal em que as mensagens são trocadas entre os objetos de um sistema.
E) Pode ser facilmente transformado em um Diagrama de Colaboração.
53
 
 
01
02
03
04
05
06
07
08
09
10
Podemos definir requisitos como condição ou exigência indispensável para um fim, uma ocupação e/ou uma realização. Sob esta ótica e as definições de Arquitetura de Sistemas é que vamos desenvolver o conteúdo desta aula.
Introdução
Algumas metodologias tratam requisitos de forma menor, entendendo que como estes vão mudar mesmo até o fim do projeto, não valeria a pena perder muito tempo neste trabalho. Outras metodologias, ao contrário, entendem que requisitos devem ser levantados completamente até a exaustão, independente do tempo necessário para isto.
55
Aqui nós veremos um conjunto de ações intermediárias destes dois conceitos. Faremos a apresentação do conceito que levantar muito bem os requisitos, é muito importante, e que estes devem ser validados através do conceito de prototipação e ao mesmo tempo não devem durar mais que 5% do tempo total do projeto.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
CONCEITO INTERMEDIÁRIO
Como dissemos, nesta disciplina, usaremos um conceito intermediário, em que o esforço total no processo de requisitos não pode ultrapassar os 5% do esforço total do projeto.
Além disso, os requisitos devem ser validados com mecanismo que seja eficiente e eficaz para esse fim. 
Essas definições de esforço e dos mecanismos veremos mais detalhadamente nos itens a seguir.
Diferenças no levantamento dos requisitos:
DIAGRAMA DE FUNCIONALIDADES DE INTERFACE
Algumas metodologias tratam requisitos de forma menor, pois entendem que, como mudarão até o fim do projeto, não vale a pena perder muito tempo com eles, nem dedicar muito esforço nesse trabalho.
Nesses casos, os usuários e a equipe de desenvolvimento são chamados para novas definições e validações em cada parte do sistema que fica pronta.
Lembrando que para essas metodologias, os modelos conceituais de negócios e de sistemas são suficientes para que todos os envolvidos possam, cada um dentro de sua área de conhecimento, validar o que foi feito até ali.
Isso não é uma verdade absoluta, pois dificilmente um usuário leigo vai conseguir validar requisitos frente a modelos conceituais (negócio e sistemas) feitos para os iniciados em arquitetura de sistemas.
56
REQUISITOS VISTOS COM MUITA IMPORTÂNCIA
Outras metodologias, ao contrário, entendem que os requisitos devem ser levantados completamente até a exaustão, independentemente do tempo necessário para isso.
Nesse caso, o processo se torna moroso, caro e muito frustrante para os usuários, já que eles têm de participar de intermináveis reuniões de definição, sem que os resultados sejam visíveis.
O mesmo ocorre com a equipe de desenvolvimento, que acaba por gastar muita energia e foco em algo que demora a ficar consistente.
No caso dessas metodologias, a validação de requisitos é feita através de textos longos e cansativos que dificilmente levarão os usuários a um correto entendimento de seus sistemas e a uma correta e consistente validação dos requisitos.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Definição de Requisitos
57
Requisitos de sistemas fazem parte da família de requisitos e compartilham sua definição básica, porém estão associados a funcionalidades e tipos que veremos detalhadamente mais à frente.
O conhecimento adquirido aqui servirá para que nossas partes interessadas e nossas equipes de desenvolvimento não enfrentem o problema apresentado no quadrinho.
Podemos definir requisitos como condição ou exigência indispensável para um fim, uma ocupação e/ou uma realização. Sob esta ótica e as definições de Arquitetura de Sistemas é que vamos desenvolver o conteúdo desta aula.
Fonte: Domínio publico – Adaptação do Autor
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Esforço Máximo e Resultados Esperados
58
É de se supor que gastar somente 5% do esforço do projeto em levantamento e validação de requisitos, como estamos propondo aqui nesta disciplina, nos leve a estar mais próximos das metodologias que dão pouca importância aos requisitos. Mas posso garantir que isto está longe de ser verdade.
Essa delimitação de esforço máximo está associado a direcionar os trabalhos ao que realmente é importante para levantamento e validação de requisitos e também com o uso de ferramentas e técnicas baseadas em boas práticas de gestão e desenvolvimento.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
IMPLÍCITOS E EXPLÍCITOS
Para os dois tipos de requisitos devemos, ainda, separá-los em:
• Requisitos implícitos, que são aqueles que o usuário vai conseguir externar e repassar à equipe de desenvolvimento;
• Requisitos implícitos, que são aqueles que o usuário não vai conseguir repassar, ou por falta de conhecimento ou por entender ser muito óbvio e julgar que não vale a pena falar.
Tipos de Requisitos
59
Fonte: O Autor
FUNCIONAIS E NÃO FUNCIONAIS
Podemos separar os requisitos em duas categorias:
• Requisitos funcionais: tratam do que o sistema deve fazer, de sua funcionalidade;
• Requisitos não funcionais: tratam dos critérios que suportam os requisitos funcionais.
Como, por exemplo, qualidade para o software, os requisitos de performance, usabilidade, confiabilidade, robustez etc. Ou, então, os critérios relativos à qualidade para o processo de software ou uso de metodologias.
Para complementar as informações faltantes (requisitos implícitos), é necessário que a equipe de desenvolvimento tenha um framework de conhecimentos bem vasto. Dessa maneira, é capaz de preencher as lacunas, tanto para requisitos funcionais como para requisitos não funcionais.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Framework de Conhecimentos em TI como base para Requisitos
60
O framework de conhecimentos em TI que aqui referenciamos refere-se aos conhecimentos que vão além dos requisitos, como por exemplo: Infraestrutura de Hardware; Banco de Dados; Comunicação; Confiabilidade do Sistema; Nível de criticidade das operações; Desempenho do Sistema; Adequações legais e éticas; Segurança.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Técnicas de Levantamento de Requisitos
61
Reuniões de levantamento de requisitos.
 Duração máxima de 2 horas;
Separar as reuniões por camada de desenvolvimento, conforme previsto no conceito de arquitetura de sistemas (Dados, Negócios e Interface);
Convocação de usuários que consigam responder sobre cada uma das camadas;
No máximo 3 reuniões com cada grupo de usuários.
Ao finaldesses passos você terá os requisitos levantados de forma consistente, sem excesso de tempo.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Pré-Validação de Requisitos
62
Convoque uma reunião de 2h com as partes interessadas do seu projeto;
Separe os partes interessadas em grupos de 4;
Gere uma cópia do documento de requisitos para cada um dos grupos;
Cada grupo deve revisar o documento por, no máximo, 15 minutos;
Fazer com que todos os grupos revisem todas as cópias dos documentos;
Ao final destes passos você terá seus requisitos validados por todos os partes interessadas no projeto, além disto conseguira o apoio e patrocínio necessário, pois todos são responsáveis pelo documento gerado e não somente a equipe de desenvolvimento. A nomenclatura técnica desta técnica é: “Técnica de Delphi”
PROTOTIPAÇÃO
A prototipação é a melhor maneira de se validar requisitos, com esta técnica conseguimos criar um modelo conceitual forte para ser validado pelos partes interessadas.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Modelos Conceituais
63
Fonte: O Autor
o que é um conceito de modelo conceitual forte?
A melhor maneira de responder isso é fazer um comparativo entre modelos conceituais de outras áreas de conhecimento que tenha modelos conceituais fortes, como os modelos conceituais de negócio e de sistemas. A partir dessa comparação, fica mais fácil entender o conceito proposto.
Por exemplo, se usarmos como base para exemplificar um modelo conceitual forte, podemos partir da arquitetura e de uma planta de casa:
Não precisamos ser arquitetos para conseguir entender o conceito proposto a partir da planta (modelo). Isso representa a definição de um modelo conceitual forte.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Quando olhamos para os diagramas de casos de uso, ou de classes, de objetos ou de componentes, verificamos que é necessário ser iniciado na arquitetura de sistemas para entender e validar se estão em conformidade com as necessidades do sistema a ser desenvolvidos (requisitos).
Isso representa um modelo conceitual fraco, ou seja, precisa de explicação externa para ser entendido.
Modelo Conceitual Fraco
64
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Como criar para a TI um modelo conceitual forte?
65
Como criar para área de TI um modelo conceitual forte, que seja facilmente entendido pelas partes interessadas e, ao mesmo tempo, esteja em adequação às boas práticas da arquitetura de sistemas?
A resposta está na prototipação de sistemas!
É com o protótipo que as partes interessadas vão conseguir facilmente verificar se seus requisitos estão presentes na definição do que será feito.
É importante deixar claro às partes interessadas leigas que o protótipo é somente a casca e serve para validar funcionalidade e que ainda existe muito trabalho a ser feito para que o sistema fique pronto.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Como resultado final deste conjunto de processos, espera-se que todas as necessidades dos partes interessadas estejam presentes no sistemas desenvolvidos, na forma de funcionalidades, restrições e uso de tecnologias.
É de responsabilidade da equipe de desenvolvimento o atingimento dos resultados esperados.
Modelagem conceitual a partir de requisitos
66
Fonte: O Autor
Modelagem conceitual de negócios e de sistemas a partir dos requisitos validados
Agora que temos todos os requisitos levantados e validados de forma consistente e confiável pelas partes interessadas, podemos iniciar os trabalhos de modelagem conceitual de negócios e de sistemas.
Essa modelagem será feita de acordo com os elementos estudados na aula anterior.
Resultados Esperados
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Vimos o conceito de requisitos dentro da Arquitetura de Sistemas;
Apresentamos as boas práticas na definição de requisitos no desenvolvimento de Sistemas;
Analisamos seus resultados e como estes resultados podem melhorar o resultado dos projetos.
67
Síntese da Aula
Próxima Aula
Identificação de Componentes na Arquitetura de Sistemas;
Seu impacto no desenvolvimento de sistemas por componentes.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Atividade 4 (ppt)
68
Nesta aula vimos a importância de requisitos para o sucesso do desenvolvimento de sistemas de acordo com os conceitos da Arquitetura de Sistemas. Mas do ponto de vista de usuário, você acha que podemos associar os requisitos de sistemas a imagem a seguir? 
Fonte:
 http://ufpe.com.br/cienciadacomputacao/requisitos
 
 
01
02
03
04
05
06
07
08
09
10
Identificar componentes é o primeiro processo da metodologia apresentada por esta disciplina, e visa fazer com que o Arquiteto de Sistemas tenha um processo formal em que vai avaliar todas as estruturas, componentes e módulos disponíveis para a construção do modelo do sistema a ser desenvolvido.
Nesta aula então, apresentaremos a maneira que o Arquiteto de Sistemas deve lidar com a identificação de componentes, e a sua relação os resultados a serem alcançados. Desta maneira ficará evidente sua importância de sua aplicação no contexto da Arquitetura de Sistemas.
A identificação de componentes é o primeiro processo da metodologia apresentada por esta disciplina, que está baseada nas boas práticas da Arquitetura de Sistemas, e tem por objetivo criar uma visualização inicial de todos os elementos envolvidos (modelos, métodos, objetos, componentes, etc...), como estes são integrados.
70
INTRODUÇÃO 
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
71
A identificação de componentes é o primeiro processo da metodologia apresentada por esta disciplina, que está baseada nas boas práticas da Arquitetura de Sistemas, e tem por objetivo criar uma visualização inicial de todos os elementos envolvidos (modelos, métodos, objetos, componentes, etc...), como estes são integrados.
Identificação de Componentes
Fonte: O Autor
Os artefatos gerados a partir deste primeiro processo são, Interface de Negócios, Especificação de Componentes e Arquitetura do Sistema, Interface de Sistemas e o Modelo de Negócios. 
Veremos a seguir como cada sub processo é desenvolvido e o que devem conter cada um dos artefatos gerados.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Artefatos e subprocessos de desenvolvimento do modelo de negócios
Veja a seguir a definição dos artefatos, como cada subprocesso é desenvolvido e o que devem conter cada um dos artefatos gerados.
Modelo de Negócio
72
Temos que separar o modelo de negócios em grandes grupos que estão associados as seguintes perguntas: 
Como – Definem os recursos chaves, as atividades chave e os componentes prontos que podem ser utilizados no novo sistema;
O que – Define qual ou quais problemas o sistema deve resolver depois que ficar pronto;
Para Quem – Definem os principais usuários do sistema, quais os seguimentos de atuação do cliente que o sistema vai rodar e quais os elementos de infraestrutura devem ser utilizados pelo sistema a ser desenvolvido;
Quanto – Informações sobre custo computacional e criticidade do sistema e quais os benefícios se espera alcançar com o sistema a ser desenvolvido
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Artefato Modelo de Negócios
73
Fonte: O Autor
Baseado no modelo CANVAS de modelagem de negócios, é gerado a partir do molde proposto pela metodologia que estamos aplicando nesta disciplina.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
74
Este subprocesso tem como objetivo a identificação, via modelo, das interfaces que irão mapear as funcionalidades do sistema em relação a implementação do negócio a ser resolvido como osistema a ser desenvolvido.
Identificação de Interfaces de Negócio
Fonte: O Autor
Artefato Identificação de Interfaces de Negócio
O artefato gerado será um modelo que apresente todas as classes do sistema a ser desenvolvido e suas interfaces de utilização, mapeando como os atores farão os acessos ao sistema e que tipo de funcionalidade estará disponível para cada um deles. Informações mapeadas abaixo:
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Identificação de Interfaces de Sistemas e Regras de Negócio
75
Este subprocesso identifica como os componentes de sistema serão interligados para resolver o proposto no modelo de negócio. É necessário que todos os elementos estejam mapeados e suas ligações definidas, de maneira a conseguirmos uma visão sistêmica entre os elementos e como estes resolvem as regras de negócio.
Artefato Interfaces de Sistemas
O artefato gerado aqui, como mostra a imagem, traduz a necessidade de identificação dos componentes disponíveis e como eles serão interligados e resolverão as regras de negócio, para o novo sistema a ser desenvolvido.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
76
Especificação de Componentes e Arquitetura de Sistemas
Artefato Especificação de Componentes e Arquitetura
Fonte: O Autor
A partir da identificação das interfaces e da solução das regras de negócios, feitas no subprocesso anterior, é possível definir quais componentes já estão prontos e quais deverão ser desenvolvidos.
Todas essas informações devem estar representadas no artefato gerado a seguir.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Vimos o conceito de identificação de componentes dentro da Arquitetura de Sistemas;
Apresentamos as boas práticas na identificação de componentes no desenvolvimento de Sistemas;
Analisamos seus resultados e como estes resultados podem melhorar o resultado dos projetos.
77
Síntese da Aula
Interação de Componentes na Arquitetura de Sistemas;
Seu impacto no desenvolvimento de sistemas por componentes.
Próxima Aula
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Sobre as características da engenharia de componentes, a alternativa INCORRETA é:
78
Atividade 5 (ppt)
A) Os riscos são menores ao usar um componente já existente em relação ao desenvolvimento de algo a partir do zero.
B) Há aumento da produtividade, tendo em vista a redução de esforços pela equipe de desenvolvimento, seguindo a ideia “Crie uma vez, use onde quiser”.
C) A qualidade e confiabilidade do produto são maiores, pois o componente reutilizado já foi testado e aprovado.
D) Mesmo no caso de componentes comercias, há sempre o acesso ao código-fonte e não há a preocupação com direitos autorais e licenças.
E) Resistência da parte das equipes de desenvolvimento, pois exige forte padronização (investimento de tempo e controle de qualidade) e documentação (investir mais tempo nos artefatos). A adoção de novas práticas de desenvolvimento geralmente encontra forte resistência a mudanças por parte da equipe.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Atividade 5
79
 
 
01
02
03
04
05
06
07
08
09
10
Quando conseguimos definir claramente como será feita a interação entre os componentes de um sistema, ao utilizarmos os conceitos de Arquitetura de Sistemas, conseguimos gerar um ambiente mais assertivo no desenvolvimento destes sistemas.
Nesta aula então, apresentaremos como lidar comas interfaces de componentes e como estas nos auxiliam na complexa tarefa de modelagem de sistemas por componentes e a sua relação os resultados a serem alcançados. Desta maneira ficará evidente sua importância e sua aplicação no contexto da Arquitetura de Sistemas.
81
INTRODUÇÃO
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
82
A modelagem de interação de componentes é uma técnica de modelagem do comportamento dos componentes em relação ao problema a ser resolvido. Vamos usá-la aqui para definir as várias interações que precisam ocorrer dentro do sistema, para refinar as definições de interface existente, para identificar como as interfaces serão utilizadas, além de descobrir novas interfaces e operações.
Interação de Componentes
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
83
Fonte: O Autor
Identificação de Componentes
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
84
Neste momento o modelo de negócios é validado e as operações são representadas, de maneira que todas relações de funcionamento do negócio que o sistema proposto está se propondo a resolver, além de proporcionar o mapeamento das operações que este modelo de negócio representa.
Definir Operações de Negócios
O artefato de operações de negócio é a parte da modelagem de processos de negócios focada nas operações resultantes deste negócio, pois fornece uma solução clara e adaptável para capturar as especificações operacionais dos processos de negócio.
Fonte: msdn.microsoft.com
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
85
Refinar as regras de negócio, é o sub processo responsável por revistar o modelo de negócios, alterando e adaptando os elementos na medida das necessidades. Visto que agora temos as informações das operações de negócio mapeadas e definidas. 
Refinar Interfaces e Regras de Negócio
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
86
Fonte: O Autor
Refinar Interfaces e Regras de Negócio
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
87
Neste sub processo também se espera que o Arquiteto de Sistemas faça um refinamento do modelo feito previamente, com as informações de operações e do modelo de negócios mapeadas e definidas de forma definitiva;
Refinar Definição de Componentes e Arquitetura
Fonte:O Autor
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
88
Neste contexto teremos os três sub processos desta aula (DEFINIR OPERAÇÕES DE NEGÓCIOS, REFINAR INTERFACES E REGRAS DE NEGÓCIO e REFINAR DEFINIÇÃO DE COMPONENTES E ARQUITETURA), servindo como mecanismos de garantia da qualidade e de assertividade no resultado do novo sistema a ser desenvolvido, dentro do contexto da Arquitetura de Sistemas.
Processos da Aula
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Vimos os conceitos de interação decomponentes dentro da Arquitetura de Sistemas;
Apresentamos as boas práticas na definição e de identificação de interfaces no desenvolvimento de Sistemas;
Analisamos seus resultados e como estes resultados podem melhorar o resultado dos projetos.
89
Síntese da Aula
Continuação na interação de Componentes na Arquitetura de Sistemas;
Seu impacto no desenvolvimento de sistemas por componentes.
Próxima Aula
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Nesta aula vimos a importância da definição dos elementos de interface dos componentes e como estes propiciam uma visão ampla e assertiva na hora de modelarmos a integração entre os componentes. Mas do ponto de vista do Arquiteto de Sistemas, você acha que podemos associar os elementos de interação de componentes com a imagem a seguir? 
90
Atividade 6 (ppt)
Contínuo, Mensurável e Realizável
Temporário, Mensurável e Realizável
Temporário, Gera um resultado único e Elaborado Progressivamente
Gera um resultado único, Mensurável e Realizável
Fonte: O Autor
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Atividade 6
91
 
 
01
02
03
04
05
06
07
08
09
10
Introdução
93
Quando conseguimos definir claramente como será feita a interação entre os componentes de um sistema, ao utilizarmos os conceitos de Arquitetura de Sistemas, conseguimos gerar um ambiente maisassertivo no desenvolvimento destes sistemas.
Nesta aula então, apresentaremos como lidar comas interfaces de componentes e como estas nos auxiliam na complexa tarefa de modelagem de sistemas por componentes e a sua relação os resultados a serem alcançados. Desta maneira ficará evidente sua importância e sua aplicação no contexto da Arquitetura de Sistemas.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
94
A função do arquiteto de sistemas, é abstrair toda a complexidade do sistema em elementos encapsulados, de maneira de que o usuário final tenha um sistema amigável e de fácil uso, e que ao mesmo tempo resolva todos os problemas propostos, sem que este perceba a complexidade embutida na aplicação.
Complexidade de Sistemas
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
95
Do ponto de vista do arquiteto de sistemas: bancos de dados, servidores, clientes, filtros, um ou mais componentes, dentre outros, e a interação entre eles pode ocorrer através de chamadas de procedimentos, acesso a variáveis, uso de protocolos para acesso a clientes e servidores, bancos de dados, e outros eventos quaisquer.
Componentes de uma Arquitetura de Sistemas
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
96
Os componentes de uma arquitetura de sistemas estão divididos em camadas estruturais, que durante o desenvolvimento devem ser consideradas de forma fundamental pelo arquiteto. 
Estas camadas estruturais são os pilares do desenvolvimento de sistemas por componentes.
Divisão Estrutural de Componentes
Fonte: O Autor
SDKs – integração com utilitários
Pode-se especializar os aplicativos
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Camadas como Elementos de Controle Interação de Componentes
97
Fonte: O Autor
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Exemplo de Sistema de Gerenciamento de Versão
98
Fonte: O Autor
Componentes utilizáveis e os que precisam ser desenvolvidos
Ou aqui, se o banco for distribuído
Se o ambiente fosse distribuído, haveria uma outra camada de comunicação aqui, se o banco for centralizado.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Vantagens e Desvantagens do Uso de Camadas
99
Vantagens:
	- Facilidade de compreensão;
	- Facilidade de manutenção;
	- Desenvolvimento independente;
	- Facilidade de Reutilização.
Desvantagens:
	- Duplicação de funcionalidade;
	- Dificuldades de estruturar um sistema através de camadas;
	- Violação da Estruturação.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Elementos da RUP (Rational Unified Process)
100
A arquitetura de sistemas e as decisões que definem como o sistema será utilizado. 
- Definir os elementos e suas interfaces de modo a estabelecer a estrutura do sistema;
- Estabelecer o comportamento associado entre estes elementos que compõe o sistema;
- Composição dos elementos e suas estruturas, comportamentais e agregações de subsistemas.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Elementos de Implementação que 
afetam a Arquitetura de Sistemas
101
Arquitetura de computador;
Sistema Operacional;
Banco de Dados; - PostrgreSQL é o melhor para georreferenciamento.
Protocolos de rede;
Linguagem de programação;
Ambiente de interface gráfica;
Bibliotecas de funções disponíveis;
Sistemas legados;
Necessidades de performance;
Portabilidade.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Papel do Arquiteto de Sistemas 
na Interação de Componentes
102
Conhecer o negócio e os requisitos das aplicações a serem desenvolvidas;
Conhecer os componentes disponíveis no ambiente e nos sistemas instalados;
Conhecer as tecnologias disponíveis para construção e arquitetura de sistemas;
Conhecer as metodologias de desenvolvimento adequadas ao sistema a ser desenvolvido.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Padrão de Arquitetura MVC (Model View Controler)
103
MODEL Define a semântica da aplicação e define seu comportamento;
VIEW  Define a apresentação visual da aplicação;
CONTROLLER  Gerencia a interação da apresentação visual do sistema (VIEW) com os comportamentos da aplicação (MODEL).
Fonte: O Autor
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Interação de Componentes com OAS 
(Arquitetura Orientada a Serviços)
104
Na arquitetura de sistemas orientadas a serviços, todas as funcionalidades do sistema devem ser disponibilizadas na forma de serviços. Estes serviços se conectam através de um barramento de serviços (ESB).
Neste barramento são disponibilizadas as interfaces na forma de web services que interagem com o repositório de dados.
Fonte: O Autor
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Síntese da Aula
Vimos os conceitos de interação de componentes dentro da Arquitetura de Sistemas;
Apresentamos as boas práticas na definição e de identificação de interfaces no desenvolvimento de Sistemas;
Analisamos seus resultados e como estes resultados podem melhorar o resultado dos projetos.
105
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Próxima Aula
Especificação de Componentes na Arquitetura de Sistemas;
Seu impacto no desenvolvimento de sistemas por componentes.
106
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Atividade 7
107
Fonte: mundoeducacao.bol.uol.com.br
Nesta aula vimos a importância da definição dos elementos de interface dos componentes e como estes propiciam uma visão ampla e assertiva na hora de modelarmos a integração entre os componentes. Mas do ponto de vista do Arquiteto de Sistemas, você acha que podemos associar os elementos de interação de componentes com a imagem a seguir? 
 
 
01
02
03
04
05
06
07
08
09
10
Um dos pontos mais críticos no desenvolvimento de um sistema é o momento em que os desenvolvedores têm que traduzir os requisitos levantados junto às partes interessadas, em especificações que façam sentido para os programadores. Isto ocorre pois, nem sempre as informações repassadas pelos partes interessadas vão estar de acordo com as normas para desenvolvimento.
109
Apresentação da Aula
Aqui nós veremos um conjunto de ações necessárias para que a especificação consiga, de forma concreta, representar todas as informações levantadas de maneira consistente para os programadores. Faremos a apresentação do conceito de especificação como a tradução dos elementos de requisitos para elementos de programação.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Definição de Especificação de Componentes
110
Um componente tem uma especificação, pode ser distribuído, pode ser empacotado em módulos, deve ser aderente a padrões e tem uma implementação.
Fonte: O Autor
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
111
Os componentes mais importantes de um sistema a ser desenvolvido, baseado nos conceitos de arquitetura de sistemas, são: Objetos de sistemas prontos, Aplicativos da instalação, SGBD, Elementos de Sistema Operacional, Elementos de comunicação, Elementos de Hardware e os Componentes a serem desenvolvidos para o sistema. Aqui vamos nos ater a este último tipo.
Tipos de Componentes
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Especificação de Componentes a Serem Desenvolvidos
112
Fonte: O Autor
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Metodologias / Padrões
113
Fonte: O Autor (Baseado em padrões de projetos UML)
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Empacotamento de Componentes
114Fonte: www.dca.fee.unicamp.br
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Distribuição de Componentes
115
O arquiteto de sistemas, deve ter a preocupação de definir e construir middleware’s que conectem as diversas camadas de componentes, e consequentemente os componentes, de maneira a conseguir uma forte acoplagem para a organização.
Conectados corretamente, níveis corretos de suporte a configuração e os níveis de segurança corretos
Fonte: msdn.microsoft.com
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Implementação de Componentes
116
Fonte: O Autor
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Próxima Aula
Provisionamento e Construção de Componentes na Arquitetura de Sistemas;
Seu impacto no desenvolvimento de sistemas por componentes.
117
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Síntese da Aula
Vimos o conceito de requisitos dentro da Arquitetura de Sistemas;
Apresentamos as boas práticas na definição de requisitos no desenvolvimento de Sistemas;
Analisamos seus resultados e como estes resultados podem melhorar o resultado dos projetos.
118
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Atividade 8
119
Nesta aula vimos a importância de especificação de componentes para o sucesso do desenvolvimento de sistemas de acordo com os conceitos da Arquitetura de Sistemas. Mas do ponto de vista do arquiteto, você acha que podemos associar a especificação de componentes a imagem a seguir? 
Fonte: o Autor
 
 
01
02
03
04
05
06
07
08
09
10
Introdução
121
A construção de componentes é o último processo da metodologia apresentada por esta disciplina, e visa construir os componentes definidos pelo Arquiteto de Sistemas para solução do problema apresentados pelos partes interessadas e constante do sistema a ser desenvolvido.
Qual o passo a passo para que seja feita uma construção limpa e dentro dos padrões, seguindo as boas práticas de Arquitetura de Sistemas.
Apresentaremos a maneira que os programadores devem lidar com a construção de componentes, e a sua relação os resultados a serem alcançados na Arquitetura de Sistemas.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
COMPONENTES
122
Fonte: O Autor
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Ambiente de Componentes
123
Um ambiente componente é um meio ambiente de objetos distribuídos, estes componentes devem estar em conformidade a um conjunto de regras padrão para que se possa operar nesse ambiente, e um conjunto de serviços de infraestrutura (suporte a transações, segurança, concorrência, e assim por diante), na qual o componente de aplicação pode depender.
Além disso, vamos nos limitar a esses ambientes de componentes que fornecem estes serviços de infraestrutura declarativa, usando uma abordagem por framework (por vezes chamado de "programação baseada em atributo"), em vez de usarmos uma invocação explícita dentro da própria lógica da aplicação.
Fazemos isso pois esses frameworks são os mais indicados para fornecer uma base mais sólida para a próxima geração de aplicativos baseados em componentes distribuídos, em escala empresarial. Neste contexto, temos as seguintes opções:
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Framework CCM – Corba Component Model
124
O CCM é um framework de componentes do lado do servidor, cuja finalidade é facilitar o desenvolvimento e a instalação de aplicações distribuídas que utilizam a arquitetura de sistemas por componentes. Estes componentes podem ser dos diversos tipos já vistos.
Dividido em dois níveis de componentes:
Nível Básico – Provê uma forma simplificada de distribuir um objeto CORBA como componente;
Nível Estendido – Provê um conjunto maior de ações, como as portas de comunicação, que representam os elementos de conexão entre os componentes.
O CCM é também estruturado em cinco tipos de modelos:
Abstrato: Define atributos, portas de comunicação e home dos componentes;
de Programação: Composto por CIDL (Component Implementation Definition Language) e CIF (Framework);
de Empacotamento - Especifica como os componentes e suas implementações devem ser empacotados;
de Instalação - Define um mecanismo padrão para a instalação de aplicações;
de Execução - Define o ambiente de execução para as instâncias do componente.
Common Object Request Broker Architecture
Common Object Request Broker Architecture) é a arquitetura padrão criada pelo Object Management Group para estabelecer e simplificar a troca de dados entre sistemas distribuídos heterogêneos
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Arquivos CIDL
125
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Arquivos CIF (Component Implementation Framework)
126
Arquivos CIF
O CCM define um grande número para suportar a estrutura e funcionalidade dos componentes.
As implementações de muitas dessas interfaces podem ser geradas automaticamente. É nesse contexto que apresenta-se o CORBA - Component Implementation Framework (CIF).
CCM define uma linguagem declarativa, Component Implementation Definition Language (CIDL), para descrever implementações e persistência de estado de componentes e home.
CIF usa a CIDL para gerar skeletons que automatizam tarefas básicas, como navegação, ativação e gerenciamento de estado.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Containers
127
Os componentes são empacotados em DLLs e executados em servidores de componentes. As implementações dos componentes dependem dos conceitos da Programação Orientada a Aspectos para encaminhar requisições de clientes para os elementos de servidor.
Os componentes não precisam saber como tratar problemas. Para isso foram definidos os containers:
Ativação/desativação de implementações de componentes, preservando recursos;
Fornecimento de camada de adaptação com os serviços de transação, persistência, segurança e notificação;
Fornecimento de camada de adaptação para call-backs e 
Gerenciamento de políticas da POA.
O gerenciamento do ciclo de vida dos componentes de servidor é feito por meio de políticas que controlam o momento de ativação/desativação dos componentes:
Method: ativação/desativação a cada chamada de método, limitando o uso de memória ao tempo de duração da operação, mas acrescentando o custo de ativação e desativação do componente;
Transaction: ativação/desativação a cada transação. Memória permanece alocada durante a transação;
Component: o container ativa o componente quando for feita a primeira chamada a alguma de suas operações, e desativa quando explicitamente requisitado pela aplicação, desalocando a memória utilizada pelo componente;
Container: o componente será ativado quando for feita a primeira chamada a alguma de suas operações e, ao final da execução da mesma, será desativado. Entretanto, a memória permanecerá alocada até que o container decida deslocá-la;
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Empacotamento e Distribuição
128
Em sistemas distribuídos, componentes podem ser implantados em diversos servidores e sistemas operacionais. Além disso, um componente pode depender de outros componentes, tornando o processo de empacotamento e distribuição bem mais complicado do que se imagina.
CCM descreve componentes e suas dependências usando Open Software Description (OSD), que é um XML Document Type Definition (DTD) definido pelo consórcio WWW. Componentes são empacotados em DLLs. Package descriptors são documentos XML em conformidade com o OSD DTD, descrevendo o conteúdo da DLL e suas dependências.
CCM e OSD também definem component assembly descriptors, que descrevem instruções de implantação e topologia dos componentes,e tem como objetivo o suporte à implantação automática dos componentes.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Próxima Aula
Continuação da construção de Componentes na Arquitetura de Sistemas;
Seu impacto no desenvolvimento de sistemas por componentes.
129
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Atividade 9
130
Nesta aula vimos a importância, para os Desenvolvedores, na construção de todos os componentes disponíveis e assim gerar o novo sistema com esta rica abordagem (componentes), para a Arquitetura de Sistemas. Do ponto de vista do Desenvolvedor, você acha que podemos associar a construção de componentes com a imagem a seguir? 
 
 
01
02
03
04
05
06
07
08
09
10
Síntese da Aula
Vimos o conceito de construção de componentes dentro da Arquitetura de Sistemas;
Apresentamos as boas práticas na construção de componentes no desenvolvimento de Sistemas;
Analisamos seus resultados e como estes resultados podem melhorar o resultado dos projetos.
131
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Introdução
A construção de componentes é o último processo da metodologia apresentada por esta disciplina, e visa construir os componentes definidos pelo Arquiteto de Sistemas para solução do problema apresentado pelos partes interessadas e constante do sistema a ser desenvolvido.
Nesta aula então, apresentaremos a maneira que os programadores devem lidar com a construção de componentes, e a sua relação os resultados a serem alcançados. Desta maneira ficará evidente sua importância de sua aplicação no contexto da Arquitetura de Sistemas.
133
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Especificação de Componentes x 
Construção de Componentes
134
Em UML, um componente realiza uma ou mais interfaces. Como já discutimos antes, isso é suficiente para modelar alguns dos detalhes da tecnologia de implementação de componentes. Para lidar com especificação nós adicionamos alguns estereótipos UML, como especificação de componentes, as classes e suas interfaces. 
Uma especificação de componente oferece um ou mais tipos de interfaces, por isso têm uma correspondência bastante simples entre os elementos de especificação os elementos de execução.
UML também define a relação entre o componente e uma interface através de relacionamentos.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Mapeamento e Construção de Restrições
135
Os principais problemas com mapeamento de construção e restrições com componentes de tecnologia surgem a partir das seguintes considerações:
Tipo de parâmetro Operação, tipo (in / out / inout / volta), e de referência das restrições;
Mecanismos de manipulação de exceção e de erro;
Restrições herança de interface e suporte;
Sequências de operação;
Propriedades de Interface;
Mecanismos de criação do objeto;
Disponibilizar eventos.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Herança de Interfaces e Suporte de Interfaces
136
Há uma diferença enorme entre o COM + e EJB quando se trata de herança de interface e suporte de interfaces.
COM + permite apenas herança única de interface. Para permitir que objetos tenham múltiplas classificações, os componentes devem suportar múltiplas interfaces.
Por ex., um objeto documento COM +, suportando IDocument, IInvoice e lAccStmnt pode ser:
 um documento,
 uma fatura ou 
um extrato de conta. 
* todas as interfaces COM + devem finalmente herdar de IUnknown-a, interface base COM +.
EJB permite herança múltipla de interfaces e permite que classes Java apoiem múltiplas interfaces, limitando apenas unicamente herança de classe.
Quando registramos uma classe Java como um EJB com um ambiente de componentes EJB, ficamos restritos a nomeação de uma interface (a chamada interface remota).
O container para o seu EJB fornece uma classe de suporte para essa interface, que são, então, delegados a sua classe Java.
Apesar de sua classe Java poder suportar muitas interfaces, o container EJB fica limitado a somente um deles.
Isso significa que se você quiser que seu componente suporte múltiplas interfaces você vai precisar usar herança de interface múltipla para herdar toda a funcionalidade do componente de uma interface pai, que pode ser registrada no ambiente EJB. Esta super interface é utilizada efetivamente durante a especificação do componente.
Devemos tomar cuidado ao usar a herança com tipos de interface. Sabendo-se que esses são artefatos de especificação, de definição e de herança, eles vão se comportar de formas diferentes.
Ao contrário de herança de classe de implementação (onde métodos de subclasse podem substituir os métodos da superclasse), as especificações de operação de subtipos só podem incrementar as definições por seus supertipos.
Mais especificamente, isso significa que uma especialização de operações pode enfraquecer uma condição prévia (torná-la menos rigorosa) e fortalecer a pós-condição (torná-la mais rigorosa).
Isso assegura que qualquer cliente, dependente dos pressupostos e garantias do supertipo, não vai encontrar o subtipo se comportando de forma inesperada.
EJB: Chamada remota precisa de herança múltipla
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Propriedades de Interfaces
137
No COM + uma propriedade de interface é a especificação abreviada para um get e um set, como um par de operações. Ao usarmos UML para especificar interfaces, definimos que um atributo de interface existe puramente por apoiar a especificação de pré e pós-condições de operações, e você deve explicitamente definir quais operações você deseja. Por exemplo, a interface base COM + IUnknown tem duas operações para o gerenciamento de contagens de referência:
A especificação dessas operações tem de se referir ao atributo de interface “contagem de referência”. Porém, no COM +, definir tal atributo significa, de forma indireta, definir a existência de operações de acesso. Ambos os processos estão diretamente relacionados, o que pode nos trazer problemas.
Assim, para mapeamento para COM +, precisamos de uma maneira para determinar quais as operações devemos mapear para a propriedade COM + taquigrafia. 
Uma forma simples é usar uma convenção de nomenclatura.
Alternativamente, poderíamos fazer um trabalho mais elaborado e estender a especificação da operação com um valor pré-definido para o nome da propriedade, e interpretar a partir da existência dentro dos parâmetros para determinar qual foi o get e que foi o conjunto de informações adquiridas.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Criação de Objetos
138
Tanto no EJB como no COM + usamos uma abordagem de fábrica de objetos, onde um objeto componente é usado para criar instâncias de outro componente. 
	No EJB a fábrica é o objeto inicial, no COM + é objeto IClassFactory.
Dentro dos diagramas de arquitetura de componentes e interações de componentes achamos melhor conveniente para omitir este nível de abstração e simplesmente mostram << criar >> dependências diretamente para o próprio componente.
No COM +, há muita flexibilidade sobre qual objeto é a fábrica. Isto é feito simplesmente designando um componente que disponibiliza o IClassFactory relevante para uma dada classe. 
Este mesmo elemento também pode fazer outras coisas, e neste caso, você deve disponibilizar uma funcionalidade para o mesmo.
Atenção
Para beans de sessão EJB, você precisa apenas fornecer uma especificação da interface inicial, mas, para beans de entidade, você precisa fornecer a implementação também.
01
02
03
04
05
06
07
08
09
10
 
01
02
03
04
05
06
07
08
09
10
Correspondência da Arquitetura da Aplicação
139
Apresentamos aqui uma série de camadas distintas na arquitetura de aplicação, onde cada camada contem diferentes responsabilidades.

Outros materiais