CSC 265 Design & Analysis of Software Systems 3 cr.

This course will explore in detail the design and implementation of large software systems using modern software engineering principles.   Topics include: the initial proposal, information acquisition, design of system functions, choice of implementation structures, various stages of testing, and documentation.   Three lecture hours per week; extensive laboratory work and group discussion time outside of class are also required.   Not open to students who have received credit for CSC 394.
Prerequisite: CSC 260.


Topics:
  • investigation of existing systems, including available information and procedures
  • determination of the necessary functions the system must support
  • design of a formal proposal
  • interactions with the users
  • determination of the relative importance, frequency, cost and visibility of the various functions
  • initial overview of the design of the system
  • development of an implementation schedule
  • review and revision based on continuing interaction with the users
  • choice of information structures
  • implementation considerations
    • choice of language
    • selection of a set of programming standards
    • test data generation
    • establishment of benchmarks
  • testing
    • partial tests
    • stub testing
    • tests using generated data
    • volume tests
    • tests utilizing copies of real data
    • documentation of test results
  • review and revisions based on continuing interactions with users
  • startup procedures, initialization and conversion routines
  • "turning the key"
    • parallel runs of actual data with both the new system and the old one
    • checks against original system
    • backup and restart considerations
  • preparation of final documentation package
    • run instructions
    • error recovery/restart procedures
    • program function documentation

      The emphasis of the course is on the proper design of a software system from initial conception to final production implementation.   Many aspects of the project in addition to strict program implementation are covered, including, but not limited to, efficiency, cost/benefit analysis, user-friendliness, expected life span, maintenance, and ongoing support (including revisions and enhancements).   There will be at least one case study presented in depth, leading to the design and implementation of a large project by groups within the class.   Extensive laboratory work and group discussion time outside of class are expected and required.

      All programs must conform to departmental guidelines for program design and implementation, and all lab reports must conform to guidelines announced in class.   Regardless of numeric average, a student will not be eligible for a passing grade unless he or she has submitted a lab report for every programming assignment.

      The course grade will be determined using the following approximate weights: lab report(s) - 30%,   final exam - 40%, other tests and/or paper(s) - 30%.


Bibliography:
    * indicates the textbook currently in use
  • Dennis & Wixom.   Systems Analysis and Design.   (John Wiley & Sons, 2000)
  • Dikel, David M.; Kane, David; Wilson, James R.   Software Architecture: Organizational Principles and Patterns.   (Prentice-Hall, 2001)
  • Fowler, Martin, with Kenneth Scott. UML Distilled: A Brief Guide to the Standard Object Modeling Language.   Second Edition. (Addison-Wesley, 2000)
  • * Hoffer, et. al.   Modern Systems Analysis & Design. Second Edition. (Addison-Wesley, 1999)
  • Peters & Pedrycz. Software Engineering: An Engineering Approach.   (John Wiley & Sons, 2000)
  • Pfleeger, Shari Lawrence.   Software Engineering: Theory and Practice.   Second Edition. (Prentice-Hall, 2001)
  • Schach, Stephen R.   Classical and Object-Oriented Software Engineering with UML and Java   Fourth Edition.   (McGraw-Hill, 1999)
Salem State Home Computer Science Home Faculty Computer Studies Major Flow Sheet
Computer Studies Minor Courses Course Sequence Diagram Computer Laboratories