CSCI 680 COURSE OBJECTIVES

General

  1. Complete Team Project
  2. In-Class discussions and assignments that facilitate developing solid software
  3. Determine how various tools and techniques for developing solid software are related, when they are most appropriate, and reasons for failure
  4. Apply and relate tools, techniques, and concepts that facilitate developing solid software (to the class project)
  5. Analyze student paper presentation topics
  6. Deep Learning

Successful Teams

  1. Apply techniques of successful teams to your 680 team
  2. Determine the expected results of implementing individual techniques for successful software teams
  3. Develop ground rules for individual and team behavior
  4. Determine which techniques are intended to solve common team problems
  5. Determine how the rules for growing a team could help prevent the need for or aid in conflict resolution
  6. Conduct team evaluations

    Why Solid Software

  1. Explain in your own words how fragile software is manifested.
  2. Discuss examples of software failures, explain why they failed and ways the failure could have been avoided
  3. Discuss the implications of software that is not solid

Defining Quality

  1. Compare and contrast quality from the point of view of multiple stakeholders.
  2. Determine the relative importance of stakeholder views of quality given a specific scenario.
  3. Compare failure types by cause, consequence, and ways to avoid.  Identify similarities and differences.

Peer Reviews

  1. Apply peer review guidelines to formal and informal reviews
  2. Distinguish different review types and compare their advantages and disadvantages
  3. Determine why peer reviews (by type) are often ineffective and ways to increase their effectiveness

Design

  1. Explain in your own words the meaning of good design and the issues involved
  2. Compare and contrast elements and issues of good design

Configuration Management

  1. Explain in your own words the purpose, advantages and essential activities/elements of configuration management
  2. Determine how configuration management benefits the different phases of a projects lifecycle

  Prediction

  1. Explain in your own words the difficulty of predicting software characteristics
  2. Identify multiple tools/techniques for predicting software characteristics and analyze their effectiveness and difficulty in generating correct results
  3. Analyze predicting effort and ROI
  4. Explain in your own words risks, risk considerations and sources, and risk management
  5. Determine, prioritize and plan for risks in a proposed/given system
  6. Compare and contrast risk management to predicting other software characteristics
  7. Apply prediction methods to your class project

Testing

  1. Compare and contrast fault types
  2. Determine what methods for developing solid software are best suited to prevent specific fault types
  3. Compare and contrast test types/strategies
  4. Explain the benefits, limitations and difficulties of testing and test planning
  5. Identify the elements of test planning and the consequences of an unplanned testing phase.
  6. Apply testing principles to the class project

Hazard Analysis

  1. Explain the reasons for conducting hazard analysis of software
  2. Compare and contrast error-handling and hazard analysis