Title: Automated solutions for understanding and perfecting software
1Automated solutions for understanding and
perfecting software
Architecture-Driven Modernization February 11,
2004
2Agenda
- Architecture-Driven Modernization (ADM)
description and benefits - Klocwork solutions related to ADM
- ADM to MDA transformation
- Forward engineering of existing software using
UML
3Does This Sound Familiar?
and I mean your teenage
software
4OMG Architecture-Driven Modernization (ADM)
Initiative
- OMG Architecture-Driven Modernization Task Force
created in 2003 - ADM is the process of understanding and evolving
existing software assets - Modernization starts where existing practices
fail to deliver against business objectives - The goal - Standardize on modernization of
existing software - The initiative will leverage OMG existing
standards (e.g. UML) and the Model Driven
Architecture (MDA) approach to - Restore the value of the existing application
- Make existing applications more agile
- Consolidate best practices leading to successful
modernization with ultimate goal of revitalizing
existing applications - ADM Standards will
- allow users to begin modernization projects
knowing that there is interoperability between
different tool vendors - ensure that end users are investing not just in
individual tools, but also into a coordinated
strategy
5Current Status OMG ADM initiative
- The road map is defined and consists of the
following meta-models - Knowledge Discovery Meta-model (KDM) as the
central part of the specification for
representing existing software assets current
focus - Target models (both platform-specific and
platform-independent) - Source-to-Target mapping models, addressing
various specific classes of transformations - Metrics extension to KDM
- KDM RFP issued in November 2003
- Submissions in response to RFP are in progress
6Klocworks Relevant Experience
- Examined 200 software projects in last 8 years
- Multi million lines of code
- Written in C C and/or JAVA
- Half of the projects were over 10 years old
- 4 patents issued, 2 patents pending
- Deployed modernization solutions in over 15
marquee customers accounts - Leaders in industry standards groups
7Klocwork overview customers and partners
Partners
Customers
8Modernization is required to address issues
related to
- Security Vulnerabilities
- Corporate credibility and brand at risk
- Difficult to identify/isolate security defects
- Difficult to identify security defects related to
design - Lack of secure coding practices
- Software Defects
- Exponential costs to fix customer-facing defects
- Defects are identified too late in lifecycle
- Escaped defects migrate from each project phase
- Porting
- Manual process highly error-prone
- No cost containment money pit
- Difficult to manage migration to new platforms or
technologies
- Countless Fingerprints on the Code
- Everything has changed but the ship date
- Architect and developer churn
- Distributed development environments
- Outdated or limited documentation
- Offshoring
- Accountability, responsibility, but limited
visibility - Unchartered management complexity
- New sources of potential security vulnerabilities
created
- Code Bloat
- Runaway growth of code size
- Memory constraints
- Increasing build time reduces productivity
- Dead code overhead
- Refactoring/Reusability
- Ability to maintain/enhance application
increasingly complex - Unable to reuse key components
- Cost and redundancy of duplicate code
- Management by measurement
- Cant manage what you cant measure
- Business impact of SW failures in field
- Statistics versus automated analysis
- Creation of software quality metrics too resource
intensive
- Developer Productivity
- Fewer developers, deeper pool
- Development time spent maintaining instead of
building - Unintentional erosion in application architecture
- Maximizing trade-off of people/money/time for
code inspections
9Klocworks software approach
Automating the process of understanding and
perfecting software
Identify
Understand
- Automated multi-dimensional analysis and roadmap
- Provides context to software defects and security
vulnerabilities in relation to the full software
analysis - Architectural analysis that details
- Misused and misplaced interfaces
- Tangled components
- Mismanaged and inefficient component dependencies
- Automated software analysis that identifies basic
software defects and security vulnerabilities
- Automated visualization of your architecture, and
capability to test what if scenarios
Achieving perfection requires all four disciplines
- KPIs for Software Code and Architecture
- Provides managers and developers with objective
and repeatable metrics and trends for - Risk management (determine probability of
software failure in field) - Defect density and Security violations
- In-depth churn analysis (beyond LOC)
- Clone analysis
- Real-time software analysis at the desktop that
prevents - New defects and security vulnerabilities from
entering code stream - Code bloat
- Architecture erosion
Protect
Measure
10How to modernize your software to realize the
benefits of the MDA approach and forward
engineering discipline
11ADM to MDA transformation
- First step is to understand existing software
assets - Perform Architecture Excavation
- Top-level model
- As many levels as necessary, as little as
possible - physical irregularities are removed
- Decoupling platform-specific from
platform-independent layers - Refactor existing assets into platform-independent
layer and platform-specific layer - Clean-up to improve design and architecture
(optional) - Identify component that will be used to add new
features and functionality - Optimize and document the component interfaces
and dependencies - Replace unwanted dependencies by manipulating the
architecture - Once the desired interaction is achieved a
Component Diagram can be created
12ADM to MDA transformation cntd
- Generate model(s) for platform-independent
components - Contains components and interfaces
- Does not model behavior
- Is precise with respect to the existing
(re-factored) code - Use generated models to generate
platform-specific skeletons (e.g. to migrate to
new platform) - Use generated model to interface newly developed
components to it - Generate Adaptors (optional)
- Generate rules to enforce excavated design
13Bringing existing software to MDA development
PIM
existing code
14Diagrams for software transformation into MDA
- Klocwork component diagram
- Representing structural aspects of existing code
- Hierarchical, precise, editable components can
be aggregated and re-factored, relationships
between components are updated automatically to
guarantee precision - Relation to the source code (e.g. browsing
comments, etc.) - Klocwork scenario diagram
- Represent end-to-end sequences through code or
component relations - Scenarios can be projected onto component
diagrams - Extension to represent behavioral aspects of
existing code - Architecture rules to enforce excavated design
15High Level Design with inSight Architect
- Use inSight Architect to quickly understand the
detailed software relationships between
components.
16(No Transcript)
17(No Transcript)
18Going forward mapping to UML
- Typical UML Forward Engineering Effort occurs in
the following order - Use case View
- Design View
- Process View
- Implementation View
- Klocwork recommends reconstructing the UML views
of your existing software in the following order - Implementation view (completed with the inSight
Architect during ADM to MDA transformation phase) - Process view
- Design view
- Use case view
19(No Transcript)
20(No Transcript)
21(No Transcript)
22(No Transcript)
23Implementation view - Component Diagram
Reconstruction
24UML Process view Reconstruction
- Identify the active classes and objects
- Construct class diagrams and interaction diagrams
to capture their dynamic interaction. - Identify the allocation of functions/methods to
the various active objects within the system.
25(No Transcript)
26Process View Reconstruction
27Design and Use case views
- The Design view reconstruction involves
- Identify classes in the existing system
- Use inSight Architect to automatically extract
the class structure diagram - The Use case view involves
- Identifying the interfaces of the component
(completed with the inSight Architect during the
Implementation view reconstruction) - Construct scenarios using the inSight Flowchart
as a reference
28Class View Reconstruction
29 30Use Case Diagram Reconstruction
31 32Automated solutions for understanding and
perfecting software
Thank you for your time