David Lamb's Research
My pre-retirement researh for the most part fell into the general area of software architecture and
software design methodologies, focusing primarily on representations of design
information, and aspects of architecture suitable for undergraduate education.
I used the following definitions in my work:
- A system
-
is a collection of parts, with relationships among the
parts, that interacts with an environment across
an interface.
- A software system architecture
-
is a description of a system, at a suitable level
of abstraction, using kinds of
part and relationship defined by a particular view, along with a
rationale for design choices made in developing the architecture.
- A software development methodology
-
is an interrelated collection of methods for carrying out the various
activities in software development. It may mandate some collection of
views to document during design.
Many of the UML diagramming methods (such as class/association, deployment,
activity, and interaction diagrams) define views for a variety of
object-oriented development methodologies.
Research History
This section summarizes my work from roughly 1971 to 1998. From 1999 to
to 2014 I was
on disability leave, and returned to work slowly from 2014 to 2018; I have
been full-time since then.
Thus the cited work is quite old.
My main research goal over my career
has been to understand and improve software development
processes, primarily at the level of modules, subsystems, and their
interrelationships. The two main thrusts of this work were
developing flexible means of representing and reasoning about designs,
and designing tools for managing complex software construction
processes.
In studying designs, I generally used the
Theory-Model Paradigm
to formalize design rules for a variety of software design methods.
This approach defines mathematical abstractions of
design artifacts, their properties, and relationships;
designs an information model for the design database;
and encodes design rules in a machine-processable form.
We have studied Jackson System Design, Buhr's Architectural Design, and
modular imperative languages.
Ph.D. student Xiaobing Zhang[2]
investigated
several variations of object-oriented analysis and design, including
Shlaer-Mellor, and Rumbaugh's OMT (a precuror to UML); she developed a formal
comparison between the two, based on homomorphisms between designs done
according to each method..
She developed a
common basic theory, then defined additional
axioms and properties for each method, thus giving a precise
characterization of their similarities and differences.
A former M.Sc. student, Xiaobao Yu,[3]
investigated incorporating design metrics
into the Theory-Model framework; Joseph Abounader extended this work to
object-oriented design metrics.
I have previously done work on trace specifications.
Ph.D. student Ayaz Isazadeh[1]
developed ViewCharts, a variant of Statecharts for
formal description of behavioural views.
In the software construction area,
I studyied how to control the
"software manufacture"
process of generating software products from independently-developed
subsystems.
Many tools contain particular combinations of special-case
techniques, which we aim to generalize and separate. Thus for example
tools like
make
manage a single
"depends"
relation;
a more flexible approach is
their own relationships among software components
Other issues for study are managing caches of generated
objects; abstractions for composite manufacture steps; and tool
descriptions.
Some of the complexities of software manufacture arise from managing
program component generators (PCGs): tools that generate portions of the
system from specialized languages. I worked on a variety of PCGs in the
past, and might return to this work in the future in the context of tools related to software architecture.
- Isazadeh, Ayaz.
Behavioral Views for Software Requirements Engineering
Ph.D. dissertation, Queen's University Department of Computing and Information Science,
September 1996.
- Zhang, Xiaobing. A Rigorous Approach to the Comparison of
Representational Aspects of Object-Oriented Analysis and Design
Methods,
Ph.D. dissertation, Queen's University Department of Computing and Information Science,
August 1997.
- Yu, Xiaobao.
Incorporating Metrics into Software Design
M.Sc. dissertation, Queen's University Department of Computing and Information Science,
August 1994.