Módulo 1

Linguagem de
Modelagem Unificada

Neste primeiro módulo, você verá que a UML é um padrão de linguagem internacional para a criação da estrutura dos projetos de software. Ela pode ser utilizada para visualizar, especificar, construir e documentar os artefatos que fazem parte de sistemas com qualquer tipo de complexidade. Trata-se, de uma linguagem extremamente expressiva, compreendendo todas as visões fundamentais, desde o desenvolvimento até a implantação de um projeto de sistemas de software.

Mesmo sendo muito empregada em processos centrados em casos de usos com foco na arquitetura, incremental e iterativa, a UML é totalmente independente de processo. Vamos seus iniciar seus estudos com um breve histórico!

Introdução à UML

Para melhor compreender o que é uma UML, precisamos resgatar sua história e como ela ganhou forma, não é mesmo?

Podcast

Pensando nisso, ouça ao podcast que preparamos a seguir!

Confira aqui o que foi abordado no podcast.

A primeira versão da UML foi lançada em 1996. Posteriormente, ela obteve várias sugestões de melhorias e expansão da linguagem por parte de empresas atuantes em modelagem e desenvolvimento de software.

Na imagem abaixo, você pode observar as principais contribuições da UML.

#PraCegoVer: na imagem, temos um esquema indicando as principais contribuições UML, incluindo Harel (diagramas de estado), Gamma (estruturas e padrões), HP Fusion (descrição de operações e numeração de mensagens), Embley (classes simples e visão de alto nível), Wirfs-Brock (responsabilidades), Odell (classificação), Shlaer – Mellor (ciclo de vida dos objetos), Jacobson (OOSE), Rumbaugh (OMT), Booch (Booch Method) e Meyer (pré e pós-condições).

leganda

Em 1997, a Object Management Group (OMG), organização internacional que determina e aprova padrões para orientação a objetos, reconheceu a UML como uma linguagem padrão para modelagem. Desde então, foram criadas diversas versões, conforme você pode conferir na imagem.

#PraCegoVer: na imagem, temos um esquema demonstrando o histórico UML. Do lado esquerdo, encontramos uma linha do tempo. De cima para baixo, há padrão de mercado, aceitação geral como solução de modelagem, aceitação OMG (novembro/1997), submissão final ao OMG (janeiro/1997), parceiros da UML e junho/1996. Do lado da linha, há “retorno do público”. Já do lado direito, temos uma linha do tempo esquemática. Ela inicia com Booch e OMT, passa para Unified Method 0.8, UML 0.9, OOSE, outros métodos, UML 1.0, UML 1.1, UML 1.4, UML 1.5, UML 2.0, finalizando com UML 2.5.

Geralmente, a UML é utilizada para sistemas de maior complexidade, em domínios como sistemas de informações corporativos, distribuídos e baseados na web, financeiros e bancários, científicos, de telecomunicações, de eletrônica médica, de transportes, de vendas de varejo, de defesa ou de espaço aéreo. Portanto, a UML pode ser empregada para detalhar qualquer tipo de sistema, conforme você verá no recurso a seguir!

Contudo, as técnicas da UML não são exclusivas da Tecnologia da Informação (TI), pois elas podem ser empregadas em diferentes contextos, para descrever qualquer ação e processo que necessite de análise. Nesse sentido, seguidamente a UML é revista e tem sua versão atualizada.

Saiba Mais

A UML faz parte da documentação oficial de projetos, bem como de outras metodologias, a exemplo do Project Management Body of Knowledge (PMBOK). Pensando nisso, caso queira obter mais informações sobre a UML, incluindo suas versões e a documentação oficial, sugerimos que acesse o site da OMG e o site da própria linguagem, que trazem informações bem interessantes!

Outro ponto interessante é que existem três tipos de conjuntos de diagramas executados pela UML. Você sabe quais são eles? Vamos conhecê-los!

Diagramas comportamentais

Destacam o que irá ocorrer no processo de negócio ou sistema. São utilizados para detalhar as funções de um sistema. Como exemplos, temos os diagramas de atividades, máquinas e estado.

Diagramas de interação

Detalham os fluxos para controlar os distintos elementos de um sistema, sendo um subconjunto dos diagramas comportamentais. Como exemplos, podemos mencionar os diagramas de tempo, comunicação, visão geral de interação e sequência.

Diagramas estruturais

Definem o que deverá ser desenvolvido em relação aos componentes do sistema. São benéficos para definir a arquitetura de um sistema que não depende do tempo. Como exemplos, temos os diagramas de perfil, objetos, pacotes, classes, implantação, componentes e estrutura composta.

É importante ressaltar, ainda, que não são utilizados, necessariamente, todos os diagramas existentes, uma vez que devemos aplicar aqueles que fazem mais sentido e que são úteis para o projeto que está sendo criado.

Depois de você ter estudado sobre a história da UML, as suas particularidades, a relação com a Programação Orientada a Objetos (POO) e os três tipos de conjuntos de diagramas executados, podemos seguir adiante e conhecer o processo de desenvolvimento de um software com UML. Acompanhe!

Processo de desenvolvimento de software com UML e suas fases

A modelagem de um sistema resulta na concepção de modelos de softwares em que um modelo captura a ideia de um sistema físico de modo abstrato, com algum objetivo. Podemos citar como exemplo quando queremos detalhar questões pertinentes à estrutura ou ao comportamento do sistema. Assim, a modelagem auxilia a definir o que pode ser incluído e o que é desnecessário dentro do modelo. Detalhando os dados do sistema físico que são importantes para o projeto.

Saiba Mais

Existem várias metodologias de desenvolvimento de software as quais são divididas em dois grupos principais: tradicionais (como as metodologias incrementais, espiral e cascata) e ágeis (que englobam as metodologias scrum, XP, cleanroom etc.). Para conhecer um pouco mais de cada uma, assim como o ciclo de vida e suas características principais, sugerimos a leitura do artigo Evolução da Metodologia do Desenvolvimento de Sistemas, escrito por Juliana Prado Uchôa. Também vale assistir ao vídeo APS Modelos Cascata, Iterativo Incremental, Prototipação, Espiral e Métodos Ágeis, que traz complementos interessantes!

Ter uma metodologia de desenvolvimento nos permite categorizar as atividades em tarefas executadas durante a concepção de um sistema. Atualmente, inclusive, há muitas metodologias de desenvolvimento, mas, segundo os profissionais da área de desenvolvimento, não há uma abordagem melhor que a outra, uma vez que cada uma possui sua metodologia própria e terá especificidades para obter e coordenar os procedimentos no desenvolvimento de software.

De qualquer modo, é possível diferenciar esses procedimentos, os quais, com algumas alterações, tornam-se comuns à maior parte dos processos existentes. As abas abaixo exibem o ciclo de vida padrão para o desenvolvimento de sistemas.

Aqui você pôde conhecer, de modo objetivo, o ciclo de vida padrão para o desenvolvimento de sistemas. Inclusive, com esse contexto em mente, no próximo tópico, estudará cada etapa do desenvolvimento de software. Vamos lá!

Levantamento de requisitos

O levantamento de requisitos é uma das etapas iniciais no desenvolvimento de software, enquanto as demais (análise de requisitos, projetos que estão na principal etapa da modelagem, programação, teste e implantação) sugeridas por autores, de acordo com a metodologia escolhida, recebem nomes diferentes. Algumas são unidas em uma única fase ou divididas em mais fases.

#PraCegoVer: na imagem, temos a fotografia de uma pessoa digitando em um notebook. Aparecem apenas os braços e as mãos do indivíduo (à direita). Em cima da mesa preta, encontramos o notebook, um teclado e um smartphone com capa vermelha.

Entenda o Conceito

Esse levantamento tem por objetivo entender o problema a ser resolvido e definir “o que” é esperado do software, identificando se há possibilidade de desenvolvê-lo. Isso é feito por meio de entrevistas com o analista de sistemas, engenheiro de software, desenvolvedores etc. (representando a TI), que procuram compreender a necessidade do cliente (usuário) e quais funcionalidades e qual desempenho são esperados do software.

O resultado é a documentação do software, a qual conterá o detalhamento de todos os requisitos do sistema, classificados conforme você pode observar nos cards:

Requisitos funcionais

Determinam as funcionalidades do sistema.

Requisitos não funcionais

Definem características de qualidade que o sistema deverá contemplar.

Requisitos normativos

É a definição das restrições existentes.

Dessa forma, você compreendeu a primeira fase do ciclo de vida padrão para o desenvolvimento de sistemas: o levantamento de requisitos. Essa etapa envolve o objetivo da criação do software, o que ele irá resolver, sendo que os requisitos que deverão ser identificados são os funcionais, os não funcionais e os normativos.

Depois de realizarmos esse levantamento, precisamos, logicamente, analisar os requisitos encontrados. Descubra como fazer isso adiante.

Análise de requisitos

A análise de requisitos diz respeito às etapas de levantamento e análise de requisitos. Com o levantamento concluído, a fase da análise, também conhecida como análise ou especificação de requisitos, permitirá que os profissionais envolvidos — como o analista de sistemas — realizem o estudo com base na documentação do escopo, a fim de criar modelos com UML para representar o sistema. Dessa maneira, pode-se validar se todos estão em conformidade com o que está na documentação e se o sistema em questão realmente é viável.

Tal como no levantamento, a análise não se baseia no ambiente de tecnologia em que será implementado o sistema, mas tem como foco criar alguma estratégia, sem evidenciar como essa solução será provida.

O intuito é ter a melhor maneira de solucionar o problema do cliente, mas não focando nas peculiaridades tecnológicas.

Outro ponto importante nessa fase de análise é a validação, ou seja, a verificação se os requisitos do cliente estão sendo cumpridos.

Após você ter visto a segunda etapa do ciclo de vida padrão para o desenvolvimento de sistemas, ou seja, a análise de requisitos, é possível definir o escopo do projeto e quais modelos com UML serão criados a partir dele, bem como validar a verificação junto a quem solicitou os tais requisitos.

Se você compreendeu todos os conceitos até aqui, podemos seguir para o próximo passo, que é a fase de projeto, ou desenho. Vamos lá?

Projeto (desenho)

Ao passo que a fase de análise foca no domínio do problema (aspectos independentes e lógicos da implementação), a fase de projeto ou desenho é voltada para a solução, buscando determinar o meio como o software realizará o que foi especificado na etapa de análise.

A maior parte da arquitetura do sistema é concebida nessa fase, quando é levado em conta se os recursos de tecnologia estão disponíveis para sanar o problema reportado pelo cliente, qual linguagem de programação será empregada, como será a interface, qual será o sistema de gerenciamento de banco de dados, como o sistema será compartilhado, entre outros detalhes pertinentes à arquitetura.

Observe no recurso abaixo, quais são os dois procedimentos primordiais que o projeto pode contar:

A etapa de projeto, ou ainda conhecida como desenho, é o momento de maior atenção por parte do programador que usa os modelos de criação de software com UML, visto que é nela em que será definida a maneira pela qual as necessidades da etapa da análise serão solucionadas. Para isso, existem dois procedimentos primordiais: o projeto detalhado e o projeto de arquitetura.

Assim, com o projeto realizado, passa-se para a etapa de implementação, também conhecida como programação, quando temos a codificação do sistema.

Implementação (programação) e Testes

Após a etapa do projeto, em que foram estabelecidas as soluções voltadas às necessidades mapeadas na etapa de análise, chegamos à implementação, isto é, almeja-se a realização do que foi projetado.

Por conta disso, tenha sempre em mente o seguinte:

Atenção

Na etapa de implementação, a equipe de desenvolvimento realiza a codificação (programação) do sistema, em que o detalhamento provido pela etapa de projeto é traduzido para uma ou mais linguagens de programação.

Em virtude disso, na programação orientada a objetos — com linguagens como Java, C#, entre outras — ocorre a concepção do código relacionado às classes de objetos do sistema.

Além disso, é nessa fase que é possível realizar o reuso de componentes para acelerar as atividades da implementação.

Porém, ainda que exista a etapa de implementação, ela sozinha não garante o suficiente para que o software criado com os modelos de UML esteja funcionando adequadamente. É preciso que ele seja testado, com o intuito de que eventuais erros e imprevistos possam ser averiguados e corrigidos antes de sua disponibilização ao cliente.

Desta forma, após a implementação, temos a fase de testes, isto é, quando vários procedimentos são executados para nos certificarmos de que o software desenvolvido está rodando sem erros, de acordo com o detalhamento realizado na etapa do projeto.

#PraCegoVer: na imagem vista de cima, um programador está debruçado em sua mesa de escritório, além de escrever observações em um caderno. Ao lado dele, está um notebook com a tela aberta e, à frente, está um papel em que há figuras impressas que remetem a etapas de um projeto, sendo que existem anotações escritas pelo profissional nelas.

O relatório de todos os testes, assim como os erros encontrados, são o resultado primordial dessa etapa, uma vez que são necessários para que o time de programadores faça as correções precisas. Dessa forma, todos os módulos do sistema são incorporados para que este seja finalizado para a implantação.

Implantação

Depois de finalizada a etapa de teste, em que todos os possíveis erros e imprevistos foram mapeados, temos a implantação.

É nela que o sistema é compartilhado e implementado no ambiente especificado pelo cliente. Os manuais do software também são desenvolvidos nessa etapa, bem como os arquivos são carregados, as informações cruciais são importadas e os usuários recebem um treinamento para usar o sistema de maneira adequada.

#PraCegoVer: na imagem, temos a fotografia de uma pessoa digitando em um teclado frente a um monitor. O indivíduo está à esquerda, aparecendo apenas parte de seus braços e suas mãos. Ele veste uma camisa social quadriculada branca e cinza. Em cima da mesa, encontramos um teclado, um mouse e um monitor.

Lembre-se que, nessa fase, pode haver a migração de sistemas de software para casos em que os dados já existiam.

Com a implantação, finalizamos o processo de desenvolvimento de software com a UML. Contudo, antes de encerrarmos, convidamos você, a analisar a imagem e interagir com o recurso a seguir, com o intuito de consolidar o que aprendeu em relação às etapas do ciclo de vida padrão para o desenvolvimento de sistemas. Confira!

#PraCegoVer: A imagem contém uma seta grande apontando para a direita. Ao longo dela, termos se intercalam começando por um em cima dela e depois, mais a frente, outro embaixo dela, começando por: Levantamento de requisitos, Análise de requisitos, Implementação, Teste e Implantação.

A partir do que você viu, é possível notar que, embora existam poucas etapas e fases, elas são fundamentais para que você otimize tempo e recursos, além de que o software criado possa funcionar adequadamente.

Parabéns! Você chegou ao final do módulo 1.

Aqui você pôde entender a história da UML, as suas particularidades, a relação com a Programação Orientada a Objetos (POO) e os três tipos de conjuntos de diagramas executados.

Além disso, você viu o ciclo de vida padrão para o desenvolvimento de sistemas, sobretudo em relação às suas etapas, as quais são o levantamento de requisitos, a análise de requisitos, o projeto e a implantação.

Agora que já passamos por essas etapas, no próximo módulo vamos nos aprofundar sobre um assunto relevante para o seu futuro profissional: o desenvolvimento de um software orientado a objetos. Vamos lá?

Selecione o botão “Avançar” e confira!