domingo, 28 de setembro de 2008

Projeto: Software para deficientes visuais

Por : Adriano Francisco da Silva

Técnico em programação de computadores(Colégio Pedro II)
Líder da Célula acadêmica:Equipe Free Style

É grande o número de pessoas com alguma limitação física, para isso ao longo da minha vida venho desenvolvendo soluções para inclusão deste perfil de usuário:
Foi desenvolvido um sistema comum no qual apresenta uma função que engloba os deficientes visuais. Um mecanismo simples, mas que pode diminuir as barreiras que existem atualmente.
Utilizando o Visual Studio 2008(com a linguagem de programação C# ), um sistema simples de controle de estoque (para servir como modelo), esse sistema foi utilizado na final do Microsoft Student to Busisness 2008, mas não apresentava a função para deficientes visuais.
O sistema está concorrendo ao prêmio “Jovem Cientista” 2008. Aqui apresento apenas uma pequena parte do projeto:

Trata-se de um sistema no qual a caixa de texto (TEXTBOX) emite sons que guiam o usuário desde o momento do Login do sistema até o preenchimento e a utilização de recursos adicionais, como inclusão de registro em um banco de dados. No login é feita a verificação no banco para saber se o usuário é ou não deficiente, tornando o sistema universal.


Método para executar o som quando o usuário passar o mouse no TEXTBOX (no evento do mouse).O mesmo acontece com os botões do programa.
private void login(object sender, EventArgs e)
{
// Diz a localização do WAV
SOM. SoundLocation = ("Sons/login.wav");
//Colocando o foco no TEXTBOX
tbLogin.Focus();
// Executa o WAV
SOM. Play ();
}
Quando o mouse sair do TEXTBOX o som é desligado (SOM. Stop ();) em outro evento.
O mouse será os olhos do usuário, caso ele esqueça algum campo em branco será alertado e direcionado para corrigir o erro.


Conclusão:
O próximo passo será criar um WebForm (Asp.Net) para cadastros online de clientes, vestibular ou serviço de atendimento ao cliente(SAC). Além do projeto final de curso que estou desenvolvendo com meus colegas: Marcio Ribeiro, Thiago Macedo e César Amorim.Um software para escolas utilizando esse mesmo conceito.

Acesso a dados com C#

Por Adriano

Adicionando conteúdo do textbox no banco com C#

Utilizados:
2 Textbox(nome.Text,telefone.Text)
1 Label(confirma.Text)
1 Button(button1)
Banco access:
tabela:agenda
campos:nome,telefone


//Evento do botão
private void button1_Click(object sender, EventArgs e)
{
//criando uma conexão

OleDbConnection oConexao = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DataDirectory\\bd1.mdb");
//Abrindo a conexão
oConexao.Open();


OleDbCommand sql = new OleDbCommand();
//Inserindo comandos SQL
sql.CommandText = "insert into agenda(nome,telefone) values('" + nome.Text + "','" + telefone.Text + "')";

sql.CommandType = CommandType.Text;
sql.Connection = oConexao;
OleDbDataReader rs = sql.ExecuteReader();

//fechando conexão
oConexao.Close();
rs.Close();

//Limpando caixas de textos
nome.Text = "";
telefone.Text = "";

//mensagem de confirmação em um Label
confirma.Text = "Pedido Salvo!";
}

sábado, 27 de setembro de 2008

Tecnologia.Net

Por Adriano


.NET é a plataforma de desenvolvimento da Microsoft que tem como foco principal o desenvolvimento de Serviços WEB (Web Service), permite que as aplicações, sejam elas da Web ou Desktop, ou ainda middleware, se comuniquem Independente do sistema operacional ou da linguagem de programação.

Características. NET:
_ Independência de linguagem de programação.
_ Reutilização de código.
_ compartilhamento de tempo de execução.
_ Sistemas com controle de versões.
_ Simplicidade na resolução de problemas complexos.

Arquitetura:
CLR (Commom Language Runtime)
CTS (Common Type System)
CLS (Common Language Specification)
BCL (Base Classe Library)

Namespaces. NET:
System Contém algumas classes de baixo nível usadas para trabalhar com tipos primitivos, operações matemáticas, gerenciamento de memória etc.
System.Collections Implementar suas próprias pilhas, filhas,
System.Data,
System.Data.Commom,
System.Data.OleDb,
System.Data.SqlClient

Necessário para lidar com bases de dados.
System.Diagnostics Log de Event, medição de performance, classes para gerenciamento de processos, depuração.
System.Drawing trabalhar com gráficos, chamada GDI+.
System.IO Biblioteca para lidar com entrada e saída,gerenciamento de arquivos etc.
System.NET para programação de redes, sockets etc.
System.Reflection gerar código em tempo de execução, descobrir tipos de variáveis etc.
System.Runtime.InteropServices e System.Runtime.Remoting interagir com código não-gerenciado.
System.Security Criptografia.
System.Threading desenvolvimento de aplicações multithread.
System.Web Desenvolvimento web(ASP.NET, Web services).
System.Windows.Forms Desenvolvimento de aplicações Windows tradicionais.
System.XML interação com documentos XML.

A MSIL (IL) interpretador dos programas. NET.

sábado, 20 de setembro de 2008

Diagrama de Caso de Uso

Por Thiago Macedo Lima

Olá Pessoal,
estou aqui para apresentar a idéia de como se elaborar um software através
de um diagrama de caso de uso espero que vocês aproveitem o tópico.

UML – Diagrama de Caso de Uso

1- Modelo de casos e uso

• O modelo de casos é um modelo inicial de um projeto não se preocupando com o a funcionalidade do programa


2- Diagrama de casos de uso

• Um diagrama de Casos de uso possue como primitivas Atores, Casos de uso, Relacionamentos
• Também possuem primitivas Pacote e Notas.



3- Atores

• Atores representam entidades externas que interagem com o sistema em tempo de execução.
• Atores em um diagrama UML podem ser -> Pessoas, Hardware, Software, Dispositivos
Em um Diagrama UML pode haver Atores que agem de Forma implícida que não
influênciam no diagrama em si então pode aparecer ou não no diagrama.

Exemplo -> Hardware e Software.

• A forma de representação de Atores pode ser atráves de um retângulo ou ícones humanos que são equivalentes.


Figura 1. Representação do ator no diagrama






4- Casos de uso

• A descrição dos serviços oferecidos pelo sistema é feita na UML discriminado pelos Casos de uso do Sistema

• Os Casos de usos podem descrever uma aplicação ou Uso completo de um software ou mesmo uma funcionalidade.

• Os Casos de usos são serviços que o sistema oferece, que

serve para se ter uma visão mas abrangente dos processos de seu sistema.

• Os Casos de Uso são representados por um círculo na UML.







Figura2 .Representação do caso de uso no diagrama


5- Relacionamentos

• Existem três relacionamentos entre Atores

1- Dois Atores

2- Dois Casos de Uso

3- Um Caso de Uso e Um Ator

5.1- Relacionamentos entre
Atores

• São Relacionamentos Externos que podem ser desprezados em nosso diagrama de caso de uso por serem externos ao programa, como também podem ser adicionados ao seu sistema, por fazer parte indiretamente do seu sistema.

• Duas relações comuns entre Atores -> especialização e comunicação

• Comunicação -> Trata-se de uma comunicação explícita entre Atores, que representa algo concreto entre eles.


Exemplo -> (troca de informações ou uma mensagem)

• Especialização -> Trata-se de uma comunicação genérica em que o Ator gené
rico, passa todas suas características ao Ator especializado mais alguns atributos adicionais.

Exemplo -> Usúario -> Ator genérico

Administrador -> Ator especializado.



A ideia é o seguinte:

O Administrador no sistema irá fazer tudo que um usúario normal faria porém com funções
adicionais de Administrador.



Figura 3. Representação dos Relacionamentos entre atores por comunicação





Figura 4. Representação dos Relacionamentos entr

e atores por especialização



5.2- Relacionamento entre Ator e Casos de Uso

• Expressa sempre uma comunicação entre o Ator e o Caso de uso, pelo fato do Ator ser
uma Entidade externa.

• A forma de representação do Relacionamento entre o Ator e o Caso de Uso é através de uma
Reta.

• Um Ator pode ter Relacionamentos com vários outros Casos de Uso e da mesma forma

Um caso de uso pode ter Relacionamentos com vários Atores.

•Uma Seta na Relação entre um Ator com o caso de uso pode ter duas
interpretações distintas:

a- Para indicar qual Ator ativa o Caso de Uso.

b- Indica o fluxo de dados nas comunicações (Neste caso então todos os Relacionamentos teriam de ser com setas).


Figura 5. Representação dos Relacionamentos entre Atores e Casos de uso





5.3- Relacionamentos entre Casos de Uso

• O Relacionamento entre Casos de Uso sempre será estruturada por pertencerem ao Sistema, não possuindo ações externas.

• São divididos em três tipos -> inclusão, extensão e generalização.



5.3.1-Relacionamento de Inclusão

• O Relacionamento de Inclusão insere um Caso de Uso dentro dointerior de outro Caso de uso, que seria um 'Sub-Caso'.

• O Relacionamento de Inclusão só podera ser criado, se houver um Caso de Uso em que poderá ser inserido.

• O Relacionamento de Inclusão poderá ser usado em duas situações:

a- Extraíndo partes significativas de um Caso maior e colocá-los em várias partes menores.

b- Colocar em evidência partes comuns entre Dois ou mais Casos de Uso.

A ideia desse Relacionamento e como se fosse um Procedimento ou Módulo em uma linguagem estruturada.

Figura 6. Representação dos Relacionamentos entre Atores de Inclusão




5.3.2-Relacionamento de Extensão

Relacionamento de extensão é quando um Caso de Uso Menor extende os serviços de um Caso Maior.

A ideia de extensão vem de que o Caso menor irá possuir uma extensão do Programa Maior, e inclui serviços especiais, e a chamada desse Caso Menor deverá ser atráves de uma condição

• O Relacionamento de Extensão serve para o Caso Menor só ser chamado se houver uma determinada condição no Caso Maior.






Figura 7. Representação dos Relacionamentos entre Atores de Extensão





5.3.3-Relacionamento de Generalização

• Relacionamento de Generalização é quando se tem uma Relação de um Caso de Uso Geral com um Específico

• Nesse caso então o Caso Específico representa o Caso Geral incluindo elementos adicionais isso é chamado de especialização.

• Generalização pode também ser chamada de herança pelo Caso mais específicos receber todos os atributos do Caso Geral.





Figura 8. Representação dos Relacionamentos de Generalização





Neste pequeno tutorial foi apresentado a base geral de um diagrama de Caso de Uso
Bem aqui está um link de um programa de modelagem de dados UML.

Star UML

http://baixaki.ig.com.br/download/StarUML.htm

Existem vários outros na Internet, mas esse eu recomendo por ser leve e gratuito.
Estou indo embora desejo bons estudos a todos até uma próxima oportunidade!!!!





quinta-feira, 18 de setembro de 2008

Programação orientada a objetos

Programação orientada a objetos
Por Adriano.gauss@yahoo.com

Algumas vantagens:
-Não revela dados
-Projeto Modular
-Reutilização de código

Classes
• Grupo de códigos que definem (instanciam) atributos e métodos utilizados para criar um ou mais objetos.

Objeto
• É uma entidade singular contendo métodos (ações) e atributos (características).
• Ele interage com o programa e sofre ações dos mesmos.
• As propriedades de um objeto são chamadas de atributo.

Atributos
• Os atributos das classes são utilizados para todos os objetos.
• Os atributos dos objetos são utilizados individualmente nos próprios objetos.

Modificadores de acesso
• São utilizados para definir níveis de acesso aos membros da classe
Ex: Private, Public, Protected...

Métodos
• Ações dos objetos. São definidos na classe e alteram seus atributos.

Construtores
• São métodos especiais que implementam ações necessárias para a existência de um objeto.

Herança
• É o mecanismo em que uma classe herda automaticamente todos os métodos e atributos de outra classe.

Tipos de herança
Simples
• São herdadas as propriedades de uma única classe.
Múltipla
• Quando tem mais de uma classe geradora.
• C# não utiliza herança múltipla e sim interfaces.

Encapsulamento
• Esconder do usuário informações que não são de seu interesse.

Classes abstratas
• São classes “ocas” servem de molde para outras classes, a implementação será feita pela classe que herdar o método.
• As classes abstratas não podem ser instanciadas através da palavra chave New.

Interfaces
• Uma interface possui somente métodos que não estão implementados e que devem ser implementados pela classe que usar a interface.