Winter Qtr 1997, Wright State U
Instructor: Dr Prabhaker
Mateti, Associate Professor
Office Hrs: 16:30-17:30 T Th at 449 Russ, or by appointment 775-5114
Class Hrs: 19:00-20:15 T Th at 146 Russ
Jan 21 Requirements
and UM
Feb 4
Specifications
Feb 18 Design
Feb 25
Implementation
Mar 4
Test Results
TBS
Demos
Jan 30
Home Work 1 8.2, 8.5, 8.10, and RA
of Print Errors
Feb 11
Home Work 2 Design of 1. Condense Nums, 2. Print
Errors
Feb 25
Home Work 3 Runnable Src Code for above in
C++
Mar 13 Home Work
4 Runnable Src Code for above in Java
Feb 18
Reading Assignment 1 for CEG 660 only: [Hall 90, p265], [Meyer 85, p266]
Mar 15
Reading Assignment 2 for CEG 660 only
This course is concerned with the techniques of designing and constructing large programs. Some of the required basic concepts necessarily have to be developed using samll programs as examples. To this extent, we also study programming-in-the-small. The overall objectives are to present an overview of issues in the development of software, to discuss terminolgy, to illustrate via example case studies, and to give sufficiently detailed advice on how to develop quality software.
You may have heard of Java as a programming language for WWW applets. But, it is also an excellent language for general purpose programming, including software tools. Provided you are fluent in C/C++, you will, through this course, learn enough Java to be considered fluent in it.
Handouts and other useful material, such as old exams, are archived in the directory /public/pmateti/460/ on CaTS systems.
There are no lectures specifically devoted to Java. However, ``Java embodies the principles of software engineering,'' (see page vii), and in discussing design, construction, and the term project, we will be describing Java details also.
Terms: precision, rigor, formalism, requirements, specs, design, implementation, testing, debugging, maintenance, versions, configurations, life-cycle issues. Prototyping, executability, declarative vs imperative. (spread)
Chapters 1, 2, and 3.
Chapter 7.
Chapter 8.
Chapters 11, 6, and 9.
Chapter 5.
Systematic translation of detailed designs into a real programming language. Assembly languages, system implementation languages, and high-level languages. Support for modularity, information hiding, separate compilation, compile-time type checking, run-time watch dogs, exception handling, and concurrency.
CASE tools. The computer-aided design and development of software. make, programmable editors EMACS, revision control rcs, configuration mgmt, string and pattern languages awk, cross reference generators, documentation tools WEB. (4)
Chapter 12, and 13.
The implementation language must be one of Ada, Pascal, or C/C++. You are expected to form into groups of 2 each. Choose your partner carefully -- one that you can get along well. Unless one of the partners brings it to my attention, it will be assumed that each member contributed equally.
Each group will submit two hard-copies of the above documents. Every document will be peer reviewed by one of your classmates. Reviews must be completed within one week of receiving the documents. You will be given a list of criteria and guidelines. Peer reviewing contributes 10%.