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

  1. 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:

    1. Types of Memory:

    • Sensory Memory: Filters out unnecessary information.

    • Working Memory: Active processing information.

    • Long-term Memory: Storage for learned information.

    1. 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
  1. Software Specification: Define the functions and constraints of the intended product.

  2. Software Design & Implementation: Convert specifications and constraints into a program and operational code.

  3. Software Validation: Ensure quality checks to align with customer expectations.

  4. 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) ที่อธิบายประเภทของการโหลดที่แตกต่างกันและผลกระทบต่อการเรียนรู้ รวมถึงการกำหนดและเอกสารข้อกำหนดในกระบวนการวิศวกรรมซอฟต์แวร์ที่มุ่งเน้นความต้องการและความคาดหวังของผู้ใช้งาน