Requirement Gathering & Software Design Patterns - up1/training-courses GitHub Wiki

Course :: Software Design Patterns

  • 2 วัน

Target groups

  • Software Analyst
  • Solution Architect
  • Software Developer/Programmer

Outline

1. Software Requirement Gathering

  • Software Development Life Cycle
    • Requirement
    • Architecture design
    • Analysis
    • Develop
    • Testing
    • Deployment
  • Introduction to Requirement Gathering
    • Common Challenges and Pitfalls
    • Types of Requirements:
      • Functional vs. Non-functional
      • Business vs. System Requirements
      • Technical Constraints
    • Stakeholders in Requirement Gathering
    • Workshop
  • Writing Effective Requirements
    • Characteristics of Well-Written Requirements (SMART Criteria)
    • Use Case Development
    • User Stories and Acceptance Criteria
    • Workshop

2. High level :: Architecture

  • Software architecture
    • characteristics
    • decision
    • structure
    • design principles
  • Software architecture patterns
    • ภาพรวมของสถาปัตยกรรม software แบบต่าง ๆ ข้อดีและข้อเสีย
    • Evolution of Software architecture
      • Monolith
      • Distributed Monolith
      • N-tiers
      • Service-Oriented Architecture
      • Microservices
      • Event-Driven Microservices Architecture
      • Micro Frontend
  • Design principles
    • Creational
      • How to compose or decompose service ?
      • Communication between service
    • Interface (UX/UI and API)
      • Easy to use
      • Compatibility
    • Testing
      • Test strategy
    • Operation
      • Plan for failure
      • Monitoring and observability
  • Workshop from use cases

3. Low level :: Development in each piece of software/service

  • Design pattern of Software
    • What are design patterns ?
    • Importance of design patterns in software development
    • Categories of design patterns (Creational, Structural, Behavioral)
    • The history of design patterns (Gang of Four - GoF)
  • Principles of Object-Oriented Design
    • SOLID principles
    • Encapsulation, inheritance, and polymorphism
    • Understanding coupling and cohesion
    • Composition over inheritance
  • Advanced Design Patterns and Best Practices
    • MVC (Model-View-Controller) Pattern
    • MVVM (Model-View-ViewModel) Pattern
    • Hexagonal Architecture
    • Clean architecture
  • Anti-patterns
    • Recognizing common design flaws
    • Examples: God Object, Singleton overuse, Spaghetti Code
  • Development and Delivery process
    • Understanding requirement
    • Design (draw diagrams)
    • Develop + Testing
    • Deploy
  • Workshop from use cases