Objective:
In this activity, you and your team will apply software quality concepts to your project by:
- Identifying and prioritizing key software qualities for your system.
- Selecting quality management activities that fit your project’s needs.
- Exploring how AI can assist in improving software quality.
- Developing a brief quality management plan for your project.
Each team will then present their plan in a brief summary presentation.
Instructions:
Step 1: Identifying & Prioritizing Software Qualities (10 Minutes)
- Review key software quality attributes from the slides, such as:
- Reliability
- Maintainability
- Usability
- Efficiency
- Security
- Portability
- Scalability
- As a team, rank these attributes based on their importance for your project.
- Scale: Assign a score from 1-10 to each quality (1 = low importance, 10 = critical).
- Justify your rankings: Why are the top qualities most important for your system?
- Discuss trade-offs: Are there any conflicts between qualities? (e.g., security vs. usability).
Step 2: Selecting Quality Management Activities (10 Minutes)
- Identify appropriate quality management activities for your project:
- Code Reviews
- Automated Testing
- Performance Monitoring
- Security Audits
- User Testing
- Continuous Integration & Deployment (CI/CD)
- Documentation Improvements
- Discuss how you can reasonably implement these activities within the time left in your project.
- Which activities are most critical to improving software quality?
- How much time and effort can you realistically dedicate?
- Can you integrate these into your existing workflow?
Step 3: Exploring AI-Assisted Quality Improvement (10 Minutes)
AI can help automate and improve software quality. Discuss the following with your team:
- How AI Can Improve Software Quality:
- Automated Code Reviews: Tools like GitHub Copilot and DeepCode suggest fixes and improvements.
- Automated Testing: AI-based test generation using tools like Test.ai or Selenium AI.
- Bug Detection: AI-driven static analysis (e.g., SonarQube, DeepCode).
- Performance Optimization: AI-based monitoring tools that detect performance issues in real-time.
- Security Analysis: AI-powered security scanners like Snyk or Checkmarx.
- Applying AI to Your Project:
- Which AI-based tools could help improve your software’s top quality attributes?
- Can you integrate automated testing or bug detection?
- Would AI-generated documentation or code suggestions be useful?
Step 4: Developing a Quality Management Plan (10 Minutes)
Each team will create a brief quality management plan outlining:
- Project Overview: Briefly describe your system.
- Top 3-4 Software Qualities: Based on your rankings, which qualities are most important?
- Selected Quality Management Activities:
- Which activities will you focus on?
- How will you apply them in the remaining time?
- AI-Assisted Quality Enhancements:
- How can AI tools assist in improving your project’s quality?
Step 5: Team Presentations (5 Minutes per Team)
Each team will give a brief 5-minute presentation covering:
- Which software qualities they prioritized and why.
- Quality management activities they plan to implement.
- How AI will help improve their system’s quality.
- Their final quality management plan.
After each presentation, 1-2 minutes of discussion will allow other teams to provide feedback or ask questions.
Wrap-Up & Reflection
- Quality is critical in real-world software projects.
- Different projects require different quality focuses—trade-offs exist.
- AI tools can enhance quality, but teams must choose wisely where to use them.
- A structured quality management plan helps ensure projects meet user expectations.
