Next: Project
Up: Course Handout-CSC 441
Previous: Course Policies
Course Outline: CSC 441
Introduction
Desired Learning Outcomes
The student will:
- be familiar with the class policies on grading, academic
integrity, homework, and participation.
- be able to explain the content of the course,
- understand the course requirements (labs, presentation,
et cetera).
Reading Assignment---due next class meeting
- Pressman, Chapter 10.
- Rakos, Chapter 7.
- Brooks, Chapter 13.
Lab Assignment
- Conduct preliminary research on paper topics.
- Start journal.
- Think about the role you want to play during this course.
Software Design Fundamentals
Desired Learning Outcomes
The student will be able to:
- Describe the inputs into the software design phase.
- Define "software design" in terms of its purpose and the
activities associated with this phase.
- List the high-level guidelines for evaluating the quality
of a software design.
- Define "modularity" and explain its use in software
development.
- Define "Software Architecture."
- Explain the concept of "information hiding," including
the possible benefits of applying this technique.
- Explain the concept of "cohesion" and describe its
benefits.
- Explain the concept of "coupling" and describe why
software engineers avoid coupling.
Reading Assignment: Due next class meeting
Lab Assignment
- Sign up for paper topics.
- Sign up for roles.
- Prepare for Program Management Review (PMR). We will
hold the PMR during the lab periods for session 4. We will
review the current status of the project, including the
documentation baseline and the schedule.
Data Flow Design
Desired Learning Outcomes
The student will be able to:
- describe the applications for which data flow design
approaches are indicated,
- describe the applications for which data flow design
approaches are not indicated,
- list and explain the five steps a software engineer would
employ to transition from information flow to program
structure,
- apply the five steps to an information flow to yield a
suitable program structure,
- define, compare and contrast the two types of information
flows: transform and transaction,
- describe and explain the overall approach to the data
flow-oriented design methodology,
- explain how to conduct a "transform analysis",
- apply transform analysis to a DFD,
- explain the concept of factoring, with respect to the
data flowÜoriented design methodology,
- explain how to conduct a transaction analysis,
- apply transaction analysis to a DFD,
- list and explain the seven design heuristics,
- describe the additional documentation required after
transform and transaction analysis is complete
- 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:
- state and explain the three concepts that makes Object-
Oriented Design (OOD) unique among software design
methodologies,
- explain the evolution of OOD,
- define OOD terms:
- object
- operation
- message,
- information hiding
- modularity
- class
- inheritance
- instance
- list and explain the five basic design principles
applicable to modular software architectures,
- compare and contrast protocol description and
implementation description of an object,
- explain the work necessary to refine an object-oriented
analysis into an object-oriented design,
- describe the three types of operations,
- explain the purposes of grammatical parsing of
specifications,
- explain how to specify interfaces among modules,
- 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:
- explain the situations in which data-oriented design
methods may be applicable,
- compare and contrast data-oriented design methods with
data flow methodologies and object-oriented design,
- describe the steps necessary to conduct a Jackson System
Development,
- 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:
- identify the factors that software engineers can use to
differentiate among computer users,
- explain the four generic types of tasks that a computer
user may need to perform,
- describe the evolution of human-computer interfaces,
- explain each of the four models a software engineer must
integrate while designing an HCI,
- explain the concept of task modeling and show how a
software engineer can apply it to an HCI design,
- 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,
- differentiate between the two kinds of help facilities,
- list and explain the characteristics of error messages,
- describe HCI implementation tools and explain their
utility,
- describe a software engineer can evaluate an HCI,
- list and describe the general interaction guidelines for
an HCI,
- list and describe the guidelines for the information
display of an HCI,
- list and describe the guidelines for the data inputs of
an HCI,
Reading Assignment: Due next class meeting
- Pressman, Chapter 16.
- Brooks, Chapter 15
- Rakos, Chapter 9
Programming Languages and Coding
Desired Learning Outcomes
The student will be able to:
- list and describe the psychological characteristics of
programming languages,
- distinguish between syntatic and semantic models of the
programming process,
- list and describe the five "engineering" factors
associated with programming languages,
- list and describe the criteria a software engineer may
use in choosing a programming language
- describe the various data types available in common
computer languages,
- list and describe the 5 levels of typing checking,
- explain the key characteristics of each of the classes of
programming languages and give examples of each,
- explain why Brooks argues against the maintenance of
separate design and code archives,
- discuss the issues associated with code documentation,
- discuss the issues associated with data declarations,
- discuss the issues associated with statement
construction,
- discusss the issues associated with input and output,
- 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:
- list and describe the objectives of software testing,
- describe the flow of information in software testing,
- differentiate between "black box" and "white box"
testing,
- list the four objectives of white box testing,
- explain why white box testing is important,
- explain in detail the basis path testing approach,
- explain in detail control structure testing,
- explain in detail data flow testing,
- explain in detail loop testing,
- list the categories of errors black box testing will
identify,
- explain the equivalence partitioning method of black box
testing,
- explain boundary value analysis,
- explain cause and effect graphing techniques,
- explain comparison testing,
- 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:
- compare and contrast verification and validation,
- discuss organizational alternatives for testing,
- describe the various levels of testing and the
corresponding phase of the software engineering process being
tested,
- explain in detail the five areas of interest in unit
testing,
- list and explain the testing a software engineer should
conduct for interfaces,
- list and explain the tests a software engineer should
conduct for the local data structures,
- list and explain the tests a software engineer should
conduct for boundary conditions
- discuss the concept and application of independent path
testing,
- discuss the issues associated with error-handling
testing,
- describe unit testing procedures,
- discuss the drawbacks inherent in non-incremental
integration,
- discuss the various methods of incremental integration,
- list and describe the steps associated with the
integration process,
- compare and contrast bottom-up and top-down integration,
- outline a test specification, describing the purpose of
each section
- describe the purpose of validation testing,
- identify the source of validation test criteria,
- compare and contrast alpha and beta testing,
- discuss the issues associated with system testing,
- list and describe the various types of testing conducted
in system test,
- 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:
- explain why software maintenance is necessary,
- list and describe the four types of software maintenance,
- compare and contrast structured and unstructured software
maintenance approaches,
- discuss all of the costs associated with the maintenance
process,
- list and discuss the factors affecting the
maintainability of software,
- list and describe metrics a software engineer can use to
measure the software maintenance process,
- 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:
- 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:
- list and describe the benefits of an integrate CASE
environment,
- describe the integration options for a CASE environment
Student Presentations
Desired Learning Outcomes
The student will be able to:
- discuss the issues associated with software safety
- Safety Engineering
- Faulty Tolerance
- discuss the issues associated with software metrics
- Product measurements
- Process measurements
Student Presentations
Desired Learning Outcomes
The student will be able to:
- discuss the issues associated with Statistical Quality
Assurance
- discuss the issues associated with the Malcolm Baldrige
National Quality Award
- discuss the issues addressed by Parzival's Briefcase
Student Presentations
Desired Learning Outcomes
The student will be able to:
- discuss the issues associated with information protection
Student Presentations
Desired Learning Outcomes
The student will be able to:
- Design Representations, HIPO Diagrams
Student Presentations
Desired Learning Outcomes
The student will be able to:
- discuss the issues associated with Design Representations
- Structure Charts
- Entity Structure
- System Specification Diagram
Student Presentations
Desired Learning Outcomes
The student will be able to:
- discuss the issues associated with Design Representations
- Entity History Diagram
- Structure Graphs
- Finite State Machines
- Petri Nets
Student Presentations
Desired Learning Outcomes
The student will be able to:
- 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