Posts

Showing posts with the label uml

Astah Unexplored & New Features

Image
I'm currently trying out the reverse-engineering in Astah and am pleasantly surprised by the available features. My sample files are taken from " Full Stack Development with Spring Boot 3 and React " I tried importing the downloaded files from GitHub. Remember to check the "include sublayers" to add files from various subdirectories. Code to Diagram feature Feeling lazy, I used the "Auto Create Class Diagram" function to generate "Simple" class diagrams. Accessing the "Auto Create Class Diagram" feature With a bit of a clean-up and elimination of classes that are irrelevant, the auto-generated class diagrams look great! Auto-generated Class Diagram Auto-Generated Class Diagram The latest feature allows a Definition Note to be automatically created as an UML note. Definitely a most welcomed feature! Right-Click on a model element (Class) to see the available options for "Show Definition Note". The available Definition Notes...

Useful Hacks in Using Astah

Image
MindMap Hack I've been using Astah (download here ) more recently for the MindMap feature and felt to share this wonderful "hack" with you. I jotted some points in NotePad and wish to quickly transfer them into Astah as a MindMap. The easiest way to retain the hierarchy is to use [TAB].  Therefore I could easily transform this Hierarchical List of Points Into Same List of Points in MindMap Here is how it's done: Select all text in NotePad (or equivalent) and Copy (Ctrl-C) Go to Astah and create a New MindMap Diagram Click on Mindmap0 or whatever existing topic and Paste (Ctrl-V) Like magic, the MindMap is created and the hierarchy is retained. UML Deployment Diagram You wish to draw professional-looking diagrams using AWS/ Azure icons. Is that possible & easy to do in Astah? AWS Deployment Believe it or not, the above is drawn in Astah!  Here is how it's done: Go to Tools -> Project Settings -> Set Icon for Stereotype (See Custom Icons for Stereotypes Di...

Using Astah to Understand & Appreciate Published Standards

Image
I'm usually a visual person, hence reading and understanding standards (implementation protocols, etc.) can be quite challenging. In trying to understand and appreciate OIDC (Open ID Connect) from the OIDC website , I used Astah to model my understanding and summarised by understanding in a couple of diagrams. What was more challenging is that there are several flows in OIDC and each can be slightly different. My goal is to not only understand the protocol, but to appreciate how it is applied in my implementation. Fortunately, Astah makes it relatively easy for me to create high-level models that might not have any implementation elements. Remember I'm not implementing OIDC protocol and am modeling the flows in order to better understand them. As such, I'm not exactly interested in creating UML Classes, writing Operations, Attributes, Associations, etc., other than what is instrumental in creating the desired diagrams. Some of the Sequence Diagrams are here: Authorizatio...

Astah - How wonderful you are!

Image
I started using JUDE in the early days of UML modelling and have continued using Astah until now. In the day and age of Agile development, emphasizing "communication over documentation", is UML (and related UML tools) still relevant? I'll give a resounding YES! to the question. While we should do away with extensive documentation , we should still be able to communicate our intent in forms of architecture, design, workflow, processes, etc. In the course of my work in an end-user environment, I use Astah extensively to communicate with development teams, users, vendors and even senior management.  I find it's often a lot easier to use a tool like Astah to draw UML (or pseudo-UML) diagrams than pen-and-paper (or even napkins!). For instance, I can easily move things around, redraw and append/ update the diagram using the tool but not with paper. Some examples of diagrams I'd used in the course of work are below. I used Astah for the following: Share my thought proc...

Unified Data Modelling for RDBMS and NoSQL

Image
The logical model metadata The physical model metadata Note that Blue denotes the RDBMS metadata while Green denotes the NoSQL metadata.

Software Architecture Modelling Using C4

Image
UML appears to be dying in the light of the Agile development movement. working software over comprehensive documentation Many have wrongly interpreted this to mean no documentation. I recently read up C4 model for software architecture that describes the software architecture of a system from different depth & perspectives and for a different audience. The author promotes the use of a common vocabulary to describe software architecture using simple-to-understand diagrams. I attempt to do similar in this post using the same case study as that of the C4 article. The differences are: I do not wish to go into  Class (the 4th C) as that requires too much implementation details I replace the 4th C with Concept as I personally find the Conceptual model more relevant and important in appreciating the business domain.   Using Astah , I figured out how I can model the 4C software architecture efficiently using UML. Mind-Mapping I started with a Mind...

How to depict (Professional-Looking) Logical Network Diagrams in Astah

Image
I have always had to create (professional-looking) UML diagrams using Visio-like icons. You’ve got to admit that showing a bunch of boring UML boxes hardly interests anyone less technical (like anyone whose designation has the words “manager” or “director”). This is actually possible in Astah! I’ve created a template for future projects that allows me to produce logical network diagrams that look like the following: To create this diagram, you need to do the following: Assign various icons to stereotypes. I created the following for my use: Create a new UML Deployment Diagram Every element in the diagram is created as a Node The nodes are subsequently assigned the appropriate <<stereotype>>. E.g. Internet is <<internet>>, WebZone FW is <<firewall>>, Web LB is <<loadBalancer>> Ensure the “Icon Notation” is set to “Customized Icon” for each node Instead of the boring boxes, the corresponding icons automatically gets displayed!

Web Application Security Issues & Solution using UML

Image
I was once involved in reviewing our company’s application architecture to identify security risks and recommend possible mitigation solutions. Since every organisation has its own unique constraints, available resources, and risk appetite, the solution herein might not apply to other organisations. Nevertheless, this post showcases what one can do with UML to document and explain (pictorially) security flaws in application architecture. The as-is architecture follows. A detailed explanation follows: The system (under design) is a Java Enterprise Application that is deployed in AppSvr (Application Server) within the Internal zone. The deployed application consists of both HTML-based as well as SOAP-based services. The 2 WebSvr’s ([Apache] Web Server) in the DMZ act as proxies. There is a load-balancing appliance used to balance requests to the web servers. A request pool has been created on the appliance (WebPool). The (public) user would access the URL endpoint of the appli...

Prototype Application Development Using Astah

Image
I had the opportunity to develop a prototype for a client and used Astah to capture the salient specifications as well as the requirements analysis. Mindmap To first understand the requirements, I used a mindmap to guide the user through the mean features of the application. What worked well in this instance was a role-based model (similar to use case modelling), i.e. list out all the roles involved in interacting with the application. Next, the features or use cases for each role gets listed out (“as a <role>, I want to be able to <feature>”) The final mindmap served as a form of an agreement on the scope of work. The final mindmap looked like the following:   Use Case Modelling Using Astah, I was able to easily convert the Mindmap into a set of Actors and Use Cases for further analysis. The model follows:   Domain Model As the prototype had dependencies on an existing application, some of the domain objects were deliberately taken from the the exi...

Understanding ITIL Service Management the UML way…

Image
I originally had a great deal of difficult reconciling the differences amongst ITIL Change Management, Incident Management, and Problem Management. Having researched on the subjects and understanding them better now, I’ve tried to put the concepts together using a UML class diagram to capture my understanding and to keep it imprinted. Similarly, I wanted to differentiate the various categories of changes (Standard, Emergency, Normal) using an easy to understand & self-explanatory manner – a UML Activity Diagram!

Modelling the Life Insurance New Business Process

Image
This is a simplified diagram that captures the business process for a Life Insurance new business workflow. The high level process is captured using an UML Activity Diagram.

How Much Detail Do You Need to Capture in UML for Code Development?

Image
I had a mini-experiment to document my design in UML for a developer to write the corresponding code. The background and assumptions are: The application is an insurance quotation system Design is based on MVC, in particular, ASP.NET MVC Web caching is used The basic MVC application framework is in place (with sample codes) The developer is an intern from a local university What is designed to be developed is one of the modules in the entire application – this particular module is a dashboard Without going into the details of the use case document, I created the basic tenets: certain basic sequence of events as well as the View-Of-Participating-Classes (VOPC). The mini-experiment proved to be a success to my surprise. The following UML Sequence Diagrams capture the basic flow for the initial web request: The following UML Sequence Diagram depicts the sequence of events for subsequent access: Finally the VOPC UML Class Diagram follows: