Every good software development group has provided management of their applications through the complete lifecycle but it has required a suite of programs to help at every stage. The new term ALM (Application Lifecycle Management) describes more than just a concept but instead a new range of products that extend the software control beyond that of the standard software development life cycle (SDLC).
A Lifecycle of Enforced Management
Almost every company involved in developing software applications has quality controlled by a set of internally agreed rules or a code of practice. It is a fact that most developers want to dive into creating code and most managers want to see something being produced, but this does not create quality applications. The integrated development environments ( IDEs such as those from Borland and Microsoft ) started life as simple compilers with a few additional tools and so management of a quality application lifecycle required a lot of self discipline and enforced control to ensure that critical tasks were carried out.
A New Age of Application Management
As the software development life cycle developed over the years, the IDEs have grown to include many new features to aid in quality functions such as version control, but they have been slow to extend much outside the responsibility of the programmer or analyst. In this new age, however, there is a stronger emphasis on the developers tools providing functions to look after the project right from inception to the day it becomes life-expired. It is this complete managed solution that is called Application Lifecycle Management or ALM.
What is New in ALM?
The main new features are in the project and team management during the development part of the lifecycle and then maintenance of the applications after delivery. Documentation has a much greater emphasis with many tools for creating charts and controlling comments in the code. There are also new features to help test the applications.
UML as a Key Part of ALM
A key new feature of many of the new application development environments is the implementation of the Unified Modeling Language or UML. This function can be tightly integrated into the IDE to provide a means of modeling all or part of an application in both a static view: using objects, attributes, operations and relationships, and in a dynamic view: showing collaborations among objects and changes in state.
UML For Documentation and Code Generation
An excellent feature of Application Lifecycle Management is the importance put on documentation, and UML can play a big part in this. Because of the incredible detail that can be added to the functional descriptions in UML, the documentation can be automatically generated in clear diagrammatic form as can, in fact, the new code itself. There is nothing more likely to ensure documentation is created than if it only takes a push of a button.
The Future of Application Lifecycle Management
The direction that ALM takes software development is good news for the developer, the project manager and the customer. The resulting application should be much more heavily documented and more tightly controlled as bug fixes and extra requirements cause new versions to be created. However there is still room for further improvement as some of the new features are still provided as add-ons or at high extra cost.
There is also room to add functionality that will include the developer in the initial proposals to the customer as this just may allow for a more reasonable expectation of budget and timescale. That really would be complete application lifecycle management.