Study Notes for SF220 | วซ.220 วิศวกรรมซอฟต์แวร์เบื้องต้น
SDLC: Software Development Life Cycle
General Course Information
Course Code: วซ.220 (SF220)
Course Title: วิศวกรรมซอฟต์แวร์เบื้องต้น | Introduction to Software Engineering
Department: สาขาวิชาวิศวกรรมซอฟต์แวร์, คณะวิศวกรรมศาสตร์, มหาวิทยาลัยธรรมศาสตร์
Instructor: ผศ.ดร.อัครวุฒิ ตาคม (Contact: takkhar@engr.tu.ac.th)
Learning Outline
Software Development Life Cycle (SDLC)
Concept: Overview of how software is developed from requirement gathering to deployment.
Types of Models:
Waterfall Model
Incremental Model
Agile Model
Spiral Model
Class Schedule
Week | Date | Time | Topic |
|---|---|---|---|
W01 | Fri, 9 Jan 2026 | 9.30-12.30 | Introduction to Software Engineering |
W02 | Fri, 16 Jan 2026 | 9.30-12.30 | Software Development Life Cycle (SDLC) |
W03 | Fri, 23 Jan 2026 | 9.30-12.30 | Agile Software Development |
W04 | Fri, 30 Jan 2026 | 9.30-12.30 | Requirements Engineering |
W05 | Fri, 6 Feb 2026 | 9.30-12.30 | Software Analysis |
W06 | Fri, 13 Feb 2026 | 9.30-12.30 | Software Cost Estimation |
W07 | Fri, 20 Feb 2026 | 9.30-12.30 | Exam |
Feb 22 - Mar 1 | Midterm Examination | ||
W08 | Fri, 6 Mar 2026 | 9.30-12.30 | Management of Software Development Project |
W09 | Fri, 13 Mar 2026 | 9.30-12.30 | Architectural Design |
W10 | Fri, 20 Mar 2026 | 9.30-12.30 | Design Process Part 1 - Wireframe |
W11 | Fri, 27 Mar 2026 | 17.00-19.00 | Design Process Part 2 - Mockup |
W12 | Fri, 3 Apr 2026 | 9.30-12.30 | Frontend Development |
W13 | Fri, 10 Apr 2026 | 9.30-12.30 | Integration & Testing |
W14 | Fri, 17 Apr 2026 | 9.30-12.30 | Database Integration (SQLite) |
W15 | Fri, 24 Apr 2026 | 9.30-12.30 | Software Development Project Exam |
May 5 - 19, 2026 | Final Examination |
Cognitive Load Theory
Definition: Cognitive Load Theory (CLT) explains how different types of cognitive loads affect learning.
Key Elements:
Types of Memory:
Sensory Memory: Filters out unnecessary information.
Working Memory: Active processing information.
Long-term Memory: Storage for learned information.
Cognitive Load Types:
Intrinsic Load: Complexity of the material itself.
Extraneous Load: Unproductive load imposed by how the information is presented.
Germane Load: Productive effort by learners.
Definitions and Concepts
Software Engineering
Definition: Software engineering encompasses methods and practices for building software local to ongoing projects and across multiple development epochs.
Four Fundamental Activities in Software Processes
Software Specification: Define the functions and constraints of the intended product.
Software Design & Implementation: Convert specifications and constraints into a program and operational code.
Software Validation: Ensure quality checks to align with customer expectations.
Software Evolution: Modify and adapt the software based on changing future demands.
Process Framework
Purpose: Establishes a structured representation of common project activities.
Framework Activities:
Communication
Planning
Modeling
Construction
Deployment
Business Process Modeling Notation (BPMN)
Definition: BPMN is a standard for business process diagrams that visually depicts the sequence of business activities necessary to fulfill a process.
Key Elements: Flow objects (events, activities, gateways), connecting objects, swimlanes, artifacts.
Requirements Engineering
Definition: The process of defining, documenting, and maintaining requirements in the engineering design process, focusing on user needs and expectations.
Types:
User Requirements: What users need from the system.
System Requirements: Detailed descriptions of system functions and constraints.
ซอฟต์แวร์พัฒนาโดยมีวงจรที่เรียกว่า SDLC ซึ่งประกอบด้วยหลายขั้นตอนตั้งแต่การรวบรวมความต้องการจนถึงการนำไปใช้งาน โดยมีโมเดลต่าง ๆ เช่น โมเดล Waterfall, Incremental, Agile และ Spiral นอกจากนี้ยังมีทฤษฎีเกี่ยวกับการโหลดทางปัญญา (Cognitive Load Theory) ที่อธิบายประเภทของการโหลดที่แตกต่างกันและผลกระทบต่อการเรียนรู้ รวมถึงการกำหนดและเอกสารข้อกำหนดในกระบวนการวิศวกรรมซอฟต์แวร์ที่มุ่งเน้นความต้องการและความคาดหวังของผู้ใช้งาน