A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Componente de Software1 Desenhando um componente de software.

Apresentações semelhantes


Apresentação em tema: "Componente de Software1 Desenhando um componente de software."— Transcrição da apresentação:

1 Componente de Software1 Desenhando um componente de software

2 Componente de Software2 O que é um componente? 1.Tem interface externa distinta da implementação interna 2.Interface definida de maneira contratual: assinatura, pré e pós-condições 3.Não é gerado em diversas cópias 4.Demanda certo número de operações do meio no qual é implantado

3 Componente de Software3 … 5.Provê certo número de operações demandado pelo meio no qual é implantado 6.Pode interagir com outros componentes 7.É vendido (ou distribuido) sob a forma executável (ao invés de código-fonte) 8.Pode oferecer publicações da operações que suporta

4 Componente de Software4 Similaridades e diferenças entre Componentes e Objetos 1.Ambas promovem o encapsulamento (interface x implementação) 2.A propriedade contratual das operações é semelhante 3.Classes geram objetos, mas cópias de componentes serão idênticas em seus valores internos (sem herança) 4.Na OO não consideramos o meio em torno de um objeto – Componentes consideram

5 Componente de Software5 … 5.Um componente executa somente em seu meio designado e provê operações controladas pelo meio (contador de referências em si próprio!) 6.Reutilização é característica comum 7.Componentes são mais parecidos com objetos do que com classes 8.Interfaces de componentes atuam como operações de classes

6 Componente de Software6 Exemplo de um Componente: zGerenciadorDeRecursos Organização de uma conferência: funcionários, conferência, projetores Pool de caminhonetes: funcionários, caminhonetes

7 Componente de Software7 GerenciadorDeRecursos ServiçosPadrões ServiçosDeTipoDeRecursos ServiçosDeInstânciasDeRecursos ServiçosDeGruposDeRecursos ServiçosDeCalendário

8 Componente de Software8 > ServiçosDeTipoDeRecurso obterNúmeroTotal ( ): NúmeroInteiro obterNúmeroDeInstâncias (id: IdDoTipoDeRecurso): NúmeroInteiro obterNome (id: IdDoTipoDeRecurso, nome: string, out nome: string): Booleano especificarNome (id: IDDoTipoDeRecurso, nome: string): Booleano éPresente (nome: string): Booleano obterID (nome: String, out id: IDDoTipoDeRecurso): Booleano obterÉHumano (id: IDDoTipoDeRecurso): Booleano especificarÉHumano (id: IDDoTipoDeRecurso, éHumano): Booleano acrescentar (nome: string, out id: IDDoTipoDeRecurso): Booleano remover (id: IDDoTipoDeRecurso): Booleano ….

9 Componente de Software9 ServiçosDeInstânciaDeRecurso > ServiçosDeInstânciaDeRecurso obterNúmeroTotal ( ): NúmeroInteiro obterNome (id: IdDaInstânciaDeRecurso, nome: string, out nome: string): Booleano especificarNome (id: IDDaInstânciaDeRecurso, nome: string): Booleano obterTipo (id: IDDaInstânciaDeRecurso, out tipo: IDDoTipoDeRecurso): Booleano especificarTipo (id: IDDaInstânciaDeRecurso, tipo: IDDoTipoDeRecurso): Booleano obterID (nome: string, id: IDDInstânciaDeRecurso): Booleano obterEndDeE-mail (id: IDDInstânciaDeRecurso): String …. acrescentar ( ): Booleano remover (id: IDDoTipoDeRecurso): Booleano removerTodas ( ) ….

10 Componente de Software10 ServiçosDeAgrupamentoDeRecursos > ServiçosDeAgrupamentoDeRecursos obterNúmeroTotal ( ): NúmeroInteiro obterNome (IdDGrupo: IDDoGrupoDeRecursos, out nome: string): Booleano especificarNome (IDDoGrupo: IDDoGrupoDeRecursos, nome: string): Booleano obterID (nome: string, out id: IDDoGrupoDeRecursos): Booleano obterHorário (idDoGrupo: IDDoGrupoDeRecurso, horário: HorárioData): Booleano ….

11 Componente de Software11 ServiçosDeCalendário > ServiçosDeCalendário obterMenorIncrementoDeTempo ( ): NúmeroInteiro especificarMenorIncrementoDeTempo (IncrmentoDeTempo: NúmeroInteiro ….

12 Componente de Software12 ServiçosPadrões > ServiçosPadrões obterContagemDeReferências ( ): NúmeroInteiro obterIdentificador (cliente: Cliente, nome: nomeDeInterface, out identificador: IdentificadorDeInterface): Booleano desconectar(cliente: Cliente, identificador: IdentificadorDeInterface): Booleano ….

13 Componente de Software13 Desenho Interno de um Componente zO desenho interno de componente não precisa ser Orientado a Objetos!

14 Componente de Software14 GerenciadorDeRecursos: DomínioDeAplicação ServiçoDe TipoDeRecurso ServiçoDe InstânciaDe Recurso ServiçoDe Agrupamento DeRecursos ServiçoDe Calendário DomínioDeNegócio PacoteDe Recursos PacoteDe Recursos

15 Componente de Software15 … DomínioDeArquitetura IndependenteDePlataforma ServiçosDeE-Mail IndependentesDe Plataforma ServiçoDeBanco DeDados Independentes DePlataforma DomínioDeArquitetura IndependenteDePlataforma PacoteDeE-Mail PacoteDe BancoDeDados

16 Componente de Software16 PacoteDeRecursos InstânciaDeRecurso endereçoEletrônico: EndereçoEletrônico … … ItemDeRecurso endereçoEletrônico: EndereçoEletrônico … … TipoDeRecurso / id: IDDoTipoDeRecurso nome: String éHumano: Booleano … novo (nome: String): Booleano - obterPróximoID: IDDoTipoDeRecurso obterTipoDeRecurso (nome: string, out tipoDeRecurso: TipoDeRecurso): Booleano … 0..* 0..1 0..* 1

17 Componente de Software17 O que um componente provê e requer componente Eventos notificados Eventos detectados serviços oferecidos

18 Componente de Software18 Componentes Leves ou Pesados DomínioDeAplicação ServiçoDe TipoDeRecurso ServiçoDe InstânciaDe Recurso ServiçoDe Agrupamento DeRecursos ServiçoDe Calendário DomínioDeNegócio PacoteDe Recursos PacoteDe Recursos DomínioDeArquitetura IndependenteDePlataforma ServiçosDeE-Mail IndependentesDe Plataforma ServiçoDeBanco DeDados Independentes DePlataforma

19 Componente de Software19 Vantagens do componente leve: zMenos dispendioso para ser construido zSendo mais simples deverá ser mais confiável (tanto no início quanto na manutenção) zNão sobrecarregará a memória ou outros recursos z>> Coesão de domínio simples

20 Componente de Software20 Vantagens e desvantagens de usar componentes: z+ Eles são baratos z+ Eles estão disponíveis z+ Eles estão disponíveis no momento! z- Eles talvez estejam praticamente disponíveis no momento! z+ Eles são maduros z+ Podem incorporar idéias inovadoras e sofisticadas

21 Componente de Software21 … z- Também estão disponíveis para os concorrentes z- Podem ser complexos demais para as tuas necessidades z- A personalização pode ser trabalhosa ou impossível z- Um componente intransigente pode requer mudanças em seu negócio

22 Componente de Software22 … z- Os componentes de negócio talvez não estejam disponíveis para nichos z+ Eles são mantidos por terceiros z- Versões revisadas podem demorar a chegar z- Versões revisadas podem chegar rápido demais

23 Componente de Software23 … z+ Os componentes seguem normas z- Podem envolver diversos distribuidores z- O distribuidor poderá sair do negócio


Carregar ppt "Componente de Software1 Desenhando um componente de software."

Apresentações semelhantes


Anúncios Google