In-Class discussions and assignments that facilitate developing solid software
Determine how various tools and techniques for developing solid software
are related, when they are most appropriate, and reasons for failure
Apply and relate tools, techniques, and concepts that facilitate
developing solid software (to the class project)
Analyze student paper presentation topics
Deep Learning
Successful Teams
Apply techniques of successful teams to your 680 team
Determine the expected results of implementing individual techniques
for successful software teams
Develop ground rules for individual and team behavior
Determine which techniques are intended to solve common team problems
Determine how the rules for growing a team could help prevent the need for or aid in conflict
resolution
Conduct team evaluations
Why Solid Software
•Explain in your own words
how fragile software is manifested.
•Discuss examples of software
failures, explain why they failed and ways the failure could have
been avoided
•Discuss the implications of
software that is not solid
Defining Quality
•Compare and contrast
quality from the point of view of multiple stakeholders.
•Determine the relative importance
of stakeholder views of quality given a specific scenario.
•Compare failure types by cause,
consequence, and ways to avoid.Identify similarities and differences.
Peer Reviews
Apply peer review guidelines to formal and informal reviews
Distinguish different review types and compare their advantages and disadvantages
Determine why peer reviews (by type) are often ineffective and ways to
increase their effectiveness
Design
•Explain in your own words
the meaning of good design and the issues involved
•Compare and contrast elements and
issues of good design
Configuration Management
Explain in your own
words the purpose, advantages and essential
activities/elements of
configuration management
Determine how
configuration management benefits the different
phases of a projects lifecycle
Prediction
Explain in your own words
the difficulty of predicting software characteristics
•Identify multiple tools/techniques for predicting
software characteristics and analyze their effectiveness and
difficulty in generating correct results
Analyze predicting effort and ROI
Explain in your own words risks,
risk considerations and sources, and risk management
Determine, prioritize and plan for risks in a proposed/given system
Compare and contrast risk
management to predicting other software characteristics
Apply prediction methods to your
class project
Testing
Compare and contrast fault types
Determine what methods for developing solid software are best
suited to prevent specific fault types
Compare and contrast test types/strategies
Explain the benefits, limitations and difficulties of testing and test planning
Identify the elements of test planning and the consequences of an unplanned
testing phase.
Apply testing principles to the class project
Hazard Analysis
Explain the reasons for conducting hazard analysis of software
Compare and contrast error-handling and hazard analysis