Requirement Gathering & Software Design Patterns
- TTSA09
- Classroom
- Fundamental
- Thai | 0
หลักสูตรนี้มุ่งเน้นการสร้างความเข้าใจในกระบวนการพัฒนาซอฟต์แวร์ตั้งแต่ต้นน้ำจนถึงปลายน้ำ ครอบคลุมการเก็บความต้องการ (Requirement Gathering) อย่างมีประสิทธิภาพเพื่อเปลี่ยนโจทย์ทางธุรกิจให้เป็นสเปกทางเทคนิคที่ชัดเจน ผู้เรียนจะได้เจาะลึกการออกแบบสถาปัตยกรรมระดับภาพรวม (High-level Architecture) ผ่านวิวัฒนาการตั้งแต่อภิมหาระบบอย่าง Monolith จนถึง Microservices และ Event-Driven เพื่อเลือกใช้โครงสร้างที่เหมาะสมกับองค์กร นอกจากนี้ยังลงลึกถึงการออกแบบระดับโค้ด (Low-level Design) ด้วย Design Patterns, SOLID Principles และ Clean Architecture พร้อมเวิร์กช็อปจากกรณีศึกษาจริงเพื่อนำไปประยุกต์ใช้ในการส่งมอบซอฟต์แวร์คุณภาพสูงได้อย่างเป็นระบบ
Course description
Time
Instructor
Venue
Requirement Gathering & Software Design Patterns
- เพื่อให้ผู้เรียนเข้าใจเทคนิคการเก็บ วิเคราะห์ และเขียนความต้องการทางซอฟต์แวร์ (ทั้ง Functional และ Non-functional) ในรูปแบบ Use Cases และ User Stories ได้อย่างถูกต้องและสอดคล้องกับเกณฑ์ SMART
- เพื่อให้ผู้เรียนเข้าใจหลักการวิเคราะห์และตัดสินใจเลือกรูปแบบสถาปัตยกรรมระดับภาพรวม (เช่น Microservices, Event-Driven, SOA) ตลอดจนวางแผนกลยุทธ์การสื่อสารระหว่างเซอร์วิส การทดสอบ และการเฝ้าระวังระบบ (Monitoring & Observability)
- เพื่อให้ผู้เรียนสามารถประยุกต์ใช้หลักการเขียนโปรแกรมเชิงวัตถุ (OOP), SOLID Principles และ Design Patterns ระดับโค้ด เช่น Clean Architecture หรือ Hexagonal Architecture ได้อย่างมีประสิทธิภาพ
- เพื่อให้ผู้เรียนสามารถระบุและหลีกเลี่ยงข้อผิดพลาดทั่วไปในการออกแบบ (Anti-patterns) พร้อมนำกระบวนการพัฒนาและทดสอบที่มีมาตรฐานไปปรับใช้ในสภาพแวดล้อมการทำงานจริงได้
- Software Analyst
- Solution Architect
- Software Developer/Programmer
- เข้าใจเทคนิคการเก็บ วิเคราะห์ และเขียนความต้องการทางซอฟต์แวร์ (ทั้ง Functional และ Non-functional) ในรูปแบบ Use Cases และ User Stories ได้อย่างถูกต้องและสอดคล้องกับเกณฑ์ SMART
- เข้าใจหลักการวิเคราะห์และตัดสินใจเลือกรูปแบบสถาปัตยกรรมระดับภาพรวม (เช่น Microservices, Event-Driven, SOA) ตลอดจนวางแผนกลยุทธ์การสื่อสารระหว่างเซอร์วิส การทดสอบ และการเฝ้าระวังระบบ (Monitoring & Observability)
- สามารถประยุกต์ใช้หลักการ Object-Oriented Design, SOLID Principles และ Design Patterns ระดับโค้ด เช่น Clean Architecture หรือ Hexagonal Architecture ได้อย่างมีประสิทธิภาพ
- สามารถระบุและหลีกเลี่ยงข้อผิดพลาดทั่วไปในการออกแบบ (Anti-patterns) พร้อมนำกระบวนการพัฒนาและทดสอบที่มีมาตรฐานไปปรับใช้ในสภาพแวดล้อมการทำงานจริงได้
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
- Creational
- 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
Payment can be made by:
- Cash or Credit Card or Bank Cheque payable to
สำนักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ or National Science and Technology Development Agency
(a post-dated cheque is not accepted) on the first day of the service or within the last day of the service. - Account transfer and send the proof of the payment (the deposit slip) via email ttd@swpark.or.th
- ธนาคารกรุงเทพ สาขาอุทยานวิทยาศาสตร์
Saving Account Number: 080-0-00001-0
Account Name: สำนักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ - ธนาคารกรุงไทย สาขาตลาดไท
Saving Account Number: 152-1-32668-1
Account Name: สำนักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ
- ธนาคารกรุงเทพ สาขาอุทยานวิทยาศาสตร์
Notes:
- Withholding tax (3%) is exempt.
- Should you need to withdraw, you must send the notice of the withdrawal in writing no later than 7 working days before the commencement date. The cancellation less than 7 days will be subject to a fine of 40% of the fee.
- Software Park Thailand reserves the rights to cancel courses due to unforeseen circumstances.
Contact Person
For more information, contact our course coordinator on:
10,000 THB .
***สำคัญ!!! กรุณารอการยืนยันเปิดการอบรมจากเจ้าหน้าที่ก่อนการชำระค่าลงทะเบียน***
***สำคัญ!!! กรุณารอการยืนยันเปิดการอบรมจากเจ้าหน้าที่ก่อนการชำระค่าลงทะเบียน***
Course Detail :
Instructor info
Mr.Somkiat Puisungnoen
Software Engineering / Software Practitioner / Agile Practitioner and Technical / Software Analyst / Software developer
