STATE UNIVERSITY OF NEW YORK AT OSWEGO
Computer Science Department
I. COURSE NUMBER AND CREDIT:
CSC 380 - 3 S.H.
II. COURSE TITLE:
III. COURSE DESCRIPTION:
Techniques for developing large software systems are
presented. Formal and semi-formal languages for
specification and design of software, verification,
and configuration management techniques are
CSC 241 - Abstract Data Types and Programming
This course is intended to provide students with and
engineering perspective to software design. Even
though programming concepts such as procedural and
functional abstraction, data abstraction, and perhaps
object oriented programming have already been
introduced in the core, their application to large-
scale programming projects is done here.
Various techniques for software specification and
design, verification, and configuration management
are introduced. Such exposure is of utmost
importance to students planning to pursue a career in
It is here that students for the first time engage in
a group project. The realization of the importance
of the concepts learned in the core and techniques
stated above can only be gained in such a setting.
Students will be expected to read several classical
and currently published papers on different topics in
software engineering. This will provide them with an
opportunity to examine the state of the art problems
in a highly volatile field. Hopefully, it will
inspire some to pursue a graduate degree in the
VI. COURSE OBJECTIVES:
As a result of this course, students will be able to:
1. Understand the problems involved in large
2. Examine some of the solutions to these problems.
3. Learn new techniques in software specification,
program testing, test case generation, program
4. Read and analyze technical publications in the
5. Work in a group setting.
VII. COURSE OUTLINE:
A. Software Engineering Paradigms
2. Classic Life Cycles
4. Fourth Generation Techniques
B. Requirements Analysis Methodologies
1. Data Flow-oriented
2. Data Structure-oriented
3. Jackson System Development
4. Software Prototyping
5. Automated Tools
C. Software Specification Techniques
1. Interface Specification
2. Operational Specification
3. The Specification of Abstract Data Types
D. Software Design
Refinement, Modularity, Abstraction,
Information Hiding, Functional Independence,
Cohesion, Coupling, Design Tools
2. Data Flow-oriented Design
3. Data Structure-oriented Design
4. Object-oriented Design
5. Real-time Design
E. Software Testing
Testing Objectives, Information Flow, Test
2. White Box Testing
Basis Path Testing, Flow Graph Notation,
Cyclomatic Complexity, Driving Test Cases,
3. Black Box Testing
Equivalence Partitioning, Boundary Value
Analysis, Cause-Effect Graphing Techniques,
Data Validation Techniques
4. Proof of Correctness
5. Automated Testing Tools
F. Software Testing Strategies
1. Approach to Software Testing
2. Unit Testing
3. Integration Testing
4. The Art of Debugging
G. Quality Assurance
H. Maintenance and Configuration Management
VIII. METHODS OF INSTRUCTION:
IX. COURSE REQUIREMENTS:
1. Writing review of the publications.
2. Individual and group programming projects.
X. MEANS OF EVALUATION:
B. Individual and group programming projects
D. Participation in class discussions
The ICC facilities should be adequate for this
course. Our goal will be to install some of the
software tools that would enhance it.
King, D. Creating Effective Software - Computer
Program Design Using the Jackson Methodology.
Prentice-Hall: Englewood Cliffs, NJ, 1988.
Lamb, D. A. Software Engineering - Planning for
Change. Prentice-Hall, Englewood Cliffs, NJ,
Pfleeger, S. L. Software Engineering - The Production
of Quality Software. Macmillan, New York, 1987.
Pressman, R. Making Software Engineering Happen - A
Guide for Instituting the Technology. Prentice-
Hall, Englewood Cliffs, NJ, 1988.
Pressman, R. Software Engineering a Practitioner's
Approach. McGraw-Hill, New York, 1987.
Sommerville, I. Software Engineering. Addison-
Wesley, Reading, MA, 1985.
Steward, D. V. Software Engineering with Systems
Analysis and Design. Wadsworth, Belmont, CA, 1987.
Last Updated: 7/9/07