|
Model
Engineering - The Role of Models in Software
Dave Thomas,
cofounder/chairman of Bedarra Research Labs & Adjunct Research Professor
at Carleton University and University of Queensland
Monday, June 13, 12:30pm – 1:30pm
It has taken decades to get consensus that software engineering is really a
modeling activity in which models are successively refined from requirements.
Unfortunately it appears at times that the software press wants to divide the
world into MDD believers - UML 2, MDA, Software Factory and disbelievers –
Agile, DSL instead of hearing the real message – software is about models,
lots of different kinds expressed in different ways.
The recent emphasis on model engineering builds on numerous best practices from
different software engineering communities. Research progress in meta-modeling
and model transformation promises powerful tool support for model definition
and refinement.
In this keynote we discuss our experiences using MDD to build a wide variety
of software from embedded systems to OLTP applications. We also discuss our
experience building and using MDD tools to support development. We focus on
the role of models in software engineering and discuss the benefits as well
as limitations of different models, modeling languages and tools.
Model-Driven
Development: Its Essence and Opportunities
Bran Selic,
IBM Distinguished Engineer, IBM Rational
Tuesday, June 14, 12:30pm - 1:30pm
In its essence, model-driven development (MDD) represents a straightforward
continuation of the traditional trend in software technology towards ever-increasing
levels of abstraction and automation. However, the path along this technological
continuum is marked by certain thresholds beyond which qualitatively new and
powerful capabilities open up. Based on this perspective, we first extricate
the essence of the MDD idea from the confusing mixture of market-babble, point
technologies, and politics in which it is currently embroiled. Next, we explore
some of the dramatic new opportunities created by the progression towards MDD.
Finally, we close with a discussion of the pragmatic issues and hurdles that
need to be overcome to achieve the full potential that lies ahead.
The Value of Modeling--Looking Forward
Gary Cernosek, Market Manager, IBM Rational Design and Construction products
Wednesday, June 15, 12:30pm - 1:30pm
Many software professionals already understand and embrace the value of modeling
software. It is those very individuals that must carry this message forward
to others in their organizations. How do they do that? The need for communicating
the fundamental reasons for modeling software is now more critical than ever.
This presentation reminds us why modeling is important to software development
and reinforces the business case by taking a forward-looking view based on a
number of trends taking place in our industry. The goal is to cast a new light
on the value of modeling and create an even stronger case for why its practice
can and must play a stronger role in mainstream software development.
Beyond Agile: Smart
Ivar Jacobson,
co-founder of UML & the Rational Unified Process
Thursday, June 16, 9:00am – 10:00am
A resounding yes to agile methods, but agility is not enough. Agile methods
rely on tacit knowledge, whereas Unified Process stands on explicit knowledge.
This difference takes us beyond being agile to being smart, a necessity in the
increasingly complex software world of tomorrow.
Software
Factories: Assembling Applications with Models, Patterns, Frameworks and Tools
Jack
Greenfield, Architect, Enterprise Tools, Microsoft
Wednesday, June 15, 6:45pm-7:45pm
Increasingly complex and rapidly changing requirements and
technologies are making application development increasingly difficult. This
keynote examines this phenomenon, and presents a pattern for automating software
development tasks using patterns, frameworks, languages, and tools for specific
domains, such as user interface construction or database design. Software Factories
integrate critical innovations in adaptive assembly, software product lines,
and model driven development to reduce the cost of implementing this pattern,
making it feasible for narrower and more specialized domains, such as B2B commerce
and employee self service portals.
In a nutshell, a software factory is a development environment configured to
support the rapid development of a specific type of application. At the heart
of the methodology is the software factory schema, a network of viewpoints describing
the artifacts that comprise the members of a family of software products, and
the languages, patterns, frameworks and tools used to build them. Mappings between
viewpoints support traceability, validation, assisted development and complete
or partial transformation. They also support a style of agile development called
constraint based scheduling, which scales up to large, geographically distributed
and long running projects.
While Software Factories are just a logical next step in the continuing evolution
of software development methods and practices, building on lessons learned about
patterns, frameworks, languages, and tools, and extending the forms of automation
provided by Rapid Application Development (RAD) environments to new domains,
they promise to change the character of the software industry by moving it closer
to industrialization. By automating development tasks, and creating contracts
that support separations of concerns, Software Factories promote outsourcing
and the formation of software supply chains, paving the way for mass customization.
|