As 5 fases mais importantes da UML
Você já ouviu falar em UML? Sabe seu significado ou para que serve?
A UML (Unified Modeling Language) – Linguagem de Modelagem Unificada – é uma linguagem padrão para modelagem orientada a objetos. No entanto, essa linguagem de modelagem não é um método de desenvolvimento.
A UML tem como objetivo auxiliar a visualização do desenho e a comunicação entre objetos. Nesse sentido, a UML permite que desenvolvedores visualizem o produto criado em diagramas padronizados.
Para que um sistema de software seja desenvolvido, é necessário passar por cinco fases até o resultado final. Vejamos:
A execução das fases segue uma ordem definida e obrigatória, pois não há como realizar testes se as fases de Design e Programação não foram finalizadas. Da mesma forma, não há como executar a etapa de Design e Programação se as fases de Análise de Requisitos e Análise do Sistemas não foram concebidas.
Agora, vamos conhecer em detalhes as fases de desenvolvimento de um software. Preparado?
Análise de Requisitos
Fase responsável pelo levantamento das intenções e necessidades dos usuários para o sistema que pretendemos criar.
É feita por meio de uma entrevista que usa as funções denominadas use cases (casos de uso). A partir disso, podemos identificar, definir e relacionar as entidades externas ao sistema – ou atores externos, conforme são denominados na UML. Dessa forma, é possível promovermos a interação entre os atores externos e modelarmos as funções necessárias, de acordo com os use cases.
Os atores externos e os use cases podem ser modelados com os relacionamentos que possuem comunicação associativa entre eles ou, ainda, podem ser separados em níveis de hierarquia. Cada use case modelado é descrito por meio de um texto, detalhando os requerimentos do ator externo que usará a UML. Dessa forma, a partir do diagrama de use cases, é possível exibirmos o que os atores externos deverão esperar do sistema. Nessa etapa, conhecemos apenas a funcionalidade do sistema, e não é necessário nos importarmos com a forma como ela será executada.
Por fim, é viável que a análise seja elaborada não apenas para os sistemas de software mas também para as regras de negócios.
Análise do Sistema (concepção das classes e dos objetos)
Fase que tem como foco as primeiras concepções – as definições das classes, dos objetos e dos mecanismos envolvidos na solução da situação.
As classes são modeladas, são conectadas e relacionam-se com outras classes. Além disso, são referenciadas no diagrama de classe para desenvolver os use cases modelados anteriormente, elaborados por modelos dinâmicos de UML.
Na análise do sistema, apenas as classes que compõem o domínio principal da situação do software serão modeladas. Desse modo, as classes técnicas – que tratam do acesso ao banco de dados, da interface, da comunicação, dos conflitos – não farão parte do diagrama. Já sabemos, por meio da Programação Orientada a Objetos (POO), que as classes podem ser abstratas, públicas ou privadas. As classes abstratas fazem parte dos processos de negócio e funcionalidades do sistema.
Já as classes públicas e privadas fazem parte da codificação da programação em qualquer linguagem.
Nesse contexto, o grande conceito da POO é realizar a interação entre as classes abstratas e as classes de implementação.
Design (concepção visual do projeto)
Fase em que o produto da fase de análise do sistema é tecnicamente ampliado, de modo a ser solucionado.
Novas classes são acrescentadas para fornecer uma infraestrutura técnica, como a coordenação ao banco de dados, a interface do usuário e de periféricos, a conexão e o relacionamento com outros sistemas etc.
Na fase de análise (etapa anterior), a infraestrutura técnica das classes modeladas do domínio do problema passa a ser incorporada. Desse modo, é possível modificar tanto a própria infraestrutura quanto a função modelada. A fase do design projeta a fase seguinte – ou seja, a programação do sistema – por meio do resultado do detalhamento das especificações.
Programação (implementação)
Etapa em que as classes originárias do design são codificadas para uma linguagem orientada a objetos. Nesse caso, devemo-nos lembrar de não usar linguagens procedurais.
Tal conversão – que deve ser real, e não virtual – poderá ser um procedimento simples ou complexo. Isso vai variar de acordo com os recursos da linguagem empregada na programação, no instante em que a elaboração dos modelos de análise e design em UML forem codificados.
A etapa de programação é uma fase isolada e totalmente diferente. Nessa fase, os modelos desenvolvidos anteriormente – análise de requisitos, análise de sistema e design – serão codificados, não mais representando o perfil original do sistema.
Testes (homologação)
Fase de validação do sistema. Para isso, é comum executar testes seguindo três processos:
a) Teste unitário: de modo geral, o teste unitário é executado pelo desenvolvedor ou programador do sistema. O teste é aplicado tanto nas classes individuais quanto nos grupos de classes. Desse modo, podemos observar se as classes, os métodos e os atributos estão em conformidade com a documentação e a execução para os quais foram projetados.
b) Teste de integração: o teste de integração utiliza as classes e os componentes integrados. Dessa forma, o teste verifica se as classes estão cooperando umas com as outras, de acordo com a especificação presente nos modelos do projeto. Por exemplo, o teste verifica se um sistema está se comunicando com o outro conforme o esperado e se os resultados da execução são aqueles previstos.
c) Teste para homologação – aprovação: o teste para homologação avalia a funcionalidade do sistema segundo o que foi especificado nos primeiros diagramas – diagramas de use cases. Tais diagramas estão mais próximos das necessidades do usuário final. Em outras palavras, o teste analisa se as soluções apresentadas atendem as necessidades levantadas no início do projeto.
Chegamos ao fim deste artigo. Espero que tenham gostado!
Peço por gentileza que deixem seus comentários para que possamos discutir sobre as fases acima.
Um abraço!
Especialista em Seguros | Gestora de Contas e Negócios | Analista de Produtos e Processos | Copywriter
3 aMuito bom o artigo! 😀
Software Engineer
5 aCom certeza irá me ajudar muito por agora e em breve, mandei um convite de conexão, espero poder ser aceito!