Itsc2301 software engineering l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 32

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


  • 119 Views
  • Uploaded on
  • Presentation posted in: General

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Itsc2301 software engineering l.jpg

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

อาจารย์ผู้สอน

อ. พรภัทรา ภัทรจารี

วท.ม. (เทคโนโลยีสารสนเทศและการสื่อสาร :Data communication & Network)

สถาบันเทคโนโลยีพระจอมเกล้า พระนครเหนือ

วท.บ. (วิทยาการคอมพิวเตอร์)

มหาวิทยาลัยเกษตรศาสตร์


Slide2 l.jpg

แนะนำรายวิชา

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


Slide3 l.jpg

ข้อตกลงในชั้นเรียน

  • เวลาเข้าเรียนไม่ต่ำกว่าร้อยละ 80

    • ขาดได้ไม่เกิน 3 ครั้ง

    • มาสายกว่าเวลาเรียนครึ่งชั่วโมง 2 ครั้ง ถือว่าขาด 1 ครั้ง

  • ส่งงานที่ได้รับมอบหมายทั้งหมดครบและตรงตามระยะเวลาที่กำหนด

  • การแต่งกาย ให้เป็นไปตามระเบียบมหาวิทยาลัยกำหนด หากฝ่าฝืนจะไม่ได้รับอนุญาตให้เข้าชั้นเรียน


Slide4 l.jpg

ข้อตกลงในชั้นเรียน

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

    • ป่วย,ได้รับอุบัติเหตุ

    • มีกิจธุระสำคัญทางราชการ

      โดยจะต้องทำจดหมายลาหรือมีหนังสือชี้แจงล่วงหน้า ทั้งนี้ขึ้นอยู่กับดุลยพินิจของผู้สอน


Slide5 l.jpg

ข้อตกลงในการกำหนดคะแนน

  • ระหว่างภาค (70%) แบ่งเป็น

    • ความสนใจ (การเข้าเรียน จริยธรรม และ การแต่งกาย)15%

    • งานที่ได้รับมอบหมาย25%

    • สอบกลางภาค30%

  • ปลายภาค (30%)

    • สอบปลายภาค30%


Slide6 l.jpg

ระดับการประเมินผล (อิงเกณฑ์)

  • 80-100A

  • 75-79B+

  • 70-74B

  • 65-69C+

  • 60-64C

  • 55-59D+

  • 50-54D

  • 0-49E


Slide7 l.jpg

เรียนอะไรในวิชา

  • บทนำ-วิศวกรรมซอฟต์แวร์ (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)

สอบกลางภาค

สอบปลายภาค


Slide8 l.jpg

หนังสือที่ใช้ในการทบทวน

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

    Roger S. Pressman แปลโดย ผศ.ดร.พรฤดี เนติโสภากุล

  • การวางแผนโครงการพัฒนาซอฟต์แวร์ (Software Project Planning)

    เมสินี นาคมณี


Introduction l.jpg

Introduction

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

    มุมมองทางการศึกษาในแง่ของสาขาวิชา

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


Software engineering l.jpg

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

  • วิศวกรรมซอฟต์แวร์ คือกระบวนการสร้างสรรค์โปรแกรมโดยใช้หลักทางวิศวกรรมเข้ามาช่วยในการดำเนินการสร้าง (อ.สมหมาย สุขคำ)

  • “Software Engineering is systematic approach to the development operation , maintenance , retirement of software” (IEEE 83b)

  • “วิชาการว่าด้วยการออกแบบโปรแกรมคอมพิวเตอร์ ตลอดจนการบริหารงานการพัฒนาเพื่อที่จะได้มาซึ่ง ผลิตผลซอฟต์แวร์ที่มีคุณภาพสูง ราคาถูก และภายในเวลาที่กำหนดให้” (สุชาย ธนวเสถียร)


Slide11 l.jpg

วิทยาการคอมพิวเตอร์และวิศวกรรมซอฟต์แวร์

  • วิทยาการคอมพิวเตอร์ (Computer Science)

    อยู่บนรากฐานของวิทยาศาสตร์ ซึ่งเน้นการทำความเข้าใจและค้นหาความจริงเกี่ยวกับความรู้ทางคอมพิวเตอร์ เพื่อสร้างแนวคิด/ทฤษฎีใหม่ หรือ ปฏิเสธแนวคิด/ทฤษฎีเดิม และขยายวงความรู้ให้กว้างขึ้นจากแนวคิด/ทฤษฎีที่มีอยู่

    * ผลงานถูกพิจารณา หรือ ตัดสินโดยกลุ่มนักวิทยาศาสตร์


Slide12 l.jpg

วิทยาการคอมพิวเตอร์และวิศวกรรมซอฟต์แวร์

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

    อยู่บนรากฐานของวิธีการทางวิศวกรรมศาสตร์ ซึ่งประยุกต์แนวคิด/ทฤษฎีทางวิทยาศาสตร์ คณิตศาสตร์และเทคโนโลยีขณะนั้นในการสร้างผลิตภัณฑ์ที่เป็นประโยชน์และปลอดภัยต่อสาธารณะ

    * ผลงานถูกพิจารณา หรือ ตัดสินโดยกลุ่มผู้ใช้


Slide13 l.jpg

ลักษณะของวิศวกรรมซอฟต์แวร์

  • เกี่ยวข้องกับการสร้างโปรแกรมขนาดใหญ่

  • สามารถจัดการเกี่ยวกับความซ้ำซ้อนได้

  • เน้นการทำงานร่วมกันของบุคลากร

  • สามารถเปลี่ยนแปลงได้ง่ายเมื่อจำเป็น

  • เน้นการพัฒนาให้มีประสิทธิภาพ

  • สนองความต้องการของผู้ใช้


Slide14 l.jpg

องค์ประกอบของการวิศวกรรมซอฟต์แวร์

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


Slide15 l.jpg

องค์ประกอบของการวิศวกรรมซอฟต์แวร์

Software production processes

Software products

Support tools /Environments

Market places / users


Slide16 l.jpg

คุณลักษณะของกระบวนการวิศวกรรมซอฟต์แวร์

  • Understandability : มีการนิยามขอบเขตของกระบวนการที่ชัดแจ้งและง่ายต่อการเข้าใจ

  • Visibility : ทำให้กิจกรรมกระบวนการชัดเจนที่สุดเพื่อสามารถมองเห็นจากภายนอกได้ชัดเจน

  • Supportability : เครื่องมือช่วยการวิศวกรรมซอฟต์แวร์ (CASE)สามารถช่วยสนับสนุนกิจกรรมกระบวนการในขอบเขตใด


Slide17 l.jpg

คุณลักษณะของกระบวนการวิศวกรรมซอฟต์แวร์

  • Acceptability : กระบวนการที่กำหนดสามารถยอมรับและใช้โดยวิศวกรซอฟต์แวร์ในการผลิตผลิตภัณฑ์ซอฟต์แวร์

  • Reliability : กระบวนการถูกออกแบบในแนวทางซึ่งความผิดพลาดของกระบวนการถูกหลีกเลี่ยงก่อนที่จะส่งผลต่อความผิดพลาดของผลิตภัณฑ์ซอฟต์แวร์

  • Robustness : กระบวนการสามารถทำงานต่อได้แม้นว่ามีปัญหาที่ไม่คาดการณ์เกิดขึ้น


Slide18 l.jpg

คุณลักษณะของกระบวนการวิศวกรรมซอฟต์แวร์

  • Maintainability : กระบวนการสามารถวิวัฒนาการเพื่อตอบสนองการเปลี่ยนแปลงความต้องการขององค์กร

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


Introduction19 l.jpg

Introduction

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

  • ซอฟต์แวร์ หมายรวมถึงโปรแกรมคอมพิวเตอร์ทุกประเภทที่ทำให้คอมพิวเตอร์ทำงานได้


Introduction20 l.jpg

Introduction

  • คุณสมบัติของซอฟต์แวร์

    • ซอฟต์แวร์ถูกพัฒนาหรือจัดการให้เกิดขึ้น

    • ซอฟต์แวร์ไม่สึกหรอ

    • ถูกสร้างตามแบบที่ลูกค้าต้องการ (Custom build)


Slide21 l.jpg

การเสื่อมสภาพของฮาร์ดแวร์

ความผิดพลาด

เวลา


Slide22 l.jpg

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

ความผิดพลาด

เวลา


Slide23 l.jpg

การเสื่อมสภาพของซอฟต์แวร์

ความผิดพลาด

เวลา


Software l.jpg

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

  • ชนิดของซอฟต์แวร์

    หากแบ่งแยกชนิดของซอฟต์แวร์ตามสภาพการทำงาน แบ่งแยกซอฟต์แวร์ได้เป็น 2 ประเภท คือ

    • ซอฟต์แวร์ระบบ (system software)

    • ซอฟต์แวร์ประยุกต์ (application software)


Software25 l.jpg

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

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


Software26 l.jpg

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

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


Software27 l.jpg

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


Software28 l.jpg

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

  • ชนิดของซอฟต์แวร์

    ในปัจจุบัน สามารถแบ่งลักษณะของซอฟต์แวร์ออกเป็น 7 ประเภท ดังนี้

    1. ซอฟต์แวร์ระบบ (System Software)

    2. ซอฟต์แวร์ประยุกต์ (Application Software)

    3. ซอฟต์แวร์เชิงวิศวกรรม/วิทยาศาสตร์ (Engineering/Scientific Software)

    4. ซอฟต์แวร์ฝังตัว (Embedded Software)


Software29 l.jpg

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

5. ซอฟต์แวร์สายการผลิต (Product-line Software)

6. เว็บแอพพลิเคชั่น (Web-application)

7. ซอฟต์แวร์ปัญญาประดิษฐ์ (Artificial Intelligence Softwear)


Software evolution l.jpg

วิวัฒนาการของซอฟต์แวร์ (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)


Software evolution31 l.jpg

วิวัฒนาการของซอฟต์แวร์ (Software Evolution)

  • กฎแห่งการเติบโตอย่างต่อเนื่อง (Law of Continuing Growth)

  • กฎแห่งการลดลงซึ่งคุณภาพ (Law of Declining Quality)

  • กฎระบบย้อนกลับ (Feedback System Law)


The end l.jpg

THE END

  • นักศึกษาสามารถดาวน์โหลด เอกสารประกอบการเรียน ได้ที่ http://dearnan.wordpress.com

  • จะนำPowerPoint ประกอบการเรียนขึ้นเว็บภายในวันอาทิตย์


  • Login