construindo e usando uma software factory oswaldo bernice jr., microsoft
TRANSCRIPT
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
[email protected]@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