Como desenvolver um bom software

on sábado, 7 de março de 2009

Lendo o livro de Análise e Projeto Orientado ao Objeto, de Brett McLaughlin, Gary Pollice e David West, aprendi um pouco mais sobre como construir um bom software. Estou aqui compartilhando um pouco do que aprendi na leitura deste livro.
Não é preciso seguir as mesmas etapas do livro, desde que o objetivo final seja atendido.

Todos procuram desenvolver um grande software, um software bem implementado, um software de fácil manutenção...
Mas o que preciso fazer para desenvolver um bom software?
O livro cita três etapas para que atinja este objetivo.

A primeira etapa, e acredito que seja a mais importante de todas, é verificar se o software faz o que cliente deseja que ele faça.
O que isso quer dizer?
Quer dizer que o seu software tem de ser útil, e atender as reais necessidades do cliente.
Neste ponto encontram-se algumas dificuldades. Como identificar o que o cliente deseja? Como saber que nada está faltando? Por onde devo começar?
Uma forma de resolver a este problema é sentar com o cliente, e discutir sobre como o software deve funcionar, o que o sistema realmente deve fazer. Nesta conversa é importante que seja anotado todas as funcionalidades para que seja possível criar um bom caso de uso, e através dele, tentar identificar se falta algo que o cliente esqueceu de mencionar.
Algumas pessoas podem pensar que só porque o cliente não informou sobre determinado requisito do sistema, ele não deve ser implementado. Em que ponto isto pode impactar? Não devemos esquecer que a principal etapa para o desenvolvimento de um bom software é satisfazer o cliente. Ou seja, fazer com que o software faz o que o cliente deseja.
Por isso a importância dos documentos de alto nível de abstração.
Como você poderá conversar com um cliente utilizando jargões técnicos, e detalhes de implementação?
Antes de pensar no código, é preciso identificar todos os detalhes e funcionalidades do sistema. Para cada funcionaldiade deverá ser criado um caso de uso para que possa ser analisado posteriormente. É interessante que seja feito uma validação com o cliente de cada caso de uso para garantir que está seguindo rumo ao desenvolvimento de um bom sofware.

A segunda etapa, diz que é preciso aplicar os princípios básicos da orientação a objetos para adicionar flexibilidade. Alguns ainda se perguntam em como isso poderá ajudar a desenvolver um bom sofware. Será que não basta que o software funcione da maneira que deve funcionar? Hoje em dia não, não basta apenas que o software funcione. O principal motivo é que atualmente o software evolui muito rapidamente. Constantemente é necessário criar uma nova funcionalidade, fazer uma nova modificação. Por isso utilizando os princípios da orientação a objetos vão permitir que seja implementado um código mais escalável, com menos duplicidade de código, mais coesão, com menos dependências. Isso ajudará bastante quando for solicitado uma nova alteração.

A terceria e última etapa, diz que é importante que se empenhe para ter um projeto reutilizável e que possa ser mantido. Mas para que um projeto reutilizável? Porque amanhã, ou depois, aparecerá um cliente que deseje um software onde seja possível adaptar o projeto já utilizado. Já que é um software bem projetado e desenvolvido, não terá muito esforço para pegar blocos da aplicação e reutilizá-lo.
Além disso, um projeto de fácil manutenção é muito importante para a evolução do software, tendo visto que hoje em dia, 80% dos gastos em desenvolvimento de sofware vão exatamente para esta área de manutenção e evolução.

Como diz um dos meus melhores professores, José Maria, a única certeza de um software, é que ele vai evoluir. Mais cedo ou mais tarde, ele vai evoluir.

SMS PC Remoto

on terça-feira, 3 de março de 2009

O SMS PC Remoto, desenvolvido pela equipe do Instituto Recôncavo de Tecnologia, utiliza a tecnologia J2SE. Este sistema, permite o acesso remoto a computadores acessando o site do alerta24h. Através do PC Remoto é possível visualizar, enviar e receber arquivos de uma determinada máquina remotamente.
Saiba mais sobre este produto acessando o site do alerta24h.

SMS Power View Client

O SMS Power View Client é um sistema que se conecta ao SMS Power View, desenvolvido pela equipe do Instituto Recôncavo de Tecnologia. Quando ocorrer um determinado evento detectado pelo SMS Power View, este enviará uma mensagem a todos os SMS Power View Clients conectados a ele para que estes possam tomar suas ações preventivas. A tecnologia utilizada neste sistema é J2SE, e foi desenvolvido utilizando o modelo em camadas.
Saiba mais sobre este produto acessando o site do alerta24h.

SMS Power View

O SMS Power View é um sistema de gerenciamento de nobreak, desenvolvido pela equipe do Instituto Recôncavo de Tecnologia. Neste sistema utiliza-se as seguintes tecnologias: J2EE, Struts, JavaScript, Prevayler. O sistema foi desenvolvido utilizando o modelo em camadas. Com o SMS Power View o usuário é alertado em caso de falha de energia no ambiente que está sendo monitorado. Além disso, o usuário pode configurar decisões a serem tomadas automaticamente, sem que seja necessário estar presente no local, em caso de autonomia baixa ou falha ac, por exemplo.
Saiba mais sobre este produto acessando o site do alerta24h.

Publicação na revista Cientefico

Este artigo foi produzido durante a iniciação científica na Faculdade Ruy Barbosa. Trata-se de uma ferramenta colaborativa de apoio a gerenciamento de projetos.
Ele foi publicado na revista Cientefico. Ano VII, v. II, p.314. em julho-dezembro 2007.
Segue abaixo o link para visualização do artigo no formato pdf.

http://www.frb.br/ciente/dossie/dossie_alves.pdf

Sobre Mim

Igor Schkrab Alves

Idade: 21
Sexo: Masculino
Atividade: Tecnologia
Profissão: Analista de TI
Local: Salvador : Bahia : Brasil

Quem sou eu

Não gosto muito de me descrever. Mas se for pra ser visto de alguma forma, que seja a mais simples.

Interesses

Tecnologia, Cinema, Show, Teatro, Livro, Música.

Filmes favoritos

Matrix, Identidade Bourne.

Músicas favoritas

Los Hermanos, Kings of Convenience.

Livros favoritos

O Pequeno Príncipe, O Código da Vinci, Fortaleza Digital.

Curriculum Vitae

Igor Schkrab Alves

Informações pessoais
• Estado civil: Solteiro
• Idade: 23 anos
• Data de Nascimento: 02/05/1987

Escolaridade
• Faculdade Ruy Barbosa – Ciência da Computação – 8º Semestre (Noturno)
• Ensino Médio: 2002-2004
• Ensino Fundamental: 1998-2001

Idiomas
• Inglês (ACBEU – UFBa – Cultura Inglesa)
• Hebraico (Alumim – Local: Israel)

Objetivos
• Aplicar os conhecimentos adquiridos no meio acadêmico e profissional e adquirir novos conhecimentos.

Cursos
• Lógica de Programação – SENAI (40h)
• Orientação a Objetos com Java – SENAI (80h)
• J2EE com WebSphere Application Server – SENAI (80h)
• Minicurso de Informática – Faculdade Ruy barbosa (20h)
• Programação em Delphi 5.0 – Real & Dados (60h)
• Curso de UML – Instituto Recôncavo de Tecnologia (20h)

Conhecimentos Adicionais
• Avançado: Java, J2EE, Servlet, Struts 1.3, Struts 2, Db4o, Hibernate, HTML
• Intermediário: Neodatis, Prevayler, JavaScript, XML, AJAX, MySQL, PostgreSQL, PHP, ExtGwt, WML, GWT, Echo 2
• Básico: J2ME, WML.

Atividades Extracurriculares
• Iniciação Científica
• Grupo de pesquisa em tecnologia J2ME
• DotInterativa

Certificações
• Sun Certified for Java Programmer 5.0

Experiências Profissionais:
IRT– Instituto Recôncavo de Tecnologia
Função: Analista de TI
Atividades desenvolvidas: Manutenção e implementação de funcionalidades de softwares e sistemas com interface WEB, utilizando a linguagem de programação Java, com framework Struts, Hibernate, Prevayler e banco de dados MySQL. Também foi desenvolvido um sistema utilizando Ajax, GWTExt, Jasper Report e banco de dados MySQL.
Período: 25/10/2007 até os dias atuais