1 / 32

วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ (Software Engineering)

วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ (Software Engineering). อาจารย์ผู้สอน อ. พรภัทรา ภัทรจารี วท.ม. (เทคโนโลยีสารสนเทศและการสื่อสาร : Data communication & Network ) สถาบันเทคโนโลยีพระจอมเกล้า พระนครเหนือ วท.บ. (วิทยาการคอมพิวเตอร์) มหาวิทยาลัยเกษตรศาสตร์. แนะนำรายวิชา.

kat
Download Presentation

วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ (Software Engineering)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. วิชา ITSC2301วิศวกรรมซอฟต์แวร์ (Software Engineering) อาจารย์ผู้สอน อ. พรภัทรา ภัทรจารี วท.ม. (เทคโนโลยีสารสนเทศและการสื่อสาร :Data communication & Network) สถาบันเทคโนโลยีพระจอมเกล้า พระนครเหนือ วท.บ. (วิทยาการคอมพิวเตอร์) มหาวิทยาลัยเกษตรศาสตร์

  2. แนะนำรายวิชา • เนื้อหาวิชาครอบคลุมพื้นฐานทางวิทยาศาสตร์สำหรับวิศวกรรมซอฟต์แวร์โดยเรียนรู้กระบวนการพัฒนาและ วัฏจักรในการพัฒนาซอฟต์แวร์ ซึ่งมุ่งเน้นไปที่การนำหลักการเชิงวัตถุมาใช้กับรูปแบบการพัฒนาซอฟต์แวร์ รวมทั้งครอบคลุมถึงกลยุทธ์ต่างๆ ที่ใช้ในการพัฒนาซอฟต์แวร์

  3. ข้อตกลงในชั้นเรียน • เวลาเข้าเรียนไม่ต่ำกว่าร้อยละ 80 • ขาดได้ไม่เกิน 3 ครั้ง • มาสายกว่าเวลาเรียนครึ่งชั่วโมง 2 ครั้ง ถือว่าขาด 1 ครั้ง • ส่งงานที่ได้รับมอบหมายทั้งหมดครบและตรงตามระยะเวลาที่กำหนด • การแต่งกาย ให้เป็นไปตามระเบียบมหาวิทยาลัยกำหนด หากฝ่าฝืนจะไม่ได้รับอนุญาตให้เข้าชั้นเรียน

  4. ข้อตกลงในชั้นเรียน • หากนักศึกษาผู้ใดไม่ได้เข้าสอบกลางภาค และมาติดต่อผู้สอนหลังจากสัปดาห์ที่ 12 ไปแล้ว จะไม่ได้รับอนุญาตให้สอบกลางภาค ยกเว้นกรณี • ป่วย,ได้รับอุบัติเหตุ • มีกิจธุระสำคัญทางราชการ โดยจะต้องทำจดหมายลาหรือมีหนังสือชี้แจงล่วงหน้า ทั้งนี้ขึ้นอยู่กับดุลยพินิจของผู้สอน

  5. ข้อตกลงในการกำหนดคะแนนข้อตกลงในการกำหนดคะแนน • ระหว่างภาค (70%) แบ่งเป็น • ความสนใจ (การเข้าเรียน จริยธรรม และ การแต่งกาย) 15% • งานที่ได้รับมอบหมาย 25% • สอบกลางภาค 30% • ปลายภาค (30%) • สอบปลายภาค 30%

  6. ระดับการประเมินผล (อิงเกณฑ์) • 80-100 A • 75-79 B+ • 70-74 B • 65-69 C+ • 60-64 C • 55-59 D+ • 50-54 D • 0-49 E

  7. เรียนอะไรในวิชา • บทนำ-วิศวกรรมซอฟต์แวร์ (Introduction to Software Engineering) • ภาพรวมของกระบวนการ (A Generic View of Process) • แบบจำลองกระบวนการพัฒนาระบบ (Process Model) • การประมาณการซอฟต์แวร์ (Software Estimation) • วิศวกรรมความต้องการ (Requirement Engineering) • การสร้างแบบจำลองการวิเคราะห์ (Analysis Model) • การวิเคราะห์เชิงวัตถุ (Object Oriented Analysis) • วิศวกรรมการออกแบบ (Design Engineering) • การออกแบบส่วนต่อประสานผู้ใช้ (User Interface Design) • การทดสอบซอฟต์แวร์ (Testing) สอบกลางภาค สอบปลายภาค

  8. หนังสือที่ใช้ในการทบทวนหนังสือที่ใช้ในการทบทวน • วิศวกรรมซอฟต์แวร์ (Software Engineering) Roger S. Pressman แปลโดย ผศ.ดร.พรฤดี เนติโสภากุล • การวางแผนโครงการพัฒนาซอฟต์แวร์ (Software Project Planning) เมสินี นาคมณี

  9. Introduction • วิศวกรรมซอฟต์แวร์ (Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา ในปี ค.ศ. 1968 คำว่า”วิศวกรรมซอฟต์แวร์(software engineering)” ถูกใช้อย่างแพร่หลายเพื่อแสดงถึงกิจกรรมต่างๆที่รวมถึงการเขียนโปรแกรม (programming) และการรหัส(coding) [Macro, 1987]. ก่อนปี ค.ศ. 1974 สาขาวิชาวิศวกรรมซอฟต์แวร์ยังไม่ปรากฏ [Barnes, 1998]. สถาบันเทคโนโลยีโรเชสเตอร์ (The Rochester Institute of Technology (RIT)) ในประเทศสหรัฐอเมริกาได้อ้างว่าเป็นสถาบันแรกที่แนะนำหลักสูตรปริญญาตรีสาขาวิศวกรรมซอฟต์แวร์ [Lutz, 1999].

  10. วิศวกรรมซอฟต์แวร์ (Software Engineering) • วิศวกรรมซอฟต์แวร์ คือกระบวนการสร้างสรรค์โปรแกรมโดยใช้หลักทางวิศวกรรมเข้ามาช่วยในการดำเนินการสร้าง (อ.สมหมาย สุขคำ) • “Software Engineering is systematic approach to the development operation , maintenance , retirement of software” (IEEE 83b) • “วิชาการว่าด้วยการออกแบบโปรแกรมคอมพิวเตอร์ ตลอดจนการบริหารงานการพัฒนาเพื่อที่จะได้มาซึ่ง ผลิตผลซอฟต์แวร์ที่มีคุณภาพสูง ราคาถูก และภายในเวลาที่กำหนดให้” (สุชาย ธนวเสถียร)

  11. วิทยาการคอมพิวเตอร์และวิศวกรรมซอฟต์แวร์วิทยาการคอมพิวเตอร์และวิศวกรรมซอฟต์แวร์ • วิทยาการคอมพิวเตอร์ (Computer Science) อยู่บนรากฐานของวิทยาศาสตร์ ซึ่งเน้นการทำความเข้าใจและค้นหาความจริงเกี่ยวกับความรู้ทางคอมพิวเตอร์ เพื่อสร้างแนวคิด/ทฤษฎีใหม่ หรือ ปฏิเสธแนวคิด/ทฤษฎีเดิม และขยายวงความรู้ให้กว้างขึ้นจากแนวคิด/ทฤษฎีที่มีอยู่ * ผลงานถูกพิจารณา หรือ ตัดสินโดยกลุ่มนักวิทยาศาสตร์

  12. วิทยาการคอมพิวเตอร์และวิศวกรรมซอฟต์แวร์วิทยาการคอมพิวเตอร์และวิศวกรรมซอฟต์แวร์ • วิศวกรรมซอฟต์แวร์ (Software Engineering) อยู่บนรากฐานของวิธีการทางวิศวกรรมศาสตร์ ซึ่งประยุกต์แนวคิด/ทฤษฎีทางวิทยาศาสตร์ คณิตศาสตร์และเทคโนโลยีขณะนั้นในการสร้างผลิตภัณฑ์ที่เป็นประโยชน์และปลอดภัยต่อสาธารณะ * ผลงานถูกพิจารณา หรือ ตัดสินโดยกลุ่มผู้ใช้

  13. ลักษณะของวิศวกรรมซอฟต์แวร์ • เกี่ยวข้องกับการสร้างโปรแกรมขนาดใหญ่ • สามารถจัดการเกี่ยวกับความซ้ำซ้อนได้ • เน้นการทำงานร่วมกันของบุคลากร • สามารถเปลี่ยนแปลงได้ง่ายเมื่อจำเป็น • เน้นการพัฒนาให้มีประสิทธิภาพ • สนองความต้องการของผู้ใช้

  14. องค์ประกอบของการวิศวกรรมซอฟต์แวร์องค์ประกอบของการวิศวกรรมซอฟต์แวร์ • การวิศวกรรมซอฟต์แวร์เป็นกระบวนการผลิต (production) ที่ประกอบด้วยกิจกรรมช่วงต่างๆ เพื่อสร้างผลิตภัณฑ์ซอฟต์แวร์ (software products) การทำกิจกรรมในแต่ละช่วงอาศัยเทคนิคและเครื่องมือช่วยต่างๆ (support tools) ที่นักวิชาการคอมพิวเตอร์และนักวิจัยได้เสนอไว้

  15. องค์ประกอบของการวิศวกรรมซอฟต์แวร์องค์ประกอบของการวิศวกรรมซอฟต์แวร์ Software production processes Software products Support tools /Environments Market places / users

  16. คุณลักษณะของกระบวนการวิศวกรรมซอฟต์แวร์คุณลักษณะของกระบวนการวิศวกรรมซอฟต์แวร์ • Understandability : มีการนิยามขอบเขตของกระบวนการที่ชัดแจ้งและง่ายต่อการเข้าใจ • Visibility : ทำให้กิจกรรมกระบวนการชัดเจนที่สุดเพื่อสามารถมองเห็นจากภายนอกได้ชัดเจน • Supportability : เครื่องมือช่วยการวิศวกรรมซอฟต์แวร์ (CASE)สามารถช่วยสนับสนุนกิจกรรมกระบวนการในขอบเขตใด

  17. คุณลักษณะของกระบวนการวิศวกรรมซอฟต์แวร์คุณลักษณะของกระบวนการวิศวกรรมซอฟต์แวร์ • Acceptability : กระบวนการที่กำหนดสามารถยอมรับและใช้โดยวิศวกรซอฟต์แวร์ในการผลิตผลิตภัณฑ์ซอฟต์แวร์ • Reliability : กระบวนการถูกออกแบบในแนวทางซึ่งความผิดพลาดของกระบวนการถูกหลีกเลี่ยงก่อนที่จะส่งผลต่อความผิดพลาดของผลิตภัณฑ์ซอฟต์แวร์ • Robustness : กระบวนการสามารถทำงานต่อได้แม้นว่ามีปัญหาที่ไม่คาดการณ์เกิดขึ้น

  18. คุณลักษณะของกระบวนการวิศวกรรมซอฟต์แวร์คุณลักษณะของกระบวนการวิศวกรรมซอฟต์แวร์ • Maintainability : กระบวนการสามารถวิวัฒนาการเพื่อตอบสนองการเปลี่ยนแปลงความต้องการขององค์กร • Rapidity : กระบวนการสามารถทำให้ส่งมอบผลิตภัณฑ์ได้เร็วนับจากที่รูปแบบคุณลักษณะของซอฟต์แวร์(Software specifications) ถูกกำหนด

  19. Introduction • ซอฟต์แวร์ (software) หมายถึงชุดคำสั่งหรือโปรแกรมที่ใช้สั่งงานให้คอมพิวเตอร์ทำงาน ซอฟต์แวร์จึงหมายถึงลำดับขั้นตอนการทำงานที่เขียนขึ้นด้วยคำสั่งของคอมพิวเตอร์ คำสั่งเหล่านี้เรียงกันเป็นโปรแกรมคอมพิวเตอร์ • ซอฟต์แวร์ หมายรวมถึงโปรแกรมคอมพิวเตอร์ทุกประเภทที่ทำให้คอมพิวเตอร์ทำงานได้

  20. Introduction • คุณสมบัติของซอฟต์แวร์ • ซอฟต์แวร์ถูกพัฒนาหรือจัดการให้เกิดขึ้น • ซอฟต์แวร์ไม่สึกหรอ • ถูกสร้างตามแบบที่ลูกค้าต้องการ (Custom build)

  21. การเสื่อมสภาพของฮาร์ดแวร์ ความผิดพลาด เวลา

  22. การเสื่อมสภาพของซอฟต์แวร์ (อุดมคติ) ความผิดพลาด เวลา

  23. การเสื่อมสภาพของซอฟต์แวร์การเสื่อมสภาพของซอฟต์แวร์ ความผิดพลาด เวลา

  24. ซอฟต์แวร์ (software) • ชนิดของซอฟต์แวร์ หากแบ่งแยกชนิดของซอฟต์แวร์ตามสภาพการทำงาน แบ่งแยกซอฟต์แวร์ได้เป็น 2 ประเภท คือ • ซอฟต์แวร์ระบบ (system software) • ซอฟต์แวร์ประยุกต์ (application software)

  25. ซอฟต์แวร์ (software) • ซอฟต์แวร์ระบบ คือ ซอฟต์แวร์ที่บริษัทผู้ผลิตสร้างขึ้นมาเพื่อใช้จัดการกับระบบ หน้าที่การทำงานของซอฟต์แวร์ระบบคือดำเนินงานพื้นฐานต่าง ๆ ของระบบคอมพิวเตอร์ เช่น รับข้อมูลจากแผงแป้นอักขระแล้วแปลความหมายให้คอมพิวเตอร์เข้าใจ นำข้อมูลไปแสดงผลบนจอภาพหรือนำออกไปยังเครื่องพิมพ์ จัดการข้อมูลในระบบแฟ้มข้อมูลบนหน่วยความจำรอง

  26. ซอฟต์แวร์ (software) • ซอฟต์แวร์ประยุกต์ เป็นซอฟต์แวร์ที่ใช้กับงานด้านต่าง ๆ ตามความต้องการของผู้ใช้ ที่สามารถนำมาใช้ประโยชน์ได้โดยตรง ปัจจุบันมีผู้พัฒนาซอฟต์แวร์ใช้งานทางด้านต่าง ๆ ออกจำหน่ายมาก การประยุกต์งานคอมพิวเตอร์จึงกว้างขวางและแพร่หลาย เราอาจแบ่งซอฟต์แวร์ประยุกต์ออกเป็นสองกลุ่มคือ ซอฟต์แวร์สำเร็จ และซอฟต์แวร์ที่พัฒนาขึ้นใช้งานเฉพาะ

  27. ซอฟต์แวร์ (software)

  28. ซอฟต์แวร์ (software) • ชนิดของซอฟต์แวร์ ในปัจจุบัน สามารถแบ่งลักษณะของซอฟต์แวร์ออกเป็น 7 ประเภท ดังนี้ 1. ซอฟต์แวร์ระบบ (System Software) 2. ซอฟต์แวร์ประยุกต์ (Application Software) 3. ซอฟต์แวร์เชิงวิศวกรรม/วิทยาศาสตร์ (Engineering/Scientific Software) 4. ซอฟต์แวร์ฝังตัว (Embedded Software)

  29. ซอฟต์แวร์ (software) 5. ซอฟต์แวร์สายการผลิต (Product-line Software) 6. เว็บแอพพลิเคชั่น (Web-application) 7. ซอฟต์แวร์ปัญญาประดิษฐ์ (Artificial Intelligence Softwear)

  30. วิวัฒนาการของซอฟต์แวร์ (Software Evolution) • กฎแห่งการเปลี่ยนแปลงอย่างต่อเนื่อง (Law of Continuing Change) • กฎแห่งความซับซ้อนที่เพิ่มขึ้น (Law of Increasing Complexity) • กฎแห่งการวางระเบียบตัวเอง (Law of Self-regulation) • กฎแห่งอนุรักษ์สภาพเสถียรการจัดระเบียบ (Law of Conservation of Organizational Stability) • กฎการคงไว้ซึ่งความคุ้นเคย (Law of Conservation of Familiarity)

  31. วิวัฒนาการของซอฟต์แวร์ (Software Evolution) • กฎแห่งการเติบโตอย่างต่อเนื่อง (Law of Continuing Growth) • กฎแห่งการลดลงซึ่งคุณภาพ (Law of Declining Quality) • กฎระบบย้อนกลับ (Feedback System Law)

  32. THE END • นักศึกษาสามารถดาวน์โหลด เอกสารประกอบการเรียน ได้ที่ http://dearnan.wordpress.com • จะนำPowerPoint ประกอบการเรียนขึ้นเว็บภายในวันอาทิตย์

More Related