PAL CARD CATALOG ENTRY

SHORT DESCRIPTION

Courseware on Software Engineering, OOD, OOP


MOVEMENT WITHIN THE PAL CARD CATALOG
Move to top-level taxonomy
Move to keyword list

ASSET PROFILE

UNIT NAME
SE, OOD, and OOP Courseware
VERSION
1.0a
REVIEW CODE
OK;CS(Verdix Ada;Alsys Ada;Meridian Ada;DEC Ada);ES
DDN ADDRESS
hcarter@vlsisun.ece.uc.edu, rconn@vlsisun.ece.uc.edu
AUTHOR
Harold Carter, Richard Conn
Department of Electrical and Computer Engineering
University of Cincinnati
Mail Location 30
Cincinnati, Ohio 45221-0030
513/556-4781 (Harold Carter, work)
RIGHTS
PUBLIC DOMAIN
COPYRIGHT
None
DATE CREATED
August, 1992
DATE RELEASED
6 May 1993
DATE LAST UPDATED
2 Feb 1994
LOCATION
ASR and mirror sites
ASSET
PAL
ENVIRONMENT
DEC VAX/VMS, DEC Ada
Sun SunOS 4.x, Alsys Ada
Sun SunOS 4.x, Sun/Verdix Ada
ENVIROMENT
PC, MSDOS 3.3 or greater, Alsys Ada
LIMITATIONS
None

FILE LISTING

Directory Display


languages/ada/crsware/c01:
  File Name                 Size
  ---------                 ----
  c01rdme.zip             26,176
  manifest.txt            45,674
  ood/                       512
  oop/                       512
  se/                        512

languages/ada/crsware/c01/ood:
  File Name                 Size
  ---------                 ----
  c01ood.zip             343,619
  c01pood.zip            597,264

languages/ada/crsware/c01/oop:
  File Name                 Size
  ---------                 ----
  c01oop.zip             337,197
  c01poop.zip            672,600

languages/ada/crsware/c01/se:
  File Name                 Size
  ---------                 ----
  c01lab1.zip            406,972
  c01lab2.zip            193,915
  c01lab3.zip          1,310,460
  c01lab4.zip            780,422
  c01lab5.zip            230,581
  c01lab6.zip             20,017
  c01plab.zip            217,400
  c01pse1.zip            990,680
  c01pse2.zip            422,295
  c01se.zip              620,163


Totals
  ==============  ==============
   19 Files            7,216,971

ABSTRACT

INTRODUCTION

This courseware consists of three courses: Software Engineering with Ada
(including a Lab), Object-Oriented Design, and Object-Oriented
Programming with Ada and C++.  These courses are designed to be taught
as a sequence: Software Engineering with Ada, Object-Oriented Design,
and Object-Oriented Programming with Ada and C++.

See the file MANIFEST.TXT in C01RDME.ZIP for a detailed description of
all documents and code provided with each course.  See the C01RDME.ZIP
file for other useful introductory material as well.

Texts for these courses are:
  Software Engineering: "Software Engineering: A Practitioner's Approach,
3rd Edition" by Roger S. Pressman, McGraw-Hill, 1992, ISBN 0-07-050814-3.
  Software Engineering (optional): "Rendezvous with Ada: A Programmer's
Introduction" by David J. Naiditch, Wiley, 1989, ISBN 0-471-61654-0.
  Object-Oriented Design and Programming: "Object-Oriented Design with
Applications" by Grady Booch, Benjamin/Cummings, 1991, ISBN 0-8053-0091-0.

All documents are provided in two formats: the original word processor
format (to facilitate editing and tailoring as desired) and Postscript.
The following tools are required to edit all the documents:
  1. Microsoft Word for Windows 2.0
  2. Microsoft Powerpoint 3.0
  3. Interleaf 5.0

All courseware (documents, code, etc) is provided in *.ZIP files. These
files can be unpacked (each in its own directory) by using PkWare's
PKZIP/PKUNZIP 1.1 or equivalent (Info-ZIP's zip and unzip also work).

A validated Ada83 compiler is required to compile the Ada source code.
We have successfully compiled and run/used all provided Ada source code
on a Sun using Sun Ada/Verdix Ada, on a Sun using Alsys Ada, on a PC
using Alsys Ada, and on a DEC VAX/VMS using DEC Ada.  We suspect that
the code should be transportable to other validated Ada compilers as
well.

COURSE 1. SOFTWARE ENGINEERING WITH ADA

Software Engineering with Ada (which includes a Lab) is an introductory
course in software engineering.  It covers the following principal
topics: an introduction to the concept of software engineering, software
project planning, software requirements analysis, software design and
software design methodologies, coding, testing, and delivery and
maintenance. There is a heavy emphasis in the Ada programming language
and how it supports various aspects of the development of an engineered
software system.

The laboratory portion of the course reinforces the lecture by making
the students, as 2-3 person teams, prepare a software development plan,
a software requriements specification, a software design document, a
software user's manual, and IV&V reports. Templates, based on
DoD-STD-2167A DIDs, are provided to facilitate the creation of these
documents.

Five student projects are included, and three of these projects are
oriented to making the students design software which interacts with a
system simulator.  Three working system simulators, written in Ada, are
included: a spacecraft monitoring simulation, an automobile simulation,
and a buoy simulation.

The student projects are supported by a reusable components library,
called CS Parts, as well as the three simulators.  CS Parts contains a
large number of basic components, such as a math package, linked list
packages, string manipulation packages, and more advanced components,
such as a VT100 interface and a report generator.  On the average,
students find that approximately 85% of the code in their problem
solutions is reused from CS Parts.  Such a high level of reuse greatly
speeds project development, making it practical for a student team to
generate all the required documents and working code in a 10-week lab
period.

Since this is a software engineering course, it is not desired to take
much time to teach the Ada language itself.  Three aids are provided to
assist the students not proficient in Ada to learn it outside of class:
an online Ada Language Reference Manual Reader, an interactive Ada
language tutorial, and a workbook on the Ada language which includes 24
solved problems.

An online Ada Language Reference Manual Reader, written in Ada, is
included as a working program, complete with a detailed Software
Requirements Specification, Software User's Manual, and Software Design
Document.  These documents provide models for the students to follow in
the construction of the documents for their projects as well as food for
discussion in class.  Additionally, the online Ada Language Reference
Manual Reader can be used by the students, thereby eliminating the need
for them to purchase copies of this document.  A ready-to-run executable
of this reader for the IBM PC and its clones is included as well as the
source code in Ada.

An interactive tutorial on the Ada language, written in Ada, is
included. This is a shareware product and funding should be provided to
the author should the instructor decide to use it for his class.

A workbook on the Ada language, which includes 24 short problems and
their solutions, is included.

COURSE 2. OBJECT-ORIENTED DESIGN

The Object-Oriented Design course covers the following topics: a review
of key concepts from Software Engineering, graphical notation used as
a basis of communication, the object model (with emphasis on applying
the Spiral Model of software development), and object classification.

This course is a lecture-only course.  Students are required to create
object-oriented requirements and design documents based in part on
DoD-STD-2167A.

COURSE 3. OBJECT-ORIENTED PROGRAMMING

The Object-Oriented Programming course covers the following topics:
a review of key topics in Software Engineering and Object-Oriented
Design, graphical notation, the object model, and an overview of the
Ada and C++ languages, concentrating on the features of each.

This course is a lecture/lab course, and the lab consists of a single
project to be solved by several 2-5 person student teams: create a
reader for the Ada Language Reference Manual using the Spiral Model of
software development and object-oriented techniques.  Students are
required to create an object-oriented software requirements
specification and software design document as well as write the code of
the solution.  The teams are divided into two groups: one uses Ada as an
implementation language during the first iteration of the spiral and the
other uses C++.  Half way through the class, the teams who developed in
Ada inherit the code and documents created by a C++ team and the teams
who developed in C++ inherit the code and documents created by an Ada
team.  A long discussion period is set aside at the end of the class to
discuss lessons learned from inheriting code from others in each
language and to compare the students' designs with the design of the Ada
LRM Reader provided with the Software Engineering class.

An Ada workbook and a C++ workbook are included as material for this
course. Material from the Software Engineering course may be reused for
this course as well.

CREDITS

Development of the Software Engineering course was funded by the Ada
Joint Program Office through DARPA/CMO 91-18 (Curriculum Development in
Software Engineering and Ada) as announced in the 16 July 1991 issue
of the Commerce Business Daily.  We wish to thank the AJPO and DARPA/CMO
for their support and interest in this project.  Work was done jointly
by Professor Harold Carter and Professor Richard Conn.

Development of the Object-Oriented Design and Object-Oriented Programming
courses was funded by the University of Cincinnati, Department of Electrical
and Computer Engineering.  Work was done by Professor Richard Conn.

We also wish to thank the manufacturers who worked with us to bring
their products into the university environment for our use and the use
of our students at a very reasonable cost.  Those manufacturers are
Microsoft, Interleaf, PkWare, Sun, Verdix, Alsys, DEC, and John Herro.


REVISION HISTORY

DATE         VERSION AUTHOR                       HISTORY 
05/06/93     1.0     Harold Carter, Richard Conn  Initial Release
06/17/93     1.0     Harold Carter, Richard Conn  Release to PAL


RELEASE NOTICE

This software is released to the Public Domain (note:
  software released to the Public Domain is not subject
  to copyright protection).
Restrictions on use or distribution:  NONE; Distribution Unlimited


DISCLAIMER

	This courseware, software, and documentation are provided "AS IS"
without any expressed or implied warranties whatsoever.  No warranties
as to performance, merchantability, or fitness for a particular
purpose exist.
	The user is advised to test the software thoroughly before
relying on it.  The user must assume the entire risk and liability of
using this software.  In no event shall any person or organization of
people be held responsible for any direct, indirect, consequential or
inconsequential damages or lost profits.