Análise de metodologia e tecnologia adequada para desenvolvimento de sistemas jurídicosAndre Camilo
1º Problema
2º Problema
CaracterizaçãoGrande número de documentos escritos;Documentos impressos que são acumulados;Dificuldade e demora na manutenção e obtenção de informações;Possibilidade de extravio de informações;Dificuldade de acesso aos dados em qualquer lugar;
Objetivo geralSistema automatizadoPapelOrganizar e armazenar informações de processos jurídicos, substituindo o meio físico papel pelos meios digitais on-line;
ObjetivosDesenvolver um Sistema Web para controle dos processos;Controlar o tempo gasto na elaboração do processo;Obter informações padrões relacionadas a um processo jurídico para acoplar no sistema;Facilitar e agilizar o acesso as informações;Integrar informações;
ObjetivosDiminuir custos de produção de processos judiciários;Armazenar informações em um ambiente seguro e autenticar os dados processuais e os usuários;Otimizar o tempo gasto para a construção de um processo;
JustificativaDesde o surgimento dos processos jurídicos se faz uso do papel para o armazenamento das informações;A grande demanda de processos faz com que  o trabalho do advogado seja mais demorado;Escassez de softwares para gerenciamento de processos jurídicos na área civil;Tornar a manipulação do processo mais fácil, simples e intuitiva;Em meio digital a obtenção de informações é facilitada(os dados são armazenados em um ambiente organizado e especificamente construído para isso);
Metodologia bibliográficaEstudo da legislação vigente que envolve a formação de um processo;Estudo das características de um processo eletrônico;Estudo da arquitetura do software de automação digital de processos jurídicos;
Metodologia bibliográficaGerenciar o software com base na metodologia de desenvolvimento ágil, Scrum;Estudo de tecnologias, padrão e metodologia de desenvolvimento:Scrum (Metodologia de desenvolvimento ágil);Microsoft .Net Framework 4 (Plataforma de desenvolvimento);C# (Linguagem de programação);
Metodologia bibliográficaC# (Linguagem de programação);Projeto orientado a objetos (OO);Silverlight (Tecnologia de desenvolvimento web);WCF RIA Services (Framework para aplicação Silverlight);ADO .Net Entity Framework 4 (Ferramenta de persistência de dados);Microsoft SQL Server 2008 (Banco de dados);MVVM (Padrão de desenvolvimento);
Metodologia experimentalDesenvolver o aplicativo em C# eSilverlight;Coletar informações que fazem parte do processo judicial;
O sistema judicialEm meios digitais o bem mais importante é, sem duvida, a informação;A necessidade de manipulá-la e armazená-la também é indispensável para o profissional do direto;O advogado tem que se valer dessa facilidade sem perder tempo ou dinheiro por não ter a ferramenta adequada;
O sistema judicialO advogado é constantemente desafiado a entrar no mundo digital;Porque cada vez mais o trabalho do advogado esta centrado no formato digital e nas facilidades;Ambiente diferente ao de alguns anos anteriores;
O sistema judicialO processo eletrônico >> processo irreversível;2 geraçõesA com papel;A que cada vez menos necessita do papel;A de se esperar que o advogado se locomova com facilidade no universo digital;A opção de continuar no papel será extinta em pouco tempo.
Gestão do projeto“O gerenciamento de projetos é a aplicação de conhecimento, habilidades, ferramentas e técnicas às atividades do projeto a fim de atender aos seus requisitos. O gerenciamento de projetos é realizado através da aplicação e da integração dos seguintes processos de gerenciamento de projetos: iniciação, planejamento, execução, monitoramento e controle, e encerramento.” (PMI, 2004, p. 8).
MetodologiasÁgeis;Scrum;Evolutionary Project Management – EVO;Dynamic System Development Method – DSDM;Feature Driven Development – FDD;Adaptive Software Development – ASD;Extreme Programming – XP;Família Crystal;Tradicionais (Não-ágeis);Cascata;Prototipação;Espiral;Rapid Application Development  - RAD;RationalUnifiedProcess - RUP;
Metodologia de desenvolvimento ágilMinimizar o risco no desenvolvimento de software em curtos períodos;Cada iteração é um projeto de software independente;Um projeto de software ágil busca a capacidade de implantar uma nova versão do software ao fim de cada iteraçãoCliente recebe e usa funcionalidades em um período muito menor de tempo;Os métodos ágeis enfatizam a comunicações;
ScrumScrumMaster;Productowner (PO);Tean ou Time;Sprint;ProductBacklogSprintBacklogDailyScrum
ScrumDaily Scrum Meeting24 horasProduct Backlog2 a 4 semanasIncremento do produto potencialmente utilizávelSprint Backlog
Desenvolvimento SoloProductowner (PO);Sprint;ProductBacklog;SprintBacklog;
ConsideraçõesTriangulo de ferroTempo;Escopo / Qualidade;Custo;
Empregando a metodologia ao produto (Histórias)O advogado quer controlar e ter acesso as informações que ele necessita durante o seu trabalho diário, como informações de processos que estão em andamento e também ter a possibilidade de incluir mais processos caso tenha necessidade;Agendamento de compromissos. É muito importante para que seus horários sejam cumpridos corretamente;Ter acesso aos dados de seus clientes, das pessoas envolvidas em cada processo; Possibilidade de consultar informações que estão em outros sites na Internet;Facilitar o acesso a todas as partes do sistema;Digitalizar e armazenar documentos impressos.
Tecnologias	Serão utilizadas as mais novas tecnologias que estão disponíveis no mercado, assim a aplicação será focada no desenvolvimento de uma regra de negócio mais elaborada e um software com qualidade, possibilitando e facilitando sua expansão e manutenção. As tecnologias apresentadas a seguir fornecem tudo que um desenvolvedor precisa para fazer um sistema com qualidade e que atenda as necessidades do cliente.
.Net framework 4Executado sobre uma CLR (CommonLanguageRuntime) ;Mais de trinta diferentes linguagens de programação, interagindo entre si. (APL, Boo, Clarion, COBOL, Component Pascal, J#, F#, C#, C++, Eiffel, Forth, Fortran, Haskell, Java, Jscript, Lua, Mercury, Mondrian, Oberon, Object Pascal / Delphi Language, Oz, Pascal, Perl, PowerBuilder, PowerShell, RPG, Python, Ruby, IronPython, IronRuby, Scheme, SmallTalk, Standard ML, Visual Basic)Web, desktop ou para dispositivos móveis;
.Net framework 4.Net Mono: distribuição open source da CLI - Linux (SuSE, Fedora, entre outros), Win32 e MacOS.Portable: distribuição open source da CLI que roda em diversos sistemas operacionais: Win32, AIX, BeOS, Mac OS X, Solaris, todas as principais distribuições Linux;
.Net framework 4 - camadasVB.NETC#IronRubyEntre outras...Common Language Specification (CLS)Common Type System (CTS).NET Class Library (FCL)Web Forms, Web ServicesWindows FormsConsoleADO .NET & XMLCommon Language Rumtime (CLR)(Just-in-time compilers, garbage collector, Security Manager, entre outras)Common Language Infrastructure (CLI)Sistema operacional
Linguagem de programação C#Linguagem de programação orientada a objetos;Suporte para definir e trabalhar com classes;Encapsulamento e polimorfismo;
SilverlightTecnologia para navegadores e plug-ins;RIA (Rich Internet Application) e combina visual e funcionalidade;Desenvolvedor e designer;Plataforma-cruzada, ou seja, ela pode trabalhar em diversas arquiteturas e sistemas operacionais (Windows, Linux, Solaris, Mac OS)
WCF RIA ServicesFramework para aplicações Silverlight;Facilita a construção de middleware de comunicação com a camada de serviço e a camada cliente de uma aplicação RIA;
WEB TradicionalWeb-ServiceAplicação WEBBrowserBase de dadosInterfaceLógica da aplicaçãoCamada de acesso a dadosHTMLOutras aplicações
RIAWeb-ServiceLimite de confiançaLógica da aplicaçãoCamada de acesso a dadosInterface Lógica da aplicaçãoBase de dados
Entity frameworkFerramentas de persistência de dados;Diminui problemas que impedem ou dificultam o desenvolvimento de um sistema;Abstrai dos desenvolvedores vários detalhes de comunicação com bancos de dados relacionais;É um ORM (Object-relationalmapping) que separa o modelo conceitual do físico;Pode ser utilizado por vários bancos de dados (SQL Server, Oracle, MySql, DB2) pois existem vários Providers disponíveis;
EsquemaEntidades de modelo de domínioCamada de apresentação, visão do modeloCamada UISilverlightWPFWinFormsASP.NETCamada de apresentação - ApresentadoresContrair interfacesHospedagem de serviços WCFWCFCamada de serviçosServiçosCamada comercialRegra de NegocioCamada de acesso a dados              Estrutura de entidadesSQL Server, Oracle, MySql, DB2...
SQL serverFácil de usar;Oferece escalabilidade, ou seja, você pode começar desenvolvendo para um desktop ou web e migrar para sistemas de multiprocessamento;Implementa o data warehouse , através do AnalysisServices;É relativamente barato em relação à concorrência;
Projeto Orientado a ObjetosO objeto é a representação abstrata de coisas que vemos no mundo real. Os objetos apresentam propriedades, como: estado (situação em que pode estar o objeto) e comportamento (é o meio através do qual o objeto passa de um objeto para o outro).Todo o objeto é identificávelUma classe de objeto representa um conjunto de objetos das mesmas características.Encapsulamento;Acoplamento dinâmico, herança e polimorfismo.
Padrão de projeto“Cada padrão descreve um problema no nosso ambiente e é o cerne da sua solução, de tal forma que você possa usar essa solução mais de um milhão de vezes, sem nunca fazê-lo da mesma maneira” (Alexander, 1997).
Padrão de projetoNome do padrão;Problema ;Solução ;Conseqüências ;
Padrão de desenvolvimentoTambém é usado para documentação de um sistema;Os padrões voltados para o desenvolvimento de sistemas corporativos buscam reduzir o acoplamento e aumentar a coesão entre os componentes de um sistema;O custo de manutenção da aplicação é reduzido e a qualidade do código aumenta.
Padrão de desenvolvimentoTrês grupos: Architecturalpatterns: Padrões genéricos que cuidam da estrutura fundamental da aplicação, por exemplo, como vai ocorre a comunicação com sistemas externos.  Design patterns: Um pouco mais restritos, tratam da estruturação de componentes de um sistema, como exemplo pode-se ter padrões que ditem as regras de como classes de uma mesma camada podem interagir.Idioms: Padrões de mais baixo nível, que estrutura aspectos particulares de um componente do sistema.
MVVMPadrão de projeto mais adequado para desenvolvimento Silverlight;Originou-se da necessidade de separar as responsabilidades na camada de apresentação;
Elementos de um aplicativoNovo ProcessoMeusProcessos :  ICollection<Processo>void AddProcesso (processo p)Código:int Codigo;String Descricao;Descrição:OKModelView ModelView
Componentes de um aplicativoTestes unitáriosViewsView Model Binding, ICommandsModelRepositórios
ArquivosViewView-ModelData-Binding & ComandosXAMLEstado + OperaçõesCode-behindNotificação de mudançasModel
Protótipo
FimMuito obrigadoac@andrecamilo.com

Desenvolvimento de sistemas jurídicos

  • 1.
    Análise de metodologiae tecnologia adequada para desenvolvimento de sistemas jurídicosAndre Camilo
  • 2.
  • 3.
  • 4.
    CaracterizaçãoGrande número dedocumentos escritos;Documentos impressos que são acumulados;Dificuldade e demora na manutenção e obtenção de informações;Possibilidade de extravio de informações;Dificuldade de acesso aos dados em qualquer lugar;
  • 5.
    Objetivo geralSistema automatizadoPapelOrganizare armazenar informações de processos jurídicos, substituindo o meio físico papel pelos meios digitais on-line;
  • 6.
    ObjetivosDesenvolver um SistemaWeb para controle dos processos;Controlar o tempo gasto na elaboração do processo;Obter informações padrões relacionadas a um processo jurídico para acoplar no sistema;Facilitar e agilizar o acesso as informações;Integrar informações;
  • 7.
    ObjetivosDiminuir custos deprodução de processos judiciários;Armazenar informações em um ambiente seguro e autenticar os dados processuais e os usuários;Otimizar o tempo gasto para a construção de um processo;
  • 8.
    JustificativaDesde o surgimentodos processos jurídicos se faz uso do papel para o armazenamento das informações;A grande demanda de processos faz com que o trabalho do advogado seja mais demorado;Escassez de softwares para gerenciamento de processos jurídicos na área civil;Tornar a manipulação do processo mais fácil, simples e intuitiva;Em meio digital a obtenção de informações é facilitada(os dados são armazenados em um ambiente organizado e especificamente construído para isso);
  • 9.
    Metodologia bibliográficaEstudo dalegislação vigente que envolve a formação de um processo;Estudo das características de um processo eletrônico;Estudo da arquitetura do software de automação digital de processos jurídicos;
  • 10.
    Metodologia bibliográficaGerenciar osoftware com base na metodologia de desenvolvimento ágil, Scrum;Estudo de tecnologias, padrão e metodologia de desenvolvimento:Scrum (Metodologia de desenvolvimento ágil);Microsoft .Net Framework 4 (Plataforma de desenvolvimento);C# (Linguagem de programação);
  • 11.
    Metodologia bibliográficaC# (Linguagemde programação);Projeto orientado a objetos (OO);Silverlight (Tecnologia de desenvolvimento web);WCF RIA Services (Framework para aplicação Silverlight);ADO .Net Entity Framework 4 (Ferramenta de persistência de dados);Microsoft SQL Server 2008 (Banco de dados);MVVM (Padrão de desenvolvimento);
  • 12.
    Metodologia experimentalDesenvolver oaplicativo em C# eSilverlight;Coletar informações que fazem parte do processo judicial;
  • 13.
    O sistema judicialEmmeios digitais o bem mais importante é, sem duvida, a informação;A necessidade de manipulá-la e armazená-la também é indispensável para o profissional do direto;O advogado tem que se valer dessa facilidade sem perder tempo ou dinheiro por não ter a ferramenta adequada;
  • 14.
    O sistema judicialOadvogado é constantemente desafiado a entrar no mundo digital;Porque cada vez mais o trabalho do advogado esta centrado no formato digital e nas facilidades;Ambiente diferente ao de alguns anos anteriores;
  • 15.
    O sistema judicialOprocesso eletrônico >> processo irreversível;2 geraçõesA com papel;A que cada vez menos necessita do papel;A de se esperar que o advogado se locomova com facilidade no universo digital;A opção de continuar no papel será extinta em pouco tempo.
  • 16.
    Gestão do projeto“Ogerenciamento de projetos é a aplicação de conhecimento, habilidades, ferramentas e técnicas às atividades do projeto a fim de atender aos seus requisitos. O gerenciamento de projetos é realizado através da aplicação e da integração dos seguintes processos de gerenciamento de projetos: iniciação, planejamento, execução, monitoramento e controle, e encerramento.” (PMI, 2004, p. 8).
  • 17.
    MetodologiasÁgeis;Scrum;Evolutionary Project Management– EVO;Dynamic System Development Method – DSDM;Feature Driven Development – FDD;Adaptive Software Development – ASD;Extreme Programming – XP;Família Crystal;Tradicionais (Não-ágeis);Cascata;Prototipação;Espiral;Rapid Application Development - RAD;RationalUnifiedProcess - RUP;
  • 18.
    Metodologia de desenvolvimentoágilMinimizar o risco no desenvolvimento de software em curtos períodos;Cada iteração é um projeto de software independente;Um projeto de software ágil busca a capacidade de implantar uma nova versão do software ao fim de cada iteraçãoCliente recebe e usa funcionalidades em um período muito menor de tempo;Os métodos ágeis enfatizam a comunicações;
  • 19.
    ScrumScrumMaster;Productowner (PO);Tean ouTime;Sprint;ProductBacklogSprintBacklogDailyScrum
  • 20.
    ScrumDaily Scrum Meeting24horasProduct Backlog2 a 4 semanasIncremento do produto potencialmente utilizávelSprint Backlog
  • 21.
  • 22.
  • 23.
    Empregando a metodologiaao produto (Histórias)O advogado quer controlar e ter acesso as informações que ele necessita durante o seu trabalho diário, como informações de processos que estão em andamento e também ter a possibilidade de incluir mais processos caso tenha necessidade;Agendamento de compromissos. É muito importante para que seus horários sejam cumpridos corretamente;Ter acesso aos dados de seus clientes, das pessoas envolvidas em cada processo; Possibilidade de consultar informações que estão em outros sites na Internet;Facilitar o acesso a todas as partes do sistema;Digitalizar e armazenar documentos impressos.
  • 24.
    Tecnologias Serão utilizadas asmais novas tecnologias que estão disponíveis no mercado, assim a aplicação será focada no desenvolvimento de uma regra de negócio mais elaborada e um software com qualidade, possibilitando e facilitando sua expansão e manutenção. As tecnologias apresentadas a seguir fornecem tudo que um desenvolvedor precisa para fazer um sistema com qualidade e que atenda as necessidades do cliente.
  • 25.
    .Net framework 4Executadosobre uma CLR (CommonLanguageRuntime) ;Mais de trinta diferentes linguagens de programação, interagindo entre si. (APL, Boo, Clarion, COBOL, Component Pascal, J#, F#, C#, C++, Eiffel, Forth, Fortran, Haskell, Java, Jscript, Lua, Mercury, Mondrian, Oberon, Object Pascal / Delphi Language, Oz, Pascal, Perl, PowerBuilder, PowerShell, RPG, Python, Ruby, IronPython, IronRuby, Scheme, SmallTalk, Standard ML, Visual Basic)Web, desktop ou para dispositivos móveis;
  • 26.
    .Net framework 4.NetMono: distribuição open source da CLI - Linux (SuSE, Fedora, entre outros), Win32 e MacOS.Portable: distribuição open source da CLI que roda em diversos sistemas operacionais: Win32, AIX, BeOS, Mac OS X, Solaris, todas as principais distribuições Linux;
  • 27.
    .Net framework 4- camadasVB.NETC#IronRubyEntre outras...Common Language Specification (CLS)Common Type System (CTS).NET Class Library (FCL)Web Forms, Web ServicesWindows FormsConsoleADO .NET & XMLCommon Language Rumtime (CLR)(Just-in-time compilers, garbage collector, Security Manager, entre outras)Common Language Infrastructure (CLI)Sistema operacional
  • 28.
    Linguagem de programaçãoC#Linguagem de programação orientada a objetos;Suporte para definir e trabalhar com classes;Encapsulamento e polimorfismo;
  • 29.
    SilverlightTecnologia para navegadorese plug-ins;RIA (Rich Internet Application) e combina visual e funcionalidade;Desenvolvedor e designer;Plataforma-cruzada, ou seja, ela pode trabalhar em diversas arquiteturas e sistemas operacionais (Windows, Linux, Solaris, Mac OS)
  • 30.
    WCF RIA ServicesFrameworkpara aplicações Silverlight;Facilita a construção de middleware de comunicação com a camada de serviço e a camada cliente de uma aplicação RIA;
  • 31.
    WEB TradicionalWeb-ServiceAplicação WEBBrowserBasede dadosInterfaceLógica da aplicaçãoCamada de acesso a dadosHTMLOutras aplicações
  • 32.
    RIAWeb-ServiceLimite de confiançaLógicada aplicaçãoCamada de acesso a dadosInterface Lógica da aplicaçãoBase de dados
  • 33.
    Entity frameworkFerramentas depersistência de dados;Diminui problemas que impedem ou dificultam o desenvolvimento de um sistema;Abstrai dos desenvolvedores vários detalhes de comunicação com bancos de dados relacionais;É um ORM (Object-relationalmapping) que separa o modelo conceitual do físico;Pode ser utilizado por vários bancos de dados (SQL Server, Oracle, MySql, DB2) pois existem vários Providers disponíveis;
  • 34.
    EsquemaEntidades de modelode domínioCamada de apresentação, visão do modeloCamada UISilverlightWPFWinFormsASP.NETCamada de apresentação - ApresentadoresContrair interfacesHospedagem de serviços WCFWCFCamada de serviçosServiçosCamada comercialRegra de NegocioCamada de acesso a dados Estrutura de entidadesSQL Server, Oracle, MySql, DB2...
  • 35.
    SQL serverFácil deusar;Oferece escalabilidade, ou seja, você pode começar desenvolvendo para um desktop ou web e migrar para sistemas de multiprocessamento;Implementa o data warehouse , através do AnalysisServices;É relativamente barato em relação à concorrência;
  • 36.
    Projeto Orientado aObjetosO objeto é a representação abstrata de coisas que vemos no mundo real. Os objetos apresentam propriedades, como: estado (situação em que pode estar o objeto) e comportamento (é o meio através do qual o objeto passa de um objeto para o outro).Todo o objeto é identificávelUma classe de objeto representa um conjunto de objetos das mesmas características.Encapsulamento;Acoplamento dinâmico, herança e polimorfismo.
  • 37.
    Padrão de projeto“Cadapadrão descreve um problema no nosso ambiente e é o cerne da sua solução, de tal forma que você possa usar essa solução mais de um milhão de vezes, sem nunca fazê-lo da mesma maneira” (Alexander, 1997).
  • 38.
    Padrão de projetoNomedo padrão;Problema ;Solução ;Conseqüências ;
  • 39.
    Padrão de desenvolvimentoTambémé usado para documentação de um sistema;Os padrões voltados para o desenvolvimento de sistemas corporativos buscam reduzir o acoplamento e aumentar a coesão entre os componentes de um sistema;O custo de manutenção da aplicação é reduzido e a qualidade do código aumenta.
  • 40.
    Padrão de desenvolvimentoTrêsgrupos: Architecturalpatterns: Padrões genéricos que cuidam da estrutura fundamental da aplicação, por exemplo, como vai ocorre a comunicação com sistemas externos. Design patterns: Um pouco mais restritos, tratam da estruturação de componentes de um sistema, como exemplo pode-se ter padrões que ditem as regras de como classes de uma mesma camada podem interagir.Idioms: Padrões de mais baixo nível, que estrutura aspectos particulares de um componente do sistema.
  • 41.
    MVVMPadrão de projetomais adequado para desenvolvimento Silverlight;Originou-se da necessidade de separar as responsabilidades na camada de apresentação;
  • 42.
    Elementos de umaplicativoNovo ProcessoMeusProcessos : ICollection<Processo>void AddProcesso (processo p)Código:int Codigo;String Descricao;Descrição:OKModelView ModelView
  • 43.
    Componentes de umaplicativoTestes unitáriosViewsView Model Binding, ICommandsModelRepositórios
  • 44.
    ArquivosViewView-ModelData-Binding & ComandosXAMLEstado+ OperaçõesCode-behindNotificação de mudançasModel
  • 45.
  • 46.