Automated solutions for understanding and perfecting software - PowerPoint PPT Presentation

1 / 32
About This Presentation
Title:

Automated solutions for understanding and perfecting software

Description:

Code Bloat. Runaway growth of code size. Memory constraints ... Code bloat. Architecture erosion. Automating the process of understanding and perfecting software ... – PowerPoint PPT presentation

Number of Views:35
Avg rating:3.0/5.0
Slides: 33
Provided by: nicka4
Category:

less

Transcript and Presenter's Notes

Title: Automated solutions for understanding and perfecting software


1
Automated solutions for understanding and
perfecting software
Architecture-Driven Modernization February 11,
2004
2
Agenda
  • Architecture-Driven Modernization (ADM)
    description and benefits
  • Klocwork solutions related to ADM
  • ADM to MDA transformation
  • Forward engineering of existing software using
    UML

3
Does This Sound Familiar?
  • Misbehaving
  • Rebellious
  • Difficult
  • Unpredictable
  • Maturing inappropriately

and I mean your teenage
software
4
OMG 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

5
Current 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

6
Klocworks 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

7
Klocwork overview customers and partners
Partners
Customers
8
Modernization 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

9
Klocworks 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
10
How to modernize your software to realize the
benefits of the MDA approach and forward
engineering discipline
11
ADM 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

12
ADM 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

13
Bringing existing software to MDA development
PIM
existing code
14
Diagrams 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

15
High Level Design with inSight Architect
  • Use inSight Architect to quickly understand the
    detailed software relationships between
    components.

16
(No Transcript)
17
(No Transcript)
18
Going 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)
23
Implementation view - Component Diagram
Reconstruction
24
UML 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)
26
Process View Reconstruction
27
Design 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

28
Class View Reconstruction
29
 
 
30
Use Case Diagram Reconstruction
31
  • Questions..

32
Automated solutions for understanding and
perfecting software
Thank you for your time
Write a Comment
User Comments (0)
About PowerShow.com