Next: Project Up: Course Handout-CSC 441 Previous: Course Policies

Course Outline: CSC 441

Introduction

Desired Learning Outcomes

The student will:
  1. be familiar with the class policies on grading, academic integrity, homework, and participation.
  2. be able to explain the content of the course,
  3. understand the course requirements (labs, presentation, et cetera).

Reading Assignment---due next class meeting

Lab Assignment

Software Design Fundamentals

Desired Learning Outcomes

The student will be able to:
  1. Describe the inputs into the software design phase.
  2. Define "software design" in terms of its purpose and the activities associated with this phase.
  3. List the high-level guidelines for evaluating the quality of a software design.
  4. Define "modularity" and explain its use in software development.
  5. Define "Software Architecture."
  6. Explain the concept of "information hiding," including the possible benefits of applying this technique.
  7. Explain the concept of "cohesion" and describe its benefits.
  8. Explain the concept of "coupling" and describe why software engineers avoid coupling.

Reading Assignment: Due next class meeting

Lab Assignment

Data Flow Design

Desired Learning Outcomes

The student will be able to:
  1. describe the applications for which data flow design approaches are indicated,
  2. describe the applications for which data flow design approaches are not indicated,
  3. list and explain the five steps a software engineer would employ to transition from information flow to program structure,
  4. apply the five steps to an information flow to yield a suitable program structure,
  5. define, compare and contrast the two types of information flows: transform and transaction,
  6. describe and explain the overall approach to the data flow-oriented design methodology,
  7. explain how to conduct a "transform analysis",
  8. apply transform analysis to a DFD,
  9. explain the concept of factoring, with respect to the data flowÜoriented design methodology,
  10. explain how to conduct a transaction analysis,
  11. apply transaction analysis to a DFD,
  12. list and explain the seven design heuristics,
  13. describe the additional documentation required after transform and transaction analysis is complete
  14. apply the concepts of data flow-oriented design to a software engineering problem.

Reading Assignment: Due next class meeting

Lab Activities

Object-oriented Design

Desired Learning Outcomes

The student will be able to:
  1. state and explain the three concepts that makes Object- Oriented Design (OOD) unique among software design methodologies,
  2. explain the evolution of OOD,
  3. define OOD terms:
    1. object
    2. operation
    3. message,
    4. information hiding
    5. modularity
    6. class
    7. inheritance
    8. instance
  4. list and explain the five basic design principles applicable to modular software architectures,
  5. compare and contrast protocol description and implementation description of an object,
  6. explain the work necessary to refine an object-oriented analysis into an object-oriented design,
  7. describe the three types of operations,
  8. explain the purposes of grammatical parsing of specifications,
  9. explain how to specify interfaces among modules,
  10. explain how to conduct implementation level design.

Reading Assignment: Due next class meeting

Lab Activities

Data-oriented Design

Desired Learning Outcomes

The student will be able to:
  1. explain the situations in which data-oriented design methods may be applicable,
  2. compare and contrast data-oriented design methods with data flow methodologies and object-oriented design,
  3. describe the steps necessary to conduct a Jackson System Development,
  4. explain the four-step Data Structured System Development (DSSD),

Reading Assignment: Due next class meeting

User Interface Design

Desired Learning Outcomes

The student will be able to:
  1. identify the factors that software engineers can use to differentiate among computer users,
  2. explain the four generic types of tasks that a computer user may need to perform,
  3. describe the evolution of human-computer interfaces,
  4. explain each of the four models a software engineer must integrate while designing an HCI,
  5. explain the concept of task modeling and show how a software engineer can apply it to an HCI design,
  6. list the four typical HCI design issues, explain their importance to the HCI design and describe how a good HCI design will address these issues,
  7. differentiate between the two kinds of help facilities,
  8. list and explain the characteristics of error messages,
  9. describe HCI implementation tools and explain their utility,
  10. describe a software engineer can evaluate an HCI,
  11. list and describe the general interaction guidelines for an HCI,
  12. list and describe the guidelines for the information display of an HCI,
  13. list and describe the guidelines for the data inputs of an HCI,

Reading Assignment: Due next class meeting

Programming Languages and Coding

Desired Learning Outcomes

The student will be able to:
  1. list and describe the psychological characteristics of programming languages,
  2. distinguish between syntatic and semantic models of the programming process,
  3. list and describe the five "engineering" factors associated with programming languages,
  4. list and describe the criteria a software engineer may use in choosing a programming language
  5. describe the various data types available in common computer languages,
  6. list and describe the 5 levels of typing checking,
  7. explain the key characteristics of each of the classes of programming languages and give examples of each,
  8. explain why Brooks argues against the maintenance of separate design and code archives,
  9. discuss the issues associated with code documentation,
  10. discuss the issues associated with data declarations,
  11. discuss the issues associated with statement construction,
  12. discusss the issues associated with input and output,
  13. list and explain the three categories of efficiency.

Reading Assignment: Due next class meeting

Lab Activities

Software Testing Techniques

Desired Learning Outcomes

The student will be able to:
  1. list and describe the objectives of software testing,
  2. describe the flow of information in software testing,
  3. differentiate between "black box" and "white box" testing,
  4. list the four objectives of white box testing,
  5. explain why white box testing is important,
  6. explain in detail the basis path testing approach,
  7. explain in detail control structure testing,
  8. explain in detail data flow testing,
  9. explain in detail loop testing,
  10. list the categories of errors black box testing will identify,
  11. explain the equivalence partitioning method of black box testing,
  12. explain boundary value analysis,
  13. explain cause and effect graphing techniques,
  14. explain comparison testing,
  15. describe the various auromated testing tools available to software engineers.

Reading Assignment: Due next class meeting

Lab Assignment

Software Testing Strategies

Desired Learning Outcomes

The student will be able to:
  1. compare and contrast verification and validation,
  2. discuss organizational alternatives for testing,
  3. describe the various levels of testing and the corresponding phase of the software engineering process being tested,
  4. explain in detail the five areas of interest in unit testing,
  5. list and explain the testing a software engineer should conduct for interfaces,
  6. list and explain the tests a software engineer should conduct for the local data structures,
  7. list and explain the tests a software engineer should conduct for boundary conditions
  8. discuss the concept and application of independent path testing,
  9. discuss the issues associated with error-handling testing,
  10. describe unit testing procedures,
  11. discuss the drawbacks inherent in non-incremental integration,
  12. discuss the various methods of incremental integration,
  13. list and describe the steps associated with the integration process,
  14. compare and contrast bottom-up and top-down integration,
  15. outline a test specification, describing the purpose of each section
  16. describe the purpose of validation testing,
  17. identify the source of validation test criteria,
  18. compare and contrast alpha and beta testing,
  19. discuss the issues associated with system testing,
  20. list and describe the various types of testing conducted in system test,
  21. discuss the approaches used in debugging,

Reading Assignment: Due next class meeting

Midterm

Reading Assignment: Due next class meeting

Software Maintenance

Desired Learning Outcomes

The student will be able to:
  1. explain why software maintenance is necessary,
  2. list and describe the four types of software maintenance,
  3. compare and contrast structured and unstructured software maintenance approaches,
  4. discuss all of the costs associated with the maintenance process,
  5. list and discuss the factors affecting the maintainability of software,
  6. list and describe metrics a software engineer can use to measure the software maintenance process,
  7. list and describe the major side-effects of maintenance,

Reading Assignment: Due next class meeting

Computer-aided Software Engineering

Desired Learning Outcomes

The student will be able to:
  1. list and describe the various types of tools that can be included in a CASE environment,

Reading Assignment: Due next class meeting

Integrated CASE Environments

Desired Learning Outcomes

The student will be able to:
  1. list and describe the benefits of an integrate CASE environment,
  2. describe the integration options for a CASE environment

Student Presentations

Desired Learning Outcomes

The student will be able to:
  1. discuss the issues associated with software safety
  2. Safety Engineering
  3. Faulty Tolerance
  4. discuss the issues associated with software metrics
  5. Product measurements
  6. Process measurements

Student Presentations

Desired Learning Outcomes

The student will be able to:
  1. discuss the issues associated with Statistical Quality Assurance
  2. discuss the issues associated with the Malcolm Baldrige National Quality Award
  3. discuss the issues addressed by Parzival's Briefcase

Student Presentations

Desired Learning Outcomes

The student will be able to:
  1. discuss the issues associated with information protection

Student Presentations

Desired Learning Outcomes

The student will be able to:
  1. Design Representations, HIPO Diagrams

Student Presentations

Desired Learning Outcomes

The student will be able to:
  1. discuss the issues associated with Design Representations
  2. Structure Charts
  3. Entity Structure
  4. System Specification Diagram

Student Presentations

Desired Learning Outcomes

The student will be able to:
  1. discuss the issues associated with Design Representations
  2. Entity History Diagram
  3. Structure Graphs
  4. Finite State Machines
  5. Petri Nets

Student Presentations

Desired Learning Outcomes

The student will be able to:
  1. discuss the issues associated with Intellectual Property.


Next: Project Up: Course Handout-CSC 441 Previous: Course Policies

Copyright 1995
ALL RIGHTS RESERVED
Dennis W. Butler

dbutler@galaxy.csc.calpoly.edu
Computer Science Department
Cal Poly, San Luis Obispo