outubro/2008 engenharia do computação sistema de gestão de manutenção desenvolvimento equipe...

49
Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira Rafael Pinto

Upload: internet

Post on 17-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Sistema de Gestão de Manutenção

Desenvolvimento

Equipe

Antônio DeyvysonDiego NascimentoPaollo MacielMarcelo PereiraRafael Pinto

Page 2: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Arquitetura do Software

PROJ ETO MMS

M C V

Active Record

Nhibernate

Nvelocity J avaScript

HTML

Banco de Dados

Page 3: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Padrão MVC

PROJ ETO MMS

M C V

Active Record

Nhibernate

Nvelocity J avaScript

HTML

Banco de Dados

Page 4: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Características do MVC

Arquitetura Dividida basicamente em 3 camadas (Model, View e Controller).

Separa a lógica de negócios(Model) da lógica de apresentação(View).

Diminui a complexidade da aplicação

Facilita a manutenção do código.

Outubro/2008Engenharia do Computação

Page 5: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Fluxo de uma aplicação MVC

1. Usuário gera um evento (Ex: aperta um botão).2. Controller solicita dados do Model.3. Model envia os dados para o controller.4. Controller trata os dados e envia para a view.5. View exibe o resultado para o usuário.

Outubro/2008Engenharia do Computação

Page 6: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Fluxo de uma aplicação MVC

1. Usuário gera um evento (Ex: aperta um botão).2. Controller solicita dados do Model.3. Model envia os dados para o controller.4. Controller trata os dados e envia para a view.5. View exibe o resultado para o usuário.

Outubro/2008Engenharia do Computação

Page 7: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Fluxo de uma aplicação MVC

1. Usuário gera um evento (Ex: aperta um botão).2. Controller solicita dados do Model.3. Model envia os dados para o controller.4. Controller trata os dados e envia para a view.5. View exibe o resultado para o usuário.

Outubro/2008Engenharia do Computação

Page 8: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Fluxo de uma aplicação MVC

1. Usuário gera um evento (Ex: aperta um botão).2. Controller solicita dados do Model.3. Model envia os dados para o controller.4. Controller trata os dados e envia para a view.5. View exibe o resultado para o usuário.

Outubro/2008Engenharia do Computação

Page 9: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Fluxo de uma aplicação MVC

1. Usuário gera um evento (Ex: aperta um botão).2. Controller solicita dados do Model.3. Model envia os dados para o controller.4. Controller trata os dados e envia para a view.5. View exibe o resultado para o usuário.

Outubro/2008Engenharia do Computação

Page 10: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Fluxo de uma aplicação MVC

1. Usuário gera um evento (Ex: aperta um botão).2. Controller solicita dados do Model.3. Model envia os dados para o controller.4. Controller trata os dados e envia para a view.5. View exibe o resultado para o usuário.

Outubro/2008Engenharia do Computação

Page 11: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Projeto Castle MonoRail

Provê um framework MVC para .NET 2.0

Baseado no framework Ruby On Rails para linguagem ruby

Compatível com Mono (Framework .NET para Linux)

Outubro/2008Engenharia do Computação

Page 12: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Estrutura - MonoRail

Outubro/2008Engenharia do Computação

Page 13: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Fluxo - MonoRail

Outubro/2008Engenharia do Computação

Page 14: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Exemplo: Validação do Usuário - Evento

Outubro/2008Engenharia do Computação

Page 15: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Exemplo: Validação do Usuário - Controller

Outubro/2008Engenharia do Computação

Page 16: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Camada Model

PROJ ETO MMS

M C V

Active Record

Nhibernate

Nvelocity J avaScript

HTML

Banco de Dados

Page 17: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Métodos de Consulta

Aplicação WEB

Open connect Database ..

BANCO DE

DADOS

Consultas SQL

Repetições de Códigos;

Consultas complexas;

Tratamento das consultas SQL é feita por parte do desenvolvedor;

Difícil debug das consultas;

Page 18: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

ORM – Mapeamento Objeto Relacional

Permite utilização de POO (Programação Orientado a Objeto);

Abstração do Bando de Dados;

Impedância objeto/Relacional – diferença que existe entre os modelos de dados relacionais e orientados a objeto;

Modelo Orientado a Objetos

BANCO DE DADOS

Modelo Relacional

?

Page 19: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

ORM – Mapeamento Objeto Relacional

Modelo Orientado a Objetos BANCO DE DADOS

Modelo Relacional?

- Organiza todos os dados em linhas e colunas;

- Cada linha representa um registro, e as colunas representam os diversos dados contidos em um registro;

- Tabelas adicionais são criadas para conter as informações “relacionadas”;

- Não está limitado a manter as informações em linhas e colunas;

- O desenvolvedor cria classe de informação;

- Cada registro (objeto) é uma instância específica daquela classe;

- São definidos métodos, que agem sobre os dados descritos pela classe.

Page 20: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

ORM – Mapeamento Objeto Relacional

Modelo Orientado a Objetos BANCO DE DADOS

Modelo RelacionalO RM

ORM tem por objetivo diminuir as diferenças entre objetos e tabelas de um SGBD;

Oferece formas para o desenvolvedor definir como que seus objetos serão persistidos (salvos), como podem ser obtidos e manipulados do banco de dados;

Page 21: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Tecnologias ORM

As tecnologias utilizadas:

NHibernate;

Castle Active Record;

Page 22: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

NHibernate

Ferramenta open-source;

Otimizações para cada SGBD que suporta;

Segurança contra SQL Injection;

Suporte a Lazy Loading;

Ferramenta sólida, baseada no Hibernate, utilizado

pelos desenvolvedores Java.

Page 23: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Maquina.csXML+

Maquina.hbm.xml

Hibernate.cfg.xml

NHibernate - Implementação

tab_maquina

NHibernate

Page 24: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

NHibernate - Implementação

T ab_ m ach ine

Page 25: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Maquina.cs

NHibernate - Implementação

namespace MMS.Models{ using System; using NHibernate.Expression;

public class Maquina { private int id; private string codigo; private DateTime dataAquisicao; private DateTime dataGarantia; private float tensaoOperacao; private float correntePartida; private float correnteNominal; private float frequencia; private float coeficientePartida; private string informacaoExtra;

namespace : espaço de nome onde conterá as classes com os métodosda camada model.

NHibernate

Page 26: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Maquina.cs

NHibernate - Implementação

NHibernate

public int Id { get { return id; } set { id = value; } }

public string Codigo { get { return codigo; } set { codigo = value; } }

public DateTime DataAquisicao { get { return dataAquisicao; } set { dataAquisicao = value; } }

Definição dos métodos da classe máquina

Page 27: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

XMLM ach in e.h bm .xm l

NHibernate - Implementação

<?xml version="1.0" encoding="utf-8" ?><hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"

assembly=“MMS" namespace=“MMS.Model">

<class name=“tab_maquina"> <id name=“id"> <generator class=“increment" /> </id> <property name=“codigo" /> <property name=“data_aquisicao" /> <property name=“data_garantia" /> <property name=“tensao_operacao" /> <property name=“corrente_partida" /> <property name=“corrente_nominal" /> ... </class>

</hibernate-mapping>

.hbm :é uma convenção usada pelo NHibernate para reconhecer automaticamente o arquivo como um arquivo de mapeamento

Page 28: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Hibernate.cfg.xml

NHibernate - Implementação

<?xml version="1.0" encoding="utf-8" ?><hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> <session-factory> <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider </property> <property name="dialect">NHibernate.Dialect.MySQLDialect </property> <property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver </property> <property name="connection.connection_string">Data Source=MMS.sdf </property> <property name="show_sql">true </property> </session-factory> </hibernate-configuration>

Page 29: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Castle Active Record

Faz parte do Castle Project;

Não há necessidade de implementação

de arquivos xml, para mapear as tabelas

do bando de dados;

Encapsulamento do NHibernate e XML;

Aumento na produtividade;

Page 30: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Active Record - Implementação

XML+ Maquina.csMaquina.hbm.xml

Web.config

Active Record Maquina.cs

tab_maquina

NHibernate

Page 31: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Active Record - Implementação

Maquina.csMaquina.hbm.xmlM aquina.csMaquina.cs

namespace MMS.Models{ using System; using Castle.ActiveRecord; using NHibernate.Expression;

public class Maquina { private int id; private string codigo; private DateTime dataAquisicao; private DateTime dataGarantia; private float tensaoOperacao; private float correntePartida; private float correnteNominal; private float frequencia; private float coeficientePartida; private string informacaoExtra;

Page 32: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Active Record - Implementação

Maquina.csMaquina.hbm.xmlM aquina.csMaquina.cs

[PrimaryKey(“id”)] public int Id { get { return id; } set { id = value; } }

[Property(“codigo”)] public string Codigo { get { return codigo; } set { codigo = value; } }

[Property(“data_aquisicao”)] public DateTime DataAquisicao { get { return dataAquisicao; } set { dataAquisicao = value; } }

XML

NHibernate

Page 33: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Active Record - Implementação

Web.config

<activerecord isWeb="true"> <config> <add key="hibernate.connection.driver_class" value="NHibernate.Driver.MySqlDataDriver" /> <add key="hibernate.dialect" value="NHibernate.Dialect.MySQLDialect" /> <add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider" /> <add key="hibernate.connection.connection_string" value="Database=mms;Data Source=192.168.0.100;User Id=root;Password=" />

</config> </activerecord>

Page 34: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Camada View

PROJ ETO MMS

M C V

Active Record

Nhibernate

Nvelocity J avaScript

HTML

Banco de Dados

Page 35: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Chamadas de Páginas

Outubro/2008Engenharia do Computação

Página WEB - HTML

Principal – Ex: User

Shared – User_form

Camada – View Camada – Controller

UserController.cs

Camada – Model

User.cs

Page 36: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Tecnologias da VIEW

NVelocity

Linguagem CSS

Linguagem HTML

Linguagem Java Script

Outubro/2008Engenharia do Computação

Page 37: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

NVelocity

É uma ferramenta que possibilita gerar código a partir de templates, seja código C#, SQL, páginas Web, PostScript entre outros;

O NVelocity é uma Template Language, que possibilita de uma forma simples incorporar conteúdos dinâmicos;

Outubro/2008Engenharia do Computação

Page 38: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

NVelocity

Usa referências para inserir conteúdos dinâmicos; Ex: #set ( $a = “Midgard” )

Código para editar usuário:#set ($formTitle = "Atualização de Dados (Usuário do

Sistema)")#set ($formAction = "update")#set ($updateId = "user.Id")#parse ("shared/forms/user_form.vm")

Outubro/2008Engenharia do Computação

Page 39: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Linguagem CSS

CSS é uma linguagem para estilos que define o layout de documentos;

É usado para formatar conteúdos estruturados;

Controle do layout de vários documentos a partir de uma simples folha de estilos;

Maior precisão no controle do layout;

Outubro/2008Engenharia do Computação

Page 40: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Linguagem CSS

Aplicação de diferentes layouts para servir diferentes mídias (tela, impressora, etc.);

Emprego de variadas, sofisticadas e avançadas técnicas de desenvolvimento.

Outubro/2008Engenharia do Computação

Page 41: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Linguagem CSS

Código CSS para definição de topo de página.

div#top{

background-image:url(../images/topo_fundo.jpg);background-color: #fff;width: 100%;height: 85px;

}

Outubro/2008Engenharia do Computação

Page 42: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Linguagem HTML

Significa Hyper Text Markup Language;

É a linguagem de marcação do hipertexto, na qual são escritas as páginas web;

Define exatamente a estrutura da página;

Outubro/2008Engenharia do Computação

Page 43: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Linguagem HTML

Código HTML da página principal:...<div id="center"> <table class="center"><tr> <td class="menu"> <div> #submenu_begin("Administração do Sistema") #submenu_item("Cadastro de Setores" "sector" "new") #submenu_item("Cadastro de Funcionários" "employee"

"new") #submenu_item("Cadastro de Usuário" "user" "new") #submenu_end()...

Outubro/2008Engenharia do Computação

Page 44: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Linguagem JavaScript

Validação dos formulários;

Interação com a página;

Oferece tipagem dinâmica;

Oferece bom suporte a expressões;

Outubro/2008Engenharia do Computação

Page 45: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Estrutura da View

Outubro/2008Engenharia do Computação

Código CSS

Page 46: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Estrutura da View

Outubro/2008Engenharia do Computação

Page 47: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Estrutura da View

Outubro/2008Engenharia do Computação

Page 48: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Sistema

Outubro/2008Engenharia do Computação

Page 49: Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira

Outubro/2008Engenharia do Computação

Banco de Dados

PROJ ETO MMS

M C V

Active Record

Nhibernate

Nvelocity J avaScript

HTML

Banco de Dados