Computing">
Família Crystal de Cockburn
Família Crystal de Cockburn
Família Crystal de Cockburn
SEMINÁRIO DE ENGENHARIA DE
SOFTWARE 3
Grupo: 5
Ano de frequência:4º
Semestre: I
INTEGRANTES DO GRUPO:
1- Nelson Jacinto Horácio
2- Neto Félix
Grupo: 5
Ano de frequência:4º
Semestre: I
INTEGRANTES DO GRUPO:
1- Nelson Jacinto Horácio
2- Neto Félix
Ciclo de vida
A família de metodologias Crystal sugere um ciclo de vida baseado em
integrações , onde tudo deve funcionar como um relógio. Um time de qualidade
que siga suas filosofias e princípios pode obter resultados incríveis. Na Figura
9.1 podemos observar um modelo do ciclo de vida que considera o
desenvolvimento de produtos de software com alta qualidade.
Equipes de projeto
Quando optamos por utilizar qualquer metodologia (ou cor) dessa
família, devemos considerar uma “equipe base ” de desenvolvimento que deve
ser formada. A seguir apresentamos uma lista dos profissionais envolvidos,
levando em conta que para equipes menores alguns podem acumular cargos
(funções):
Patrocinador
Assim como em outras metodologias, o patrocinador, também chamado
de stakeholder , é o responsável por ações de investimento financeiro da
empresa. Cabe a ele julgar e decidir a aquisição de recursos para viabilizar a
realização do projeto.
Coordenador de projeto
Realiza ações de coordenação e liderança da equipe de
desenvolvedores. Normalmente é considerado o maior entendedor das práticas
e filosofias da família de metodologias Crystal. Cabe a esse profissional dividir
os trabalhos, coordenar as entregas, dialogar com os stakeholders e com o
patrocinador, além de monitorar o progresso do desenvolvimento utilizando
ferramentas de apoio e relatórios gerenciais. Em metodologias da família
Crystal em que a equipe é muito grande, podem existir vários coordenadores,
que devem agir como coordenadores de times, ou seja, pequenos grupos
integrados de acordo com os módulos de desenvolvimento.
Analista de negócios
Em equipes menores, como, por exemplo, a Crystal Clear, o analista de
negócios pode acumular funções como a de coordenador de projetos. Além de
captar os requisitos do sistema, esse profissional é o responsável pela
modelagem , proporcionando a validação e o rastreamento dos requisitos
captados. Esse rastreamento pode ser feito simplesmente com uma boa
identificação do requisito e assegurar que essa identificação seja
acompanhada em toda implementação. Se as funcionalidades em suas fichas
de requisitos possuírem um ID (número sequencial do requisito) e se os
diagramas forem também numerados, facilita bastante para localizar o requisito
e validá-lo, além de ajudar nos testes de regressão , explicados
posteriormente.
Usuário stakeholder
O desenvolvimento de projetos utilizando família de metodologias
Crystal sugere que um grupo de usuários esteja sempre disponível. O número
de usuários vai depender do tamanho do projeto e de desenvolvedores
envolvidos. No caso de uma equipe pequena, deve haver pelo menos um
usuário responsável e conhecedor dos processos para acompanhar todo o
desenvolvimento. No caso de a empresa não dispor de nenhum usuário, a
utilização da família de metodologias Crystal deve ser questionada, pois
segundo as premissas dessa metodologia, torna-se inviável a realização de
qualquer projeto em qualquer metodologia da família Crystal sem pelo menos
um usuário presente.
Designer/projetista
A arquitetura do sistema dever ficar a cargo desse profissional, bem
como elementos da interface humano/computador . Esse profissional deve ter
bons conhecimentos das facetas ergonômicas de um sistema e também das
regras de criação de uma boa interface , seja ela voltada para aplicações web
ou para desktop.
Programador /designer
Em uma equipe de desenvolvimento da família Crystal pode haver vários
programadores. Cabe a eles promover a implementação do sistema e a sua
integração nos casos modulares, além da codificação, adaptação e
configuração inicial dos sistemas. A família de metodologias Crystal sugere a
utilização de estilos padronizados de codificação, o que implica a adoção de
“design patterns ”, ou seja, os programadores devem conhecer padrões de
projetos de forma a facilitar e garantir a manutenibilidade dos sistemas no
futuro. O item designer colocado na função refere-se justamente à utilização
desses padrões de desenvolvimento nos sistemas.
A ideia dos design patterns (padrões de projeto ou padrões de desenho
de software) é descrever soluções para problemas recorrentes encontrados
durante o desenvolvimento de sistemas de software orientados a objetos .
Cada padrão de projeto estabelece um nome, define o problema, a solução,
quando é possível aplicar essa solução e as suas consequências. Esse
conceito não é novo, surgindo a partir de trabalhos desenvolvidos pelo
engenheiro civil Christopher Alexander, na década de 1970. Sua inspiração foi
baseada, como não poderia deixar de ser, em problemas que tinha de resolver
nos projetos de engenharia civil dos quais participava. Segundo ele, cada
pattern descreve um problema que ocorre com frequência no ambiente. A partir
daí ele descreve o núcleo da solução para esse problema.
Testador
Trata-se de um ou mais profissionais com conhecimentos e habilidades
para testar o sistema. Cabe a eles realizar os chamados testes de regressão ,
que na família Crystal são considerados obrigatórios. Esses testes devem ser
feitos por funcionalidade implementada e por entregas ao cliente, as quais,
independente do tamanho, devem acontecer duas vezes por mês. Esse tipo de
teste será melhor explicado no próximo tópico.
Redator
Desde o início do desenvolvimento, mesmo nas fases de elicitação, o redator
deve estar disponível para documentar os fatos. Cabe a ele redigir atas, tabular
os questionários e entrevistas para consultas futuras, além da construção de
um manual do usuário , que deve conter todas as especificações de utilização
dos sistemas. Deve ter livre acesso a todas as implementações, bem como
participar de todas as reuniões relativas ao projeto de sistemas.
A partir da metodologia ORANGE da família Crystal, pode ser
necessário criar outras funções nas equipes de projeto, dentre as quais
podemos destacar:
a) Gerente de projeto: responsável por coordenar todo o projeto e liderar
as equipes de coordenadores. Responsável também pelo
relacionamento clientes x desenvolvedores, administração dos recursos
envolvidos e divisão das partes a serem implementadas/desenvolvidas.
b) Arquiteto de software: profissional conhecedor da arquitetura de
sistemas, que deve garantir que os diferentes módulos se integrem, bem
como escolher as técnicas de desenvolvimento a serem aplicadas pelos
programadores. Deve ter conhecimento da arquitetura dos bancos de
dados e de redes de computadores.
c) Facilitador técnico: um profissional capaz de entender conceitualmente
o negócio no qual a empresa atua, devendo conhecer os produtos e
seus processos produtivos. O facilitador é a pessoa que regula o ritmo
do grupo, oferece uma variedade de possíveis modos para abordar os
problemas, mantém a equipe focada na metodologia escolhida e
assegura que todos os participantes interajam de forma construtiva. Em
resumo, o facilitador é um profissional que cuida da dinâmica do grupo
que está realizando o trabalho.
d) Especialista em usabilidade: a usabilidade refere-se à facilidade com
que os usuários conseguem utilizar a ferramenta desenvolvida. O
especialista deve promover técnicas para garantir essa utilização, além
de relacionar as medições de desempenho do sistema. A partir dessas
medições pode-se analisar o tempo para criação do modelo mental do
usuário em utilizar a ferramenta e tomar atitudes para melhorá-la, se
necessário.
Código-fonte
A programação pode ser individual ou feita em pares, como na Extreme
Programming, abordada no capítulo 10. No entanto, para pequenos projetos
como este, é interessante ter no mínimo dois programadores experientes,
capazes de entender a fundo elementos da linguagem escolhida. O código-
fonte deve ser compartilhado entre eles e padronizado, de forma a permitir que
alterações sejam feitas com facilidade.
Casos de testes
A metodologia Crystal Clear prevê uma bateria de testes, começando
por testes funcionais , que nada mais são que aqueles realizados no sistema
finalizado (ou em partes prontas), com o objetivo de testar suas funcionalidades
no ambiente de trabalho. No caso de web sites, esses testes podem ser feitos
na interface web, considerando sua interação com a base de dados. Os casos
de teste devem ser descritos para efetivamente verificar as funcionalidades, ou
seja, cada processo deve serconfrontado com o requisito que o solicitou (os
chamados testes de regressão ). Esse tipo de teste, entre outros propósitos,
também confere se funcionalidades novas interferem em funcionalidades já
testadas. Pelo fato de a Crystal Clear fazer entregas de software constantes,
esse tipo de teste é fundamental.
Manual do usuário
O redator técnico vai incluindo no manual do usuário as funcionalidades
que já foram devidamente testadas. Além da descrição, é recomendável que
inclua outras formas de ajudar o usuário, por meio de descrições passo a
passo. O redator deve realizar esse processo a cada release, ou seja, a cada
novo conjunto de funcionalidades que foram testadas e instaladas, a fim de
manter sempre atualizado o manual do usuário . Também deve providenciar
uma lista dos possíveis erros e suas soluções para ajudar o usuário em sua
resolução, lembrando que essa lista refere-se a problemas no preenchimento e
a erros provocados pelo usuário ou ausência de algum recurso fundamental.
Finalmente, é feito pelo coordenador de projeto um monitoramento de
todas as releases , sendo atualizado todos os dias durante o período de
desenvolvimento, que na Crystal Clear não deve ultrapassar quatro meses.
Além de todas as funcionalidades, esse esquema de monitoramento deve
apresentar as porcentagens concluídas em relação às pendentes. Para isso,
pode ser feito um quadro como o proposto pela metodologia FDD, abordada no
capítulo 6. Esse quadro deve destacar o andamento do projeto, tendo sempre
em mente que a família de metodologias Crystal preza, principalmente, a
existência de requisitos estáveis para projetar, designs estáveis para
documentar e uma aplicação correta e testada que possa ser entregue com
qualidade ao cliente.
Conclusão
Criada no final da década de 90 por Alistair Cockburn e Jim Highsmith,
a família Crystal se baseia na gestão de pessoas, tendo o foco na interação,
habilidades, talentos e comunicação.
Segundo o criador Cockburn, as pessoas de uma equipe possuem
diferentes talentos e habilidades, sendo um diferencial durante o
desenvolvimento de um projeto, já que as pessoas têm uma importância muito
grande no desempenho do projeto. Além disso, foi criada para atender vários
tipos de projetos e equipes que precisam de táticas para resolver diversos
problemas.
Não há uma metodologia Crystal e sim diferentes tipos de metodologia
Crystal para diferentes tipos de projeto, por isso chamamos de família Crystal.
É uma família de metodologias que une diferentes modelos de processo, mas
com elementos centrais que são comuns a todas, além dos papéis e práticas
específicas de cada uma.
Segundo os autores da metodologia, acredita-se que a metodologia
adequada é baseada no tamanho da equipe e nos riscos envolvidos no projeto.
Por isso, a família Crystal é dividida em cores, onde deve-se escolher a cor que
mais for apropriada para cada projeto, de acordo com o nível de criticidade e o
tamanho da equipe. Quanto mais escura for a cor, mais crítico é o sistema e,
consequentemente, será utilizada a metodologia mais “pesada”.
Por exemplo, um projeto com 50 pessoas envolvidas precisa de uma
metodologia mais pesada do que um projeto com 10 pessoas. Você pode
avaliar seu projeto por duas visões: número de pessoas e criticidade do
sistema.
A criticidade é dividida em 4 níveis: (C) conforto, (D) baixo custo, (E) alto
custo e (L) risco de vida. Assim você consegue escolher a melhor metodologia
para aquele projeto, adotando um conjunto de políticas adequadas para cada
situação.
Algumas práticas da metodologia são:
a entrega em intervalos regulares;
o monitoramento do progresso;
envolvimento direto com o cliente;
inspeções constantes a cada incremento;
os feedback que servem para ajuste do produto e da metodologia
caso necessário.
Você pode utilizar as metodologias da família Crystal em projetos de alta
ou baixa criticidade. A ideia de Crystal é permitir que cada organização
implemente as atividades que lhe pareçam adequadas.
Bibliografia
Metodologias Ágeis_Engenharia de Software sob Medida de José
Henrique Teixeira de Carvalho Sbrocco e Paulo Cesar de Macedo 1ª .
Ediçãohttps://www.treinaweb.com.br/blog/metodologia-crystal-o-que-e-e-
para-que-serve/