Software Quality Plan

Your second presentation in this field session will cover your software quality plan as well as ethical considerations as applied to your project. You will have 15 minutes for your presentation, which will be given to one or two other teams and one or two team advisers; all listeners will provide feedback on your presentation following the evaluation criteria.

Your presentation can be divided however you wish between covering your software quality plan and ethical considerations, as long as both are given sufficient coverage. A description of each section is given below.

Software quality plan

Software quality is a complex topic in software engineering. It encompasses many ideas and activities, including software testing, verification and validation, code reviews, quality assurance, code audits and program analysis, and much more. There are highly formal educational programs and certifications in software quality techniques, and in quality assurance in general.

Agile development processes typically de-emphasize many of the formal techniques in favor of lightweight approaches such as unit testing. Agile methods rely on frequent customer interactions to validate that the code is meeting the customer's needs; problems are immediately addressed in the next iteration. Agile emphasizes many practices intended to ensure high quality is baked in early, reducing many sources of bugs: pair programming, test-driven development, aggressive refactoring, simplicity, etc.

At the end of the day, though, a good "definition of done" should include some aspects of software quality assurance beyond simply following the practices agreed upon for your agile process. Any good project should have a plan in place for ensuring software quality before releasing it into the wild.

For this section of your talk, discuss the elements of your software quality plan, how you will implement those elements (e.g., if automated testing tools will be used, what tools? what will be tested?), and what aspects of code quality are being addressed by each element (defect detection, coding standards, verification, validation, etc.) Here are some possible elements to include in your quality plan:

  • Unit testing
  • User interface testing (automated or otherwise)
  • Integration testing
  • Code reviews
  • User acceptance testing
  • Code metrics
  • Static or dynamic program analysis

If you are unsure of what any of these are, Wikipedia is a decent source of definitions.

Ethics

As we have already covered Ethics in lecture, it will not be re-hashed here. For this portion of your presentation, we ask that you address the following questions:

  • Which ACM/IEEE Principles are particularly pertinent to the development of your product? Why?
  • Which ACM/IEEE Principles are most in danger of being violated? What can be the negative impact if these Principles are indeed violated?
  • Apply two Tests articulated by Michael Davis to your product. See the Ethics Framework slides for the tests.
  • What are the ethical considerations for your project if your software quality plan is not implemented properly (or is not comprehensive enough)?

Presentation Schedule

Tuesday, October 24 - Green Center Petroleum Hall
9:30 - 12:00
(Kathleen and Iris)
5 Star General Contracting 1
BPX
BurstIQ
CSM Fierro
Goalkeeper
Hi Labs 2
Keeping Labor Safe 1
Venvee 2
Tuesday, October 24 - Student Center Ballroom C
9:30 - 12:00
(CPW and Bo)
CSM Gilmore
CSM Jobe 2
Energy Royal Partners
FTI
Hi Labs 3
Rocky Mountain Lab Rescue
Salesforce
Thursday, October 26 - Green Center Petroleum Hall
9:30am - 12:00pm
(Kathleen)
CSM Bodeau
CSM Jobe 1
Fulfilld
Hi Labs 1
Keeping Labor Safe 3
Ricoh
Steadi Systems
Venvee 1
Thursday, October 26 - Student Center Ballroom C
9:30am - 12:00pm
(CPW and Bo)
5 Star General Contracting 2
Colorado Education Association
CSM Olsen
Keeping Labor Safe 2
Saga
Stratom
Swim Tech LLC
Well Information Technologies
“Quality is free, but only to those who are willing to pay heavily for it.” - Tom DeMarco and Timothy Lister