quinta-feira, 28 de outubro de 2010

Requisitos de Sistemas

O Levantamento de Requisitos é toda a tarefa de pesquisa, definição e escopo dos sistemas criados ou alterados. Análise de requisitos é uma parte importante do processo de projeto de sistemas, na qual o engenheiro de requisitos e o analista de negócio, juntamente com engenheiro de sistema ou desenvolvedor de software, identificam as necessidades ou requisitos de um cliente



Processos

Novos sistemas mudam o ambiente e a relação entre as pessoas, então é importante identificar todos os envolvidos, levando em conta todas as suas necessidades e assegurando que eles compreenderam as implicações dos novos sistemas.

Principais Técnicas


- Entrevistas com stakeholder
- Workshops de requisitos
- Técnicas de Perguntas e respostas
- Protótipos
- Casos de Uso

Riscos com Stakeholder



- Usuários não sabem o que eles querem.
- Usuários que não querem concluir a escrita do conjunto de requisitos.
- Comunicação com o usuário é lenta
- Os usuários freqüentemente não participam nas revisões ou são incapazes de fazer isto.
- Os usuários são tecnicamente poucos sofisticados.
- Os usuários não entendem o processo de desenvolvimento

Problemas de Engenheiros ou Desenvolvedores



- Pessoal técnico e usuários finais têm vocabulários diferentes. Conseqüentemente, eles podem acreditar que estão em perfeito acordo até que o produto final seja entregue.

- Engenheiros e desenvolvedores tentam ajustar os requisitos para um sistema existente ou modelo, em vez de desenvolver um sistema específico que atenda as necessidades do cliente.

- A análise é freqüentemente conduzida por engenheiros ou programadores, ao invés de pessoal com habilidade e conhecimento do domínio para compreender as necessidades dos clientes.

Tentativas de solução

- Quadro eletrônico para marcar o fluxo das aplicações e testar alternativas.
- habilidade de capturar a lógica do negócio e informações necessárias.
- interatividade
- capacidade de adicionar requisitos contextuais e outros comentários.
- habilidade para uso remoto e distribuído para permitir o uso e interação como as simulações

Fontes: http://pt.wikipedia.org/wiki/An%C3%A1lise_de_requerimento_de_software

Duvidades e sugestões: ettorefrancobr@gmail.com

Obrigado.

quarta-feira, 22 de setembro de 2010

Parte 01 - Gerenciamento de Projetos

Por que gerenciar um projeto?



Pessoal, estaremos partindo do principio do por que gerenciar projetos? As respostas é:

-Envolve a parte financeira (recursos) de uma empresa
-Estão ligadas a estratégia das organizações
-Tem caracteristicas de riscos para as organizações

A liderança em Gerenciamento de Projetos é uma habilidade altamente procurada como diferencial competitivo para que novos projetos e desenvolvimento de negócios sejam completados no prazo e dentro do orçamento.

Imperativos Estratégicos da Gestão de Projetos

Fatores Internos
>Descoberta dos benefícios da gestão de projetos
>Resultados obtidos
>Pode ser integrado com outras formas de gerenciamento
>Gestão da Qualidade Total
>Gestão de Mudança

Fatores Externos
>Concorrência
>Padrões de qualidade
>Resultados financeiros
>Preocupações legais
>Fatores políticos
>Pressões econômicas

O objetivo de profissionalizar (formar gerentes em projetos) o desenvolvimento das atividades relacionadas a projetos é certamente melhorar os seus resultados:

Prazos cumpridos;
Custos controlados;
Qualidade desejada;
Satisfação do cliente.

Com a crescente importância dada ao gerente de projetos, este profissional se tornou um dos mais disputados do mercado. Por ser uma pessoa com visão sistêmica e capaz de comandar processos em setores como recursos humanos, finanças, marketing, produção, engenharia e manutenção, a procura tem sido grande.

Benefícios do gerenciamento de projetos




Líderes e membros de equipe:
Acompanhamento do trabalho exercido
Satisfação de entregas de produtos
Aumento de produtividade e redução de tempo

Clientes:
Aumento de confiança sobre o produto
Planejamento de trabalho
Definição de produto
Entrega, prazo e custo altamente confiáveis

Organização:
Melhora da Produtividade
Reduz o desperdicios
Aumenta a margem de lucros
Aumenta a competitividade no mercado
Facilita nas tomadas de decisões
Resultados claros do projeto para a empresa

domingo, 19 de setembro de 2010

Teste de Software

Teste de Software




Diferente do que as maiorias das pessoas pensam que o teste de software serve para demonstrar o correto funcionamento de um programa, quando na verdade ele é utilizado como um processo da engenharia de software para encontrar defeitos (erros). Existem várias definições para o conceito de Teste de software. De uma forma simples, testar um software significa verificar através de uma execução controlada se o seu comportamento corre de acordo com o especificado. O objetivo principal desta tarefa é encontrar o número máximo de erros dispondo do mínimo de esforço, ou seja, mostrar aos que desenvolvem se os resultados estão ou não de acordo com os padrões estabelecidos.

• Verificação:

A verificação tem o objetivo de avaliar se o que foi planejado realmente foi realizado. Ou seja, se os requisitos, funcionalidades e performances documentados foram implementados.
Também pode ser realizada para especificação de sistemas, para avaliar se os requisitos estão sendo documentados como deveriam e ainda prever falhas ou inconsistências entre requisitos.
Uma pergunta que devemos fazer para executar este teste é
“Estamos construindo certo o produto?”

• Validação:

A validação tem o objetivo de avaliar se o que foi entregue atende as expectativas. Ou seja, se os requisitos, independente do que foi planejado, estão implementados para atender ao negócio (cliente).
Uma pergunta que devemos fazer para executar este teste é:
“Estamos construindo o produto certo?”

Técnicas de Teste:


Para que possamos executar esses tipos de teste, e encontrar o maior numero possível de bug (erro).Devemos dividir em categorias de teste, mais conhecido como técnicas de teste.
Existem duas técnicas de teste, Teste Funcional e Teste Estrutural.

Teste Funcional: Mais conhecido como Caixa Preta, está técnica de teste, tem como foco o comportamento externo do sistema, é bem parecido como uma caixa preta do avião, aonde não é importante o que acontece dentro da mesma. Apenas insere os dados de entrada e espera uma resposta, sem saber o como chegou naquela resposta.



Usando está técnica de teste, podemos elaborar vários tipos de teste, que são:

•Teste de Requisitos:
Responsável: Por testar se as funcionalidades do sistema, de acordo com os requisitos imposto pelo cliente.
Recomendação: Planejar este teste diretamente dos requisitos, deixando de lado as documentações elaboradas para o desenvolvimento, pois ele também será testado.

•Teste de Regressão:
Responsável: Por testar as funcionalidades do sistema, após alguma alteração de grande risco, e isso inclui os segmentos já testados.
Recomendação: Executar este teste apenas quando houver alguma alteração de risco, pois este teste leva muito tempo e acaba tendo o custo meio alto.

•Teste de Tratamento de Erros:
Responsável: Por testar se todos os erros possíveis no sistema foram identificados e corrigidos.
Recomendação: Executar este teste em todo ciclo de vida do desenvolvimento.

•Teste de Suporte Manual:
Responsável: Por testar se o suporte manual, como guias, manuais. Estão sendo elaborados corretamente.
Recomendação: Executar este teste junto a homologação.

•Teste de Interconexão:
Responsável: Por testar se a conexão dos software integrados com o seu sistema ,está sendo desenhado corretamente, se existe alguma falha.
Recomendação: Executar este teste sempre que houver alguma mudança nos parâmetros entre os softwares, independente se o sistema está em produção

•Teste de Controle:
Responsável: Por testar se está sendo usado corretamente as técnicas dentro do software.
Recomendação: Deve ser como um software dentro do outro.

•Teste de Paralelo:
Responsável: Por testar se está mantida o status operacional , qualidade, da aplicação nova ou da nova versão.
Recomendação: Usar sempre que houver incertezas sobre a correção do processo da nova aplicação.

Teste Estrutural: Mais conhecido como Caixa Branca, está técnica de teste, ao contrario do Teste Funcional, tem como foco o funcionamento interno do sistema, aonde ele se preocupa como o sistema chegou a resposta final. Nesta técnica é necessário ter um bom conhecimento de programação, pois é no código será feito este Teste.



Usando está técnica de teste, podemos elaborar vários tipos de teste, que são:

•Teste de Estresse:
Responsável: Por testar qual a capacidade que o sistema suporta, fazendo com que o mesmo “quebre”, para saber se o sistema vai suporte em produção.
Recomendação: Levantar qual é a necessidade do sistema, antes de executar o teste , pois é um teste demorado e pode não ser necessários em alguns sistemas.

•Teste de Execução (Eficácia):
Responsável: Por testar o comportamento do sistema, se está sendo atendidas as premissas de desempenho estabelecidas, resumindo a usabilidade do sistema.
Recomendação: Executar o teste no começo do ciclo de vida de desenvolvimento, para que seja possível fazer mudanças na estrutura do sistema.

•Teste de Recuperação (Contingência):
Responsável: Por garantir a continuidade das operações após algum desastre (Backup).
Recomendação: Estimar a perda associadas com a incapacidade de recuperar as operações nos diversos intervalos de tempo (5 min, 1 hora, 8 horas, 1 semana ...).

•Teste de Operação:
Responsável: Por verificar os operadores foram adequadamente orientados pelos documentos no processo e na execução.
Recomendação: Executar o teste no inicio da operação real.

•Teste de Conformidade:
Responsável: Por testar se o sistema e documentos, estão conforme as especificação do cliente.
Recomendação: Executar o teste no inicio do ciclo de vida do desenvolvimento.

•Teste de Segurança:
Responsável: Por testar a confiabilidade de segurança tanto física , quanto lógica.
Recomendação: Executar o teste antes de produção e principalmente antes de ir pra produção.

Duvidas e sugestões > ettorefrancobr@gmail.com

quinta-feira, 22 de julho de 2010

HTML

Saudacoes amigos. Hoje iremos abordar um tema bem legalzinho de se trabalhar, HTML!
Uma linguagem muito simples sem muitas complicacoes, qualquer duvida mandem email ou post comentarios aqui no Blog!

Introducao!



O HTML, é responsável pela parte ‘pesada’ do site.
Hoje, existe o XHTML, que veio para substituir o HTML.Você deve se perguntar, por
que então eu vou aprender HTML em vez de aprender logo XHTML? É importante que
você aprenda o básico primeiro, a linguagem XHTML não é tão diferente do HTML,
mas é melhor que você conheça o HTML primeiro que tudo vai ficar mais fácil depois
para aprender o XHTML.

HTML

O HTML, é a linguagem mãe usada para construir os sites. Apesar de ser
coisa do passado, um site ser feito apenas com HTML, sem o HTML não é possível
montar uma página de internet.

Primeirante utilizaremos apenas o bloco de notas para criarmos uma pagina de internet. As Tags em HTML e as estruturas no qual iremos montar nossa pagina em HTML.

As Principais TAGS sao:

< html > é a tag de abertura do html.

< head > cabeçalho da página. onde ficam informações adicionais.

tag de fechamento do cabeçalho.

< title >
é a tag de abertura do título da janela.

tag de fechamento do título da janela.

< body > corpo da página. aqui ficará a parte principal do seu site.

tag de fechamento do corpo da página.

tag de fechamento do html.

Digite as tags abaixo em bloco de notas e salve como nome.html
OBS: Nao copie e cole aqui do blog, pois tive que dar um espaco entre as tags para poder postar, pois qualquer pagina no qual contenha tags ira ser aplicado esses efeitos uma vez que digitar a tag nela.

< html >
< head >

< title >Meu website< /title >
< /head >
< body >
< /body >
< /html >


Ira salvar em uma pagina da Web, entao clique nessa pagina e visualize o titulo dela!
=DDD Facil nao? Voce pode alterar para o tipo que quiser, basta colocar como esta entre as tags.

CABECALHO

No corpo do HTML < BODY > coloque a seguinte tag:

< h1 >Um cabeçalho< /h1 >

A tag < h1 > indica a abertura de um cabecalho.
Temos h1, h2, h3, h4, h5 e h6 cada um possuindo um tamanho.

Salve e veja a webpage novamente.

PARAGRAFO

Agora iremos montar um paragrafo para nosso HTML.
Abaixo do cabecalho insira:

< p >Texto referente ao cabecalho< /p >

Dificil? hahaha vamos que temos mais tags para personalizar a pagina.

Italic & Bold

Voce deseja deixar um texto em negrito ou italico, basta colocar entre o texto as seguintes tags:

< b > Negrito < /b >

< i > Italico < /i >

Caso queira usar simultaneamente basta colocar < i > < b > texto < /b > < /i >

Texto com letras menores

< small > texto menos < /small >

Pula linha

Apenas o < b/ > basta

Uma linha horizontal

< hr/ > basta! =p

Lista

< ul >
< li >Um item de lista< /li >
< li >Outro item de lista< /li >
< /ul >

Lista ordenada:

< ol >
< li >Primeiro item da lista< /li >
< li >
Segundo item da lista< /li >
< /ol >

Cor da tela do fundo:

Coloque o seguinte atributo dentro da tag body

< body style="background-color:Red;" >
ou
< body style="background-color:#ff0000;" >

Tabela de Cores do HTML



Linkando uma pagina na outra

Agora uma das partes mais importantes, Link de pagina sobre a outra, ou seja, ao clicar em um link abre a outra pagina.

< a href="outrapagina.html" >Aqui entra o nome do link< /a >

Obs importante: Voce deve criar as paginas antes de linkar. Para ficar mais facil, jogue todas as paginas em uma unica pasta.

Linkando paginas de internet em sua pagina

< a href="http://www.ettorefrancoads.blogspot.com/" >Aqui entra o nome do link< /a >

Bom pessoal por hoje e so, espero que tenham gostado. Logo irei postar mais assuntos como esse. Ate a proxima!

Duvidas e Sugestoes > ettorefrancobr@gmail.com

segunda-feira, 19 de julho de 2010

Sistemas ERP

Ola pessoal, faz um tempo que nao posto por questao de tempo, mas estarei postando mais um artigo hoje.
Falaremos sobre Sistemas ERP mas o que seria um Sistema ERP?

Introdução


Com o avanço da Tecnologia da Informação as empresas passaram a utilizar sistemas computacionais para suportar suas atividades. Geralmente, em cada empresa, vários sistemas foram desenvolvidos para atender aos requisitos específicos das diversas unidades de negócio, plantas, departamentos e escritórios. Por exemplo, o departamento de planejamento da produção utiliza um sistema próprio e o departamento de vendas utiliza outro. Dessa forma, a informação fica dividida entre diferentes sistemas.

Os principais problemas dessa fragmentação da informação são a dificuldade de obtenção de informações consolidadas e a inconsistência de dados redundantes armazenados em mais de um sistema. Os sistemas ERP (Enterprise Resource Planning) solucionam esses problemas ao agregar, em um só sistema integrado, funcionalidades que suportam as atividades dos diversos processos de negócio das empresas.

Os sistemas ERP surgiram a partir da evolução dos sistemas MRP (Material Resource Planning). Neles, foram agregados as funções de programação mestre da produção, cálculo grosseiro de necessidades de capacidade, cálculo detalhado de necessidade de capacidade, controle do chão de fábrica, controle de compras e, mais recentemente, Sales & Operations Planning. Dessa forma, os sistemas MRP deixaram de atender apenas as necessidades de informação referentes ao cálculo da necessidade de materiais, para atender às necessidades de informação para a tomada de decisão gerencial sobre outros recursos de manufatura. O MRP passou, então, a ser chamado de MRP II (Manufacturing Resource Planning - Planejamento de Recursos de Manufatura).

Com o objetivo de ampliar a abrangência dos produtos vendidos, os fornecedores de sistemas desenvolveram mais módulos, integrados aos módulos de manufatura, mas com escopo que ultrapassa os limites da manufatura. Como exemplo, foram criados os módulos de Gerenciamento dos Recursos Humanos, Vendas e Distribuição, Finanças e Controladoria, entre outros. Esses novos sistemas, capazes de suportar as necessidades de informação para todo o empreendimento, são denominados sistemas ERP.

Estrutura típica dos sistemas ERP

Os sistemas ERP são compostos por uma base de dados única e por módulos que suportam diversas atividades das empresas. A figura abaixo apresenta uma estrutura típica de funcionamento de um sistema ERP. Os dados utilizados por um módulo são armazenados na base de dados central para serem manipulados por outros módulos.



Os módulos citados na figura acima estão presentes na maioria dos sistemas ERP. Além deles, alguns sistemas ERP possuem módulos adicionais, tais como: Gerenciamento da Qualidade, Gerenciamento de Projetos, Gerenciamento de Manutenção, entre outros.

Implantação de sistemas ERP

As funcionalidades dos módulos de um sistema ERP representam uma solução genérica que reflete uma série de considerações sobre a forma que as empresas operam em geral. Para flexibilizar sua utilização em um maior número de empresas de diversos segmentos, os sistemas ERP foram desenvolvidos de forma que a solução genérica possa ser customizada em um certo grau.

Na implantação de um sistema ERP, a customização é um compromisso entre os requisitos da empresa e as funcionalidades disponíveis no sistema. Inicialmente, na maioria das vezes, os processos de negócio das empresas precisam ser redefinidos para que seus requisitos se aproximem das funcionalidades do sistema. Então, a primeira medida de customização é a seleção dos módulos que serão instalados. A característica modular permite que cada empresa utilize somente os módulos que necessite e possibilita que módulos adicionais sejam agregados com o tempo. Em seguida, para cada módulo, são feitos ajustes nas tabelas de configuração para que o sistema se adeque da melhor forma possível aos novos processos de negócio. Mesmo com a customização, a solução pode não atender a alguns requisitos específicos das empresas. Nesses casos, as empresas precisam utilizar outros sistemas complementares ou abandonar seus requisitos específicos e adotar processos genéricos.

Por esse motivo, a decisão de implantação de um sistema ERP só deve ser tomada após uma análise detalhada dos processos da empresa e das funcionalidades dos sistemas ERP. Além disso, é muito importante que as empresas considerem, desde o início da implantação, os impactos que a redefinição dos processos e a introdução do sistema terão na estrutura, cultura e estratégia da organização.

Benefícios da utilização de sistemas ERP

As utilização de sistemas ERP otimiza o fluxo de informações e facilita o acesso aos dados operacionais, favorecendo a adoção de estruturas organizacionais mais achatadas e flexíveis. Além disso, as informações tornam-se mais consistentes, possibilitando a tomada de decisão com base em dados que refletem a realidade da empresa. Um outro benefício da implantação é a adoção de melhores práticas de negócio, suportadas pelas funcionaldades dos sistemas, que resultam em ganhos de produtividade e em maior velocidade de resposta da organização.


Utilizção de sistemas ERP no processo de desenvolvimento de produtos

Apesar de não possuírem um módulo específico para o processo de desenvolvimento de produtos, os sistemas ERP tem diversas funcionalidades que suportam as atividades desse processo dispersas entre seus módulos. Entre essas funcionalidades estão: gerenciamento de dados de produtos, gerenciamento da BOM (Bill of Materials), planejamento de processo macro, APIs para sistemas CAD (Computer Aided Design) e gerenciamento de fluxo de trabalho.
Na aplicação de sistemas ERP no desenvolvimento de produtos, devem ser analisadas as sobreposições de funções entre esses sistemas e os sistemas de engenharia (CAD/CAE/CAM/CAPP/PDM) e exploradas as possibilidades de integração entre eles.

Sobreposição de funções e integração entre sistemas ERP e PDM

Em geral, as sobreposições de funções entre sistemas ERP e PDM são: Gerenciamento da Estrutura de Produto ou BOM, Gerenciamento de Mudanças de Produto, e Gerenciamento dos Dados e Características do Produto.
O ponto comum de uma possível integração entre sistemas ERP e PDM é a Estrutura de Produto (BOM). Com a sobreposição de funções, o problema é como se obter vantagens competitivas na passagem dos dados da engenharia para a manufatura. Ainda não existe uma abordagem definida, mas algumas soluções possíveis são:

Transmissão, em uma direção, dos dados da BOM para o sistema ERP utilizando APIs (Application Program Interface) dos fornecedores de pacotes;
APIs bidirecionais nas quais o ERP envia para o sistema PDM informações necessárias para a análise de custo e modificações;
Possibilitar que o ERP obtenha a BOM diretamente do PDM quando esta for criada e mantenha estes dados com status de “em projeto” até que a atividade esteja completada. Enquanto isso os dados ficam sobre o controle do PDM.
Um dos benefícios de uma efetiva integração entre sistemas ERP e PDM deve ser a eliminação de dados redundantes e a redução do ciclo de transferência de dados da engenharia para a manufatura. Deve-se observar que, atuamente, alguns sistemas ERP estão incorporando às suas soluções funcionalidades completas de um sistema PDM, distribuídas ao longo de seus módulos.

Sobreposição de funções e integração entre sistemas ERP e CAPP

A sobreposição de funções entre sistemas ERP e CAPP ocorre nas informações sobre seqüência de operações de fabricação, equipamentos utilizados e tempos (plano de processo macro).
Geralmente, os sistemas ERP dispõe de um módulo de Apoio à Gestão de Produção em Processos, no qual são geradas as informações do plano macro. Estas informações são básicas para o funcionamento do sistema. No entanto, os sistemas ERP não têm podem gerar e gerenciar todos os detalhamentos do plano de processo necessários em um ambiente de Engenharia Simultânea.
Para gerar e gerenciar os detalhamentos do plano macro (FMEA, Plano de Controle, Condições de Usinagem, Ferramental, entre outros) é necessária a utilização de sistemas CAPP.
Como no caso da integração entre sistemas PDM e ERP, ainda não existe uma abordagem definida para a integração entre CAPP e ERP. Atualmente a transferência dos dados da engenharia para a produção muitas vezes ocorre por duplicação de atividades ou ainda por digitação dos dados no sistema ERP.

Livros

CORRÊA, H.L.; GIANESI, I.G.N.; CAON, M. (1997). Planejamento, programação e controle da produção: MRP II / ERP: conceitos, uso e implantação. São Paulo: Atlas. ( Disponível na biblioteca da EP - USP ).

CURRAN, T; KELLER, G.; LADD, A. (1997). SAP R/3 business blueprint: Understanding the Business Process Reference Model. Prentice Hall.

KELLER, G.; TEUFEL, T. (1998). SAP R/3 process oriented implementation: Iterative Process Prototyping. Addison-Wesley.

KIRCHMER, M. (1998). Business process oriented implementation of standard software. Springer-Verlag.

LAUDON, K. C.; LAUDON, J. P. (1998). Management information systems. Upper Saddle River: Prentice Hall. ( Disponível na biblioteca da FEA - USP ).

Fontes do site: http://www.numa.org.br/

Espero que gostem.

Duvidas e Sugestoes: ettorefrancobr@gmail.com

domingo, 20 de junho de 2010

Qualidade de Software - ISO/IEC 9126

ISO/IEC 9126



É uma norma ISO para qualidade de produto de software, que se enquadra no modelo de qualidade das normas da família 9000. A norma brasileira correspondente é a NBR ISO/IEC 9126.

Modelo de Qualidade de Software

A qualidade de um sistema de software pode ser entendida de diversas formas e utilizando diferentes abordagens.

A norma ISO/IEC 9126, ou conjunto de normas que tratam deste assunto no âmbito da ISO, estabelece um modelo de qualidade com os seguintes componentes:

Processo de desenvolvimento: cuja qualidade afeta a qualidade do produto de software gerado e é influenciado pela natureza do produto desenvolvido;
Produto: compreendendo os atributos de qualidade do produto (sistema) de software. Estes atributos de qualidade podem ser divididos entre atributos internos e externos. Estes se diferenciam pela forma como são aferidos (interna ou externamente ao produto de software) e em conjunto compõem a qualidade do produto de software em si;
Qualidade em uso: que consiste na aferição da qualidade do software em cada contexto específico de usuário. Esta é, também, a qualidade percebida pelo usuário.

Modelo de Qualidade da Norma ISO 9126

A norma 9126 se foca na qualidade do produto de software, propondo Atributos de Qualidade, distribuídos em seis características principais, com cada uma delas divididas em sub-características, conforme podemos ver na figura abaixo:



No nível mais alto temos as características de qualidade e nos quadros abaixo as suas sub-características. Cada característica/sub-característica compõe um Atributo de Qualidade do software.
Note que em todas as características temos uma sub- com o nome de Conformidade. A conformidade é utilizada para avaliar o quanto o software obedece aos requisitos de legislação e todo o tipo de padronização ou normalização aplicável ao contexto.

1. Funcionalidade

A capacidade de um software prover funcionalidades que satisfaçam o usuário em suas necessidades declaradas e implícitas, dentro de um determinado contexto de uso.

Suas sub-características são:
Adequação: que mede o quanto o conjunto de funcionalidades é adequado às necessidades do usuário;
Acurácia (ou precisão): representa a capacidade do software de fornecer resultados precisos ou com a precisão dentro do que foi acordado/solicitado;
Interoperabilidade: que trata da maneira como o software interage com outro(s) sistema(s) especificados;
Segurança: mede a capacidade do sistema de proteger as informações do usuário e fornecê-las apenas (e sempre) às pessoas autorizadas;

2. Confiabilidade

O produto se mantém no nível de desempenho nas condições estabelecidas.

Suas sub-características são:
Maturidade: entendida como sendo a capacidade do software em evitar falhas decorrentes de defeitos no software;
Tolerância a Falhas: representando a capacidade do software em manter o funcionamento adequado mesmo quando ocorrem defeitos nele ou nas suas interfaces externas;
Recuperabilidade: que foca na capacidade de um software se recuperar após uma falha, restabelecendo seus níveis de desempenho e recuperando os seus dados;

3. Usabilidade

A capacidade do produto de software ser compreendido, seu funcionamento aprendido, ser operado e ser atraente ao usuário.
Note que este conceito é bastante abrangente e se aplica mesmo a programas que não possuem uma interface para o usuário final. Por exemplo, um programa batch executado por uma ferramenta de programação de processos também pode ser avaliado quanto a sua usabilidade, no que diz respeito a ser facilmente compreendido, aprendido, etc. Além disto, a operação de um sistema é uma interface Humano-Computador (ver IHC) sujeita às avaliações de usabilidade.

Suas sub-características são:
Inteligibilidade: que representa a facilidade com que o usuário pode compreender as suas funcionalidades e avaliar se o mesmo pode ser usado para satisfazer as suas necessidades específicas;
Apreensibilidade: identifica a facilidade de aprendizado do sistema para os seus potenciais usuários;
Operacionalidade: é como o produto facilita a sua operação por parte do usuário, incluindo a maneira como ele tolera erros de operação;
Atratividade: envolve características que possam atrair um potencial usuário para o sistema, o que pode incluir desde a adequação das informações prestadas para o usuário até os requintes visuais utilizados na sua interface gráfica;

4. Eficiência

O tempo de execução e os recursos envolvidos são compatíveis com o nível de desempenho do software.

Suas sub-características são:
Comportamento em Relação ao Tempo: que avalia se os tempos de resposta (ou de processamento) estão dentro das especificações;
Utilização de Recursos: que mede tanto os recursos consumidos quanto a capacidade do sistema em utilizar os recursos disponíveis;

5. Manutenibilidade

A capacidade (ou facilidade) do produto de software ser modificado, incluindo tanto as melhorias ou extensões de funcionalidade quanto as correções de defeitos.

Suas sub-características são:
Analisabilidade: identifica a facilidade em se diagnosticar eventuais problemas e identificar as causas das deficiências ou falhas;
Modificabilidade: caracteriza a facilidade com que o comportamento do software pode ser modificado;
Estabilidade: avalia a capacidade do software de evitar efeitos colaterais decorrentes de modificações introduzidas;
Testabilidade: representa a capacidade de se testar o sistema modificado, tanto quanto as novas funcionalidades quanto as não afetadas diretamente pela modificação;

6. Portabilidade

A capacidade do sistema ser transferido de um ambiente para outro.
Como "ambiente", devemos considerar todo os fatores de adaptação, tais como diferentes condições de infra-estrutura (sistemas operacionais, versões de bancos de dados, etc.), diferentes tipos e recursos de hardware (tal como aproveitar um número maior de processadores ou memória). Além destes, fatores como idioma ou a facilidade para se criar ambientes de testes devem ser considerados como características de portabilidade.

Suas sub-características são:
Adaptabilidade: representando a capacidade do software ser a adaptar a diferentes ambientes sem a necessidade de ações adicionais (configurações);
Capacidade para ser Instalado: identifica a facilidade com que pode se instalar o sistema em um novo ambiente;
Coexistência: mede o quão facilmente um software convive com outros instalados no mesmo ambiente;
Capacidade para Substituir: representa a capacidade que o sistema tem de substituir outro sistema especificado, em um contexto de uso e ambiente específicos. Este atributo interage tanto com adaptabilidade quanto com a capacidade para ser instalado;

quarta-feira, 16 de junho de 2010

Java - Introdução

Saudações.
Primeiramente quero agradecer a todos que participam e seguem meu blog.
Tenho grande orgulho de estar me responsabilizando por compartilhar informações tão importantes com voces.
Estou pedindo desculpa para todos que não estou com muito tempo para responder e-mail, pois meus compromissos diarios estão cada dia agitados, mas não irei deixar de postar os artigos.
Darei o maximo de atenção em meu "tempo livre" para poder passar mais informações a voces.
Iniciarei hoje com um assunto muito interessante: "JAVA".
Espero que gostem.

Java - Introdução



Java é uma linguagem de programação orientada a objeto desenvolvida na década de 90 por uma equipe de programadores chefiada por James Gosling, na empresa Sun Microsystems. Diferentemente das linguagens convencionais, que são compiladas para código nativo, a linguagem Java é compilada para um "bytecode" que é executado por uma máquina virtual. A linguagem de programação Java é a linguagem convencional da Plataforma Java, mas não sua única linguagem.

Utilizarei os metodos patricos em java, espero que façam a parte de voces.
DICA: Pesquise artigos, foruns de discuçõe e toda a parte teórica sobre Java para dar inicio a nossa "engrenagem de estudos" na linguagem de programação JAVA.

Sobre Aplicação

Java é uma linguagem de programação na qual podemos compilar seu código desde um Bloco de notas até os programas avançados como Eclipse, NetBeans entre outros.

Baixando o Java para aplicação

Acesse o link http://www.java.com/pt_BR/download/ e faça o download do arquivo.
Após o download iremos fazer algumas alterações para iniciarmos o estudo sobre java.

Configurações no sistemas

Para dar inicio em nossa jornada, iremos fazer algumas configurações. Primeiramente devemos declarar as variáveis de ambientes para utilizarmos as classes do Java. Para isso iremos fazer os seguintes passos:

- Clicar com o botão direito em Meu Computador
- Propriedades
- Avançado
- Variáveis de Ambiente



- Clique duas vezes em Path
- Copie o caminho:
'C:\Arquivos de programas\Java\jdk1.6.0_18\bin'
Obs.: Certifique-se de que voce possui este caminho, caso nao possua, baixe o Java.
- Cole após o ultimo caractere em "Valor da variável" separando das outras variáveis com ';'
- De um Ok e iremos abrir o DOS
- Executar
- CMD > ok
- No DOS entre em:
- C:\Arquivos de programas\Java\jdk1.6.0_18\bin
- Digite o comando 'javac'

Javac é um compilador do java, no qual transforma arquivos .java em .class

Pronto! Configuramos nossa variáveis de ambiente.
Agora iremos Criar nossa primeira aplicação!

Primeira Aplicação - Criando e Compilando

Iremos criar nossa primeira aplicação em um bloco de notas.
- Abra o Bloco de Notas
- Jogue o comando:

// Programa de adição que exibe a soma de dois números.
import java.util.Scanner; // programa utiliza a classe Scanner
public class soma
{
// método principal inicia a execução do aplicativo Java
public static void main( String args[] )
{
// cria Scanner para obter entrada a partir da janela de comando
Scanner input = new Scanner( System.in );

int number1; // primeiro número a somar
int number2; // segundo número a adicionar
int sum; // soma de number1 e number2

System.out.print( "Entre com o primeiro numero: " ); // prompt
number1 = input.nextInt(); // lê primeiro o número fornecido pelo usuário

System.out.print( "Entre com o segundo numero: " ); // prompt
number2 = input.nextInt(); // lê o segundo número fornecido pelo usuário

sum = number1 + number2; // soma os números

System.out.printf( "A soma e %d\n", sum ); // exibe a soma

} // fim do método principal

} // fim da classe Addition

- Iremos salvar esse bloco de notas em uma pasta na Raiz com o seguinte nome:
- C:\Java\soma.java
- A extenção .java é a extenção não compilada de nossa aplicação.

Compilando e rodando nossa aplicação

Para compilar é bem simples.
- Abra o DOS
- Abra o caminho C:\Java
- digite o comando javac soma.java
Obs.: Caso não de nenhum erro, o java vai comilar a aplicação. Note que na pasta aonde salvamos nossa aplicação, logo após a compilação, aparecera um outro arquivo .class (a aplicação ja compilada)

Agora para testar o aplicativo é simples.
- No caminho do DOS C:\Java digite:
java soma

RESULTADO!



Obs.: Não se preocupe com o código pois itemos trabalhar mais a fundo sobre isso nas proximas aulas. Apenas coloquei as descrições de cada linha de comando para quem tem mais interesses.
Espero que tenham gostado dessa primeira aula de Java. Iremos trabalhar muito mais em relação a esta linguagem de programação.

Duvidas e Sugestões > ettorefrancobr@gmail.com

Muito obrigado a todos.

segunda-feira, 14 de junho de 2010

Analise e Projeto Orientada a Objetos - Diagramas

Diagrama de Casos de Uso

O Diagrama de Casos de Uso tem o objetivo de auxiliar a comunicação entre os analistas e o cliente.
Um diagrama de Caso de Uso descreve um cenário que mostra as funcionalidades do sistema do ponto de vista do usuário.
O cliente deve ver no diagrama de Casos de Uso as principais funcionalidades de seu sistema.

O diagrama de Caso de Uso é representado por:
* atores;
* casos de uso;
* relacionamentos entre estes elementos.

Estes relacionamentos podem ser:

* associações entre atores e casos de uso;
* generalizações entre os atores;
* generalizações, extends e includes entre os casos de uso.

casos de uso podem opcionalmente estar envolvidos por um retângulo que representa os limites do sistema.

Sistema

* Limites do sistema: representado por um retângulo envolvendo os casos de uso que compõem o sistema.
* Nome do sistema: Localizado dentro do retângulo.



Diagrama de Classes

Um diagrama de três faces

Descrever os vários tipos de objetos no sistema e o relacionamento entre eles.

Perspectivas

Um diagrama de classes pode oferecer três perspectivas, cada uma para um tipo de usuário diferente. São elas:

Conceitos ou Entidades



o Representa os conceitos do domínio em estudo.
o Perspectiva destinada ao cliente.

Classes



o Tem foco nas principais interfaces da arquitetura, nos principais métodos, e não como eles irão ser implementados.o Perspectiva destinada as pessoas que não precisam saber detalhes de desenvolvimento, tais como gerentes de projeto.

Classes de Software



o Aborda vários detalhes de implementação, tais como navegabilidade, tipo dos atributos, etc.
o Perspectiva destinada ao time de desenvolvimento.

Diagramas de Seqüência


Consiste em um diagrama que tem o objetivo de mostrar como as mensagens entre os objetos são trocadas no decorrer do tempo para a realização de uma operação.

Em um diagrama de seqüência, os seguintes elementos podem ser encontrados:

* Linhas verticais representando o tempo de vida de um objeto (lifeline);
* Estas linhas verticais são preenchidas por barras verticais que indicam exatamente quando um objeto passou a existir. Quando um objeto desaparece, existe um "X" na parte inferior da barra;
* Linhas horizontais ou diagonais representando mensagens trocadas entre objetos. Estas linhas são acompanhadas de um rótulo que contém o nome da mensagem e, opcionalmente, os parâmetros da mesma. Observe que também podem existir mensagens enviadas para o mesmo objeto, representando uma iteração;
* Uma condição é representada por uma mensagem cujo rótulo é envolvido por colchetes;
* Mesagens de retorno são representadas por linhas horizontais tracejadas. Este tipo de mensagem não é freqüentemente representada nos diagramas, muitas vezes porque sua utilização leva a um grande número de setas no diagrama, atrapalhando o entendimento do mesmo. Este tipo de mensagem só deve ser mostrada quando forfundamental para a clareza do diagrama.

Observe a figura abaixo.



Diagrama de Atividades

O objetivo do diagrama de atividades é mostrar o fluxo de atividades em um único processo. O diagrama mostra como um atividade depende uma da outra.
Um diagrama de atividade pode ser regiões denominadas swimlanes. Estas regiões esão associadas a um objeto do modelo. Desta forma, dentro de cada região, encontram-se as atividades relativas ao objeto da região.
As atividades são conectadas através de arcos (transições), que mostram as dependências entre elas.

Exemplo:
Descrição do exemplo: Retirando dinheiro de um caixa eletrônico (para cartões de crédito).



Diagrama de Estados

Em um diagrama de estado, um objeto possui um comportamento e um estado.
O estado de um objeto depende da atividade na qual ele está processando.
Um diagrama de estado mostra os possíveis estados de um objeto e as transações responsáveis pelas suas mudanças de estado.

Exemplo:
Descrição do exemplo: Modelagem do sistema de login. Para que o usuário seja autenticado, ele deve fornecer dois valores: SSN (Social Security Number) e o PIN (Personal ID Number). Após a submissão é feita uma validação.

Diagrama de estado para o objeto Login.



Diagrama de Comunicação

Ele normalmente é utilizado como complemento do diagrama de seqüência, porem possui um enfoque diferente, concentrando-se em como os objetos estão vinculados através de mensagens. Pode ser gerado a partir do diagrama de seqüências por representar os mesmos dados. Outra característica do diagrama de comunicação é que as mensagens possuem numeração para designar seqüência.



Nesta figura é mostrado o diagrama de comunicação do caso de uso realizar submissão. É mostrado as mensagens trocadas entre o Submissor, a página do congresso, o controlador do congresso, o tema e a Submissão.

Diagramas de Implementação


Os diagramas de implementação são empregados para a modelagem da visão estática da implementação de um sistema. Na maior parte, isso envolve a modelagem da topologia do
hardware em que o sistema é executado.
São utilizados para visualizar, especificar e documentar sistemas embutidos, cliente/servidor, distribuídos e gerenciamento de sistemas executáveis.



Ao criar um software, você como programador focaliza a arquitetura e a implementação dele, entretanto, como engenheiro de sistemas, seu foco principal está no hardware e no software e no gerenciamento da compatibilidade dos dois.

Os diagramas de implementação são utilizados para analisar a topologia dos processadores e dispositivos nos quais o software é executado.

DICA: Vejam e revejam todos esses diagramas, tivemos 1 semestre inteiro para aprender todos esses diagramas, mas com muito estudo garanto que voces aprende isso em questão de um mes. Procure fazer diagramas representando diversos tipos de exemplo.

Fonte: http://www.dsc.ufcg.edu.br/

Até a próxima.

Duvidas e sugestões: ettorefrancobr@gmail.com

domingo, 13 de junho de 2010

Engenharia de Software - Introdução

O que é Engenharia de Software?

Voltada para a especificação, desenvolvimento e manutenção de sistemas de software, aplicando tecnologias e práticas.
Objetivo: construir sistema organizado, visando produtividade e qualidade.

Porque Engenharia de Software?



Áreas de conhecimento de Engenharia de Software


-Requisitos de Software
-Projeto (Design) de Software
-Implementação de Software
-Teste de Software
-Manutenção de Software
-Gerência de Configuração de Software
-Gerência de Engenharia de Software
-Processos de Engenharia de Software
-Ferramentas e Métodos de Engenharia de Software
-Qualidade de Software

Crise do Software – anos 70




-Projetos estourando o orçamento
-Projetos estourando o prazo
-Software de baixa qualidade
-Software muitas vezes não atingiam os requisitos
-Projetos não gerenciáveis e o código difícil de manter.

Solução da Crise do Software

-O uso de melhores técnicas, métodos e ferramentas
-Mais treinamento e educação
-A mudança de paradigma sobre o que é desenvolver software e como deveria ser feito.

Processo de Software



Conjunto de atividades cujo objetivo é o desenvolvimento ou evolução do software.
Atividades genéricas:

Especificação – definição da funcionalidade do software e as restrições em sua operação
Desenvolvimento - produção do software de modo que atenda as especificações.
Validação – garantir os interesses do cliente.
Evolução - atender às necessidades mutáveis do cliente.

Modelo de Processo

Uma representação, ou abstração dos objetos e atividades envolvidas no processo de software.

-Modelos genéricos = Paradigmas
-Modelo em Cascata
-Espiral
-Prototipação
-Desenvolvimento iterativo e evolutivo
-Ágil

Métodos

Um processo com uma série de passos, para construir um software.
Um método de Engenharia de Software pode ser considerado como parte da metodologia

Por exemplo:

Metodologias de Desenvolvimento Ágil
Métodos: XP, Desenvolvimento Ágil
Metodologia Orientada a Objetos
Métodos: RUP

Sistemas CASE

Sistemas CASE são freqüentemente utilizados para apoiar a aplicação dos métodos.
Upper-CASE : ferramentas de apoio às fases iniciais do processo de software
Lower-CASE : ferramentas de apoio às fases finais processo de software (implementação e testes)

Responsabilidade Profissional




-Confidencialidade
-Competência
-Direitos de propriedade
-Má utilização de computadores

Código de ética

Engenheiros de software se comprometerão a fazer da análise, da especificação, do projeto, do desenvolvimento, dos testes e da manutenção de software uma profissão benéfica respeitada. De acordo com seu compromisso com a saúde, a segurança e o bem estar do público, os engenheiros de software deverão assegurar que seus produtos e as alterações a eles relacionadas cumpram o mais alto padrão profissional possível.

PÚBLICO
Os engenheiros de software agirão consistentemente com o interesse público.

CLIENTE E EMPREGADOR
Os engenheiros de software agirão de acordo com os melhores interesses de seus clientes e empregadores de modo consistente com o interesse público.

PRODUTO
Engenheiros de software deverão assegurar que seus produtos e as alterações a eles relacionadas cumpram o mais alto padrão profissional possível.

JULGAMENTO
Os engenheiros de software manterão integridade e independência em seu julgamento profissional.

GERENCIAMENTO
Os gerentes e líderes de engenharia de software adotarão e promoverão uma abordagem ética para o gerenciamento do desenvolvimento e da manutenção do software.

PROFISSÃO
Os engenheiros de software seguirão a integridade e reputação da profissão, de modo consistente com o interesse público.

COLEGAS
Os engenheiros de software serão justos e darão apoio aos seus colegas.

PESSOAL
Os engenheiros de software participarão de aprendizado constante com relação à prática de sua profissão e promoverão uma abordagem ética dessa prática.

Resumindo

A engenharia de software é uma disciplina da engenharia que se ocupa de todos os aspectos da produção de software

Produtos de software consistem de programas desenvolvidos e da documentação associada. Os atributos essenciais dos produtos são a facilidade de manutenção, a confiança e a evolução do software.

O processo de software consiste em atividades envolvidas no desenvolvimento de produtos de software. As atividades básicas são a especificação, o desenvolvimento, a validação e a evolução do software.

Métodos são os meios organizados de produzir software. Eles incluem sugestões sobre o processo a ser seguido, as notações a serem utilizadas, as regras que regem as descrições de sistema produzidas e as diretrizes do projeto.

Ferramentas CASE são sistemas de software projetados para dar apoio às atividades de rotina no processo de software, tais como editar diagramas de projeto, verificar a consistência de diagramas e manter o controle dos testes de programas.

Os engenheiros de software tem responsabilidades para com a engenharia como profissão e a sociedade. Eles não devem se preocupar exclusivamente com questões técnicas.


DUVIDAS e SUGESTÕES - ettorefrancobr@gmail.com

terça-feira, 8 de junho de 2010

Delphi - Conhecendo o Ambiente

Saudações.
Até agora postei uma parte de meu sistema criado apenas para estudos.
Agora, vou postar aulas sobre como montar este sistemas.
As aulas estão divididas por módulos e farei da forma mais clara possível.
Qualquer duvida e sugestões, podem comentar nos tópicos que irei estar respondendo ou através do e-mail ettorefrancobr@gmail.com.

1 - INTRODUÇÃO AO DELPHI

Conhecer o "Ambiente" de um programa é essencial para começarmos a trabalhar com ele, então nesse estudo irei estar mostrando todo o ambiente Delphi.

AMBIENTE DELPHI



Este é o ambiente do Delphi 7 no qual iremos realizar nosso estudo.

BARRA DE MENU



A Barra de Menu do Delphi é aonde esta todas as opções que desejamos trabalhar no Delphi.
DICA: DICA: Para aproveitar mais sobre o estudo verifique todo o menu do Delphi.

ICONES DE ATALHO



São alguns icones de atalhos no quais consideramos principais.
DICA: Para aproveitar mais sobre o estudo verifique a funcionalidade de cada icone de atalho.

CAIXA DE COMPONENTES



A Caixa de Componentes envolve todos os objetos visuais e lógicos do Delphi como Buttom que é o botão, Database que é o componente que liga o Delphi com o banco de dados e etc...
DICA: Acesse cada palheta de componente e verifique quais componentes existem no delphi como padrão.

OBJECT TREEVIEW



Essa janela mostra a "Árvore" de nosso projeto. É como se fosse um mapa de objetos de nosso projeto.
DICA: Observe que ja existe um obejto dentro de nosso Object Treeview, conforme voce for colocando componentes, verifique de que forma é montada essa "Árvore de Objetos".

OBJECT INSPECTOR



Essa é a janela no qual editamos o nosso objeto. Essa janela possui duas funcionalidades principais, as Propriedades (Cor, tamanho, posição, valor e etc) e os eventos (Ao abrir, ao fechar, ao clicar e etc) de cada objeto.
DICA: Verifique todas as propriedades dos objetos e todos os eventos que existe.

FORMULÁRIO



Pode-se dizer que o formulário é o componente mais utilizado no Delphi, pois é nos formulários que monstamos nossa aplicação.
Cada formulário é salvo na extenção .dpr

UNIT



A unit é todo o código fonte de formulário.
Cada Unit é salvo na extenção .pas
DICA: Procure saber mais como é dividido uma Unit, qual a função de cada linha de comnado dessa unit simples que postei (USES, TYPE, VAR, IMPLEMENTATION e ETC)
Claro que conforme as aulas irei explicar tudo isso a voces.

Bom espero que tenham gostado de nosso primeiro estudo sobre Delphi.

ettore.state = 'Em busca de um estágio'

- DUVIDAS e SUGESTÕES - ettorefrancobr@gmail.com

quarta-feira, 26 de maio de 2010

Sistema Estoque - Manutenção e Repositórios

Pessoal, estou dando continuidade no meu Sistema Estoque.
Hoje vou postar uma janela que fiz de manutenção para cidades e exemplo disso criei um repositório no qual utilizei para outras janelas.

Frm_cidade



Primeiramente criei a Frm_cidade:
Componentes:
- DBEdit (Um edit para os campos código e nomeno qual se conecta com o BD);
- DBGrid (Exibe tabela do banco de dados);
- Frm_cidade (A janela);
- StatusBar (Coloquei o nome da empresa e a hora atual);
- Image (Imagem referente a janela);
- DBLookupComboBox (Para o campo UF);
- DBNavigator (No qual, faço a navegação de meus dados);

Depois de criado a janela Manutenção de Cidades, simplesmente a adicionei ao repositório e criei as outras janelas de manutenções aonde possui apenas campo codigo e campo nome :)

Frm_Logradouro



Mesmo esquema da frm_cidade. Logicamente que devemos fazer toda a alteração, inclusive a ligação das tabelas e o dataset.

Frm_bairro



Criei partindo do Repositório.

Frm_cargo



Percebam que depois que criei a primeira Janela de manutenção e partindo do principio que, as outras janelas de manutenção possuem os mesmos campos. Eu adicionei uma ao repositório e as outras criei através do modelo salvo em repositório.

"ettore.state = 'Em busca de um estágio'"

- DUVIDAS e SUGESTÕES - ettorefrancobr@gmail.com

Sistema Estoque - Banco de Dados

Aqui vai mais uma continuidade de meu Sistema Estoque.
Um sistema tem necessidades de salvar, alterar, editar, excluir, inserir dados e em cima desse conceito criei o banco de dados de meu sistema.
Utilizei como ferramenta para criação da BD o INTERBASE.

- Script SQL

Esse é o Script de meu sistema, ao qual conectarei mais tarde com algumas janelas novas:

1 - CRIANDO O BANCO DE DADOS


SET SQL DIALECT 3;

CREATE DATABASE 'C:\Estoque\dado\ESTOQUE.GDB' PAGE_SIZE 4096


DECLARE EXTERNAL FUNCTION RDB$GET_CONTEXT
VARCHAR(80) CHARACTER SET NONE, VARCHAR(80) CHARACTER SET NONE
RETURNS VARCHAR(255) CHARACTER SET NONE FREE_IT
ENTRY_POINT 'get_context' MODULE_NAME 'system_module';


DECLARE EXTERNAL FUNCTION RDB$SET_CONTEXT
VARCHAR(80) CHARACTER SET NONE, VARCHAR(80) CHARACTER SET NONE, VARCHAR(255) CHARACTER SET NONE
RETURNS INTEGER BY VALUE
ENTRY_POINT 'set_context' MODULE_NAME 'system_module';

2 - TABELA BAIRRO

CREATE TABLE "BAIRRO"
(
"BAIRRO_CODIGO" INTEGER NOT NULL,
"BAIRRO_NOME" VARCHAR(40) NOT NULL,
CONSTRAINT "BAIRRO_PK" PRIMARY KEY ("BAIRRO_CODIGO")
);


3 - TABELA CARGO

CREATE TABLE "CARGO"
(
"CARGO_CODIGO" INTEGER NOT NULL,
"CARGO_NOME" VARCHAR(40),
CONSTRAINT "CARGO_PK" PRIMARY KEY ("CARGO_CODIGO")
);

4 - TABELA CLIENTE

CREATE TABLE "CLIENTE"
(
"CLI_CODIGO" INTEGER NOT NULL,
"CLI_NOME" VARCHAR(40) NOT NULL,
"CLI_LOGRADOURO" INTEGER NOT NULL,
"CLI_NUMERO" VARCHAR(10) NOT NULL,
"CLI_BAIRRO" INTEGER NOT NULL,
"CLI_CIDADE" INTEGER NOT NULL,
"CLI_CEP" VARCHAR(10),
"CLI_DATANASC" TIMESTAMP NOT NULL,
"CLI_DATACAD" TIMESTAMP NOT NULL,
"CLI_COMPLEMENTO" VARCHAR(10),
"CLI_FOTO" VARCHAR(40),
"CLI_CPF" VARCHAR(14),
"CLI_RG" VARCHAR(20),
"CLI_FONERES" VARCHAR(16),
"CLI_FONECOM" VARCHAR(16),
"CLI_FONECEL" VARCHAR(16),
"CLI_OBS" VARCHAR(40),
"PES_EMAIL" VARCHAR(50),
CONSTRAINT "CLIENTE_PK" PRIMARY KEY ("CLI_CODIGO")
);

5 - TABELA FUNCIONARIO

CREATE TABLE "FUNCIONARIO"
(
"FUNC_CODIGO" INTEGER NOT NULL,
"FUNC_NOME" VARCHAR(40) NOT NULL,
"FUNC_BAIRRO" INTEGER NOT NULL,
"FUNC_CIDADE" INTEGER NOT NULL,
"FUNC_CARGO" INTEGER NOT NULL,
"FUNC_APELIDO" VARCHAR(15),
"FUNC_ENDERECO" INTEGER NOT NULL,
"FUNC_COMPLEMENTO" VARCHAR(10),
"FUNC_CPF" VARCHAR(14),
"FUNC_RG" VARCHAR(20),
"FUNC_FONERES" VARCHAR(16),
"FUNC_FONECEL" VARCHAR(16),
"FUNC_OBS" VARCHAR(40),
"FUNC_DATAADM" TIMESTAMP,
"FUNC_DATANASC" TIMESTAMP,
"FUNC_NUM" VARCHAR(40),
"FUNC_EMAIL" VARCHAR(40),
"FUNC_CEP" VARCHAR(10),
"FUNC_UF" VARCHAR(2),
"FUNC_FOTO" VARCHAR(60),
CONSTRAINT "FUNC_PK" PRIMARY KEY ("FUNC_CODIGO")
);

6 - TABELA LOGRADOURO

CREATE TABLE "LOGRADOURO"
(
"LOG_CODIGO" INTEGER NOT NULL,
"LOG_LOGRADOURO" VARCHAR(40) NOT NULL,
CONSTRAINT "LOG_PK" PRIMARY KEY ("LOG_CODIGO")
);

7 - TABELA CIDADE

CREATE TABLE "TBL_CIDADE"
(
"CID_CODIGO" INTEGER NOT NULL,
"CID_NOME" VARCHAR(30) NOT NULL,
"CID_UF" VARCHAR(2) NOT NULL,
CONSTRAINT "CIDADE_PK" PRIMARY KEY ("CID_CODIGO")
);

8 - TABELA FUNCIONARIO

CREATE TABLE "TBL_FUNC"
(
"FUNC_CODIGO" INTEGER NOT NULL,
"FUNC_NOME" VARCHAR(40) NOT NULL,
"FUNC_BAIRRO" VARCHAR(20),
"FUNC_CIDADE" INTEGER NOT NULL,
"FUNC_CARGO" VARCHAR(20),
"FUNC_ENDERECO" VARCHAR(40) NOT NULL,
"FUNC_CPF" VARCHAR(14),
"FUNC_RG" VARCHAR(20),
"FUNC_FONERES" VARCHAR(16),
"FUNC_DATAADM" TIMESTAMP,
"FUNC_DATANASC" TIMESTAMP,
CONSTRAINT "FUNCIONARIO_PK" PRIMARY KEY ("FUNC_CODIGO")
);

9 - CRIANDO OS INDICES (Geralmente para codigo e nome)


CREATE INDEX "IND_COD_BAIRRO" ON "BAIRRO"("BAIRRO_CODIGO");
CREATE INDEX "IND_NOME_BAIRRO" ON "BAIRRO"("BAIRRO_NOME");
CREATE INDEX "IND_COD_CARGO" ON "CARGO"("CARGO_CODIGO");
CREATE INDEX "IND_NOME_CARGO" ON "CARGO"("CARGO_NOME");
CREATE INDEX "IND_COD_cliente" ON "CLIENTE"("CLI_CODIGO");
CREATE INDEX "IND_NOME_cliente" ON "CLIENTE"("CLI_NOME");
CREATE INDEX "IND_COD_FUNC" ON "FUNCIONARIO"("FUNC_CODIGO");
CREATE INDEX "IND_NOME_FUNC" ON "FUNCIONARIO"("FUNC_NOME");
CREATE INDEX "IND_COD_LOG" ON "LOGRADOURO"("LOG_CODIGO");
CREATE INDEX "IND_NOME_LOG" ON "LOGRADOURO"("LOG_LOGRADOURO");
CREATE INDEX "IND_COD_CIDADE" ON "TBL_CIDADE"("CID_CODIGO");
CREATE INDEX "IND_NOME_CIDADE" ON "TBL_CIDADE"("CID_NOME");
ALTER TABLE "CLIENTE" ADD CONSTRAINT "CLIENTE_BAIRRO" FOREIGN KEY ("CLI_BAIRRO") REFERENCES BAIRRO ("BAIRRO_CODIGO");
ALTER TABLE "CLIENTE" ADD CONSTRAINT "CLIENTE_CIDADE" FOREIGN KEY ("CLI_CIDADE") REFERENCES TBL_CIDADE ("CID_CODIGO");
ALTER TABLE "CLIENTE" ADD CONSTRAINT "CLIENTE_LOGRADOURO" FOREIGN KEY ("CLI_LOGRADOURO") REFERENCES LOGRADOURO ("LOG_CODIGO");
ALTER TABLE "FUNCIONARIO" ADD CONSTRAINT "FUNC_BAIRRO" FOREIGN KEY ("FUNC_BAIRRO") REFERENCES BAIRRO ("BAIRRO_CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE "FUNCIONARIO" ADD CONSTRAINT "FUNC_CARGO" FOREIGN KEY ("FUNC_CARGO") REFERENCES CARGO ("CARGO_CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE "FUNCIONARIO" ADD CONSTRAINT "FUNC_CIDADE" FOREIGN KEY ("FUNC_CIDADE") REFERENCES TBL_CIDADE ("CID_CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE "FUNCIONARIO" ADD CONSTRAINT "FUNC_ENDERECO" FOREIGN KEY ("FUNC_ENDERECO") REFERENCES LOGRADOURO ("LOG_CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;

10 - CRIANDO A GENERATOR PARA TRIGGER

CREATE GENERATOR "GEN_COD_BAIRRO";
CREATE GENERATOR "GEN_COD_CIDADE";
CREATE GENERATOR "GEN_COD_LOG";
SET TERM ^ ;

11 - CRIANDO TRIGGER (Para gerar codigo automatico)

CREATE TRIGGER "GERA_COD_BAIRRO" FOR "BAIRRO"
ACTIVE BEFORE INSERT POSITION 0
as
begin
new.bairro_codigo = gen_id (gen_cod_bairro,1);
end
^

CREATE TRIGGER "GERA_COD_LOG" FOR "LOGRADOURO"
ACTIVE BEFORE INSERT POSITION 0
as
begin
new.log_codigo = gen_id (gen_cod_log,1);
end
^

CREATE TRIGGER "GERA_COD_CIDADE" FOR "TBL_CIDADE"
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
NEW.cid_codigo = gen_id (gen_cod_cidade,1);
END
^

COMMIT WORK ^
SET TERM ;^


Pessoal este é um exemplo de banco de dados simples, não há nenhuma consulta nele mesmo até que usamos nossas consultas em Query do próprio sistema.
Este código mostra:
- A criação do Banco de Dados (CREATE DATABASE)
- A criação de Tabelas (CREATE TABLE)
- A criação de Indices (CREATE INDEX)
- A criação de Generator (CREATE GENERATOR)
- A criação de Trigger ou gatilhos (CREATE TRIGGER)

Espero que tenham gostado.
Qualquer duvida entre em contato comigo através do e-mail.

"ettore.state = 'Em busca de um estágio'"

- DUVIDAS e SUGESTÕES - ettorefrancobr@gmail.com

terça-feira, 25 de maio de 2010

SUGEST 2010 - Feira de Ciência

Saudações!

Foi iniciado ontem (25/05/2010), a Feira de Ciências da Universidade Amparense UNIFIA e foi finalizada hoje (26/05/2010).



Cada curso posuia tema e cada um era dividido por grupos. Em nosso curso, o tema foi "Pragas Virtuais" e meu grupo ficou encarregado a parte de Anti-vírus.
Como estudantes da area de Analise e Desenvolvimento de Sistemas, desenvolvemos alguns sistemas para nossa apresentação.

Sistema de Pesquisa Anti-vírus (Éttore Franco)


Eu fiquei encarregado de desenvolver um Sistema de Pesquisa, no qual o visitante coloca seu nome, seu e-mail e qual Anti-vírus utiliza.



Resultado final: através do Gráfico analisamos os Anti-vírus mais utilizados durante nossa pesquisa.

Sobre o programa:

- Utilizei um banco de dados para o cadastro do nome, e-mail e o Anti-Vírus utilizado. Cada pessoa tinha seu codigo que era gerado automaticamente através de uma Trigger. Usei o componente DBChart para esboçar o gráfico e liguei o banco com o DBChart!

Sistema Estatísticas Anti-Vírus(Éttore Franco)

O Sistema consiste em trazer dados estatisticos de alguns Anti-vírus. Com isso, o vizitante tirava dúvidas de qual o melhor, qual demora mais para realizar o 'SCAN' e etc.



Ao clicar em no botão Gera_Gráfico, cria-se o gráfico estatistico desejado!



- O sistema é bem simples, não há nenhuma ligação com banco de dados e o gráfico é do tipo JPEG. (O sistema foi criado as preças 20 minutos, pois não tivemos tempo para Desenvolve-lo).

Sistema Anti-vírus Freeware e Shareware (Renan C. Fuentes)

O sistema consiste em trazer ao vizitante quais as vantagens e desvantagens dos 5 top Anti-vírus Freeware e Shareware.



O Sistema é simples e não há ligação com Banco de Dados. A lógica dele consiste ao usuario facilididas a comparação entre anti-vírus.

Disponibilizamos a voces alguns links para downloads de nossos sistemas e a apostila sobre anti-vírus:

Sistema de Pesquisa Anti-vírus (Éttore Franco)

Sistema de Estatisticas Anti-Vírus (Éttore Franco)


Sistema Vantagens e Desvantagens Anti-vírus (Renan C. Fuentes - email: renan_c_fuentes@hotmail.com).

Apostila Sobre Top Anti-vírus

Espero que tenham gostado de nossa apresentação.

"ettore.state = 'Em busca de um estágio'"

- DUVIDAS e SUGESTÕES - ettorefrancobr@gmail.com