CSCI 370 - Lecture 11: Software Requirements, Design Principles, Development Models, UML Diagrams, and Design Patterns

This lecture primarily focused on reviewing a midterm exam and elaborating on important concepts in software engineering. Below is a detailed breakdown of the key points discussed, with elaborations where necessary.


πŸ” Functional vs. Non-Functional Requirements


☁️ Benefits of Using Cloud Software


🧱 Strategy Pattern


🧼 Code Quality - DRY Principle


🧩 Relationships Between Classes

Example: MedicalRecord and Database


πŸ” Incremental Development


πŸ“ Design Principle - Open/Closed Principle


⚠️ Software Engineering Challenges


πŸ•΅οΈ Observer Pattern


☝️ Singleton Pattern


πŸ”„ Incremental Development: True/False


βš™οΈ Missing Step in Process


🚰 Waterfall Model Use Cases


πŸ“Š Process Order

  1. Feasibility (Can we do it?)
  2. Requirements
  3. Design
  4. Development
  5. Testing
  6. Deployment & Maintenance (follow afterward)

πŸ” Reusable Software


πŸ–Ό UML Diagrams


🧰 Best Design Practice


πŸ§‘β€πŸ’Ό Maintainability in High Turnover Environments


πŸŽ“ Degree Requirement


πŸ’Ό Software Project Scope


πŸ” Process Not Required in Software Discovery


πŸ§ͺ Summary of Design Patterns Mentioned


βœ… Key Takeaways