Courseware on Software Engineering, OOD, OOP
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
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.
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
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
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.