Construindo e Usando uma Software Factory Oswaldo Bernice Jr., Microsoft

Preview:

Citation preview

Construindo e Usando Construindo e Usando uma Software Factoryuma Software Factory

Oswaldo Bernice Jr., MicrosoftOswaldo Bernice Jr., Microsoft

Indice da ApresentaçãoIndice da Apresentação

IntroduçãoIntrodução

ExemploExemplo

Básico sobre a FábricaBásico sobre a Fábrica

Construindo uma FábricaConstruindo uma Fábrica

Resumo Resumo

O Seu CenárioO Seu Cenário

Sua companhia constrói muitas Sua companhia constrói muitas aplicações similaresaplicações similares

Não necessita reinventar a toda horaNão necessita reinventar a toda hora

Você poderia colocar as coisas úteis Você poderia colocar as coisas úteis juntas num só “pacote” ?juntas num só “pacote” ?

O que é um pacote?O que é um pacote?

O que deverá ir nele?O que deverá ir nele?

Como se deve usá-loComo se deve usá-lo

Exemplo de Aplicação de ClienteExemplo de Aplicação de Cliente

Lógica de Interface de Userio Lógica de Interface de Userio

Lógica de NegócioLógica de Negócio

Agentes de ServiçosAgentes de Serviços

Interface de ServiçosInterface de Serviços

Lógica de NegócioLógica de Negócio

Lógica de NegócioLógica de Negócio

Lógica de ReplicaçãoLógica de ReplicaçãoRequisita/RespondeRequisita/Responde

Recurços ExistentesRecurços Existentes

UIP Application BlockUIP Application Block

Biblioteca CorporativaBiblioteca Corporativa

Offline Application BlockOffline Application Block GATGAT(Guidance Automation Toolkit)(Guidance Automation Toolkit)

DSL SDKDSL SDK(Domain Specific Language)(Domain Specific Language)

Updater Application BlockUpdater Application Block

Guia de ArquiteturaGuia de Arquiteturap/ Smart Clientp/ Smart Client

Application Application Architecture Architecture

for .NETfor .NET

Indice da ApresentaçãoIndice da Apresentação

IntroduçãoIntrodução

ExemploExemplo

Básico sobre a FábricaBásico sobre a Fábrica

Construindo uma FábricaConstruindo uma Fábrica

Resumo Resumo

Ap

plic

ati

on

Ap

plic

ati

on

User Interface LayerUser Interface Layer

Ap

plic

ati

on

Ap

plic

ati

on

Business Logic LayerBusiness Logic Layer

User Interface LayerUser Interface Layer

Ap

plic

ati

on

Ap

plic

ati

on

Business Logic LayerBusiness Logic Layer

User Interface LayerUser Interface Layer

User Interface ProcessUser Interface ProcessA

pp

lica

tio

nA

pp

lica

tio

n

Business Logic LayerBusiness Logic Layer

User Interface LayerUser Interface Layer

User Interface ControlsUser Interface Controls

User Interface ProcessUser Interface ProcessA

pp

lica

tio

nA

pp

lica

tio

n

Business Logic LayerBusiness Logic Layer

User Interface LayerUser Interface Layer

User Interface ControlsUser Interface Controls

User Interface ProcessUser Interface ProcessA

pp

lica

tio

nA

pp

lica

tio

n

Business Logic LayerBusiness Logic Layer

User Interface LayerUser Interface Layer

User Interface ControlsUser Interface Controls

Business Logic ClassesBusiness Logic Classes

User Interface ProcessUser Interface ProcessA

pp

lica

tio

nA

pp

lica

tio

n

Business Logic LayerBusiness Logic Layer

User Interface LayerUser Interface Layer

User Interface ControlsUser Interface Controls

Service ProxyService Proxy

Business Logic ClassesBusiness Logic Classes

User Interface ProcessUser Interface ProcessA

pp

lica

tio

nA

pp

lica

tio

n

Business Logic LayerBusiness Logic Layer

User Interface LayerUser Interface Layer

User Interface ControlsUser Interface Controls

Service ProxyService Proxy

Business Logic ClassesBusiness Logic Classes

User Interface ProcessUser Interface Process

Business Logic BindingBusiness Logic Binding

Ap

plic

ati

on

Ap

plic

ati

on

Business Logic LayerBusiness Logic Layer

Service AgentService Agent

User Interface LayerUser Interface Layer

User Interface ControlsUser Interface Controls

Service ProxyService Proxy

Business Logic ClassesBusiness Logic Classes

User Interface ProcessUser Interface ProcessA

pp

lica

tio

nA

pp

lica

tio

n

Business Logic BindingBusiness Logic Binding

Business Logic LayerBusiness Logic Layer

Service AgentService Agent

CachingCaching

User Interface LayerUser Interface Layer

User Interface ControlsUser Interface Controls

Service ProxyService Proxy

Business Logic ClassesBusiness Logic Classes

User Interface ProcessUser Interface Process

Business Logic BindingBusiness Logic Binding

Ap

plic

ati

on

Ap

plic

ati

on

Indice da ApresentaçãoIndice da Apresentação

IntroduçãoIntrodução

ExemploExemplo

Básico sobre a FábricaBásico sobre a Fábrica

Construindo uma FábricaConstruindo uma Fábrica

Resumo Resumo

O que é Nossa Fábrica de O que é Nossa Fábrica de Software?Software?

VS com o “factory template” instaladoVS com o “factory template” instalado

Habilita os usuários a desenvolver Habilita os usuários a desenvolver aplicações “parecidas”aplicações “parecidas”

Automatiza os casos de uso de Automatiza os casos de uso de desenvolvimentodesenvolvimento

Reusa os recursosReusa os recursos

Direciona o processo de desenvolvimentoDireciona o processo de desenvolvimento

Cria a documentação de referênciaCria a documentação de referência

Metodologia da Fábrica de Metodologia da Fábrica de SoftwareSoftware

Descreve comoDescreve comoEmpacotarEmpacotar

AplicarAplicar

… … uma orientação (recurso) para uma orientação (recurso) para acelerar o desenvolvimento de uma acelerar o desenvolvimento de uma instância de um tipo de solução …instância de um tipo de solução …

O que existe na Fábrica? O que existe na Fábrica?

Descrição da Software Factory Descrição da Software Factory (esquema) (esquema)

Interpretado pelos usuáriosInterpretado pelos usuários

Interpretado pelas ferramentasInterpretado pelas ferramentas

Coleção estruturada de recursosColeção estruturada de recursosFerramentas, modelos, wizards, config Ferramentas, modelos, wizards, config files, application blocks, arquiteturas files, application blocks, arquiteturas básicas, padrões, documentos, modelos básicas, padrões, documentos, modelos de requisitos, …de requisitos, …

Recursos que são customizáveisRecursos que são customizáveis

Recursos Fixos vs. VariáveisRecursos Fixos vs. Variáveis

Recursos FixosRecursos FixosVS com VSIP VS com VSIP (Fornecedores Parceiros)(Fornecedores Parceiros)

DSL SDK DSL SDK (Linguagem de Domínio Específico)(Linguagem de Domínio Específico)

Assistentes de desenho de DSLAssistentes de desenho de DSL

GAXGAX

DocumentaçãoDocumentação

Recursos VariáveisRecursos VariáveisPacotes GAT Pacotes GAT (Guidance Automation Toolkit)(Guidance Automation Toolkit)

templates do VStemplates do VS

Bibliotecas de classesBibliotecas de classes

Trechos de códigoTrechos de código

Nossa Fábrica ClienteNossa Fábrica Cliente

Documentação básicaDocumentação básica

O esqueleto da solução inicialO esqueleto da solução inicial

Elementos incrementais da soluçãoElementos incrementais da soluçãoProjeto do processo UIPProjeto do processo UIP

Esqueleto do subsistema e recipienteEsqueleto do subsistema e recipiente

Esqueleto do Service Agent e recipientes Esqueleto do Service Agent e recipientes

……

Automação do caso de uso de Automação do caso de uso de desenvolvimentodesenvolvimento

Crie a solução Crie a solução Adicione o subsistemaAdicione o subsistemaDefina o assistente UIPDefina o assistente UIPConecte o assistente com a lógica de Conecte o assistente com a lógica de negóciosnegóciosAdicione agentes de serviçosAdicione agentes de serviços

Blocos e bibliotecas reusáveisBlocos e bibliotecas reusáveisUIP Application Block UIP Application Block Biblioteca de Service AgentBiblioteca de Service AgentBiblioteca Corporativa Biblioteca Corporativa

Dentro da FábricaDentro da Fábrica

Esquema deEsquema de FábricaFábrica

Guia SCAGuia SCA(Sevice Configuration Application)(Sevice Configuration Application)

Pacote Básico Pacote Básico do GAT do GAT (Guidance Application Toolkit)(Guidance Application Toolkit)

Service Agent GATService Agent GATPacote com BibliotecaPacote com Biblioteca

projeto UIPprojeto UIP

DLLDLL

MSIMSI

MSIMSI

PDFPDF

XMLXML

UIP Application BlockUIP Application Block

MSIMSI

Biblioteca CorporativaBiblioteca Corporativa(Enterprise)(Enterprise)

MSIMSI

Documentação da FábricaDocumentação da Fábrica

DOCDOC

A Nossa Factory AjudaA Nossa Factory Ajuda

Construir um cliente baseado em UIP Construir um cliente baseado em UIP Constrói um padrão de assistente UXConstrói um padrão de assistente UX

Conecta aos serviços via Service Conecta aos serviços via Service AgentsAgents

Cachê de respostasCachê de respostas

Opera OfflineOpera Offline

Indice da ApresentaçãoIndice da Apresentação

IntroduçãoIntrodução

ExamploExamplo

Basico sobre a FábricaBasico sobre a Fábrica

Construindo uma FábricaConstruindo uma Fábrica

Resumo Resumo

Porque Construir a Factory Porque Construir a Factory

Comunicar experiência (orientação)Comunicar experiência (orientação)Ajuda os outros a fazer o que você fazAjuda os outros a fazer o que você faz

Na prática e não na teoriaNa prática e não na teoriaProvê recursos reusáveisProvê recursos reusáveis

Requerimentos Requerimentos ArquiteturaArquiteturaTopologia de instalaçãoTopologia de instalaçãoProcesso de desenvolvimentoProcesso de desenvolvimentoFerramentasFerramentas

Princípios do desenvolvimento Princípios do desenvolvimento de uma Factory (Fábrica)de uma Factory (Fábrica)

Engenharia ReversaEngenharia Reversa

GeneralizaçãoGeneralização

Refinamento InterativoRefinamento Interativo

““Test Driven”Test Driven”

Composição Composição

Use FactoryUse FactoryBuild SolutionBuild Solution

Use SolutionUse Solution

Build FactoryBuild Factory

FeedbackFeedback

FeedbackFeedback

Foco da FactoryFoco da Factory

Estimativa subsidiada de ROIEstimativa subsidiada de ROI

Mantém o propósito do trabalhoMantém o propósito do trabalho

Comece construindoComece construindoConstrua Construa teste teste refine refine contrua contrua … …

Refine em três dimensões Refine em três dimensões AbrangênciaAbrangência

GeneralidadeGeneralidade

ProfundidadeProfundidade

Mapeie requintes ao itens variáveisMapeie requintes ao itens variáveis

Organização LógicaOrganização Lógica

Pontos de VistaPontos de VistaOrientação Orientação participativaparticipativa

Contexto dos casos Contexto dos casos de usode uso

RequisitosRequisitos

RelacionamentosRelacionamentosNavegaçãoNavegação

ValidaçãoValidação

AnalisesAnalises

Auto-explicação Auto-explicação

(intellisense)(intellisense)

Business Logic LayerBusiness Logic Layer

Service AgentService AgentCachingCaching

User Interface LayerUser Interface Layer

User Interface ControlsUser Interface Controls

Service ProxyService Proxy

Business Logic ClassesBusiness Logic Classes

User Interface ProcessUser Interface Process

Business Logic BindingBusiness Logic Binding

Ap

pli

cati

on

Ap

pli

cati

on

Organização FísicaOrganização Física

Esquema deEsquema de FábricaFábrica

Guia SCAGuia SCA(Sevice Configuration Application)(Sevice Configuration Application)

Pacote Básico Pacote Básico do GAT do GAT (Guidance Application Toolkit)(Guidance Application Toolkit)

Service Agent GATService Agent GATPacote com BibliotecaPacote com Biblioteca

projeto UIPprojeto UIP

DLLDLL

MSIMSI

MSIMSI

PDFPDF

XMLXML

UIP Application BlockUIP Application Block

MSIMSI

Biblioteca CorporativaBiblioteca Corporativa(Enterprise)(Enterprise)

MSIMSI

Documentação da FábricaDocumentação da Fábrica

DOCDOC

Empacotamento da FactoryEmpacotamento da Factory

Construa a solução da FactoryConstrua a solução da FactoryItens de fábrica combinadosItens de fábrica combinadosItens de fábrica especializadosItens de fábrica especializados

Construa o instaladorConstrua o instaladorTemplate de desenvolvimentoTemplate de desenvolvimentoTemplate de execuçãoTemplate de execução

Instale o templateInstale o templateNuma estação de trabalhoNuma estação de trabalho

No servidorNo servidor

Indice da ApresentaçãoIndice da Apresentação

IntroduçãoIntrodução

ExemploExemplo

Básico sobre a FábricaBásico sobre a Fábrica

Construindo uma FábricaConstruindo uma Fábrica

Resumo Resumo

ResumoResumo

Pacotes de fábrica que você conhecePacotes de fábrica que você conheceColeção de recursosColeção de recursos

Ajudar outros a fazer o que você fazAjudar outros a fazer o que você fazExplicar o que fazerExplicar o que fazer

Ajudá-los a fazerAjudá-los a fazer

Nada de novo porém… Nada de novo porém…

OrientaçãoOrientaçãoRecursos de orientaçãoRecursos de orientação

Ferramentas de fábrica e métodos Ferramentas de fábrica e métodos

Para Maiores InformaçõesPara Maiores InformaçõesWebsitesWebsites

http://www.microsoft.com/practiceshttp://www.microsoft.com/practiceshttp://lab.msdn.microsoft.com/vs2005/teamsystem/workshophttp://lab.msdn.microsoft.com/vs2005/teamsystem/workshop

NewsgroupsNewsgroupsMicrosoft.private.whidbey.teamsystem.architectMicrosoft.private.whidbey.teamsystem.architectMicrosoft.private.whidbey.teamsystem.architect.modelingMicrosoft.private.whidbey.teamsystem.architect.modeling

EmailEmailOswaldo.Bernice@microsoft.comOswaldo.Bernice@microsoft.com

BlogsBlogshttp://grupos.msn.com/cesharphttp://grupos.msn.com/cesharp

Sua Avaliação é Sua Avaliação é Importante!Importante!Por Favor, Não Esqueça de Por Favor, Não Esqueça de Preencher a Ficha de Avaliação Preencher a Ficha de Avaliação para esta sessãopara esta sessão

© 2005 Microsoft Corporation. Todos os direitos reservados.O propósito desta apresentação é apenas informativa. Microsoft não faz nenhuma garantia expressa ou implícita nesta apresentação.

Seu potencial. Nossa inspiração.MR