[comp.doc.techreports] tr-input/sei90.6F

leff@CSVAX.SEAS.SMU.EDU (Laurence Leff) (07/16/90)

Administrivia Note: Commencing with sei90.6E, TRList is now being mailed
to ARPANET/CSNET/INTERNET subscribers via a totally different mechanism.  
This will prevent the problems with multiple
copies of messages going out.  We are still tracing the cause of that problem
as that mail loop still seems to be generating some messages.  My apologies
for any inconvenience caused by multiple messages.

End of Administrivia Note.



Software Engineering Institute
Information Management
Annotated list of available documents for external distribution.
Part VI of VI: SEI Education Program reports

1 January 1986 - 29 June 1990

Technical reports that have DTIC numbers are available from the Defense 
Technical Information Center (DTIC) and the National Technical Information 
Service (NTIS). (As an example, ADA169705 is the DTIC number for the 
SEI report Toward a Reform of the Defense Department Software 
Acquisition Policy.) If you wish to request a copy of one of 
the following reports, please contact either DTIC or NTIS directly.

DTIC:	Defense Technical Information Center
	ATTN: FDRA Cameron Station
	Alexandria VA 22304-6145

NTIS:	National Technical Information Service
	U.S. Department of Commerce
	Springfield, VA 22161





Curriculum Modules and Support Materials

(SEI-CM-1-1.3
Superceded by Requirements Specification Overview SEI-CM-19
Paul C. Jorgensen, Research & Technology Institute of West Michigan)
SEI-CM-2-2.1
Introduction to Software Design
David Budgen, University of Stirling



This  curriculum module provides an introduction to the principles 
and concepts relevant to the design of large programs and systems.  
It examines the role and context  of the design activity as a form 
of problem-solving process, describes how this is supported by current 
design methods, and considers the  strategies, strengths, limitations, 
and main domains of application of these methods.



SEI-CM-3-1.5
The Software Technical Review Process
James S. Collofello, Arizona State University



This curriculum module consists of a comprehensive examination of 
the technical review process in the software development and maintenance 
life  cycle.  Formal review  methodologies are analyzed in detail 
from the perspective of the review participants, project management 
and software quality assurance.  Sample review agendas  are  also  
presented for common types of reviews. The objective of the module 
is to provide the student with the information  necessary  to  plan  
and execute highly efficient and cost effective technical reviews.



SEI-SM-3-1.0
Support Materials for The Software Technical Review Process
John Cross, ed., Indiana University of Pennsylvania



This  support materials package includes materials helpful in teaching 
a course on the software technical review process.



SEI-CM-4-1.3
Software Configuration Management
James E. Tomayko, The Wichita State University



Software configuration management encompasses the disciplines and 
techniques of initiating,  evaluating, and controlling change to software 
products during and after the development process. It emphasizes the  
importance  of  configuration control in managing software production.



SEI-SM-4-1.0
Support Materials for Software Configuration Management
James E. Tomayko, ed., The Wichita State University



This  support materials package includes materials helpful in teaching 
a course on configuration management.



SEI-CM-5-1.2
Information Protection
Fred Cohen, Lehigh University



This curriculum module is a broad based introduction to information  
protection techniques.    Topics  include  the  history and present 
state of cryptography, operating system protection, network protection, 
data base protection, physical security  techniques,  cost  benefit  
tradeoffs,  social  
issues,  and  current research trends.  The successful student 
in this course will be prepared for an in-depth course in any of these 
topics.



SEI-CM-6-1.1
Software Safety
Nancy Leveson, University of California, Irvine



Software  safety  involves  ensuring that software will execute within 
a system context without resulting  in  unacceptable  risk.    Building  
safety-critical software  requires  special procedures to be used 
in all phases of the software development process.  This module introduces 
the problems involved in  building such  software along with the procedures 
that can be used to enhance the safety of the resulting software product.



SEI-CM-7-1.1
Assurance of Software Quality
Brad Brown, Boeing Military Airplane Company



This module presents the underlying philosophy and  associated  principles  
and practices  related  to  the  assurance  of  software  quality.    
It includes a description of the assurance activities  associated  
with  the  phases  of  the software development life-cycle (e.g., 
requirements, design, test, etc.).



SEI-CM-8-1.0
Formal Specification of Software
Alfs Berztiss, University of Pittsburgh



This  module  introduces  methods  for the formal specification of 
programs and large software systems,  and  reviews  the  domains  
of  application  of  these methods.    Its  emphasis is on the functional 
properties of software.  It does not deal with the specification of 
programming languages, the specification  of user-computer  interfaces,  
or  the  verification of programs.  Neither does it attempt to cover 
the specification of distributed systems.



SEI-SM-8-1.0
Support Materials for Formal Specification of Software
Alfs Berztiss, ed., University of Pittsburgh



This support materials package includes materials helpful in teaching 
a  course on formal specification of software.



SEI-CM-9-1.2
Unit Testing and Analysis
Larry J. Morell, College of William and Mary



This module examines the techniques, assessment, and management of 
unit testing and analysis.  Testing and analysis strategies  are  
categorized  according  to whether  their  coverage  goal  is functional, 
structural, error-oriented, or a combination of these.  Mastery of  
the  material  in  this  module  allows  the software  engineer to 
define, conduct, and evaluate unit tests and analyses and to assess 
new techniques proposed in the literature.



SEI-CM-10-1.0
Models of Software Evolution: Life Cycle and Process
Walt Scacchi, University of Southern California



This module presents an introduction to models of software system 
evolution and their  role  in  structuring  software  development.    
It includes a review of traditional software life-cycle models as 
well as software process models  that have  been  recently proposed.  
It identifies three kinds of alternative models of software evolution 
that focus attention to either the  products,  production processes,  
or  production  settings  as  the  major  source  of influence.  It 
examines how different software engineering tools and  techniques  
can  support life-cycle or process approaches.  It also identifies 
techniques for evaluating the practical utility of a given model of 
software  evolution  for  development projects in different kinds 
of organizational settings.



SEI-CM-11-2.0
Software Specification: A Framework
H. Dieter Rombach, University of Maryland



This  curriculum module presents a framework for understanding software 
product and process specifications.  An unusual approach has been 
chosen in order to be able to address all aspects related to specification 
without confusing the many existing uses of the term.  In this module, 
the term  specification  refers  to any plan (or standard) according 
to which products of some type are constructed or processes of some 
type are performed,  not  to  the  products  or  processes themselves.   
In this sense, a specification is itself a product that describes 
how products of some type should look or how processes of some type  
should  be performed.    The  framework includes (1) a reference software 
life-cycle model and terminology, (2) a characterizing scheme for 
software product  and  process specifications,  (3)  guidelines  for  
using  the  characterization  scheme  to identify clearly certain 
life-cycle phases, and (4) guidelines  for  using  the characterization 
scheme to select and evaluate specification techniques.



SEI-CM-12-1.1
Software Metrics
Everald E. Mills, Seattle University



Effective  management  of any process requires quantification, measurement, 
and modeling.  Software metrics provide a quantitative basis  for  
the  development and  validation  of models of the software development 
process.  Metrics can be used to improve software productivity and 
quality.  This module introduces  the most  commonly  used  software  
metrics  and  reviews their use in constructing models of the software 
development  process.    Although  current  metrics  and models  are  
certainly  inadequate,  a  number  of  organizations are achieving 
promising results through their use.  Results should improve further 
as we gain additional experience with various metrics and models.



SEI-CM-13-1.1
Introduction to Software Verification and Validation
James S. Collofello, Arizona State University



Software  verification  and  validation  techniques  are  introduced  
and their applicability discussed.   Approaches  to  integrating  
these  techniques  into comprehensive  verification  and  validation  
plans  are  also addressed.  This curriculum module provides an overview 
needed to understand in-depth curriculum modules in the verification 
and validation area.



SEI-CM-14-2.1
Intellectual Property Protection For Software
Pamela Samuelson, University of Pittsburgh School of Law
Kevin Deasy, University of Pittsburgh School of Law



This  module  provides  an overview of the U.S. intellectual property 
laws that form  the  framework  within  which  legal  rights  in  
software  are  created, allocated, and enforced.  The primary forms 
of intellectual property protection that are likely to apply to software 
are copyright, patent,  and  trade  
secret laws,  which are discussed with particular emphasis on 
the controversial issues arising  in  their  application  to  software.    
Also  included  is  a   brief introduction  to  government software 
acquisition regulations, trademark, trade dress,  and  related  unfair  
competition  issues  that  may  affect   software engineering decisions, 
and to the Semiconductor Chip Protection Act.



SEI-CM-16-1.1
Software Development Using VDM
Jan Storbank Pedersen, Computer Resources International A/S



This module introduces the Vienna Development Method (VDM) approach 
to software development.  The method is oriented toward a formal model 
view of the software to  be  developed.    The emphasis of the module 
is on formal specification and systematic development of programs 
using VDM.  A major part of the module deals with the particular specification 
language (and abstraction mechanisms) used in VDM.



SEI-CM-17-1.0
User Interface Development
Gary Perlman, Massachusetts Institute of Technology



This module covers the issues, information sources, and  methods  
used  in  the design,  implementation,  and  evaluation  of  user  
interfaces,  the  parts of software systems designed to interact with 
people.  User interface design draws on  the  experiences  of  designers, 
current trends in input/output technology, cognitive psychology,  
human  factors  (ergonomics)  research,  guidelines  and standards, 
and on the feedback from evaluating working systems.  User interface 
implementation applies modern software development techniques to building  
user interfaces.   User interface evaluation can be based on empirical 
evaluation of working  systems  or  on   the   predictive   evaluation   
of   system   design specifications.



SEI-SM-17-1.0
Support Materials for User Interface Development
Lionel Deimel, ed., Software Engineering Institute



This  support materials package includes materials helpful in teaching 
a course on user interface development.



SEI-CM-18-1.0
An Overview of Technical Communication for the Software Engineer
Robert L. Glass, Software Engineering Institute



This module presents the fundamentals of technical communication that 
might  be most  useful  to  the  software  engineer.   It discusses 
both written and oral communication.



SEI-CM-19-1.1
Software Requirements
John W. Brackett, Boston University



This  curriculum  module  is  concerned  with  the   definition   
of   software requirements--the  software  engineering  process  of 
determining what is to be produced--and the products generated in 
that definition.  The process  involves all of the following: (1) 
requirements identification (2) requirements analysis (3) requirements 
representation (4) requirements communication (5)  development of  
acceptance criteria and procedures.  The outcome of requirements definition 
is a precursor of software design.  Supercedes SEI-CM-1.



SEI-CM-20-1.0
Formal Verification of Programs
Alfs T. Berztiss, University of Pittsburgh
Mark A. Ardis, Software Engineering Institute



This module introduces formal verification of programs.    It  deals  
primarily with  proofs  of sequential programs, but also with consistency 
proofs for data types  and  deduction  of  particular  behaviors   
of   programs   from   their specifications.      Two   approaches   
are   considered:   verification  after implementation that  a  program  
is  consistent  with  its  specification,  and parallel  development  
of  a  program  and its specification.  An assessment of formal verification 
is provided.



SEI-CM-21-1.0
Software Project Management
James E. Tomayko, The Wichita State University
Harvey K. Hallman, Software Engineering Institute



Software project management encompasses the knowledge,  techniques,  
and  tools necessary  to  manage  the  development  of software products.  
This curriculum module discusses material that managers need to  create  
a  plan  for  software development, using effective estimation of 
size and effort, and to execute that plan with attention to productivity 
and quality.  Within this  context,  topics such  as  risk  management,  
alternative  life-cycle  models,  development team organization, and 
management of technical people are also discussed.



SEI-CM-22-1.0
Software Design Methods for Real-Time Systems
Hassan Gomaa, George Mason University



This module describes the concepts and methods used in the software  
design  of real-time  systems.    It  outlines  the  characteristics 
of real-time systems, describes the role of software design in real-time 
system development,  surveys and  compares  some software design methods 
for real-time systems, and outlines techniques for the verification 
and validation of real-time designs.  For  each design  method treated, 
its emphasis, concepts on which it is based, steps used in its application, 
and an assessment of the method are provided.

SEI-CM-24
Concepts of Concurrent Programming
David W. Bustard
University of Ulster

A concurrent program is one defining actions that may be performed 
simultaneously.   This module discusses the nature of such programs 
and provides an overview of the means by which they may be constructed 
and executed.  Emphasis is given to the terminology used in this field 
and the underlying concepts involved.



SEI-CM-25 / SEI-SM-25 (Support Materials)
Language and System Support for Concurrent Programming 
Michael B. Feldman, The George Washington University



This curriculum module is concerned with support for concurrent programming 
provided to the applicaton programmer by operating systems and programming 
languages. This includes system calls and language constructs for 
process creation, termimation, synchronization, and communication, 
as well as nondeterministic language constructs such as the selective 
wait and timed call. Several readily available languages are discussed 
and compared; concurrent programming using system services of the 
UNIX operating system is introduced for the sake of comparison and 
contrast.



Education Technical Reports

CMU/SEI-86-TR-5, ADA178770
Harvey, H.
Summary of the SEI Workshop on Software Configuration Management



This report summarizes the discussion held during the Software Configuration 
Management meeting at the Software Engineering Institute in Pittsburgh 
on 16 July 1986.



CMU/SEI-87-TR-20, ADA200603
Tomayko, J.
Teaching a Project-Intensive Introduction to Software Engineering



This report is meant as a guide to the teacher of the introductory 
course in software engineering. It contains a case study of a course 
based on a large project. Other models of course organization are 
also discussed. Additional materials used in teaching the course and 
samples of student-produced documentation are also available.



CMU/SEI-87-TR-44, ADA188927 
Ford, G.
Report on the SEI Workshop on Ada in Freshman Courses



The Undergraduate Software Engineering Education Project of the SEI 
Education Program sponsored a workshop on Ada in Freshman Courses 
in June 1987. The workshop brought together several educators to discuss 
how the software engineering content of beginning programming and 
data structures courses might be improved. This report describes the 
workshop and summarizes the discussions and conclusions, and it also 
includes the position papers prepared by the participants.



CMU/SEI-89-TR-21, ADA219018
Ardis, M. and Ford, G.
1989 SEI Report on Graduate Software Engineering Education



This annual report on graduate software engineering education describes 
recent SEI educational activities, including the 1988 SEI Curriculum 
Design Workshop. A model curriculum for a professional Master of Software 
Engineering degree is presented, including detailed descriptions of 
six core courses. Fifteen university graduate programs in software 
engineering are surveyed.



CMU/SEI-90-TR-3
Ford, G.
SEI Report on Undergraduate Software Engineering Education



Fundamental issues of software engineering education are presented 
and discussed in the context of undergraduate programs. Included are 
discussions of the definition of software engineering and its differences 
from computer science, the need for undergraduate software engineering 
education, possible accreditation of undergraduate programs, and prospects 
for professional certification and licensing of software engineers. 
The objectives and content of an undergraduate program are described, 
as are strategies for the evolution and implementation of such programs. 
An appendix presents a report on the 1989 SEI Workshop on an Undergraduate 
Software Engineering Curriculum.

CMU/SEI-90-TR-4
McSteen, W. et al
Software Engineering Education Directory



This directory provides information about software engineering courses 
and software engineering degree programs offered by universities, 
primarily in the United States.




Other Educational Materials

CMU/SEI-89-EM-1
Engle, Ford, Korson
Software Maintenance Exercises for a
Software Engineering Project Course



This report provides an operational software system of 10,000 lines 
of Ada  and several  exercises  based  on  that  system.    Concepts  
such as configuration management, regression testing, code reviews, 
and stepwise abstraction  can  be taught  with  these exercises.  
Diskettes containing code and documentation may be ordered for $10.00.   
(Please  request  either  IBM  PC  or  Macintosh  disk format.)



CMU/SEI-89-EM-2
Engle, Ford, Tomayko
APSE Interactive Monitor: A Software Artifact
for Software Engineering Education



In  1987  the  SEI  began  a search for a well-documented Ada system, 
developed under  government  contract,  that  could  be  used  in  
software   engineering education.  The APSE Interactive Monitor (AIM) 
was determined to be appropriate for this purpose.  This system acts 
as an interface between a user  of  an  Ada programming  support environment 
(APSE) and the programs that the user executes in the APSE.  It provides 
facilities to support  the  concurrent  execution  of multiple  interactive 
programs, each of which has access to a virtual terminal. Educational 
uses of the system are described, including use as a case study and 
as  the  basis  for  exercises.  Software engineering topics that 
can be taught with  the  system  include  software  maintenance,  
configuration   management, software  documentation, cost estimation, 
and object-oriented design.  The APSE software and documentation may 
be downloaded from the SEI over the Internet via the  UNIX  ftp facility, 
or they may be ordered on tape from the SEI.  The cost is $20.00 for 
VAX/VMS reel tape or $30.00 for VAX/VMS TK-50 cartridge tape.




Conference and Workshop Records

Conference  and  workshop  records  are  available  directly   from 
Springer-Verlag.   Prices are indicated.  Please direct your orders 
directly to the publisher:  Book Order Fulfillment, Springer-Verlag 
New York, Inc., Service Center  Secaucus,  44  Hartz  Way,  Secaucus, 
NJ  07094.  The numbers shown are ISBNs.  Please specify these when 
ordering.



0-387-96469-X
Gibbs, Fairley, eds.
Software Engineering Education:
The Educational Needs of the Software Community



This volume contains the extended proceedings of the 1986 Software  
Engineering Education  Workshop,  held  at  the  SEI  and sponsored 
by the SEI and the Wang Institute of Graduate Studies.  This workshop 
of invited  software  engineering educators  focuses  on  master's  
level education in software engineering, with some discussion of undergraduate 
and doctoral level issues.  Hardback, $37.50.



0-387-96840-7
Fairley, Freeman, eds.
Issues in Software Engineering Education: Proceedings of the 1987 
SEI Conferenc



Proceedings of the 1987 SEI Conference on Software Engineering Education,  
held in Monroeville, Pa.  Hardback, $45.00.



0-387-96854-7
Ford, ed.
Software Engineering Education: SEI Conference 1988



Proceedings  of the 1988 SEI Conference on Software Engineering Education, 
held in Fairfax, Va.  (Lecture Notes in  Computer  Science  No.  327.)    
Paperback, $20.60.



0-387-97090-8
Gibbs, ed.
Software Engineering : SEI Conference 1989



Proceedings  of the 1989 SEI Conference on Software Engineering Education, 
held in Pittsburgh, Pa.  (Lecture Notes in Computer Science No.  376.)    
Paperback, $26.90.
--