ทบทวนหลักการและแนวคิด ทางด้านวิศวกรรมซอฟต์แวร์ วรวุฒิ รามจันทร์ เทคโนโลยีสารสนเทศและการจัดการ
AGENDAS เรียนอะไรในวิชา  IT 4116 ? สถานภาพอุตสาหกรรมซอฟต์แวร์ไทย ทบทวนหลักการและแนวคิดทางด้านวิศวกรรมซอฟต์แวร์ นิยามและคุณลักษณะวิศวกรรมซอฟต์แวร์ ซอฟต์แวร์แอพพลิเคชัน บุคลากรทางด้านวิศวกรรมซอฟต์แวร์ กระบวนการทางด้านวิศวกรรมซอฟต์แวร์ แบบจำลองกระบวนการ Q & A
อาจารย์ผู้สอน อ .  วรวุฒิ รามจันทร์ วท . ม . ( บริหารเทคโนโลยี  :   Technology Management )  วิทยาลัยนวัตกรรม ,  มหาวิทยาลัยธรรมศาสตร์ ประธานรุ่น  17 วท . บ . ( เทคโนโลยีการจัดการ  : Management Technology )  สถาบันเทคโนโลยีพระจอมเกล้าฯ เจ้าคุณทหารลาดกระบัง ประธานเชียร์รุ่น  3 IT.4116  SPECIAL TOPIC IN SOFTWARE ENGINEERING [email_address]
ตำแหน่งปัจจุบัน  ผู้จัดการ - MIS   & E-Services บริษัท ไอเอ็นจีประกันชีวิต   ( ประเทศไทย )   จำกัด ประสบการณ์ทำงาน คณะกรรมการ ,  เครือข่ายปรับปรุงกระบวนการซอฟต์แวร์ ประเทศไทย  (Thailand SPIN)  เขตอุตสาหกรรมซอฟต์แวร์ ประเทศไทย  (Software Park Thailand) Quality Manager/EPG Leader  บริษัท อัลติเมท รีซอร์ส แมเนจเมนท์ จำกัด  (dtac data warehouse project)   สามารถนำบริษัทบรรลุ  CMMI ML Level 3  (Aug 31, 2009) Project Manager, ERP  และโครงการพัฒนาระบบเอกสารการนำเข้า - ส่งออก   (e-XML)  กรมส่งเสริมการส่งออก   กระทรวงพาณิชย์ Senior Process Specialist/Project Manager,  โครงการพัฒนาและปรับปรุงกระบวนการทางด้าน  e-commerce  ปฏิบัติงาน ณ กรุงโฮจิมินห์ ประเทศเวียดนาม Process Analyst,  บริษัท โทเทิล แอคเซส คอมมิวนิเคชัน จำกัด มหาชน Senior Executive,  บริษัท ทรู คอร์ปอเรชั่น จำกัด มหาชน Project Auditor,  บริษัท ดีเอชที อินเตอร์เนชันแนล จำกัด Analyst  ธนาคารกรุงเทพ SQA/SPI Leader,  บริษัท เดอะแวลลูซิสเต็มส์ จำกัด ผู้ช่วยนักวิจัย ,  ศูนย์เทคโนโลยีโลหะและวัสดุแห่งชาติ  (MTEC) ประสบการณ์ทำงาน
คำอธิบายรายวิชา ศึกษาทางด้านมาตรฐานและพัฒนาการของระเบียบวิธีการ กระบวนการและเครื่องมือที่ใช้ในการพัฒนาเฉพาะทางด้านวิศวกรรมซอฟต์แวร์ รวมทั้งวิธีการตรวจสอบและประเมินผลกระบวนการและผลลัพธ์จากการพัฒนาซอฟต์แวร์ของบริษัทพัฒนาซอฟต์แวร์
ข้อตกลงในชั้นเรียน เวลาเข้าเรียนไม่ต่ำกว่าร้อยละ  80 ขาดได้ไม่เกิน  4  ครั้ง  มาสายกว่าเวลาเรียนครึ่งชั่วโมง  3  ครั้ง ถือว่าขาด  1   ครั้ง ส่งงานที่ได้รับมอบหมายทั้งหมดครบและตรงตามระยะเวลาที่กำหนด การแต่งกาย ให้เป็นไปตามระเบียบมหาวิทยาลัยกำหนด เครื่องมือสื่อสารควรปิดเสียง หรือตั้งระบบสั่น  
ข้อตกลงในชั้นเรียน   (2) หากนักศึกษาผู้ใดไม่ได้เข้าสอบกลางภาค จะต้องติดต่อผู้สอนตามเวลาที่กำหนด ไม่เช่นนั้นจะไม่ได้รับอนุญาตให้สอบกลางภาค ยกเว้นกรณี ป่วย , ได้รับอุบัติเหตุ  มีกิจธุระสำคัญทางราชการ  ***  จะต้องทำจดหมายลาหรือมีหนังสือชี้แจง
ข้อตกลงในการกำหนดคะแนน ระหว่างภาค  ( 60 %)  แบ่งเป็น   ความสนใจ  ( การเข้าเรียน การมีส่วนร่วมในการเรียน ) 10 % งานเชิงปฏิบัติการ  (Assignment) 20 % สอบกลางภาค 30 % ปลายภาค  ( 40% )   สอบปลายภาค 40 %
ระดับการประเมินผล   ( อิงเกณฑ์ ) ***   อาจมีการประเมินผล  ( อิงกลุ่ม )  หากอาจารย์เห็นชอบและ ได้รับอนุมัติจากทางมหาวิทยาลัย A pt  >= 80 B+ 75 <= pt < 80 B 70 <= pt < 75 C+ 65 <= pt < 70 C 50 <= pt < 65 D+ 45 <= pt < 50 D 40 <= pt < 45 F pt  < 40
เนื้อหาบทเรียน หลักการและแนวคิดทางด้านวิศวกรรมซอฟต์แวร์ มาตรฐานสากลที่เกี่ยวข้องเฉพาะทางด้านวิศวกรรมซอฟต์แวร์ การพัฒนาและการปรับปรุงกระบวนการทางด้านซอฟต์แวร์ หน้าที่และความรับผิดชอบของบุคลากรในวัฎจักรการพัฒนาซอฟต์แวร์ ผลผลิตที่ได้จากการพัฒนาซอฟต์แวร์ ตามแนวทางเฉพาะด้านวิศวกรรมซอฟต์แวร์  หลักการประเมินวุฒิภาวะและความสามารถ ทางด้านวิศวกรรมซอฟตแวร์ ตามวิธี  SCAMPI  เพื่อให้บรรลุ  CMMI Level 2 midterm เทคนิคการตรวจสอบซอฟต์แวร์ เฉพาะทางด้านวิศวกรรมซอฟต์แวร์  Fault Tolerance   และ  Failure Containment  นักศึกษานำเสนอผลงาน final
เอกสารประกอบการเรียน หนังสือ วิศวกรรมซอฟต์แวร์  ( Software Engineering )  ผศ .  วิทยา สุคตบวร ,  ซีเอ็ดยูเคชัน เอกสารนำเสนอในชั้นเรียน   www.rabbitthailand.com
แนวโน้มอุตสาหกรรมซอฟต์แวร์ไทย ที่มา :  สรุปผลสำรวจตลาดเทคโนโลยีสารสนเทศและการสื่อสาร
สถานภาพอุตสาหกรรมซอฟต์แวร์ไทย จำนวนธุรกิจพัฒนาซอฟต์แวร์มากกว่า  1,300   แห่ง ผู้ปฏิบัติงานในอุตสาหกรรมซอฟต์แวร์มากกว่า  50,000   คน และเพิ่มขึ้นโดยเฉลี่ยปีละ  3,000   คน มูลค่าการนำเข้าคิดเป็นร้อยละ  70   ของตลาดทั้งประเทศ มูลค่าการส่งออก  5,000   ล้านบาท ภาษีการนำเข้าร้อยละ  0 ที่มา : software park ,  สศช .  และสรุปผลสำรวจตลาดเทคโนโลยีสารสนเทศและการสื่อสาร
วิศวกรรมซอฟต์แวร์ วิศวกรรมซอฟต์แวร์  ( Software Engineering )   “ การนำเอาหลักการทางวิศวกรรมมาใช้ในการพัฒนาซอฟท์แวร์ให้เป็นไปอย่างมีระบบ” IEEE 83b
เป้าหมายของการพัฒนาซอฟต์แวร์ ซอฟต์แวร์ที่มีคุณภาพ สามารถส่งมอบได้ตรงเวลา อยู่ภายใต้งบประมาณที่ประมาณการไว้ ตรงตามความต้องการของผู้ใช้
ลักษณะของวิศวกรรมซอฟต์แวร์  เกี่ยวข้องกับการสร้างโปรแกรมขนาดใหญ่ สามารถจัดการเกี่ยวกับความซ้ำซ้อนได้ เน้นการทำงานร่วมกันของบุคลากร สามารถเปลี่ยนแปลงได้ง่ายเมื่อจำเป็น เน้นการพัฒนาให้มีประสิทธิภาพ สนองความต้องการของผู้ใช้
องค์ประกอบของวิศวกรรมซอฟต์แวร์   วิศวกรรมซอฟต์แวร์เป็นกระบวนการผลิต  ( production )  ที่ประกอบด้วยกิจกรรมช่วงต่างๆ เพื่อสร้างผลิตภัณฑ์ซอฟต์แวร์  ( software work products )  โดยการทำกิจกรรมในแต่ละช่วง   ( Phase )   อาศัยเทคนิคและเครื่องมือ  ( tools )  ซึ่งเป็นเครื่องมือที่มีการวิจัยและพัฒนาอย่างต่อเนื่อง
องค์ประกอบของวิศวกรรมซอฟต์แวร์   (2)   Software work processes Software work products Tools /Environments Market places / users
คุณลักษณะของกระบวนการวิศวกรรมซอฟต์แวร์ Understandability :  มีการนิยามขอบเขตของกระบวนการที่ชัดเจนและง่ายต่อการเข้าใจ Visibility :  ทำให้กิจกรรมกระบวนการชัดเจนที่สุดเพื่อสามารถมองเห็นจากภายนอก Supportability :  เครื่องมือช่วยเฉพาะทางด้านวิศวกรรมซอฟต์แวร์  (CASE   Tools)   สามารถช่วยสนับสนุนกิจกรรมภายในขอบเขตและกระบวนการ
คุณลักษณะของกระบวนการวิศวกรรมซอฟต์แวร์   (2) Acceptability :  กระบวนการที่กำหนด ขอบเขตที่สามารถยอมรับ และการใช้โดยวิศวกรซอฟต์แวร์ในการผลิตผลิตภัณฑ์ซอฟต์แวร์ Reliability :  กระบวนการถูกออกแบบในแนวทางซึ่งความผิดพลาดของกระบวนการถูกหลีกเลี่ยงก่อนที่จะส่งผลต่อความผิดพลาดของผลิตภัณฑ์ซอฟต์แวร์ Robustness :  กระบวนการที่ซอฟต์แวร์สามารถทำงานต่อได้แม้ว่ามีปัญหาที่ไม่คาดการณ์ไว้เกิดขึ้น
คุณลักษณะของกระบวนการวิศวกรรมซอฟต์แวร์   (3) Maintainability :  กระบวนการที่สามารถวิวัฒนาการเพื่อตอบสนองการเปลี่ยนแปลงความต้องการขององค์กร Rapidity :  กระบวนการที่สามารถทำให้ส่งมอบผลิตภัณฑ์ได้เร็วนับจากการกำหนดรูปแบบคุณลักษณะของซอฟต์แวร์   (Software specifications)  ถูกกำหนด
ประเภทของซอฟต์แวร์ประยุกต์ System  Software Real-Time  Software Business  Software Engineering / Scientific  Software Embedded  Software  Personal Computer  Software  Artificial  Intelligence  Software  WebApps  Software
บุคลากรที่เกี่ยวข้องกับการพัฒนาซอฟต์แวร์ Project  Manager   / Project  Leader Business Analyst / System  Analyst Programmer / Developer Software Engineer  (CM, QA, Tester or etc.)
บุคลากรที่เกี่ยวข้องกับการพัฒนาซอฟต์แวร์   (2) Software   Engineer Project Manager System   Analyst Programmer
กระบวนการทั่วไปในการพัฒนาซอฟต์แวร์ รวบรวมความต้องการ   (Gathering Requirements) วิเคราะห์และออกแบบ   (Analysis & Design) เขียนโปรแกรม   (Development) ทดสอบ   (Testing) การติดตั้ง   (Deployment)
40% 20% 40% Analysis Design 40 % Testing 40 % Coding 20 % กระบวนการทั่วไปในการพัฒนาซอฟต์แวร์  (2)
Linear  Model  Iterative Model Incremental Model Evolutionary  Model แบบจำลองกระบวนการ
THE END นักศึกษาสามารถดาวน์โหลด เอกสารประกอบการเรียน ได้ที่   http://www.rabbitthailand.com e-Mail ; worawutr@hotmail.com
Q & A

Introduction to software engineering principles