รายละเอียด

การออกแบบและพัฒนาซอฟต์แวร์ / Software Design and Development

  • 17 สัปดาห์
  • จำนวนนักศึกษา 0 คน
  • อาจารย์ผู้สอน 1 คน

ข้อมูลรายวิชา

  • รหัสรายวิชา : ENGCE112
  • ชื่อรายวิชา(TH) : การออกแบบและพัฒนาซอฟต์แวร์
  • ชื่อรายวิชา (EN) : Software Design and Development
  • เทอม / ปีการศึกษา : 1/2563

รายละเอียด

เว็บไซต์: https://pratch.github.io/software-dev/

Microsoft Team Code: wvii19k

วิธีเข้าร่วมห้องเรียนใน MS Team โดยใช้ team code

- Windows: ในโปรแกรม Teams ให้ไปที่เมนู Teams -> กด Join or create a team -> ในกล่อง Join a team with a code ให้กรอก code ของรายวิชาแล้วกด Enter

- Android: ในแอพ Teams ให้ไปที่แท็บ Teams -> กดปุ่ม ... ข้างบน (ข้างแว่นขยาย) -> เลือก Join a team with a code -> กรอก code ของรายวิชาแล้วกด Join ** 

รายวิชา - การออกแบบและพัฒนาซอฟต์แวร์

วิศวกรรมซอฟต์แวร์เบื้องต้น ระเบียบวิธีการพัฒนาซอฟต์แวร์ และการควบคุมเวอร์ชัน
- นิยามและจุดมุ่งหมายของวิศวกรรมซอฟต์แวร์
- กระบวนการพัฒนาซอฟต์แวร์
- โมเดลการพัฒนาแบบ Waterfall
- โมเดลการพัฒนาแบบ Agile และวิธี Scrum
- ข้อดีข้อเสียของโมเดลการพัฒนาแบบต่างๆ
- การควบคุมเวอร์ชัน (Version Control)
- ปฏิบัติการควบคุมเวอร์ชันด้วยโปรแกรม Git

กิจกรรม : บรรยาย ยกตัวอย่างประกอบปฏิบัติการตามใบงาน

ภาษาจาวากับแนวคิดการเขียนโปรแกรมเชิงวัตถุ
- ความหมายของโปรแกรมเชิงวัตถุ
- เปรียบเทียบกระบวนทัศน์การเขียนโปรแกรมเชิงกระบวนคำสั่งกับเชิงวัตถุ
- นิยามของคลาส วัตถุ และอินสแตนส์
- เมธอดและคุณสมบัติ
- การเขียนโปรแกรมด้วยภาษาจาวาเบื้องต้น
- โครงสร้างโฟลเดอร์ของ Java Project
- ฝึกปฏิบัติใช้เครื่องมือพัฒนาโปรแกรมด้วยภาษาจาวาและเขียนโปรแกรมภาษาจาวา

กิจกรรม : บรรยาย ยกตัวอย่างประกอบปฏิบัติการตามใบงาน

การออกแบบและสร้างคลาส การซ่อนข้อมูล
- การวิเคราะห์ปัญหาและออกแบบคลาสด้วย UML Class Diagram
- การนิยามคลาสและสร้างวัตถุ
- คอนสตรัคเตอร์ (Constructor)
- การโอเวอร์โหลด (Overload) คอนสตรัคเตอร์
- คำสั่ง this
- การซ่อนข้อมูล (Encapsulation)
- การกำหนดการเข้าถึงสมาชิกของคลาส (Access Modifier)
- ปฏิบัติการเขียนโปรแกรมเพื่อสร้างคลาสโดยมีกำหนดการเข้าถึงสมาชิก

กิจกรรม : บรรยาย ยกตัวอย่างประกอบปฏิบัติการตามใบงาน

การประกอบและสืบทอดคลาส
- การนำโค้ดกลับมาใช้ใหม่ (Code Reusability)
- การประกอบ (Composition)
- การสืบทอดคลาส (Inheritance)
- ความสัมพันธ์แบบ IS-A และ HAS-A
- ปฏิบัติการเขียนโปรแกรมการสืบทอดคลาส

กิจกรรม : บรรยาย ยกตัวอย่างประกอบปฏิบัติการตามใบงาน

การประกอบและสืบทอดคลาส (ต่อ)
- ความแตกต่างระหว่าง Composition และ Aggregation
- การโอเวอร์ไรด์เมธอด (Method Overriding)
- Annotation ในภาษาจาวา (@Override)
- คำสั่ง super
- ปัญหาการสืบทอดหลายคลาส (Multiple Inheritance)

กิจกรรม : บรรยาย ยกตัวอย่างประกอบปฏิบัติการตามใบงาน

การพ้องรูป คลาสนามธรรม และอินเตอร์เฟส
- ความหมายของการพ้องรูป
- คลาสนามธรรม
- อินเตอร์เฟส
- ปฏิบัติการเขียนโปรแกรมที่มีการพ้องรูป

กิจกรรม : บรรยาย ยกตัวอย่างประกอบปฏิบัติการตามใบงาน

การออกแบบและพัฒนาโปรแกรมประยุกต์เชิงวัตถุ
- ปฏิบัติการเขียนโปรแกรมโดยบูรณาการหลักการเกี่ยวกับโปรแกรมเชิงวัตถุที่ผ่านมาทั้งหมด เช่น พัฒนาเกมหมากรุก โปรแกรมจัดการหนังสือในห้องสมุด เป็นต้น

กิจกรรม : บรรยาย ยกตัวอย่างประกอบปฏิบัติการตามใบงาน

สอบปฏิบัติการเขียนโปรแกรมเชิงวัตถุ เพื่อตอบโจทย์การวิเคราะห์ปัญหาเชิงวัตถุ การออกแบบคลาส การสืบทอดคลาส แนวคิดการพ้องรูป
กิจกรรม : บรรยาย ยกตัวอย่างประกอบปฏิบัติการตามใบงาน

สอบกลางภาค
กิจกรรม :

การดักจับและจัดการข้อผิดพลาด (Exception Handing)
- ความหมายของการจัดการกับข้อผิดพลาด
- การสร้างข้อผิดพลาดขึ้นมาเอง
- ฝึกปฏิบัติการโปรแกรมดักจับข้อผิดพลาด

กิจกรรม : บรรยาย ยกตัวอย่างประกอบปฏิบัติการตามใบงาน

การสร้างหน่วยทดสอบ (Unit Testing)
- วิธีการสร้าง Unit Test ในภาษาจาวาด้วย Junit
- ฝึกปฏิบัติการโปรแกรมสร้างหน่วยทดสอบ

กิจกรรม : บรรยาย ยกตัวอย่างประกอบปฏิบัติการตามใบงาน

การออกแบบส่วนติดต่อกับผู้ใช้งานแบบ กราฟิค
- ออกแบบส่วนติดต่อกับผู้ใช้งานแบบกราฟิค
- การใช้งานจาวาสวิงคอนโทรล
- ฝึกปฏิบัติการเขียนโปรแกรมแบบกราฟิคเพื่อเรียกใช้งานคลาสที่ออกแบบขึ้น

กิจกรรม : บรรยาย ยกตัวอย่างประกอบปฏิบัติการตามใบงาน

รูปแบบการออกแบบ (Design Pattern)
- รูปแบบการออกแบบ Singleton
- รูปแบบการออกแบบ Factory
- รูปแบบการออกแบบ Adapter
- รูปแบบการออกแบบ Observer
- ฝึกปฏิบัติการโปรแกรมด้วยรูปแบบการออกแบบต่าง ๆ

กิจกรรม : บรรยาย ยกตัวอย่างประกอบปฏิบัติการตามใบงาน

การจัดการข้อกำหนดของระบบ (Requirement Engineering)
- ความหมายของข้อกำหนด
- ประเภทของข้อกำหนด
- การเขียน User Story และ Use Case Description
- เกณฑ์การยอมรับ (Acceptance Criteria)

กิจกรรม : บรรยาย ยกตัวอย่างประกอบปฏิบัติการตามใบงาน

สถาปัตยกรรมซอฟต์แวร์แบบ Model-View-Controller (MVC)
- ความหมายและองค์ประกอบของสถาปัตยกรรมแบบ MVC
- ตัวอย่างการพัฒนาเว็บแอปพลิเคชันแบบ MVC ด้วย Apache Wicket
- ตัวอย่างการพัฒนาแอปพลิเคชันบนมือถือแบบ MVC ด้วย Ionic

กิจกรรม : บรรยาย ยกตัวอย่างประกอบปฏิบัติการตามใบงาน

ระบบฐานข้อมูลเบื้องต้น
- ฐานข้อมูลแบบ SQL และ NoSQL
- การออกแบบฐานข้อมูลด้วย ER Diagram
- ปฏิบัติการใช้งานฐานข้อมูลด้วย Firebase

กิจกรรม : บรรยาย ยกตัวอย่างประกอบปฏิบัติการตามใบงาน

สอบปลายภาค
กิจกรรม :

อาจารย์ผู้สอน