รายละเอียด
การออกแบบและพัฒนาซอฟต์แวร์ / 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: - (จบภาคการศึกษา)
วิธีเข้าร่วมห้องเรียนใน 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
กิจกรรม : บรรยาย ยกตัวอย่างประกอบปฏิบัติการตามใบงาน
สอบปลายภาค
กิจกรรม :