Practical use of Generative Techniques in Software Development Projects: an Approach that Survives i - PowerPoint PPT Presentation

About This Presentation
Title:

Practical use of Generative Techniques in Software Development Projects: an Approach that Survives i

Description:

Realistic assumptions about the average skill levels in real project teams ... tools that integrate well with widely used IDEs and UML tools have a chance of ... – PowerPoint PPT presentation

Number of Views:73
Avg rating:3.0/5.0
Slides: 19
Provided by: joer150
Category:

less

Transcript and Presenter's Notes

Title: Practical use of Generative Techniques in Software Development Projects: an Approach that Survives i


1
Practical use of Generative Techniques in
Software Development Projects an Approach that
Survives in Harsh Environments
2
Motivation
  • Realistic assumptions about the average skill
    levels in real project teams
  • Leveraging existing skills to achieve
  • Unambiguous architecture representations
  • Reusable, implementation language independent
    design models
  • Improved software quality
  • Increased software development productivity
  • Shorter release cycles

3
Typical use of UML
Cluttered Design Model peppered with
implementation details.
4
We dont want the clutter!
  • Observations
  • The model is on the same level of abstraction as
    source code
  • The model is tedious to maintain
  • The sheer number of model elements obscures the
    architecture
  • At best - the model is an artistic
    illustration of source code
  • At worst - the model is outdated and not
    traceable to source code

5
We rather want ...
  • To Raise the level of abstraction of design
    models with the following goals
  • understandable, meaningful UML diagrams
  • a reduction in the number of model elements that
    an application developer has to worry about
  • the design model focuses on the application
    domain, the architecture is described in a
    separate model
  • the ability to automate the generation of
    structural code, and to hide the implementation
    from application developers

6
Uncluttered Design Model
free of implementation details.
7
Separation of concerns in UML models
  • What? - Raising the level of abstraction of
    design models.
  • How? - The basic idea is straight forward use
    the UML to model each allowable construct that
    can appear in the UML design model in an
    architecture model, and then use the UML to model
    all the corresponding implementation constructs
    in an implementation model.
  • Why? - The achievable difference in the level of
    abstraction between UML model and implementation
    code directly corresponds to a gain in
    productivity if code generation techniques are
    used to map from UML model to target language(s).

8
Types of Models
9
The Architecture Model
The Architecture Model is a model is on the same
level of abstraction as the Design Model. It
describes the usage of design patterns and
specifies design constraints.
10
The Design Model
The Design Model is a model on a high level of
abstraction that hides all implementation
language details. Most UML tools do not provide
the features needed to generate code from such a
model.
11
The Implementation
By Implementation we mean all source code
artefacts. Some implementation artefacts can be
fully generated from the abstract design model,
others need to be partially handcrafted.
12
The Implementation Model
The Implementation Model is a model on the same
level of abstraction as the implementation. In
projects that make extensive use of reverse
engineering features of UML tools,
the implementation model is often called
design model.
13
Template Languages
  • A good template language needs to provide
  • full access to the UML model that stores
    abstract specifications
  • conditional constructs
  • iteration constructs
  • support for recursion
  • useful granularity of templates
  • readable template code
  • readable generated code

14
Template-Based Generators
  • A good template-based generator should provide
  • pre- and post-template execution user exists at
    generation time
  • high quality template debugging capabilities
  • a well-thought out template execution environment
    that can be integrated into a build process
  • meaningful error messages at generation time
  • an industry-strength approach to non-destructive
    generation

15
UML Modelling Tools
  • A good UML modelling tool should provide
  • a 100 reliable impact analysis
  • a built-in industry strength support for
    object-relational mappings that are defined via
    customisable set of mapping rules
  • support for user-definable architectural
    constraints and validation checks
  • version control at the model element level
  • well-thought out features to support team
    development
  • meta-modelling capabilities beyond UML profiles

16
Links
Many - but not all -) of the tool features
discussed are partially built into at least one
of the following two products LANSA/RUOM from
LANSA Inc., see http//www.lansa.com/products/docu
mentation.htm GenIt Architect from Codagen
Technologies Corp., see http//www.codagen.com
Other Products? Please indicate!
17
Conjectures
UML model-driven, code-template-based
generation is the only practical approach to
introduce traditional software development
teams to generative techniques. The countless
trivial generation utilities that are developed
and used on an ad-hoc basis give generative
techniques a bad reputation. Only techniques
tools that integrate well with widely used IDEs
and UML tools have a chance of mainstream
acceptance.
18
End
Write a Comment
User Comments (0)
About PowerShow.com