Posts

Showing posts with the label UML

My 2 cents about UML

Image
There were some interesting posts about UML recently. Mainly being  “   Has UML died without anyone noticing? ” and “   Why UML “Really” Died ”. I also made some po s ts about UML in the past — mainly “   UML Hidden Gems ” and “   Architecture 101: Thinking about Design ” and “   Internal System Design: The Forgotten Discipline   “. IMHO success means decline and eventually abuse. That happened to all successful movements, technologies, and methodologies I can remember such as Agile, Architecture, DevOps, Docker, Spring, and many more. Yes UML was abused and used in the context of the heavy and rigid process. UML was often used for all CRUDs which does not make sense and does not add value. But honestly, if we see things with DDD lens even CRUDS don’t make sense especially with UX sense CRUD are not ideal at all. IMHO what happens is we are exposed to fashion and marketing. There is internal and external pressure to do things in one way instead of anot...

Internal System Design: The Forgotten Discipline

Image
Several years ago it was impossible to think about software development without having at least a business specification(usually in a word document) and a bunch of UML diagrams like package, class and sequence diagram. That was a pre-agile era where process and formality ruled the IT software development industry(yes folks, yes I'm old). Back on that time software engineering was pretty much conceived as "process".  Now we live in a more civilized era, however, back on that time, there were some interesting and valuable things(tools, techniques, principles and even practices).  Like the English expression, you need throw bath water but keeping the baby. I was wondering why these phenomena happened and still happen today. First of all, we are SOCIAL animals we tend to have some kind of "fashion" behavior where we follow the "flow". Needless to say that UML and Software internal design is not quite popular today with the new kids. I don't miss the...

Analise de Impacto no Enterprise Architect

Image
Quando estamos falando de mudanças em um projeto de desenvolvimento de software existe uma grande necessidade de saber no que essa mudança irá impactar. Esse impacto pode ser encarados de várias formas. Você precisa saber o impacto da mudança em termos de requisitos, design e até código. É importante ter esse conhecimento para poder dimensionar a mudança e ver a forma certa de lidar com a mesma. Todas essas questões tem impacto direto na gestão do projeto, por que dependendo da mudança vai demandar mais recursos, tempo e complexidade. Uma ferramenta de requisitos deve tratar com essas questões. Muitas ferramentas analisam o impacto somente a nível de requisitos, de facto isso não é o suficiente por que na pratica vai demandar toda uma analise manual de um projetista ou analista. Neste post vou mostrar como podemos fazer analise de impacto em dois níveis com a ferramenta Enterprise Architect ou famoso EA. No primeiro nível vou mostrar o impacto entre Requisitos funcionais e casos de u...

Engenharia Reversa com UML em cores

Image
Atualmente para um projeto que estou trabalhando, tive a necessidade básica de entender o que o código fazia :). Então simplesmente olhar código a código não achei uma boa idéia. Eu tinha que entender um framework SOA o qual estou ajudando a construir e um protótipo. Resolvi aplicar o método de UML em cores do Peter Coad . Peter foi um dos criadores da OOAD e um dos caras que mais falam de FDD . Bom neste post vou falar um pouco mais sobre UML em cores e bem como usei o método para ajudar no meu mini-projeto de Engenharia Reversa, então sem mais delongas vamos falar primeiro de UML e de OOAD. UML é um linguagem de modelagem mundialmente aceita no mercado de desenvolvimento de software, mas não se engane UML não é um método, essa é uma grande confusão que o pessoal faz com a Análise Estruturada Moderna . Na Análise Estruturada existia um método, coisa que a UML não propõe. Logo existiu e de facto ainda existe um gap para então saber como fazer as atividades de análise e design. O bject...