cs217-2556-2

418217 การสร้างซอฟต์แวร์ Software Construction ภาคปลาย ปีการศึกษา 2556 toc

เอกสารประกอบการสอน

 ||  ||   ||  ||  ||  || งานเพิ่ม (ฝึกปฎิบัติในชั้นเรียนบรรยาย)
 * || สัปดาห์ 1 || สัปดาห์ 2 || สัปดาห์ 3 || สัปดาห์ 4 || สัปดาห์ 5 || สัปดาห์ 6 ||
 * ก่อนสอบกลางภาค || [[file:SWch02.pdf|บทที่ 2]]
 * หลังสอบปลายภาค ||  ||   ||   ||   ||   ||   ||
 * เอกสารเพิ่มเติม || [[file:inclassExerciseError.pdf|ชุดที่ 1]] ||  ||   ||   ||   ||   ||
 * เอกสารเพิ่มเติม || [[file:inclassExerciseError.pdf|ชุดที่ 1]] ||  ||   ||   ||   ||   ||
 * หาวัตถุต่างๆ ที่อยู่ในห้องสมุดว่ามีอะไร บ้างและวัตถุดังกล่าวมีอะไรเป็นข้อมูลในการอธิบาย หรือบอกรายละเอียดที่แตกต่างกัน วัตถุเหล่านั้นมีหน้าที่อะไร หรือมีไว้เพื่ออะไร (ตรงนี้มองเป็นเมทธอด) เขียนด้วย mindMap

ความนำโครงงาน   โครงงานในภาคการศึกษานี้จะมี 2 โครงงานด้วยกัน คือ <span style="color: #008000; display: block; font-family: Arial,Helvetica,sans-serif; font-size: 19px; text-align: left;"><span style="background-color: #ffffff; color: #000000; font-family: 'Courier New',Courier,monospace; font-size: 14px; line-height: 1.5;"> หลักการจัดคลาสตามหลักการของ MVC การออกแบบการเขียนโปรแกรมแบบ Pattern and Framework ==
 * <span style="background-color: #ffffff; color: #000000; font-family: 'Courier New',Courier,monospace; font-size: 14px; line-height: 1.5;">Editor โครงงานนี้ไม่ยาก เพราะคำสั่ง GUI Menu/Menu bar/Menu Item และตัวสำคัญคือ TextArea และ ตัวจัดการ Listener ของ TextArea โครงานนี้จะเป็นประโยชน์ สำหรับนิสิตในการเรียนวิชา Automata ซึ่งต้องมี Editor เป็นพื้นฐาน (ในวิชาดังกล่าวจะไม่มีการสอนแล้ว และไม่มีคะแนน แต่ถ้านิสิตทำไม่ได้ ก็จะเรียนวิชาดังกล่าวไมได้) ( ต้องส่งงานหลังสอบกลางภาค 2 สัปดาห์ ส่งที่ edmodo <span style="background-color: #ffffff; color: #000080; font-family: 'Courier New',Courier,monospace; font-size: 14px; line-height: 1.5;">)
 * <span style="background-color: #ffffff; color: #000000; font-family: 'Courier New',Courier,monospace; font-size: 14px; line-height: 1.5;">การละเล่นของไทย หรือ งานวัด

เกณฑ์การตรวจงานของ Editor

 * <span style="color: #008000; display: block; font-family: 'Courier New',Courier,monospace; font-size: 12px; line-height: 25.454544067382813px; text-align: left;">ใช้ตัวอย่างจาก code ที่ post ที่ facebook
 * <span style="color: #008000; display: block; font-family: 'Courier New',Courier,monospace; font-size: 12px; line-height: 25.454544067382813px; text-align: left;">ต้องแยกคลาส GUI หนึ่งคลาส ตัวจัดการอ่านและบันทุึกไฟล์ และ คลาสที่เกี่ยวกับข้อมูล และ Control แยกต่างหาก
 * <span style="color: #008000; display: block; font-family: 'Courier New',Courier,monospace; font-size: 12px; line-height: 25.454544067382813px; text-align: left;">ฟังก์ชันที่ต้องมี File มี Menu ย่อย Open, new, save, Save AS และให้มี short cut ด้วย Edit เมนู Cut/Copy/Paste, About ประกอบด้วย สอง menu ย่อย Author และ Project โดยถ้า click Author ให้ popup ใครเป็นคนทำ ทำเพื่ออะไร และ project ก็รายละเอียด รายละเอียดของโปรเจค

<span style="background-color: #ffffff; color: #000000; display: block; font-family: 'Courier New',Courier,monospace; font-size: 14px; text-align: left;">ฟังก์ชันงานหรือ API ของจาวา == <span style="background-color: #ffffff; color: #000080; font-family: 'Courier New',Courier,monospace; font-size: 16px;">รายละเอียดโครงงาน **<span style="color: #0000ff; font-family: 'Courier New',Courier,monospace; font-size: 16px;">เกณฑ์ในการเลือกโครงงาน ** <span style="color: #101910; font-family: 'Courier New',Courier,monospace; font-size: 14px;"> ตัดรหัสนิสิตตัวท้ายทิ้ง (รหัสตัวนี้เราเรียกว่า Check digit) และนำมาเฉพาะตัวท้าย หารด้วย 3 เศษที่เหลือ คือโครงการที่ต้องทำ)
 * <span style="color: #000080; font-family: 'Courier New',Courier,monospace; font-size: 14px;">ด้าน GUI : ต้องมีการใช้คำสั่ง Menu/Menu bar/Menu Item
 * <span style="color: #000080; font-family: 'Courier New',Courier,monospace; font-size: 14px;">การทำ Animation โดยการใช้ Thread
 * <span style="color: #000080; font-family: 'Courier New',Courier,monospace; font-size: 14px;">การประยุกต์ระบบ แล้วแต่ความคิดสร้างสรรค์ เช่น ทำเป็นร้านขายพัดลม เพื่อเป็นการ demo ให้ เห้น หรือ เป็น choice ให้ลูกค้าเลือกรูปแบบที่ต้องการ เป็นต้น
 * <span style="color: #163616; display: block; font-family: 'Courier New',Courier,monospace; font-size: 14px; text-align: left;">ชิงช้าสวรรค์ (เศษ 0)
 * <span style="color: #163616; font-family: 'Courier New',Courier,monospace; font-size: 14px;">สาวน้อยตกน้ำ (เศษ 1)
 * <span style="color: #163616; font-family: 'Courier New',Courier,monospace; font-size: 14px;">รถไต่ถัง (เศษ 2)

<span style="color: #0000ff; font-family: 'Courier New',Courier,monospace; font-size: 16px;">ข้อกำหนดของระบบ ===<span style="background-color: #ffffff; color: #008000; display: block; font-family: Arial,Helvetica,sans-serif; font-size: 19px; text-align: left;">**<span style="color: #008000; font-family: 'Courier New',Courier,monospace; font-size: 15px;">เกณฑ์เชิงซอฟต์แวร์ระบบ ** === ===<span style="background-color: #ffffff; color: #008000; display: block; font-family: Arial,Helvetica,sans-serif; font-size: 19px; text-align: left;">**<span style="color: #008000; font-family: 'Courier New',Courier,monospace; font-size: 15px;">เกณฑ์ความคิดสร้างสรรค์ ** === การกำหนดเกณฑ์ความคิดสร้างสรรค์ เพื่อให้นิสิตมีจินตนาการ ไม่ใช่ลอกกัน หรือดูตัวอย่างจากเพื่อน การดูนะดูได้ แต่เราดูเพื่อนำมาสร้างเพิ่มเติม ดังนั้นคะแนนส่วนนี้ประมาณ 35-40 ของคะแนนรวมทั้งหมด
 * +ข้อกำหนด || +++++++++++ชิงช้าสวรรค์++++++++++ || +++++++++++สาวน้อยตกน้ำ+++++++++++ || +++++++++++รถไต่ถัง+++++++++ ||
 * ออบเจ็กต์ || * ตัวกระเช้าชิงช้า
 * วงล้อ สำหรับหมุน
 * คนที่ขึ้นกระเช้า || * สาวน้อย ทีนั่งให้ยิ่ง
 * ออบเจ๊กต์ที่ใช้ในการขว้าง หรือปา อาจมีขนาดต่างๆ และ น้ำหนัก และความเร็วแตกต่างกันได้ || * ตัวรถ มีได้หลายรูปแบบ
 * ตัวถัง สำหรับไต่ ||
 * การเคลื่อนไหว || * ตัวกระเข้า
 * วงล้อ ต้องแสดงให้เห็นว่ามันหมุนได้ || * เน้นลูกปื่นที่ยิงออก ซึ่งออกได้หลายทิศทาง
 * ต้องใช้การคำนวณทางคณิตศาสตร์ เข้าช่วย
 * ความเร็วที่ไมเท่ากัน ลูกไม่เท่ากัน
 * เมือกระทบกับตัวสาวน้อย ต้องกำหนดจุดว่าตรงใหน สาวน้อยจึงตกน้ำ || * การเคลื่อนที่ของรถวนเป็นวงกลา และ ไต่ถังขึ้นลง ||
 * <span style="font-family: 'Courier New',Courier,monospace; font-size: 14px; line-height: 28px;">ห้ามใช้ไฟล์ภาพ ในการเขียนโปรแกรม
 * <span style="font-family: 'Courier New',Courier,monospace; font-size: 14px; line-height: 28px;">นิสิตควรร่างภาพต่างๆ โดยมีจุดเริ่มต้นที่ (0,0) เมื่อจะวาดจริง ให้บวกเพิ่มจุดที่ต้องการวาดลงไป
 * <span style="font-family: 'Courier New',Courier,monospace; font-size: 14px; line-height: 28px;">ควรมีอย่างน้อย 3-5 ภาพ เพื่อใช้ในการเคลื่อนไหว
 * <span style="color: #000080; font-family: 'Courier New',Courier,monospace; font-size: 14px;">คุณสมบัติเชิงออบเจ็กต์ เช่น การสืบทอด การใช้ตัวประสาน (Interface) โครงสร้างข้อมูลที่เหมาะสม เช่น Array เมทธอดที่ถูกต้อง (ไม่ใช้ Static ถ้าไม่ถูกตามหลักวิชาการ มีการ รับและส่งตัวแปร กรณีที่มี เมทธอดทำงานเหมือนกัน แต่จุดเริ่มต้นบางอย่างแตกต่าง) การจัดแยกคลาสให้เหมาะสม (Package) cohesion, Class Diagram, การใช้ Pattern Design (คะแนนรวมทั้งหมวด 35 คะแนน อาจมีการปรับเป็น 40 โดยลดความคิดสร้างสรรค์)
 * <span style="color: #000080; font-family: 'Courier New',Courier,monospace; font-size: 14px;">Jar ที่ run ได้ Test Case ที่เป็น Demo (10 คะแนน)
 * <span style="color: #000080; font-family: 'Courier New',Courier,monospace; font-size: 14px;">การออกแบบ GUI ที่เหมาะสม (20 คะแนน) พร้อม Welcome Message, รายละเอียด โครงงาน (แหล่งที่มาของ code ถ้าไม่ได้เขียนเอง ต้องบอกวิธีการ implement) หรือมีรายละเอียดว่าโครงการต้องการนำเสนออะไร และ Feature ในการพัฒนาระบบมีอะไรบ้าง
 * <span style="color: #000080; font-family: 'Courier New',Courier,monospace; font-size: 14px;">ความคิดสร้างสรรค์ (35 คะแนน) GUI ในบางสถานะ ควรซ่อนได้

กำ <span style="background-color: #ffffff; color: #0060ff; font-family: 'Courier New',Courier,monospace;">หนดส่งงาน
>
 * Editor ส่งหลังสอบ 2 ม.ค. 2557
 * การละเล่นของไทย
 * ส่งร่างออบเจ็กต์ และ ชุดคำสั่งในการวาดวัตถุต่างๆ (ต้องเขียนเป็น code โดยมีจดเริ่มต้นที่ 0, 0 เท่านั้น ยังไม่ต้องใส่ animation ถ้านิสิตทำงานเลยข้อกำหนดที่อาจารย์ ขอให้เตรียม test case ตามที่อาจารย์ ต้องตรวจด้วย
 * โครงงานสมบูรณ์ ส่ง 26 ก.พ. 2557