domingo, 17 de janeiro de 2010

Uso de Padrões para Melhorar a Qualidade

Hoje, gostaria de lhes descrever sobre a existência e a importância do uso de padrões que auxiliam na melhoria da Qualidade sobre produtos de Software.

Dentro de um contexto onde há um processo de desenvolvimento de software é possível aplicar padrões variados para codificação, versionamento, análise, modelagem, interfaces, documentações, em suma, uma série de áreas onde seria possível determinar padrões que visam melhorar o processo de desenvolvimento do software. 

O desenvolvimento de software tem se tornado mais complexo ao longo dos anos. As exigências por parte dos clientes são cada vez maiores, em termos de produtividade, qualidade de software e prazos cada vez menores (MASSONI, 2003). O surgimento de novas tecnologias e a necessidade de realização de mudanças nos softwares desenvolvidos para atender às exigências dos clientes também dificulta a tarefa de desenvolver software com qualidade. Acompanhar as mudanças tecnológicas e atender às necessidades de mudança pode ser uma tarefa bastante complicada se o software não estiver preparado para suportar essas mudanças.

Alguns estudos sugerem que pouco mais da metade do esforço utilizado para o desenvolvimento de software esteja voltado para atividades que assegurem a qualidade de software. Dois recursos utilizados como forma de buscar o desenvolvimento de software com qualidade são a utilização de processos de desenvolvimento de software e a utilização de padrões (OSTERWEIL, 1996). 

No processo de desenvolvimento de software, duas questões essenciais devem ser consideradas para assegurar a qualidade: o fornecimento de técnicas que auxiliem no desenvolvimento de software de qualidade e técnicas que assegurem os atributos de qualidade exigidos nos artefatos existentes (ZUZER, 2005). Em razão disso, a utilização de padrões durante o processo de desenvolvimento pode ser uma das técnicas utilizadas para assegurar a qualidade dos artefatos gerados.

Muitos dos artefatos criados durante um processo de desenvolvimento de software são comuns a vários sistemas. Muitas vezes as mesmas técnicas são utilizadas para a criação desses documentos e, consequentemente, os mesmos problemas são encontrados. Os padrões apresentam uma forma de descrever soluções para estes problemas comuns, baseando-se na experiência de outras pessoas. Existem diversos tipos de padrões que podem ser utilizados para auxiliar na criação dos artefatos gerados em um processo de desenvolvimento de software. Padrões de projeto (GAMMA, 2000) e padrões de análise (FOWLER, 1997) são apenas alguns dos diversos tipos de padrões disponíveis e que poderiam ser utilizados juntamente com o processo de desenvolvimento para buscar o desenvolvimento de software com qualidade.

Neste post a idéia era destacar a existência de padrões e porque eles existem. Em breve, pretendo descreve mais detalhadamente alguns padrões de Análise e Desenvolvimento de software. 

Cordialmente,

Marcelo Schumacher
http://isosoftware.blogspot.com 

Bibliografia:

FOWLER, Martin. Analysis Patterns: Reusable Object Models. Indianapolis: Addison-Wesley, 1997;

GAMMA, Erich; et al. Elements of Reusable Object-Oriented Software. Tradução de Luiz A.Meirelles Salgado. Porto Alegre: Bookman,2000;

MASSONI, Tiago; SAMPAIO, Augusto; BORBA, Paulo. A RUP-Based Software Process Supporting Progressive Implementation. Recife: Universidade Federal de Pernambuco, 2003. Disponível em: . Acesso em 23/10/2008;

OSTERWEIL, Leon, et. al. Strategic Direction in Software Quality. Amherst: University of Massachusetts, 1996. Disponível em: . Acesso em 23/10/2008;

ZUZER, Wolfgang; HEIL, Stefan; GRECHENIG, Thomas. Software Quality Development and Assurance in RUP, MSF and XP – A Comparative Study. New York: ACM Press, 2005. Disponível em: >. Acesso em 23/10/2008.

Um comentário:

  1. A busca da excelência

    Comentaremos no que se refere a mudanças de tecnologia ser, muitas vezes, um processo oneroso e laborioso.

    Estamos inseridos numa nova era da computação onde, quase, todos aplicativos devem ser capazes de conectarem a web ou a "Web Services" o que requer uma integração de aplicativos utilizando as ferramentas mais inovadoras que tornem mais fácil e prático o processo de desenvolvimento.

    Há algum tempo bastava um aplicativo que instalado em uma máquina local tendo um servidor de base de dados e com isso tinha a utilidade de cadastro de informações e consulta informações cadastradas. Com essas mudanças, temos a necessidade de que mesmo sistemas "Desktop" sejam capazes de consultar serviços estes dos mais variados para coletar informações como regularidade de CPF, informações de planos de saúde entre outros.

    Procurando não fugir do tópico do Marcelo, voltemos a concentração nos processos de análise e desenvolvimento. Faz-se uma documentação rigorosa de todo o sistema, um acompanhamento de sua evolução e todas as revoluções passadas, pois a finalidade dessa última não é refazer o sistema, mas antes manter a parte sólida e readaptar o necessário. Com este material mesmo um novo profissional terá fontes onde estudar o funcionamento, as tecnologias utilizadas e através do cronograma encontrar onde foram encontradas as maiores dificuldades assim numa, possível, migração de tecnologia poderá dar um foco nesses pontos.

    Afinal todos sabemos que é na infância e desenvolvimento que encontramos as explicações para compreender o porquê apresentam as formas e o comportamento que mostram na atualidade.

    Sim, este processo pode parecer simples mas é muito complexo e precisa do esforço, dedicação, confiança e união dos profissionais pois o desafio de tornar uma intenção em realidade requer focar no objetivo, mas estarmos preparados para as dificuldades que certamente encontraremos na caminhada.

    Abraço Marcelo.

    Thiago Corrêa

    ResponderExcluir