The Unified Modeling Language (UML) is a widely applied industry standard in software engineering that is used to model system architectures. To keep it simple, UML is a framework for visualizing system architecture as well as the entire development process, from requirements all the way to testing documentation. It is a set of rules and notations that constitute a uniform visual language – one that's understood and used by software engineers the world over.Its widespread use is a result of its flexibility: as a comprehensive, extendable and highly flexible modeling language, UML can support any kind of system modeling, whether it is software development, business process mapping, organizational hierarchy modeling, etc. Let's see how UML ties in with Application Lifecycle Management, and a practical example of how you can use UML charts to support your software development with the help of codeBeamer ALM.
The role of modeling in software development
It is common knowledge that requirements are the most important entities when it comes to developing software. These requirements will outline certain modules and functions you'll need to include in the piece of software you're working on. Planning how these components will be connected to each other, and how they will work together to form a complex system – that's what software architecture is all about. It is why this part of the process is called software engineering.
As with engineering in any other field, you'll want to have a blueprint, a plan of what your system should look like, and how it should work. This, in short, is what UML is used for. A UML diagram resembles a flowchart of sorts that helps you visualize the architectural blueprint of a software system. It models the activities of the system, the software components & how these interact with each other, the user interfaces, and how the system should work.
So how do UML and ALM work together?
At this point in the process, you have your requirements carefully defined, and a blueprint of what components and functions will fulfil these requirements. Now, "all" you need to do is manage these requirements, turn them into tasks for your developers, make sure they're implemented perfectly, test their operation, and trace them to the end of the process. The problem is, this "all" is pretty much the most complex part of development...
UML helps you plan and overview the entire system, but to develop quality software, you need to get granular by tracing and managing every single work item to release. This is what Application Lifecycle Management (ALM) tools such as codeBeamer are designed to do. But how does one reap the benefits of both in an integrated manner?
Enterprise Architect (EA) is a graphical modeling tool that is based on UML. Basically, it allows you to map your requirements into a tree structure, and design a UML (flow)chart based on these requirements that will serve as a blueprint for your system. EA is widely used by business and organizations to model the architecture of complex systems.
To help you progress into the development phase, we have integrated Enterprise Architect in codeBeamer. This integration lets you import not only the UML diagrams, but also your requirement tree structure into codeBeamer.
codeBeamer's EA integration lets you seamlessly move on to managing your requirements using our single-repository, end-to-end ALM system. You can link your requirements to tasks, wikis, code, test cases, and releases in order to ensure complete traceability. At the end of the process, you can use the Traceability Browser as well as your UML diagram to ensure all the requirements have been addressed.