มคอ.3
รายละเอียดของรายวิชา
มหาวิทยาลัยขอนแก่น
ภาควิชาวิศวกรรมคอมพิวเตอร์   คณะวิศวกรรมศาสตร์
หมวดที่ 1. ข้อมูลทั่วไป
1.
รหัสและชื่อรายวิชา
198332    วิศวกรรมซอฟต์แวร์
              Software Engineering
2.
จำนวนหน่วยกิต
3   (3-0-6)
3.
หลักสูตรและประเภทของรายวิชา
เป็นวิชาชีพ ในหมวดวิชาเฉพาะ สำหรับหลักสูตรวิศวกรรมศาสตรบัณฑิต สาขาวิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์
4.
อาจารย์ผู้รับผิดชอบรายวิชาและอาจารย์ผู้สอน (ถ้ามีหลายคน ใส่ให้ครบตามที่เป็นจริง)
อาจารย์ผู้รับผิดชอบรายวิชา
ที่ ชื่อ - นามสกุล เลขประจำตัว บัตรประชาชน ตำแหน่งทางวิชาการ คุณวุฒิ
1
นาย วิชชา เฟื่องจันทร์
340990xxxxxxx
อาจารย์
อาจารย์ผู้สอน
ที่ ชื่อ - นามสกุล เลขประจำตัว บัตรประชาชน ตำแหน่งทางวิชาการ คุณวุฒิ
1
นาย วิชชา เฟื่องจันทร์
340990xxxxxxx
อาจารย์
5.
ภาคการศึกษา / ชั้นปีที่เรียน
ภาคการศึกษา   ชั้นปีที่
6.
รายวิชาที่ต้องเรียนมาก่อน (Pre-requisite)
 
6.1 รายวิชาที่เรียนมาก่อนและต้องสอบผ่าน (*ระบุเฉพาะรหัสวิชาที่ต้องการ)
 
198  130 การเขียนโปรแกรมคอมพิวเตอร์ขั้นสูง Advanced Computer Programming
 
6.2 รายวิชาที่เรียนมาก่อนแต่ไม่จำเป็นต้องสอบผ่าน (*ระบุเฉพาะรหัสวิชาที่ต้องการ ตามด้วยเครื่องหมาย #)
 
 
6.3 หากใช้วิชาอื่นที่เทียบเท่ากันแทนได้ตาม 6.1 และ 6.2 (*ให้เพิ่มข้อความ "หรือรายวิชาที่เทียบเท่ากัน" หรือ "or equivalent" ต่อท้ายรหัสวิชานั้นๆ)
 
7.
รายวิชาที่ต้องเรียนควบคู่กัน (Co-requisites)
 
7.1 รายวิชาที่ต้องเรียนพร้อมกันให้ใช้คำว่า "รายวิชาร่วม" หรือ "Corequisite" ตามด้วยรหัสวิชาที่ต้องการ
 
 
7.2 รายวิชาที่ต้องเรียนควบคู่กัน(ยกเว้นลงทะเบียนซ้ำ) ให้ใช้คำว่า "รายวิชาร่วม" หรือ "Corequisite" ตามด้วยรหัสวิชาที่ต้องการ
 
8.
สถานที่เรียน
  คณะวิศวกรรมศาสตร์
9.
วันที่จัดทำหรือปรับปรุงรายวิชาครั้งล่าสุด
2013-04-23
หมวดที่ 2. จุดมุ่งหมายและวัตถุประสงค์
1.
จุดมุ่งหมายของรายวิชา
 
1.1. สามารถวิเคราะห์รายละเอียดและความต้องการของซอฟต์แวร์ที่พัฒนา 1.2. สามารถออกแบบซอฟต์แวร์และพัฒนาส่วนต่างๆ ของซอฟต์แวร์ 1.3. สามารถทำงานเป็นทีม และควบคุมกระบวนการพัฒนาซอฟต์แวร์ให้มีคุณภาพได้
2.
วัตถุประสงค์ในการพัฒนา/ปรับปรุงรายวิชา
 
พื้นฐานความรู้ทางด้านวิศวกรรมซอฟต์แวร์เป็นพื้นฐานสำคัญในการออกแบบสร้างสรรค์ซอฟต์แวร์ โดยวิทยาการด้านเทคโนโลยีคอมพิวเตอร์มีการ เปลี่ยนแปลงอยู่เสมอจึงจำเป็นต้องมีการปรับปรุงเนื้อหาเพิ่มเติมเกี่ยวกับวิศวกรรมซอฟท์แวร์เพื่อให้เนื้อหาทันสมัยอยู่เสมอ
หมวดที่ 3. ลักษณะและการดำเนินงาน
1.
คำอธิบายรายวิชา
 
วิศวกรรมซอฟต์แวร์ขั้นแนะนำ กระบวนการพัฒนาซอฟต์แวร์ เครื่องมือที่ช่วยในงานวิศวกรรมซอฟต์แวร์ การกำหนดความต้องการและข้อกำหนดของซอฟต์แวร์ การ แปลภาษา การออกแบบซอฟต์แวร์ การบริหารโครงการพัฒนาซอฟต์แวร์ การทดสอบและการตรวจสอบความสมเหตุสมผลของซอฟต์แวร์ ความทนทานต่อข้อผิด พลาดของซอฟท์แวร์ พัฒนาการซอฟท์แวร์ จรรยาบรรณวิศวกรรมซอฟท์แวร์
Introduction to software engineering, software processes, software tools and environments, software requirements and specifications, language translation, software design, software project management, software testing and validation, software fault tolerance, software evolution, software engineering ethic
2.
จำนวนชั่วโมงที่ใช้ต่อภาคการศึกษา
 
บรรยาย45 ปฏิบัติการ0 สอนเสริม0 ฝึกภาคสนาม/ฝึกงาน0 ศึกษาด้วยตนเอง90 รวม135
3.
จำนวนชั่วโมงต่อสัปดาห์ที่อาจารย์ให้คำปรึกษาและแนะนำทางวิชาการแก่นักศึกษาเป็นรายบุคคล
 
หมวดที่ 4. การพัฒนาและการเรียนรู้ของนักศึกษา
1.
คุณธรรม จริยธรรม
 
1 คุณธรรม จริยธรรมที่ต้องพัฒนา
(1) การตรงต่อเวลา
(2) ความรับผิดชอบและมีระเบียบวินัย
(3) การปฏิบัติตามจรรยาบรรณวิศวกรรมซอฟท์แวร์
2.
ความรู้
 
1 ความรู้ที่ต้องได้รับ
(1) ความรู้เรื่องด้านวิศวกรรมซอฟท์แวร์
(2) ทักษะการออกแบบและระเบียบวิธีในการพัฒนาซอฟท์แวร์
(3) ทักษะการออกแบบและพัฒนาซอฟท์แวร์ การใช้เครื่องมือทางด้านวิศวกรรมซอฟท์แวร์
3.
ทักษะทางปัญญา
 
1 ทักษะทางปัญญาที่ต้องพัฒนา
(1) ทักษะในการวิเคราะห์ แยกแยะ และแก้ปัญหาด้านการออกแบบและพัฒนาซอฟท์แวร์
(2) ทักษะในการเลือกใช้เครื่องมือที่เหมาะสมในงานวิศวกรรมซอฟท์แวร์
(3) ทักษะการทดสอบและทวนสอบและประเมินซอฟท์แวร์
4.
ทักษะความสัมพันธ์ระหว่างบุคคลและความรับผิดชอบ
 
1 ทักษะความสัมพันธ์ระหว่างบุคคลและความรับผิดชอบที่ต้องพัฒนา
(1) ทักษะการทำงานเป็นทีมรู้จักบทบาท หน้าที่ และมีความรับผิดชอบในการทำงานตามที่มอบหมาย
5.
ทักษะการวิเคราะห์เชิงตัวเลข การสื่อสาร และการใช้เทคโนโลยีสารสนเทศ
 
1 ทักษะการวิเคราะห์เชิงตัวเลข การสื่อสาร และการใช้เทคโนโลยีสารสนเทศที่ต้องพัฒนา
(1) การใช้ระเบียบวิธีเชิงตัวเลขในการประเมินด้านวิศวกรรมซอฟท์แวร์
(2) การทดสอบและทวนสอบซอฟท์แวร์
(3) การศึกษาค้นคว้าด้วยตนเองโดยใช้เทคโนโลยีสารสนเทศ
6.
ทักษะพิสัย
 
หมวดที่ 5. แผนการสอนและการประเมินผล
1.
แผนการสอน
สัปดาห์ที่ หน่วย บทและหัวข้อ จำนวนชั่วโมง ผลการเรียนรู้ วัตถุประสงค์การเรียนรู้ กิจกรรมการเรียนการสอน สื่อการสอน วิธีการประเมิน อาจารย์ผู้สอน
1 2 3 4 5 6
1 วิศวกรรมซอฟต์แวร์ขั้นแนะนำ
Introduction to software engineering • History of software engineering • Overview of software engineering
1.5                   1. เข้าใจภาพรวมวิศวกรรมซอฟท์แวร์ 2. เข้าใจประวัติวิศวกรรมซอฟท์แวร์ 1. การบรรยาย 1. เอกสารและตำราหลัก 2. เอกสารประกอบการบรรยาย ดร. วิชชา เฟื่องจันทร์
1-3 กระบวนการพัฒนาซอฟต์แวร์
Software process • A generic view of process • Software life cycle • Process models • An agile view of process • Agile process’s example
6       1. สามารถอธิบายความหมายของ กระบวนการพัฒนาซอฟต์แวร์ 2. สามารถวิเคราะห์และแยกแยะกระบวนการพัฒนาซอฟต์แวร์ 2. เข้าใจองค์ประกอบของกระบวนการพัฒนาซอฟต์แวร์ 1. การบรรยาย 2. แบบฝึกหัดค้นคว้าเรื่องกระบวนการพัฒนาซอฟต์แวร์ 1. เอกสารและตำราหลัก 2. เอกสารประกอบการบรรยาย ประเมินความถูกต้องของแบบฝึกหัด ดร. วิชชา เฟื่องจันทร์
3-4 เครื่องมือที่ช่วยในงานวิศวกรรมซอฟต์แวร์
Software tools and environments • Programming environments • Development tools • Testing tools • Management tools • Tool integration mechanism
3                   1. สามารถวิเคราะห์และเลือกเครื่องมือที่ช่วยในงานวิศวกรรมซอฟต์แวร์ที่เหมาะสมกับงานต่างๆได้ 2. เข้าใจการออกแบบเบื้องต้น 1. การบรรยาย 1. เอกสารและตำราหลัก 2. เอกสารประกอบการบรรยาย ดร. วิชชา เฟื่องจันทร์
4-6 การกำหนดความต้องการและข้อกำหนดของซอฟต์แวร์
Software requirements and specifications • Requirements elicitation • Requirements analysis modeling techniques • Functional and nonfunctional requirements • Prototyping • Basic concepts of formal specification techniques
4.5       1. เข้าใจขั้นตอนการกำหนดความต้องการและข้อกำหนดของซอฟต์แวร์ 1. สามารถแปลงจากภาษาธรรมชาติเป็นข้อกำหนดของซอฟต์แวร์ 1. การบรรยาย 1. เอกสารและตำราหลัก 2. เอกสารประกอบการบรรยาย ดร. วิชชา เฟื่องจันทร์
7 การแปลภาษา
Language translation • Compiler and interpreter • Computer languages
1.5                   1. สามารถอธิบายกระบวนการแปลภาษา 2. สามารถอธิบายความแตกต่าง compiler and interpreter 1. การบรรยาย 1. เอกสารและตำราหลัก 2. เอกสารประกอบการบรรยาย ดร. วิชชา เฟื่องจันทร์
7-9 การออกแบบซอฟต์แวร์
Software design • Fundamental design concepts and principles • Design patterns • Software architecture • Structure design • Object-oriented analysis and design • Component-level design • Design for reuse
9                   1. สามารถอธิบายกระบวนการออกแบบซอฟต์แวร์ 1. สามารถวิเคราะห์เลือกวิธีการออกแบบให้เหมาะสมกับประเภทของซอฟต์แวร์ 1. การบรรยาย 1. เอกสารและตำราหลัก 2. เอกสารประกอบการบรรยาย ดร. วิชชา เฟื่องจันทร์
9-10 การบริหารโครงการพัฒนาซอฟต์แวร์
Software project management • Team management • Project scheduling • Risk analysis • Software measurement and estimation techniques
3       1. สามารถวางแผนประเมินและจัดการโครงการได้ 2. เข้าใจการประเมินความเสี่ยงโครงการ 1. การบรรยาย 1. เอกสารและตำราหลัก 2. เอกสารประกอบการบรรยาย ดร. วิชชา เฟื่องจันทร์
10-12 การทดสอบและการตรวจสอบความสมเหตุสมผลของซอฟต์แวร์
Software testing and validation • Testing fundamentals • Validation and verification • Testing approaches • Test cases design • Unit testing • Integration testing • System testing • Inspection, review and audits • Cases study
9       1. สามารถอธิบายความแตกต่างของการทดสอบและการตรวจสอบความสมเหตุสมผลของซอฟต์แวร์แบบต่างๆ 2. สามารถนำสมการการแบบจำลอง การทดสอบและการตรวจสอบความสมเหตุสมผลของซอฟต์แวร์มาใช้ได้ 3. สามารถออกแบบชุดทดสอบซอฟต์แวร์ได้ 1. การบรรยาย 2. แบบฝึกหัดการสร้างชุดทดสอบซอฟต์แวร์ 1. เอกสารและตำราหลัก 2. เอกสารประกอบการบรรยาย ประเมินความถูกต้องของแบบฝึกหัด ดร. วิชชา เฟื่องจันทร์
12-14 ความทนทานต่อข้อผิดพลาดของซอฟท์แวร์
Software fault tolerance • Software reliability models • Fault tolerance • Defect classification
3             1. สามารถอธิบายความทนทานต่อข้อผิดพลาดของซอฟท์แวร์ 2. สามารถวิเคราะห์แยกแยะความผิดพลาดของซอฟท์แวร์ 1. การบรรยาย 1. เอกสารและตำราหลัก 2. เอกสารประกอบการบรรยาย ดร. วิชชา เฟื่องจันทร์
14-15 พัฒนาการซอฟท์แวร์
Software evolution • Software maintenance • Impact analysis • Characteristics of maintainable software • Reengineering legacy system • Software Reuse • Case study
3       1. สามารถอธิบายพัฒนาการซอฟท์แวร์ 2. สามารถอธิบายข้อดีข้อเสียของ software reuse และเข้าใจการนำไปใช้ 1. การบรรยาย 2. แบบฝึกหัดการทดลองประยุกต์ใช้ software reuse 1. เอกสารและตำราหลัก 2. เอกสารประกอบการบรรยาย ประเมินความถูกต้องของแบบฝึกหัด ดร. วิชชา เฟื่องจันทร์
15 จรรยาบรรณวิศวกรรมซอฟท์แวร์
Software engineering ethic • Software engineering ethic and codes
1.5             1. เข้าใจจรรยาบรรณวิศวกรรมซอฟท์แวร์ 1. การบรรยาย 2. อภิปรายในชั้นเรียน 1. เอกสารและตำราหลัก 2. เอกสารประกอบการบรรยาย ดร. วิชชา เฟื่องจันทร์
2.
แผนการประเมินผลการเรียนรู้
 
ลักษณะการประเมิน สัปดาห์ที่ประเมิน สัดส่วนคะแนน หมายเหตุ
แบบฝึกหัด 2,11,14 20
การสอบกลางภาค 8 40
การสอบปลายภาค 15 40
หมวดที่ 6. ทรัพยากรการเรียนการสอน
1.
ตำราและเอกสารหลัก
 
1. Sommerville, Ivan: "Software Engineering", 9th ed., Pearson Addison Wesley,2010 2. Pressman, Roger S.: "Software Engineering, A Practitioner's Approach", 5th ed., McGRAW-Hill, 2001.
2.
เอกสารและข้อมูลสำคัญ
 
1. เอกสารประกอบคำบรรยาย การทดสอบทวนสอบด้วยเทคนิคด้านวิศวกรรมซอฟท์แวร์ (วิชชา เฟื่องจันทร์)
3.
เอกสารและข้อมูลแนะนำ
 
1. ตำราอ่านประกอบ 1.1. Brooks, Frederick P., Jr.: "The Mythical Man-Month, Essays on Software Engineering", Addison-Wesley, 1975. 1.2. Schach, Stephen R.: "Object-Oriented and Classical Software Engineering",5th ed., McGrawHill, 2002. 2. เว็ปไซต์ 2.1. Software Engineering (http://gear.kku.ac.th/~witcha/Witcha/Courses.html)
หมวดที่ 7. การประเมินและปรับปรุงการดำเนินการของรายวิชา
1.
การประเมินประสิทธิผลของรายวิชาโดยนักศึกษา
 
1.1. การประเมินประสิทธิภาพการสอนที่เน้นผู้เรียนเป็นสำคัญ เป็นการประเมินการสอนของอาจารย์โดยนักศึกษา โดยอาศัยเกณฑ์การวัดประสิทธิภาพการเรียนการ สอนที่เน้นผู้เรียนเป็นสำคัญของสำนักงานมาตรฐานการศึกษา (องค์การมหาชน) โดยทำการประเมิน ออนไลน์โดยนักศึกษาที่ลงทะเบียนเรียนในรายวิชา 1.2. การประเมินการสอนหรือสื่อการสอน 1.2.1. การจัดทำแบบประเมินสื่อการสอน ระหว่างภาคการศึกษา
2.
กลยุทธ์การประเมินการสอน
 
2.1. การประเมินตนเองด้านประสิทธิภาพการเรียนการสอนที่เน้นผู้เรียนเป็นสำคัญ 2.2. การนำเสนอระดับคะแนนหรือเกรดต่อที่ประชุมกรรมการบริหารหลักสูตรและกรรมการประจำคณะ 2.3. ประเมินโดยคณะกรรมการประเมินการสอน ที่หลักสูตรหรือคณะหรือมหาวิทยาลัยแต่งตั้ง 2.4. อาจารย์ผู้สอนจัดทำแบบประเมินอาจารย์ผู้สอน ระหว่างภาคการศึกษา
3.
การปรับปรุงการสอน
 
3.1. มหาวิทยาลัยและคณะจัดการอบรมพัฒนาอาจารย์ด้านต่างๆ เช่นด้านการเรียนการสอนที่เน้นผู้ เรียนเป็นสำคัญ ด้านการสอนสอดแทรกคุณธรรม จริยธรรม การสอนโดยใช้สื่อเทคโนโลยีสารสนเทศ การอบรมเทคนิคการสอนและการผลิตสื่อ เป็นต้น 3.2. การสะท้อนผลการประเมินประสิทธิภาพการเรียนการสอนที่เน้นผู้เรียนเป็นสำคัญโดยแบ่งเป็น 4 ระดับคือ ระดับมหาวิทยาลัย ระดับคณะ ระดับหลักสูตร และระดับบุคคล
4.
การทวนสอบมาตรฐานผลสัมฤทธิ์ของนักศึกษาในรายวิชา
 
4.1. ระเบียบว่าด้วยการจัดการศึกษาระดับปริญญาตรี มหาวิทยาลัยขอนแก่น กำหนดให้มีการประชุม พิจารณาระดับคะแนนหรือเกรด ในระดับหลักสูตรและระดับคณะ เพื่อกลั่นกรองมาตรฐานระดับคะแนน 4.2. เมื่อประกาศระดับคะแนนหรือเกรดแล้ว นักศึกษามีสิทธิในการขอตรวจสอบระดับคะแนน หากเห็น ว่าผลการประเมินอาจมีความผิดพลาด
5.
การดำเนินการทบทวนและการวางแผนปรับปรุงประสิทธิผลของรายวิชา
 
5.1. การนำผลการประเมินการสอนรายวิชา มาวิเคราะห์เพื่อหาแนวทางการปรับปรุงในรายวิชา โดย อาจจัดเป็นการประชุมสัมมนา ในระดับต่างๆ 5.2. จัดการประชุมพิจารณาผลสัมฤทธิ์การจัดการเรียนการสอน เพื่อพิจารณากรณีนักศึกษามีระดับ คะแนนต่ำหรือสูงผิดปกติ เพื่อหาแนวทางการดำเนินการที่เหมาะสม มีมาตรฐานที่เป็นที่ยอมรับ 5.3. พัฒนาทักษะการเรียนรู้ของนักศึกษา โดยจัดกิจกรรมส่งเสริมและพัฒนาทักษะการเรียนรู้ 5.4. จัดให้มีศูนย์ช่วยเหลือด้านการเรียนรู้ของนักศึกษา (โดยสำนักนวัตกรรมการเรียนการสอนและ คณะ)