# D4: รายงานคุณภาพและความปลอดภัย - การส่งมอบ

## เนื้อหาในการส่งมอบนี้

การส่งมอบนี้ประกอบด้วยทุกสิ่งที่คุณต้องการเพื่อให้ความเข้าใจ สอน และประเมินคะแนน **D4 (รายงานคุณภาพและความปลอดภัย)**

### ไฟล์ที่รวมอยู่:

1. **D4-TEMPLATE-TH.docx** (20 KB)
   - แม่แบบ Word พร้อมใช้สำหรับนักศึกษา
   - ทุกส่วนจัดรูปแบบล่วงหน้าพร้อมส่วนหัว ตาราง และข้อมูลตัวยึด
   - นักศึกษาสามารถกรอกข้อมูลเฉพาะโครงการของตนเอง
   - **วิธีใช้:** แจกจ่ายให้นักศึกษาในช่วงต้นสัปดาห์ที่ 11

2. **D4-STEP-BY-STEP-GUIDE-TH.md** (20 KB)
   - คู่มือฉบับละเอียดสำหรับนักศึกษาเกี่ยวกับวิธีทำ D4
   - 7 ขั้นตอนโดยละเอียดพร้อมตัวอย่างโค้ด
   - คำแนะนำการติดตั้งเครื่องมือ (cloc, Jest, ESLint, k6)
   - รายการตรวจสอบและเคล็ดลับสำหรับความสำเร็จ
   - ประมาณการเวลา 10-15 ชั่วโมง
   - **วิธีใช้:** มอบหมายให้นักศึกษาในสัปดาห์ที่ 11 และทบทวนในชั้นเรียน

3. **D4-EXAMPLE-COMPLETE-TH.md** (25 KB)
   - ตัวอย่างรายงาน D4 แบบเต็ม สำหรับ "แอปพลิเคชันจัดการงาน"
   - แสดงให้เห็นว่าการส่งมอบที่มีคุณภาพสูงควรเป็นอย่างไร
   - ตัวชี้วัดจริง ผลการค้นหาความปลอดภัย และข้อมูลการทำงาน
   - สาธิตแนวปฏิบัติที่ดีตลอดทั้งโครงการ
   - **วิธีใช้:** แสดงให้นักศึกษาเห็นเป็นการอ้างอิงในสัปดาห์ที่ 11-13

4. **D4-README-TH.md** (ไฟล์นี้)
   - คำแนะนำภาพรวมและข้อมูลอ้างอิงด่วน
   - ตารางเวลาและเหตุการณ์สำคัญ
   - วิธีใช้ไฟล์แต่ละไฟล์

---

## ตารางเวลา D4 และเหตุการณ์สำคัญ

### สัปดาห์ที่ 11: บทนำ

- วันจันทร์: นำเสนอ D4 ในชั้นเรียน
- วันพุธ: แจกแม่แบบและคู่มือทีละขั้นตอน
- วันศุกร์: การถามและตอบ นักศึกษาเริ่มรวบรวมตัวชี้วัด

### สัปดาห์ที่ 12: การพัฒนา

- ทำงานเก็บรวบรวมตัวชี้วัดคุณภาพ
- ทำการทดสอบความปลอดภัยและประสิทธิภาพ
- เริ่มร่างส่วนรายงาน

### สัปดาห์ที่ 13: การส่งมอบ

- วันจันทร์-พุธ: นักศึกษาสิ้นสุดและส่งมอบ
- วันพฤหัสบดี: เริ่มให้คะแนนโดยใช้แบบประเมินผล
- วันศุกร์: คืนเกรดและข้อเสนอแนะ

---

## ผลลัพธ์การเรียนรู้หลัก

โดยการทำ D4 นักศึกษาจะสามารถ:

1. จะสามารถวัดคุณภาพซอฟต์แวร์โดยใช้ตัวชี้วัดอุตสาหกรรม (LOC, Coverage, Complexity, Defect Density)
2. จะสามารถบังคับใช้และประเมินประตูคุณภาพ
3. จะสามารถดำเนินการประเมินความปลอดภัยตาม OWASP Top 10
4. จะสามารถทำการทดสอบการโหลดและระบุคอขวดการทำงาน
5. จะสามารถจัดทำเอกสารสรุปผลการค้นหาอย่างเป็นมืออาชีพสำหรับผู้มีส่วนได้ส่วนเสีย
6. จะสามารถตัดสินใจตามข้อมูลเกี่ยวกับการพร้อมปล่อยตัว

---

## วิธีใช้ไฟล์แต่ละไฟล์

### สำหรับนักศึกษา:

**เริ่มต้นที่นี่:**

```
สัปดาห์ที่ 11 (วันจันทร์)
├─ อ่าน D4-STEP-BY-STEP-GUIDE-TH.md (ทั้งหมด)
├─ ดู D4-EXAMPLE-COMPLETE-TH.md (สำหรับการอ้างอิง)
└─ ดาวน์โหลด D4-TEMPLATE-TH.docx (จุดเริ่มต้นของคุณ)

สัปดาห์ที่ 11-12 (ทำสิ่งนี้)
├─ ขั้นตอนที่ 1: เตรียมข้อมูลจาก D1, D2, D3
├─ ขั้นตอนที่ 2: นับบรรทัดโค้ดโดยใช้ cloc
├─ ขั้นตอนที่ 3: วัดความครอบคลุมการทดสอบด้วย Jest
├─ ขั้นตอนที่ 4: วิเคราะห์ความซับซ้อน
├─ ขั้นตอนที่ 5: เรียกใช้การวิเคราะห์แบบคงที่ (ESLint)
├─ ขั้นตอนที่ 6: ทำการทดสอบความปลอดภัย
├─ ขั้นตอนที่ 7: ทำการทดสอบประสิทธิภาพ
└─ ขั้นตอนที่ 8: เขียนรายงานโดยใช้แม่แบบ

สัปดาห์ที่ 13 (ส่งมอบ)
└─ ส่งมอบ D4 ที่สมบูรณ์โดยวันศุกร์เวลา 17:00 น.
```

### สำหรับอาจารย์ (คุณ):

**การเตรียมการ (สัปดาห์ที่ 10):**

```
1. ทบทวนไฟล์ทั้ง 4 ไฟล์เพื่อให้เข้าใจโครงสร้าง
2. ปรับแต่งตัวอย่างให้ตรงกับโครงการวิชา
3. ปรับแบบประเมินผลตามความจำเป็น (การแจกแจงคะแนน)
4. เตรียมตัวอย่างโค้ดเพื่อสอนตัวชี้วัด
5. ทดสอบเครื่องมือ (cloc, jest, eslint) ด้วยตัวเอง
```

**สัปดาห์ที่ 11 (การสอน):**

```
1. แจกแม่แบบและคู่มือในชั้นเรียน
2. แสดงรายงานตัวอย่างเป็นการอ้างอิง
3. สาธิตเครื่องมือแบบสดใจ:
   - npm test --coverage (Jest)
   - cloc src/
   - npx eslint src/
   - k6 run script.js (หรือสาธิตวิดีโอ)
4. มีเซสชั่นถามตอบกับนักศึกษา
5. โพสต์ไฟล์ทั้ง 4 ไฟล์ใน Google Classroom
```

**สัปดาห์ที่ 13 (การให้คะแนน):**

```
1. ใช้ D4-RUBRIC-AND-CHECKLIST-TH.docx เพื่อให้คะแนนการส่งมอบแต่ละรายการ
2. กรอกรายละเอียดการแบ่งคะแนนสำหรับแต่ละส่วน
3. เพิ่มข้อเสนอแนะที่สร้างสรรค์ (โดยเฉพาะในความเห็น)
4. ระบุปัญหาทั่วไปโดยใช้ส่วน "ปัญหาทั่วไป"
5. จดบันทึกคะแนนสุดท้ายให้ชัดเจน
6. ส่งคืนพร้อมข้อเสนอแนะรายละเอียดภายใน 48 ชั่วโมง
```

---

## ข้อมูลอ้างอิงด่วน: สิ่งที่ให้คะแนน

| ส่วน                | คะแนน | สิ่งสำคัญที่ต้องตรวจสอบ                                                |
| ------------------- | ----- | ---------------------------------------------------------------------- |
| ตัวชี้วัดคุณภาพ     | 25    | นับ LOC ความครอบคลุม ≥80% ความซับซ้อน <10 การคำนวณข้อบกพร่อง           |
| กระบวนการ QA        | 20    | เกตคุณภาพ การวิเคราะห์แบบคงที่ การตรวจสอบโค้ด 5 รายการขึ้นไป           |
| ความปลอดภัย         | 25    | ทบทวน OWASP Top 10 ทดสอบความปลอดภัย 4 รายการขึ้นไป ไม่มีช่องโหว่วิกฤติ |
| ประสิทธิภาพ         | 15    | ทำการทดสอบโหลด เวลาตอบสนอง ข้อเสนอแนะการปรับปรุง                       |
| การจัดการความเสี่ยง | 10    | ทบทวนความเสี่ยงก่อนหน้า ระบุความเสี่ยง 2 รายการขึ้นไป                  |
| เอกสารประกอบ        | 5     | จัดรูปแบบที่ดี ไม่มีข้อผิดพลาด ภาคผนวกสมบูรณ์                          |

**รวมทั้งสิ้น: 100 คะแนน**

**ผ่าน: 60+ คะแนน (60%)**
**เป้าหมาย (A): 80+ คะแนน (80%)**

---

## ข้อผิดพลาดทั่วไปของนักศึกษา

ดูแลสิ่งเหล่านี้เมื่อให้คะแนน:

1. **ตัวชี้วัดปลอม**
   - การอ้างสิทธิ์ความครอบคลุมไม่ตรงกับผลลัพธ์ Jest
   - เวลาตอบสนองเร็วอย่างไม่สมจริง
   - ขอให้มีหลักฐานภาพหน้าจอ

2. **ส่วนที่ขาด**
   - ประเมิน OWASP ไม่สมบูรณ์
   - ไม่ได้ทำการทดสอบความปลอดภัยจริง
   - ขาดส่วนประสิทธิภาพ

3. **การตรวจสอบโค้ดที่ไม่ดี**
   - ตรวจสอบเพียง 1-2 PR
   - ไม่มีรายการตรวจสอบหรือโครงสร้าง
   - ความเห็นไม่ชัดเจน

4. **การทดสอบไม่เพียงพอ**
   - ความครอบคลุม < 80% แต่รายงานบอกว่า "ดี"
   - ไม่ได้เรียกใช้เครื่องมือ (ESLint, SonarQube)
   - การทดสอบแบบด้วยตนเองเท่านั้น ไม่มีระบบอัตโนมัติ

5. **การวิเคราะห์ที่อ่อนแอ**
   - ระบุตัวชี้วัด แต่ไม่อธิบาย
   - ไม่มีข้อเสนอแนะสำหรับการปรับปรุง
   - คัดลอกมาจากตัวอย่างโดยไม่ปรับแต่ง

---

## เคล็ดลับสำหรับความสำเร็จ

### สำหรับนักศึกษาของคุณ:

1. **เริ่มต้นเร็ว** - การรวบรวมตัวชี้วัดใช้เวลา
2. **ใช้ระบบอัตโนมัติ** - อย่าคำนวณตัวชี้วัดด้วยตนเอง
3. **เก็บสิ่งประดิษฐ์** - บันทึกผลลัพธ์ Jest ภาพหน้าจอ รายงาน
4. **เป็นสัตย์จริง** - รายงานตัวเลขจริง แม้ว่าต่ำกว่าเป้าหมาย
5. **แสดงหลักฐาน** - ภาพหน้าจอ/สิ่งประดิษฐ์ในภาคผนวก
6. **อ้างอิงตัวอย่าง** - จัดโครงสร้างรายงานของคุณในลักษณะเดียวกัน
7. **รับข้อเสนอแนะ** - ให้เพื่อนร่วมชั้นตรวจสอบก่อนส่ง

### สำหรับคุณ (อาจารย์):

1. **ให้คะแนนอย่างสอดคล้องกัน** - ใช้แบบประเมินผลอย่างเข้มงวดสำหรับนักศึกษาทั้งหมด
2. **แบ่งปันตัวอย่าง** - แสดง 2-3 ส่วนที่ดีหลังให้คะแนน
3. **ให้ข้อเสนอแนะเร็ว** - ส่งคืนเกรดในสัปดาห์ที่ 13 (ไม่ล่าช้า)
4. **ฉลองความเป็นเลิศ** - แบ่งปันส่วนที่ส่งมอบดี (ได้รับอนุญาต)
5. **แก้ไขช่องว่าง** - หากนักศึกษาหลายคนขัดสน ให้ทบทวนแนวคิดในชั้นเรียน
6. **คะแนนโบนัส** - รางวัลการทดสอบการทะลวงเพิ่มเติม การวิเคราะห์เพิ่มเติม
7. **หักคะแนนอย่างยุติธรรม** - การลงโทษส่งมอบล่าช้า ธงการดัดแปลง

---

## เครื่องมือและทรัพยากรสำคัญ

### เครื่องมือที่นักศึกษาจะใช้:

- **cloc** - นับบรรทัดโค้ด

  ```bash
  npm install -g cloc
  cloc src/
  ```

- **Jest** - กรอบการทดสอบที่มีความครอบคลุม

  ```bash
  npm test -- --coverage
  ```

- **ESLint** - การวิเคราะห์คุณภาพโค้ด

  ```bash
  npm install --save-dev eslint
  npx eslint src/
  ```

- **k6** - ทดสอบการโหลด

  ```bash
  k6 run load-test.js
  ```

- **SonarQube** - การวิเคราะห์ขั้นสูงเป็นทางเลือก
  ```bash
  https://www.sonarqube.org/
  ```

### ทรัพยากรในการแบ่งปัน:

- OWASP Top 10: https://owasp.org/www-project-top-ten/
- Jest Docs: https://jestjs.io/
- ESLint: https://eslint.org/
- k6 Docs: https://k6.io/
- IEEE 830 SRS: https://standards.ieee.org/

---

## ตารางเวลาการให้คะแนนที่แนะนำ

**สัปดาห์ที่ 13:**

- วันจันทร์-อังคาร: นักศึกษาส่งมอบ D4
- วันพุธ: ให้คะแนน 25% ของการส่งมอบ (ตรวจความสมบูรณ์)
- วันพฤหัสบดี: ให้คะแนนอีก 75% (แบบประเมินผลแบบเต็ม)
- วันศุกร์: เสร็จการให้คะแนน เพิ่มข้อเสนอแนะ

**สัปดาห์ที่ 14:**

- วันจันทร์: ส่งคืนเกรดและข้อเสนอแนะให้นักศึกษา
- วันพุธ: พูดคุยปัญหาทั่วไปที่พบในการส่งมอบ
- วันศุกร์: แสดงตัวอย่างของการส่งมอบที่ยอดเยี่ยม

---

## ความคาดหวังการแจกแจงเกรด

ขึ้นอยู่กับ 100 คะแนน:

- **A (90-100):** ประมาณ 15-20% ของนักศึกษา
  - ตัวชี้วัดทั้งหมดยอดเยี่ยม ไม่มีปัญหาความปลอดภัยวิกฤติ
  - การทดสอบที่ครอบคลุม รายงานมืออาชีพ

- **B+ (80-89):** ประมาณ 30-40% ของนักศึกษา
  - ตัวชี้วัดเป็นไปตามเป้าหมาย ปัญหาปานกลาง 1-2 รายการ
  - การทดสอบที่ดี จัดโครงสร้างที่ดี

- **B (70-79):** ประมาณ 25-35% ของนักศึกษา
  - ตัวชี้วัดยอมรับได้ แต่มีพื้นที่สำหรับการปรับปรุง
  - การทดสอบอาจจะละเอียดมากขึ้น

- **C+ (60-69):** ประมาณ 10-15% ของนักศึกษา
  - ตัวชี้วัดต่ำกว่าเป้าหมาย ส่วนที่ขาด
  - การทดสอบพื้นฐานเท่านั้น

- **ต่ำกว่า 60:** น้อยกว่า 5% ของนักศึกษา
  - ควรจะหายากหากคุณสอนได้ดี

---

## ขั้นตอนถัดไปหลัง D4

หลังจากนักศึกษาทำ D4 เสร็จ พวกเขาเปลี่ยนไปเป็น **D5 (ส่งมอบสุดท้าย)**:

- แก้ไขปัญหาวิกฤติที่พบใน D4
- บังคับใช้ข้อเสนอแนะการปรับปรุง
- ปรับปรุงเอกสารประกอบให้สำเร็จ
- เตรียมการนำเสนอ (สัปดาห์ที่ 15)

ใช้ผลการค้นหา D4 เพื่อสร้างข้อกำหนด D5

---

## การสนับสนุน

### หากนักศึกษามีคำถาม:

ชี้นำพวกเขาไปที่:

1. D4-STEP-BY-STEP-GUIDE-TH.md (คำตอบส่วนใหญ่อยู่ที่นั่น)
2. D4-EXAMPLE-COMPLETE-TH.md (ดูตัวอย่างจริง)
3. ช่วงเวลาออฟฟิศ
4. อีเมล: wittawas@buu.ac.th

### หากคุณมีคำถาม:

นี่คือคำแนะนำจาก:

- วิชาการพัฒนาซอฟต์แวร์ (88744065)
- สร้างเมื่อ: มีนาคม 2025
- ติดต่อ: wittawas@buu.ac.th

---

## คู่มือการปรับแต่ง

คุณอาจต้องการแก้ไข:

### แม่แบบ (D4-TEMPLATE-TH.docx):

- เพิ่มโลโก้มหาวิทยาลัยของคุณ
- เปลี่ยนข้อมูลติดต่อของคุณ
- ปรับตารางรายละเอียดโครงการ
- ปรับแต่งส่วนภาคผนวก

### คู่มือทีละขั้นตอน (D4-STEP-BY-STEP-GUIDE-TH.md):

- อัปเดตเวอร์ชันเครื่องมือ
- เพิ่มขนาดทีมเฉพาะของคุณ
- ปรับการแบ่งคะแนน
- เพิ่มข้อกำหนดเฉพาะโครงการ

### ตัวอย่าง (D4-EXAMPLE-COMPLETE-TH.md):

- แทนที่ด้วยโครงการของมหาวิทยาลัยของคุณ
- แสดงตัวชี้วัดที่ตรงกับระดับของนักศึกษาของคุณ
- อัปเดตผลลัพธ์เครื่องมือให้ตรงกับการตั้งค่าของคุณ

### แบบประเมินผล (D4-RUBRIC-AND-CHECKLIST-TH.docx):

- ปรับคะแนนหากจำเป็น (รวมทั้งสิ้นต้องเป็น 100)
- เพิ่ม/ลบคะแนนโบนัส
- ปรับแต่งกฎการหักคะแนน
- เพิ่มข้อกำหนดเฉพาะสำหรับชั้นเรียนของคุณ

---

## รายการตรวจสอบก่อนใช้

- [ ] ทบทวนไฟล์ทั้ง 4 ไฟล์
- [ ] ทดสอบเครื่องมือทั้งหมดด้วยตัวเอง (cloc, jest, eslint, k6)
- [ ] ปรับแต่งแม่แบบด้วยข้อมูลของคุณ
- [ ] อัปเดตตัวอย่างหากต้องการ
- [ ] พิมพ์แบบประเมินผลสำหรับผู้ให้คะแนน
- [ ] เตรียมการสาธิตแบบสดใจของเครื่องมือสำหรับชั้นเรียน
- [ ] กำหนดเวลาช่วงเวลาออฟฟิศสำหรับสัปดาห์ที่ 11-12
- [ ] โพสต์ไฟล์ใน Google Classroom

---

## ตัวชี้วัดความสำเร็จ

คุณจะรู้ว่า D4 ทำงานได้ดีหากมี:

- 80%+ ของนักศึกษาได้ 70+ คะแนน (C หรือดีกว่า)
- นักศึกษาเข้าใจตัวชี้วัดคุณภาพซอฟต์แวร์
- ค้นพบและแก้ไขช่องโหว่ความปลอดภัย
- ปรับปรุงประสิทธิภาพตามผลการค้นหา
- รายงานแสดงคุณภาพระดับมืออาชีพ
- นักศึกษาใช้บทเรียนในโครงการในอนาคต

---

## หมายเหตุสุดท้าย

D4 เป็นหนึ่งในส่วนช่วยให้นิสิต:

- คิดเหมือนวิศวกร QA
- เข้าใจข้อกำหนดด้านความปลอดภัย
- ตัดสินใจตามข้อมูล
- สื่อสารผลการค้นหาทางเทคนิคอย่างเป็นมืออาชีพ

ลงทุนเวลาในการสอนให้ดี แล้วคุณจะเห็นประโยชน์ใน D5 และต่อไป

---
