This bibliography lists works by the members of the Software Engineering
Institute (SEI) Engineering Techniques Program, that are not published or
available from the SEI. The bibliography is organized by type of work (i.e.,
journal or magazine article, book, or proceedings). Indices are provided by
author and targeted audience.
Introduction
This bibliography lists work by members of the Engineering Techniques Program
that were published during their employment at the SEI.
The organization of the bibliography is by type of work (journal or magazine
article, books in whole or in part, and work in proceedings). Within each of
these categories, the organization is alphabetical by primary author in reverse
chronological order (the most recent appearing first). Each entry contains the
name(s) of the author(s), title of the work, targeted audience, and publication
information. Where available, abstracts are also included.
The primary focus of the Engineering Techniques Program is tools and methods
that operate on and within the software process to control and improve it. Some
of the subjects that are addressed in the works listed are:
- CASE tools, adoption, and integration
- code inspection
- computing research and direction
- configuration management
- domain analysis
- domain-specific architectures
- integrated software process environments (IPSEs)
- interactive video, multi-media, and virtual reality
- model-based engineering
- programming languages
- reuse
- software architectures
- software engineering as a discipline
- software engineering education, and
- software engineering environment integration.
The target audiences were determined using the following definitions:
Manager: Senior managers responsible for leading software organizations
to build higher quality software and to do it more productively.
Practitioner: Software professionals responsible for producing and
maintaining better software.
Educator: Those educators responsible for improving software engineering
education and training.
To obtain copies of the listed publications, contact your local libraries or
the sources cited.
Journals and Magazine Articles
[Barbacci85] Barbacci, M.; Habermann, A. N.; Shaw, M. "The Software
Engineering Institute: Bridging Practice and Potential." IEEE Software
2, 6 (November 1985): 4-21.
Audience: Manager
Abstract: The state of the practice in software engineering has not
evolved fast enough to keep pace with the rising demand for increasingly
larger, more sophisticated software systems and components. Today, software
contractors are faced with numerous difficulties that prevent them from
fulfilling the software needs of the market--difficulties that result in
excessive costs for systems with reliability that is, in too many cases,
questionable at best.
[Brown et al 92b] Brown, A.W.; McDermid, J.A. "Learning from IPSEs
Mistakes." IEEE Software 9, 2 (March 1992): 23-28.
Audience: Practitioner
Abstract: A discussion of some of the issues of tool integration in an
integrated project support environment (IPSE). A conceptual framework is
proposed for analyzing and measuring aspects of integration in an IPSE.
[Brown et al 92d] Brown, A.W.; Penedo, M.H. "An Annotated Bibliography on
Software Engineering Environment Integration." ACM Software Engineering
Notes 17, 3 (July 1992): 47-55.
Audience: Manager, Practitioner
Abstract: A detailed bibliography on tool integration in a software
engineering environment. Contains summaries of over 20 pages that are important
in to this topic area.
[Christel92] Christel, M.G. "Virtual Reality on a PC." Instruction Delivery
Systems 6, 3 (July/August 1992): 6-9.
Audience: Practitioner, Educator
Abstract: A digital video course on software technical reviews
illustrates how virtual reality can be implemented today on a personal computer
platform. The advantages of using a virtual environment for teaching code
inspections are discussed, as are the implications of making that environment
increasingly realistic.
[Dart89d] Dart, S.A. "Tool Configuration Assistant." ACM SIGSOFT Software
Engineering Notes 17, 7 (November 1989): 110-113.
Audience: Practitioner
[Huff92] Huff, C. C. "Elements of a Realistic CASE Tool Adoption Budget."
Communications of the ACM 35, 4 (April 1992): 45-54.
Audience: Manager, Practitioner
Abstract: All too often would-be CASE implementors find that the costs
of adopting a new CASE tool are much higher than they originally anticipated.
This is because implementors often focus only on the direct CASE tool purchase
cost, overlooking significant other costs - not only in dollars, but in terms
of people and time. This article attempts to address the very practical issue
of providing a complete basis for a realistic cost estimate for the adoption of
a CASE. A summary of this article is organized into two tables: primary cost
items and primary cost drivers. Many subjects discussed in this article lead to
other significant CASE-related topics. These are addressed superficially, but
pointers are supplied to more detailed information.
[Kaiser88a] Kaiser, G.E.; Feiler, P. H. "Intelligent Assistance for Software
Development and Maintenance." IEEE Software 5, 3 (May 1988):
40-49.
Audience: Practitioner
[Kaiser88b] Kaiser, G.E.; Barghouti, N.S.; Feiler, P. H.; Schwanke, R. W.
"Database Support for Knowledge-Based Engineering Environments." IEEE Expert
3, 2 (May 1988): 18-23, 26-32.
Audience: Practitioner
[Klein89b] Klein, D.V. "Comparison of RISC CPUs." MIPS - The Magazine of
Intelligent Personal Systems 1, 7 (July 1989): 46-50.
Audience: Practitioner
[Peterson91] Peterson, A. S. "Coming to Terms with Software Reuse Terminology:
A Model-Based Approach." ACM SIGSOFT Software Engineering Notes 16, 2
(April 1991): 45-51.
Audience: Manager, Practitioner
Abstract: This article attempts to standardize the use of many terms
used in the software reuse literature. Three terms of particular interest -
taxonomy, software reuse, and domain analysis - and some problems with their
usage are discussed. The specific problems with these terms are generalized and
several solutions are given, the most important being the introduction of the
concept of using reuse process models to provide both context and an overall
view of the potential areas of discourse in reuse. Several new terms are
proposed for future use; definitions of existing terms that are meaningful in
the context of software reuse are also included.
[Schaefer92] Schaefer, W.; Shaw, M. "Design Methods and Software Processes."
ACM Press Software Engineering Notes 17, 1 (January 1992): 44-51.
Audience: Practitioner, Educator
[Shaw86b] Shaw, M. "Beyond Programming-in-the-Large: The Next Challenges for
Software Engineering." IFIP Newsletter 3, 2 (June 1986): 1, 5.
Audience: Manager, Practitioner, Educator
Abstract: As society's dependence on computing broadens, software
engineering is being called upon to address new problems that raise new
technical and nontechnical concerns. Aspirations and expectations for the
application of computers appear to be unbounded, but present software
development and support techniques will not be adequate to build computational
systems that satisfy our expectations, even at very high cost. Each
order-of-magnitude increase in the scale of the problems being solved leads to
a new set of critical problems that require essentially new solutions. The next
challenges for software engineering will deal with software as one of many
elements in complex systems, which we call program-as-component, and with the
role of software as an active participant in the software development process,
which we call program-as-deputy.
[Shaw87e] Shaw, M. "Poza Programowanie Wielkoskalowe - Kolejne Wyzwania Dla
Inzynierii Oprogramowania" (Polish translation of "Beyond
Programming-in-the-Large: The Next Challenges for Software
Engineering"). Informatyka 22, 7 and 8 (July and August
1987): 1-4 and 8-11.
Audience: Manager, Practitioner, Educator
Abstract: See Shaw86b.
[Shaw88a] Shaw, M. "The Impact of Abstraction Concerns on Modern Programming
Languages." Published by Iwanami Shoten, Publishers of Tokyo, Japan.
Japanese translation and reprint from IEEE Software 5, 7 (August 1988):
47-62.
Audience: Practitioner, Educator
Abstract: See Shaw87b
[Shaw89b] Shaw, M. "Remembrances of a Graduate Student." Annals of the
History of Computing, Anecdotes Department 11, 2 (1989): 141-143.
Audience: Educator
Abstract: Just as some years are memorable for their wines, some years
are memorable for their research. In software, 1968 was such a year. It was the
year the software research community really started thinking systematically,
even formally, about software structures.
[Shaw89e] Shaw, M. "Larger Scale Systems Require Higher-Level Abstractions."
(Revised version of "Toward Higher-Level Abstractions for Software Systems)"
Software Engineering Notes 14, 3 (May 1989): 143-146.
Audience: Practitioner, Educator
Abstract: See Shaw89d.
[Shaw90d] Shaw, M. "Toward Higher-Level Abstractions for Software Systems."
Data and Knowledge Engineering 5, 2 (1990): 119-128.
Audience: Practitioner, Educator
Abstract: See Shaw86b.
[Shaw90f] Shaw, M. "Seeking a Foundation for Software Engineering."
Interview. IEEE Software 7, 2 (March 1990): 102-103.
Audience: Manager, Practitioner, Educator
Abstract: Can history provide at least a rough guide to the nature of
the problems that face software engineering? An engineering discipline emerges
from craftsmanship in two stages, Shaw has found. First, systematic production
techniques and management methods turn craftsmanship into routine commercial
production, as shown in the accompanying table. Later, the problems of
production practice yield professional engineering practice. In an interview
with Contributing Editor Ware Myers, Shaw described this process as it relates
to software.
[Shaw90h] Shaw, M. "Prospects for an Engineering Discipline." IEEE
Software 7, 6 (November 1990): 15-24.
Audience: Manager, Practitioner, Educator
Abstract: Software engineering is not yet a true engineering discipline,
but it has the potential to become one. Older engineering fields offer glimpses
of the character software engineering might have. The term "software
engineering" was coined in 1968 as a statement of aspiration-a sort of rallying
cry. That year NATO convened a workshop by that name to assess the state and
prospects of software production. The resulting practice, however, differs
significantly from the practice of older forms of engineering.
This paper examines the usual practice of engineering and the way it has
evolved in other disciplines, considering two examples in depth. This provides
a historical context for assessing the current practice of software production
and setting out an agenda for attaining an engineering practice.
[Shaw91a] Shaw, M. "Informatics for a New Century: Computing Education for the
1990s and Beyond." Education and Computing 7, 1-2 (1991): 9-17.
Audience: Educator
Abstract: Information technology and computer science have not only
reshaped computation, communication, and commerce; they have expanded the basic
models and paradigms of many disciplines. Informatics education has obligations
to all the communities that rely on information technology, not just computing
professionals. Serving this extended audience well requires changes in the
content and presentation of computing curricula. This paper sketches the coming
needs for information processing and analyzes the populations that will require
informatics education. It considers curriculum requirements through two
examples, one outside the traditional boundary of computer science and one
inside.
[Shaw92a] Shaw, M. "We Can Improve the Way We Teach CS Students." Letter to the
Editor. Computing Research News 4, 1 (January 1992): 2-3.
Audience: Educator
Abstract: Hurrah for William A. Wulf's statement in opposition to
separate undergraduate software engineering programs.
[Smith90] Smith, D.; Oman, P. "Software Tools in Context." IEEE
Software 7, 5 (May 1990): 14-20.
Audience: Manager, Practitioner
Abstract: This article discusses the background for environments and
tools. It overviews the major types of tools and the place of tools within
software development. It discusses some of the issues in the use of tools, such
as integration and scalability, and the implications of tools for software
development.
[Stevens92b] Stevens, S. M. "Time Traveler." Pixel: The Magazine of
Visualization 3, 3 (March/April 1992): 34-39.
Audience: Practitioner
Abstract: This article discusses holographic and optical techniques to
create real (in the optical sense) three dimensional interactive images.
Interactive design criteria and human factors based visual fidelity issues are
addressed.
[Stevens89] Stevens, S. M. "Intelligent Interactive Video Simulation of a Code
Inspection." Communications of the ACM 32, 7 (July 1989): 832-843.
(Translated into Japanese and published in Nikkei Artificial Intelligence
1, 20H, 1990.)
Audience: Practitioner, Educator
Abstract: The need for technological solutions to learning in the
software engineering field is increasing. The Advanced Learning Technologies
Project (ALT) has developed a highly interactive, high-fidelity simulation of
group process communication. The first course demonstrating these techniques is
on the formal technical review known as code inspection. This article discusses
technical aspects of ALT's system design.
Books in Part or in Whole
[Brookes et al 85] Brookes, S.D.; Donner, M.; Driscoll, J.; Mauldin, M.;
Pausch, R.; Scherlis, W.L.; Shaw, M.; Spector, A. "Final Report of Curriculum
Design Group: Stephen D. Brookes, Marc Donner, James Driscoll, Michael Mauldin,
Randy Pausch, William L. Scherlis, Mary Shaw, and Alfred Spector," Mary
Shaw, editor. The Carnegie-Mellon Curriculum for Undergraduate Computer
Science. New York: Springer-Verlag, 1985.
Audience: Educator
Abstract: Reflecting the structure and emerging needs of modern computer
science, this book presents a comprehensive redesign of the traditional
curriculum emphasizing: the integration of fundamental conceptual material with
the best of current practical applications; the identification and
reorganization of topics based on common themes into single new courses; and
the specification of requirements for computer support needed to illustrate
important points made in the courses described.
The Carnegie-Mellon curriculum design, developed by eight leading computer
scientists, is formulated to last for the next decade and to play a leadership
role in computer science education. Specifically, the curriculum includes: a
detailed descriptions of 30 new or revised computer science courses;
requirements for a computer science major consisting of a small core of courses
that allow for a variety of specializations within the major; courses offered
by other departments that present material relevant to computer science.
[Brown et al 92a] Brown, A.W.; Earl, A.N.; McDermid, J.A. Software
Engineering Environments: Automated Support for Software Engineering.
Maidenhead, England: McGraw-Hill, 1992.
Audience: Practitioner
Abstract: Over 350 pages describing requirements for a software
engineering environment (SEE), an analysis of a number of existing SEEs, and an
examination of some key issues in this field. The book makes use of the
European Computer Manufacturers (ECMA) reference model for frameworks of a SEE
as a basis for comparing HP SoftBench, ECMA PCTE, DEC's CIS, and IBM's
AD/Cycle.
[Cohen90a] Cohen, S.G.; Palmer, C. Engineering and Application of Reusable
Software Resources. Washington, DC: American Institute of Aeronautics and
Astronautics, 1990.
Audience: Practitioner
Abstract: The potential benefits of software reuse are well-known; thus
the question arises "Why isn't software reuse more widely practiced?" A
misconception about what is required to encourage effective levels of reuse has
hindered reuse efforts in the past. It is not reasonable to expect high levels
of reuse to result from merely cataloging existing code and making it
available. Software must be engineered for reuse (either initially or during
some type of retry-fitting process), and new applications must plan for reuse.
There are three approaches to software reuse that cover the spectrum from
short-term to long-term: adaptive, parameterized, and engineered. Tool support
can facilitate both the introduction and practice of software reuse.
[Dart91a] Dart, S.A.; Druffel, L. "Software Development Environments,"
203-227 American Institute of Aeronautics and Aerospace (AIAA), Progress
Series on Aerospace Software Engineering, Washington, DC: AIAA, 1991.
Audience: Manager, Practitioner
[Shaw87a] Shaw, M. "Education for the Future of Software Engineering,"
344-357. Software Engineering Education: The Educational Needs of the
Software Community. New York: Springer-Verlag, 1987.
Audience: Educator
Abstract: The discipline of software engineering is developing rapidly.
Its practitioners must deal with an evolving collection of problems and with
new technologies for dealing with those problems. Software engineering
education must anticipate new problems and technologies, providing education in
the enduring principles of the field in the context of the best current
practice. Since changes in the discipline cannot be completely anticipated,
software engineers must be able to assume responsibility for their own
continuing professional development. This paper describes significant changes
now taking place in the field of software engineering and proposes some goals
and objectives for the professional education of software engineers.
[Shaw87b] Shaw, M. "The Impact of Abstraction Concerns on Modern Programming
Languages." Reprinted in IEEE Tutorial. Edited by Gerald E. Peterson.
Object-Oriented Computing, Volume II :Implementations. Silver Spring, MD:
Computer Society Press of the IEEE, 1987.
Audience: Practitioner, Educator
Abstract: The major issues of modern software are its size and
complexity, and its major problems involve finding effective techniques and
tools for organization and maintenance. This paper traces the important ideas
of modern programming languages to their roots in the problems and languages of
the past decade and shows how these modern languages respond to contemporary
problems in software development. Modern programming's key concept for
controlling complexity is abstraction--that is, selective emphasis on
detail; new developments in programming languages provide ways to support and
exploit abstraction techniques.
[Shaw87c] Shaw, M. "The Impact of Abstraction Concerns on Modern Programming
Languages." (before revision titled: "The Impact of Abstraction Concerns on
Modern Programming Languages"), 232-247. Edited by Marvin V. Zelkowitz.
Reprinted in Selected Reprints in Software, 3rd edition, Washington, DC:
IEEE Computer Society Press, 1987.
Audience: Practitioner, Educator
Abstract: See Shaw87b
[Shaw89a] Shaw, M. "Maybe Your Next Programming Language Shouldn't Be a
Programming Language," 75-82. Scaling Up: A Research Agenda for Software
Engineering. Washington, DC: National Academy Press, 1989.
Audience: Practitioner, Educator
Abstract: Software needs now strain the design limits of traditional
programming languages. Modern application needs are not satisfied by
traditional programming languages, which evolved in response to systems
programming needs. Current programming language research focuses on incremental
improvements, not on major changes to the nature of software development. But
major breakthroughs are needed in two areas:
1. Non-programmers dominate modern computer use. Low computing costs have
enabled a wide spectrum of application, and end users who are not programmers
need to control their own computations. Order-of-magnitude increases in service
require substantial shifts of technology. Computer users are interested in
results, not in programming; software must reflect this.
2. Requirements for large complex software systems exceed our production
ability. Growth of demand is greater than growth in capacity, and system
requirements exceed the scope of conventional languages. Software lacks a true
engineering base. Language concepts can support a design level above the
algorithm/data structure level and contribute to an engineering discipline.
Programming language designers must look beyond the traditional systems
programming domain and tackle problems of special-purpose software and
system-level software design.
[Shaw90a] Shaw, M. "The Impact of Abstraction Concerns on Modern Programming
Languages," 139-155. Reprinted in IEEE Reprint Collection. Edited by Paul W.
Oman and Ted G. Lewis. Milestones in Software Evolution. Los Alamitos,
CA: IEEE Computer Society Press, 1990.
Audience: Practitioner, Educator
Abstract: See Shaw87b
[Shaw90b] Shaw, M. Edited transcript of presentation "Workshop on Complex
Software Systems," 50-52. Strategic Directions in Computing Research; Report
Based on a Conference October 11-13, 1989. New York: Association for
Computing Machinery and the Computing Research Association/ ACM Press,
1990.
Audience: Manager, Practitioner
Abstract: This report summarizes a workshop held last February under the
sponsorship of the Computer Science and Technology Board of the National
Research Council. The Computer Science and Technology Board set out to examine
the problems of producing large complex software systems. The problems most
frequently cited are those of cost overruns, schedule overruns, and software
that fails to perform either to its requirement or to its intended function.
But as we organized the workshop, we broadened our definition of the problem to
include the opportunity costs of software that could not be created because
software production capabilities were not up to the task of its creation.
[Stevens92a] Stevens, S. M. "Next Generation Network and Operating System
Requirements for Continuous Time Media." Network and Operating System
Support for Digital Audio and Video, Ralph Herrtwich, Editor.
Springer-Verlag:New York, 1992.
Audience: Practitioner, Educator
Abstract: Accessing massive multimedia databases will require multiple
representations of those databases. Initial access may be through visual
representations of the database. However, traversing numerous levels of
tree-like structures will quickly find the user lost. Simple database queries
may overwhelm users with information.
To overcome these problems, the Advanced Learning Technologies Project at
Carnegie Mellon University's Software Engineering Institute embeds in
multimedia objects the knowledge of the content of those objects over several
dimensions. With this model, variable granularity knowledge about the domain,
content, image structure, and the appropriate use of content and image is
embedded with the object. In ALT, a rule base acts as a visual director,
making a judgment on what image to display and how to manipulate it. This
provides the ability to present disparate text, audio, images, and video
intelligently in response to users' needs. This chapter discusses these
techniques and provides examples of objective and subjective knowledge types
for multimedia objects.
Work in Proceedings
[Brown et al 92c] Brown, A.W.; Feiler, P.H.; Wallnau, K.C.
"Understanding Integration in a Software Development Environment."
Proceedings of the 2nd International Conference on Systems Integration.
Morristown, NJ: IEEE Computer Society, June 1992.
Audience: Practitioner
[Brown et al 92e] Brown, A.W.; Feiler, P.H.; Wallnau, K.C. "Past and Future
Models of CASE Integration." Proceedings of the 5th International Workshop
on Computer-Aided Software Engineering (CASE'92). Montreal, Canada: IEEE
Computer Society, July 1992.
Audience: Practitioner
[Christel90] Christel, M.G. "A Digital Video Interactive Course on Code
Inspections." Proceedings of the Eighth Annual Conference on Technology and
Innovations Training and Education. Colorado Springs, CO: American Defense
Preparedness Association, March 1990.
Audience: Practitioner, Educator
Abstract: The Software Engineering Institute is creating one of the
first training applications using Intel's Digital Video Interactive (DVI)
technology. This application is a course on code inspections, a formal
technical review process noted for its importance to software quality by
organizations such as IBM and AT&T Bell Laboratories. In addition to
incorporating meny new design techniques made possible by digital video, the
course also includes a hypertext tool, menu-based natural language interface,
and an expert system. The design and development of this course are discussed,
with primary focus on those aspects of the course taht are uniquely suited to
the DVI medium. New interactive digital video technologies, such as DVI, CD-I,
and hybrid analog and digital videodiscs, are just beginning to become
commercially available. This paper communicates some lessons learned in the
development of one course that future interactive digital video developers may
find useful.
[Cohen 90b] Cohen, S.G. "Locating Resources For Reuse-Based Development."
Reuse in Practice Workshop Summary. Reuse in Practice Workshop Summary,
IDA Document D-754. Edited by James Baldo Jr. Alexandria, VA: Institute for
Defense Analyses, July 11-13, 1989.
Audience: Practitioner
Abstract: Locating resources in a collection of reusable software
requires integration of management and retrieval methods. The maintainer of the
collection will need different operations and modes of access from an
application developer using the collection. Users of the collection will want
access to it at different phases of the life cycle. Finally, users will have
expertise in different application domains, but may desire access to the same
information.
This paper briefly examines methods for managing and locating reusable
resources. These methods include both attribute- and facet-based information
retrieval. The paper also introduces a new method to support search and
retrieval that captures information specific to an end-user application (both
requirements and design) and matches that information to resources in the
library. Integration of these approaches is essential for successful
reuse-based software development.
[Cohen 90c] Cohen, S.G. "Process and Products for Software Reuse in Ada."
TRI-Ada `90 Proceedings. Baltimore, MD: ACM Publications, December 3-7,
1990.
Audience: Practitioner, Manager
Abstract: The adoption of reuse into software development will include
the definition of new products and processes. On the product side, we must
identify the form of deliverables that can support reuse; on the process side,
we must identify the approach needed to develop and apply those products. This
paper examines the processes and products that can lead to successful reuse.
The first process, one widely used today, is to adapt an existing system to
meet a new set of requirements. The second, a relatively new practice,
identifies families of programs, providing support for parameterization of
commonality and customization for unique requirements. The third process is a
reuse-based engineering approach to discover and exploit commonality in
software systems as the basis for software development.
[Dart89a] Dart, S.A. "Software Development Environments from a User's
Perspective." Fifth Annual National Joint Conference on Quality and
Productivity. Alexandria, Virginia: PUBLISHER, February 1989.
Audience: Practitioner
[Dart89b] Dart, S.A. "Tool Configuration and Installation Assistant."
Proceedings of the USENIX Workshop on Software Management. New Orleans,
LA: USENIX Association, April 1989.
Audience: Practitioner
[Dart89c] Dart, S.A.; Feiler, P.H. "Configuration Management in CASE Tools and
Environments." Third International Workshop on Computer-Aided Software
Engineering (CASE 89). London, England: IEEE Computer Society, July 1989.
Audience: Manager, Practitioner
[Dart89d] Dart, S.A. "Tool Configuration Assistant." Second International
Software Configuration Management Workshop. Princeton, NJ: ACM Press,
October 24-27, 1989.
Audience: Practitioner
[Dart91b] Dart, S.A.; Feiler, P.H. "State of the Art in Environment Support
for Configuration Management." Tutorial Notes at the 13th International
Conference on Software Engineering (ICSE). Austin, Texas: IEEE Computer
Society Press, May 1991.
Audience: Manager, Practitioner
[Dart91c] Dart, S.A. "Concepts in Configuration Management Systems."
Third International Software Configuration Management Workshop.
Trondheim, Norway: ACM Press, June 12-14, 1991.
Audience: Manager, Practitioner
[Dart91d] Dart, S.A. "Configuration Management in Computer Aided Design
Systems." Third International Software Configuration Management
Workshop. Trondheim, Norway: ACM Press, June 12-14, 1991.
Audience: Manager, Practitioner
[Dart92a] Dart, S.A. "Parallels in Computer-Aided Design Framework and Software
Development Environment Efforts." Proceedings of the Third International
IFIP Workshop on Electronic Design Automation Frameworks. Paderborn,
Germany: North-Holland, March 1992.
Audience: Manager, Practitioner
[Dart92b] Dart, S.A. "The Past, Present and Future of Configuration
Management." To be published in the Proceedings of the IFIP World Congress.
Madrid, Spain: North-Holland, September 1992.
Audience: Practitioner
Fifth International Workshop on Software
Specification and Design. Pittsburgh, PA: IEEE Computer Society Press, May
1989.
Audience: Practitioner
Abstract: We have been observing the design methods of software
practitioners and engineers in other disciplines and have noticed differences.
The most notable difference is the lack of models available to the software
practitioner. We have reached several conclusions as a result of our
observations and work:
- What is currently being called software engineering is not really engineering
in the traditional sense
- There are important lessons about the design process to be learned from
traditional engineering disciplines
- The application of one of the key concepts in engineering, the process of
modeling, has the potential for high payoff.
This report describes our experience and successes with modeling.
[D'Ippolito89b] D'Ippolito, R.S. "Using Models in Software Engineering."
TRI-Ada `89. Pittsburgh, PA: Association for Computer Machinery, October
1989.
Audience: Practitioner
Abstract: The SEI has participated in several projects in which the
focus was on helping contractors make use of good software engineering methods
and Ada. During this participation, we have learned several important lessons
about the development of software for both large-scale and embedded systems. We
have noticed that after a long period of time where the focus on productivity
generated searches for new methodologies, tools, and ways to write reusable
software, the emphasis has shifted to quality, in recognition of the fact that
the new methods and tools were not adequate to address the problems occurring
at the design level. We propose that the industry instead concentrate the
search for the old methods still in use in the other branches of
engineering, and apply those methods to the software problem.
[D'Ippolito90] D'Ippolito, R.S. "The Context of Model-Based Software
Engineering." Proceedings of the DARPA Workshop on Domain-Specific Software
Architectures. Hidden Valley, PA: DARPA/ISTO, July 1990.
Audience: Practitioner
Abstract: The result of engineering practice is an engineered product.
The behavior of an engineered product and the resources necessary to produce
and operate it are predictable from the design. The prediction is possible
because both the architectural elements assembled in the design and the
practice elements assembled in the build plan are technology packaged as
models.
[D'Ippolito92a] D'Ippolito, R.S.; Lee, K.J. "Modeling Software Systems by
Domain." Proceedings of the AAAI-92 Workshop on Automating Software
Design. San Jose, CA: AAAI, July 1992.
Audience: Practitioner
Abstract: The software architectures engineering effort at the SEI has
developed engineering modeling techniques that both reduce the complexity of
software for domain-specific computer systems and result in systems that are
easier to build and maintain. These techniques allow maximum freedom for system
developers to apply their domain expertise to software.
We have applied these techniques to several types of applications, including
training simulators operating in real time, engineering simulators operating in
non-real time, and real-time embedded computer systems. Our modeling techniques
result in software that mirrors both the complexity of the application and the
domain knowledge requirements. We submit that the proper measure of software
complexity reflects neither the number of software component units nor the code
count, but the locus of and amount of domain knowledge. As a result of using
these techniques, domain knowledge is isolated by fields of engineering
expertise and removed from the concern of the software engineer. In this paper,
we will describe kinds of domain expertise, describe engineering by domains,
and provide relevant examples of software developed for simulator applications
using the techniques.
[D'Ippolito92b] D'Ippolito, R.S.; Lee, K.J. "The Context of Engineering
Software." To be published in Proceedings of the 6th Conference on Software
Engineering Education. San Diego, CA: Springer-Verlag, October 1992.
Audience: Practitioner
Abstract: This paper describes a model for the engineering of products
and some implications for the model. The concepts are from typical engineering
disciplines. Supporting material can be found in many standard engineering
texts.
The engineering of software-dependent products was the focus of the software
architectures engineering effort at the SEI.
[Feiler88] Feiler, P.H.; Smeaton, R. "Managing Development of Very Large
Systems: Implications on Integrated Environments." Proceedings of the
International Workshop on Software Version and Configuration Control.
Grassau, West Germany: Teubner Verlat, January 1988.
Audience: Practitioner
[Feiler90a] Feiler, P.H. "Software Configuration Management: Advances in
Software Development Environments." Tutorial. 12th International Conference
on Software Engineering (ICSE 12). Nice, France: IEEE Computer Society
Press, March 1990.
Audience: Practitioner
[Feiler90b] Feiler, P.H. "Software Process Support in Software Development
Environments." Sixth International Software Process Workshop.
Pittsburgh, PA: IEEE Computer Society Press, October 1990.
Audience: Manager, Practitioner
[Garlan92] Garlan, D.; Shaw, M.; Okasaki, C.; Scott, C.M.; Swonger, R.F.
"Experience with a Course on Architectures for Software Systems." To appear in
the Proceedings of the Sixth SEI Conference on Software Engineering
Education. San Diego, CA: Springer-Verlag, October 5-7, 1992.
Audience: Educator
Abstract: As software systems grow in size and complexity their design
problem extends beyond algorithms and data structures to issues of system
design. This area receives little or no treatment in existing computer science
curricula. Although courses about specific systems are usually available, there
is no systematic treatment of the organizations used to assemble components
into systems. These issues--the software architecture level of software
design--are the subject of a new course that we taught for the first time in
Spring 1992. This paper describes the motivation for the course, the content
and structure of the current version, and our plans for improving the next
version.
[Hardy90] Hardy, E.J.; Klein, D.V. "The Serpent UIMS." Proceedings of the
European Unix User's Group. Nice, France: EUUG, October 1990.
Audience: Practitioner
[Kaiser87a] Kaiser, G.E.; Feiler, P.H. "Intelligent Assistance Without
Artificial Intelligence." Proceedings of the Thirty-Second IEEE Computer
Society International Conference (COMPCON). San Francisco, CA: IEEE
Computer Society Press, February 1987.
Audience: Practitioner
[Kaiser87b] Kaiser, G.E.; Feiler, P.H. "An Architecture for Intelligent
Assistance in Software Development." Proceedings of 9th International
Conference on Software Engineering. Monterey, CA: IEEE Computer Society
Press, March 1987.
Audience: Practitioner
[Klein87] Klein, D.V. "UBOAT - A Unix Based On-Line Aid to Tutorials."
Proceedings of the European Unix User's Group. Dublin, Ireland: EUUG,
September 1987.
Audience: Practitioner
[Klein89a] Klein, D.V. "A Comparison of Compiler Utilization of Instruction
Set Architectures." Proceedings of the Winter 1989 Usenix Conference.
San Diego, CA: USENIX Association, January 1989.
Audience: Practitioner
[Klein89c] Klein, D.V. "RISC vs. CISC: From the Perspective of
Compiler/Instruction Set Interaction." Proceedings of the European Unix
User's Group. Vienna, Austria: EUUG, September 1989.
Audience: Practitioner
[Klein90a] Klein, D.V. "Foiling the Cracker: A Survey of, and Improvements to
Unix Password Security." Proceedings of the United Kingdom Unix User's
Group. London, England: UKUUG, July 1990.
Audience: Practitioner
[Klein90b] Klein, D.V. "Foiling the Cracker; A Survey of, and Improvements to
Unix Password Security." P roceedings of the USENIX Security Workshop.
Portland, Oregon: USENIX Association, Summer 1990.
Audience: Practitioner
[Klein91] Klein, D.V. "Foiling the Cracker: A Survey of, and Improvements to
Unix Password Security." Proceedings of the 14th DoE Computer Security
Group. Concord, CA: DoE, May 1991.
Audience: Practitioner
[Lee88a] Lee, K.J.; Plinta, C.P.; Rissman, M.S. "On Specifications and
Paradigms." AdaJUG. Phoenix, AZ: AdaJUG, March 1988.
Audience: Practitioner
[Lee88b] Lee, K.J., "Domain-Specific Software Architectures for C3I
Systems." AFCEA Europe Symposium. Brussels, Belgium: AFECA, October
1988.
Audience: Practitioner
[Lee89a] Lee, K.J.; Rissman, M.S. "Application of Domain-Specific Software
Architectures to Flight Simulator Systems." Summer Computer Simulator
Conference. Austin, TX: Society for Computer Simulation International, July
1989.
Audience: Practitioner
[Lee89b] Lee, K.J.; Rissman, M.S. "Application of Domain-Specific Software
Architectures to Flight Simulator Systems and Training Devices." Reuse in
Practice Workshop Summary, IDA Document D-754. Edited by James Baldo Jr.
Alexandria, VA: Institute for Defense Analyses, July 11-13, 1989.
Audience: Practitioner
[Lee90] Lee, K.J. "Engineering and Software Architectures." Proceedings of
the DARPA Workshop on Domain-Specific Software Architectures. Hidden
Valley, PA: DARPA/ISTO, July 1990.
Audience: Practitioner
Abstract: In general, the software systems planned for the next five to
ten years are expected to be far larger, or far more complex, than anything
successfully built to date. When we review the success rate for current
large-scale systems, we conclude that the traditional ways of building such
systems are unlikely to deliver well-engineered systems of the projected
scale.
Our experience helping to build systems in several important areas (flight
simulators and training devices, command and control systems, MIS systems,
embedded missile seeker systems) has convinced us that unless software
development becomes more oriented to traditional engineering practice, most of
the major problems related to software development will remain. Software
engineering has much to gain by emulating the practices of systems engineering
where there has been a way of designing the systems while maintaining a clear
separation of domain expertise needed to produce each system component.
[Lee92] Lee, K.J.; Cohen, S.G.; Plinta, C.P. "An Engineering Basis for
Software." To be published in Proceedings of Tri-Ada '92. Orlando, FL:
Association for Computing Machinery Press, November 1992.
Audience: Practitioner
[Norman90] Norman, R.J.; Van Ghent, R.; Zarrella, P.F. "CASE Tool Integration
and Standardization." Advance Working Papers of the Fourth International
Workshop on Computer-Aided Software Engineering. Irvine, CA: IEEE Computer
Society Press, December 5-8, 1990.
Audience: Practitioner
[Peterson 90] Peterson, A.S. "Coming to Terms with Terminology for Software
Reuse." Reuse in Practice Workshop Summary. Reuse in Practice
Workshop Summary, IDA Document D-754. Edited by James Baldo Jr. Alexandria,
VA: Institute for Defense Analyses, July 11-13, 1989.
Audience: Practitioner
Abstract: There are problems with the use of many of the terms used in
software engineering when applied specifically to reuse. Three terms of
particular interest, taxonomy, software reuse, and domain analysis and some
problems with their usage are discussed. The specific problems with these terms
are generalized and several solutions are given, the most important being the
introduction of the concept of a reuse process model to provide context and an
overall view of the potential areas of discourse in reuse. Several new terms
are proposed for future use as well as definitions of existing terms that are
meaningful in the context of software reuse.
[Plinta89a] Plinta, C.P.; Lee, K.J. "A Model Solution for C3I
Systems." Reuse in Practice Workshop Summary, IDA Document D-754. Edited
by James Baldo Jr. Alexandria, VA: Institute for Defense Analyses, July 11-13,
1989.
Audience: Practitioner
Abstract: This paper briefly describes a specific portion of recent work
performed by the domain-specific software architectures efforts at the SEI-the
development and use of a model solution for message translation and validation
in the C3I domain. Based on this experience and our involvement with
programs in the C3I domain, future considerations are described.
These consideration involve identifying potential models within a domain and
making recommendations for developing and documenting model solutions that will
enable the models to be reused.
[Plint89b] Plinta, C.P.; Lee, K.J. "A Model Solution for C3I
Systems." Tri-Ada '89. Pittsburgh, PA: Association for Computing
Machinery, November 1989.
Audience: Practitioner
Abstract: See Plinta89a
[Plinta90] Plinta, C.P. "Considerations for Defining Software
Architectures." Proceedings of the DARPA Workshop on Domain-Specific
Software Architectures. Hidden Valley, PA: DARPA/ISTO, July 1990.
Audience: Practitioner
Abstract: This paper provides guidance for identifying candidate
architectures based on the author's experience. Two approaches to finding an
architecture for an application area are discussed: an archeological approach
and a contextual approach.
[Rader92] Rader, J.A. "Pro Rebuttal: The Investment in CASE Tools Is Warranted
by the Productivity Gain of the Development Staff." Proceedings Achieving
Quality Software Debate. San Diego, CA: Society for Software Quality,
January 29-31, 1992.
Audience: Manager, Practitioner
[Schaefer92] Schaefer, W.; Shaw, M. "Design Methods and Software Processes."
Proceedings of the Sixth International Workshop on Software Specification
and Design. Como, Italy: IEEE Computer Society Press, October 25-26,
1991.
Audience: Practitioner, Educator
[Shaw85a] Shaw, M. "An Input-Output Model for Interactive Systems."
Proceedings of the NGI/SION Annual Symposium: Conference on Human Factors in
Computer Systems. Utrecht, Netherlands: Nederlands Genootschap voor
Informatica, Stichting Informatica, April 1-2, 1985.
Audience: Practitioner
Abstract: Interactive user interfaces depend critically on underlying
computing system facilities for input and output. However, most computing
systems still have input-output facilities designed for batch processing. These
facilities are not adequate for interfaces that rely on graphical output,
interactive input, or software constructed with modern methodologies. This
paper details the deficiencies of batch-style input-output for modern
interactive systems, presents a new model for input-output that overcomes these
deficiencies, and suggests software organizations to take advantage of the new
model.
[Shaw85b] Shaw, M. "What Can We Specify? Issues in the Domains of Software
Specifications." Proceedings of the Third International Workshop on Software
Specification and Design. London, UK: IEEE Computer Society Press, August
26-27, 1985.
Audience: Practitioner
Abstract: Formal specifications customarily deal exclusively with the
domain of functional properties of software. However, other domains are of
interest to software designers and developers. Two particular areas of concern
for practical software development are not yet well served by formal
specifications. This paper raises issues about how these areas might be better
served.
[Shaw86a] Shaw, M. "An Input-Output Model for Interactive Systems."
Proceedings of CHI'86: Conference on Human Factors in Computing Systems.
Boston, MA: ACM SIGCHI, April 13-17, 1986.
Audience: Practitioner
Abstract: Interactive user interfaces depend critically on underlying
computing system facilities for input and output. However, most computing
systems still have input-output facilities designed for batch processing. These
facilities are not adequate for interfaces that rely on graphical output,
interactive input, or software constructed with modern methodologies. This
paper details the deficiencies of batch-style input-output for modern
interactive systems, presents a new model for input-output that overcomes these
deficiencies, and suggests software organizations to take advantage of the new
model.
[Shaw86c] Shaw, M. "Beyond Programming-in-the-Large: The Next Challenges for
Software Engineering." Advanced Programming Environments: Proceedings of an
International Workshop. Trondheim, Norway: Springer-Verlag, June16-18,
1986.
Audience: Practitioner, Educator
Abstract: As society's dependence on computing broadens, software
engineering is being called upon to address new problems that raise new
technical and nontechnical concerns. Aspirations and expectations for the
application of computers appear to be unbounded, but present software
development and support techniques will not be adequate to build computational
systems that satisfy our expectations, even at very high cost. Each
order-of-magnitude increase in the scale of the problems being solved leads to
a new set of critical problems that require essentially new solutions. The next
challenges for software engineering will deal with software as one of many
elements in complex systems, which we call program-as-component, and with the
role of software as an active participant in the software development process,
which we call program-as-deputy.
[Shaw87d] Shaw, M. "Purposes and Varieties of Software Reuse." Proceedings
of Tenth Minnowbrook Software Workshop. Blue Mountain Lake, NY: Syracuse
University, July 28-31, 1987.
Audience: Educator
Abstract: In the past year or two, software reuse has gained fresh
attention as a technique for dealing with some of the problems of software
development and maintenance. Unfortunately, much of the acclaim is uncritical,
the subject is more complex that many of its advocates realize, and thirty
years of indifferently successful history is often ignored. As a result,
"software reuse" is in danger of becoming the empty buzzword of the late
1980s.
This paper sharpens the focus on the problems that software reuse might solve
and how it might do so, and proposes some structure for the subject area in
order to bring out some of the (very different) concerns of various projects
and to make objective comparisons of different techniques possible.
[Shaw88b] Shaw, M. "Toward Higher-Level Abstractions for Software Systems."
Proceedings of Tercer Simposio Internacional del Conocimiento y su
Ingerieria. Polytechnical University of Madrid, Spain: Rank Xerox, October
17-21, 1988.
Audience: Practitioner, Educator
Abstract: Software now accounts for most of the cost of computer-based
systems. Over the past thirty years, abstraction techniques such as high-level
programming languages and abstract data types have improved our ability to
develop software. However, the increasing size and complexity of software
systems have introduced new problems that are not solved by the current
techniques. These new problems involve the system-level design of software in
which the important decisions are concerned with the kinds of modules and
subsystems to use and the way these modules and subsystems are organized. This
level of organization, the software architecture level, requires new kinds of
abstractions. These new abstractions will capture essential properties of major
subsystems and the ways they interact.
[Shaw89c] Shaw, M. "Remembrances of a Graduate Student." Proceedings of the
11th International Conference on Software Engineering. Pittsburgh, PA: IEEE
Computer Society Press, May 15-18, 1989.
Audience: Educator
Abstract: Just as some years are memorable for their wines, some years
are memorable for their research. In software, 1968 was such a year. It was the
year the software research community really started thinking systematically,
even formally, about software structures.
[Shaw89d] Shaw, M. "Larger Scale Systems Require Higher-Level Abstractions."
Proceedings of the Fifth International Workshop on Software Specification
and Design. Pittsburgh, PA: IEEE Computer Society Press, May 1989.
Audience: Practitioner, Educator
Abstract: Over the past thirty years, abstraction techniques such as
high-level programming languages and abstract data types have improved our
ability to specify and develop software. However, the increasing size and
complexity of software systems have introduced new problems that are not solved
by the current techniques. These new problems involve the system-level design
of software in which the important decisions are concerned with the kinds of
modules and subsystems to use and the way these modules and subsystems are
organized. This level of organization, the software architecture level,
requires new kinds of abstractions that capture essential properties of major
subsystems and the ways they interact. This paper discusses classical system
organizations, the building blocks from which they are constructed, and a
programming-language approach to specification.
[Shaw90c] Shaw, M. "An Input-Output Model for Interactive Systems." Visual
Programming Environments: Applications and Issues. Los Alamitos, CA: IEEE
Computer Society Press, MONTH, 1990.
Audience: Practitioner, Educator
Abstract: Interactive user interfaces depend critically on underlying
computing system facilities for input and output. However, most computing
systems still have input-output facilities designed for batch processing. These
facilities are not adequate for interfaces that rely on graphical output,
interactive input, or software constructed with modern methodologies. This
paper details the deficiencies of batch-style input-output for modern
interactive systems, presents a new model for input-output that overcomes these
deficiencies, and suggests software organizations to take advantage of the new
model.
[Shaw90e] Shaw, M. "Elements of a Design Language for Software Architecture."
IEEE Design Automation Workshop on System Level Modelling. Scottsdale,
AZ: IEEE, January 21-24, 1990.
Audience: Practitioner, Educator
Abstract: Hardware design is carried out at several different levels,
with different issues, models, and design strategies at each level. The same
situation is true for software, except that the distinctions among levels--or
even the existence of distinct levels--is not as widely recognized. A delivered
software system should consist of a model for each of these levels, each
expressed in some appropriate language.
[Shaw90g] Shaw, M.; Perry, J.M. "The Role of Domain Independence in Promoting
Software Reuse: Architectural Analysis of Systems." Reuse in Practice
Workshop Summary, IDA Document D-754. Edited by James Baldo Jr. Alexandria,
VA: Institute for Defense Analyses, July 11-13, 1989.
Audience: Practitioner
Abstract: Domain analysis for reuse is a topic of much current interest
and study. While there are several variations of domain analysis, they are
usually characterized by their emphasis on application dependencies. This
position paper describes architectural analysis which is a type of analysis for
furthering our understanding of software architectures. It attempts to raise
the abstraction level of design elements and, thereby, emphasizes domain
independence. Although architectural analysis and domain analysis for reuse
have different processes and goals, they are closely related and support one
another. This mutual support is identified and examined.
[Shaw91b] Shaw, M.; Tomayko, J.E. "Models for Undergraduate Project Courses in
Software Engineering." Curriculum Design Workshop. Cambridge, MA: MIT,
January 10-12, 1991.
Audience: Educator
Abstract: The software engineering course provides undergraduates with
an opportunity to learn something about real-world software development. Since
software engineering is far from being a mature engineering discipline, it is
not possible to define a completely satisfactory syllabus. Content with a sound
basis is in short supply, and the material most often taught is at high risk of
becoming obsolete within a few years.
Undergraduate software engineering courses are now offered in more than a
hundred universities. Although three textbooks dominate the market, there is
not yet consensus on the scope and form of the course. The two major decisions
an instructor faces are the balance between technical and management topics and
the relation between the lecture and project components. We discuss these two
decisions, with support from sample syllabi and survey data on course offerings
in the United States and Canada. We also offer some advice on the management of
a project-oriented course.
[Shaw91c] Shaw, M. "Informatics for a New Century: Computing Education for the
1990s and Beyond." IFIP Working Group 3.2 International Workshop on
Informatics Education in the 1990s. Providence, RI: North-Holland, April
5-7, 1990.
Audience: Educator
Abstract: Information technology and computer science have not only
reshaped computation, communication, and commerce; they have expanded the basic
models and paradigms of many disciplines. Informatics education has obligations
to all the communities that rely on information technology, not just computing
professionals. Serving this extended audience well requires changes in the
content and presentation of computing curricula. This paper sketches the
coming needs for information processing and analyzes the populations that will
require informatics education. It considers curriculum requirements through two
examples, one outside the traditional boundary of computer science and one
inside.
[Shaw91d] Shaw, M. "Putting Engineering into Software Engineering Education."
Position paper for the IEEE Software Engineering Software Engineering
Workshop at the 13th International Conference on Software Engineering.
Austin, TX: IEEE Computer Society Press, May 13-17, 1991.
Audience: Practitioner, Educator
Abstract: The current practice of software engineering bears only slight
resemblance to the usual standards of engineering practice. This is in part a
consequence of the immaturity of the field, but it also results from the
failure of software engineering education to instill an engineering mindset in
students. This position paper discusses the character of engineering practice
with special emphasis on the routine use of reference materials; based on this
characterization, it suggests ways software engineering education could better
support good engineering practice.
[Shaw91e] Shaw, M.; Tomayko, J.E. "Models for Undergraduate Project Courses in
Software Engineering." Proceedings of the Fifth SEI Conference on Software
Engineering Education. Pittsburgh, PA: Springer-Verlag, October 7-8,
1991.
Audience: Educator
Abstract: The software engineering course provides undergraduates with
an opportunity to learn something about real-world software development. Since
software engineering is far from being a mature engineering discipline, it is
not possible to define a completely satisfactory syllabus. Content with a sound
basis is in short supply, and the material most often taught is at high risk of
becoming obsolete within a few years.
Undergraduate software engineering courses are now offered in more than a
hundred universities. Although three textbooks dominate the market, there is
not yet consensus on the scope and form of the course. The two major decisions
an instructor faces are the balance between technical and management topics and
the relation between the lecture and project components. We discuss these two
decisions, with support from sample syllabi and survey data on course offerings
in the United States and Canada. We also offer some advice on the management of
a project-oriented course.
[Shaw91f] Shaw, M. "Heterogeneous Design Idioms for Software Architecture."
Proceedings of the Sixth International Workshop on Software Specification
and Design. Como, Italy: IEEE Computer Society, October 25-26, 1991.
Audience: Practitioner
Abstract: Software designers use a variety of structural patterns to
specify system architectures. These patterns, or idioms, are currently used
informally and imprecisely. Nevertheless, they provide a useful, broadly shared
vocabulary. In practice, a given design often relies on several patterns. This
paper reviews some common architectural idioms, shows several ways in which
they are used heterogeneously, and discusses the benefits of making these
idioms and their combinations more explicit and precise.
[Shaw92b] Shaw, M.; Wulf, W. "Tyrannical Languages *Still* Preempt System
Design." Proceedings of the 1992 International Conference on Computer
Languages. San Francisco, CA: IEEE Computer Society Press, April 20-23,
1992.
Audience: Practitioner, Educator
Abstract: It is a prime tenet of most programming language design that
"higher-level" languages are a good thing - indeed the higher the level, the
better. The assumption is that the higher the level of the language - the more
abstract the abstractions - the greater the leverage provided to the
programmer. Language designers usually ensure that the higher-level constructs
capture their intention by completely specifying the associated semantics.
A decade ago, we challenged the "higher-level is better" assumption. The paper
in which we did this has largely been ignored. Perhaps it should have been, but
we don't think so. In fact we see this apparently benign assumption as
aggressively interfering with good application design. Unfortunately, the
consequences of blind adherence to this tenet are spreading in both current
language proposals and larger system designs.
This paper re-examines the claim that "higher-level" is better and the
counter-claim that "higher-level" constructs interfere with software
development when they preempt the developer's design prerogatives. The starting
point for discussion is our earlier paper, "Toward Relaxing Assumptions in
Languages and Their Implementations".
[Sledge92] Sledge, C.A., editor, Christel, M.G. "Experiences with an
Interactive Video Code Inspection Laboratory." To appear in the Proceedings
of the Sixth SEI Conference on Software Engineering Education. San Diego,
CA: Springer-Verlag, October 5-7, 1992.
Audience: Practitioner, Educator
Abstract: Software engineers need practical training in addition to
classroom lectures to obtain the knowledge and skills necessary to succeed in
industry. This training is provided by laboratories in other engineering
disciplines. Such laboratories have been implemented as computer-based
interactive video courses in the past, with numerous advantages. Based on this
success, an interactive video course was created for use as a "code inspection
laboratory," in which the skills of preparing for and participating in code
inspections are learned and practiced. This paper summarizes the anecdotal
feedback and usage data from 120 students who used the course over the past two
years. Lessons learned from these experiences are discussed, with implications
for the development of future interactive video software engineering
laboratories.
[Stevens91] Stevens, S.M., & Christel, M.G. "Embedding Knowledge in
Continuous Time Media." Conference on System Support for Continuous Time
Media. Pittsburgh, PA: Information Technology Center/International Business
Machines, MONTH 1991.
Audience: Practitioner, Educator
Abstract: It is difficult to move through information that has an
intrinsic and essentially fixed temporal element such as video. While detailed
indexing of video can help, users often wish to peruse video much as they flip
through the pages of a book. This paper highlights two techniques developed for
the Advanced Learning Technologies Project that will facilitate such searches.
First, detailed, embedded knowledge of the video information will allow for
scans by various views, such as by content area or depth of information.
Second, partitioning multimedia data into smaller objects reduces bandwidth
problems associated with accessing central data in large video files.
Concatenation of logically contiguous files allows for seamless, continuous
play of long sequences.
[Stevens92c] Sevens, S.M. "Interface, Fidelity, and Development Issues in a
Virtual Reality Workspace for Software Engineering." To be published in
Man/Machine Interaction, Autumn School `92. Paris, France: Thomson-Iepens,
MONTH 1992.
Audience: Practitioner, Educator
Abstract: Using empirical and anecdotal data this paper discusses
virtual reality interface design and testing including methods of navigation
(both physical and information spaces), natural language interfaces, and image
composition. Fidelity issues from high level design of virtual worlds to image
resolution and frame rate are discussed.
[Stewart90] Stewart, J. J. "An Example of the Re-Application of a Model-Based
Architecture." Proceedings of the DARPA Workshop on Domain-Specific Software
Architectures. Hidden Valley, PA: DARPA/ISTO, July 1990.
Audience: Practitioner
Abstract: The software architectures engineering effort has been
developing ideas about software architectures and model-based design issues for
several years. During this period, both models and architectures (assemblages
of models) have been developed for several projects. This article discusses the
transition of an existing model to a new application area and the architecture
that resulted.
If you want more information contact Customer Relations.
Last updated 14 Feb 96