งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

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

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "วิชา COMP342 วิศวกรรมซอฟต์แวร์ (Software Engineering)"— ใบสำเนางานนำเสนอ:

1 วิชา COMP342 วิศวกรรมซอฟต์แวร์ (Software Engineering)
อาจารย์ผู้สอน อ. รติวัฒน์ ปารีศรี วท.ม. (เทคโนโลยีสารสนเทศ) สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง วท.บ. (คอมพิวเตอร์ศาสตร์) ม.รามคำแหง Web site :

2 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
ความหมายของวิศวกรรมซอฟต์แวร์ (Software Engineer Meaning ) วิศวกรรมซอฟต์แวร์ (SE) หมายถึง วิธีการที่นำไปสู่การบริหารจัดการสำหรับ การสร้างหรือพัฒนาซอฟต์แวร์ขึ้นมาใช้งาน ซึ่งจากความหมายแล้วนั้นจะเห็นว่า วิธีการหรือกระบวนการเหล่านั้นมีอยู่กว้าง มากมาย แต่ตามหลักของ SE นั้นต้อง เป็นกระบวนการที่ดีที่สุด ทันสมัย มีประสิทธิภาพ รวดเร็ว และที่สำคัญมีการ ประหยัดค่าใช้จ่ายในการสร้างซอฟต์แวร์นั่นเอง ซึ่งในปัจจุบันมีวิธีการและเทคนิค ต่าง ๆ มากมายที่สามารถนำมาใช้ในการสร้างซอฟต์แวร์

3 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
ความหมายของระบบ (System Meaning ) ระบบ (System) หมายถึง กลุ่มงาน (Set) ที่มีองค์ประกอบ (Component) หลาย ๆ ส่วน โดยแต่ละองค์ประกอบจะทำงานร่วมกันเพื่อ จุดประสงค์ (Purpose) เดียวกัน เช่น ระบบการทำงานของคอมพิวเตอร์ จะ ประกอบไปด้วยองค์ประกอบหลัก 3 ส่วนด้วยกันคือ อุปกรณ์ (Hardware) ซอฟต์แวร์ (Software) และผูใช้งาน (People ware) ทั้ง 3 ส่วนนี้จะทำงาน ร่วมกันโดยมีจุดประสงค์ในการประมวลผล เพื่อให้ได้มาซึ่งผลลัพธ์ที่ตรงตามความ ต้องการ

4 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
ความเกี่ยวข้องระหว่างวิศวกรรมซอฟต์แวร์ (SE) กับระบบ (S) เราจะมองว่าในสร้างซอฟต์แวร์นั้นตั้งแต่กระบวนการแรกจนจบจะเป็นเรื่องของ SE ซึ่งต้องอาศัยวิธีการต่าง ๆ นา ๆ ซึ่งในส่วนของการสร้างซอฟต์แวร์นั้นจะมี รายละเอียดการทำงานมากมาย เพราะซอฟต์แวร์ 1 ซอฟต์แวร์จะมีหน้าที่การ ทำงานมากมายหลายอย่าง เราเลยมองหน้าที่การทำงานเหล่านั้นเป็นระบบ (System) นั่นเอง ดังนั้นเมื่อเราศึกษาเรื่อง SE ก็จำเป็นอย่างยิ่งที่เราต้องศึกษา เรื่องระบบ เช่นกัน เพราะการสร้างซอฟต์ขึ้นมาใช้งานจริงนั้นเราต้องเข้าใจการ ทำงานของซอฟต์แวร์นั้นเป็นอย่างดี นั่นก็คือต้องเข้าใจระบบการทำงานของมันด้วย

5 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
การวิเคราะห์ระบบ (System Analysis) เมื่อซอฟต์แวร์ที่เราใช้งานในปัจจุบัน ไม่สามารถทำงานให้เราตามวัตถุประสงค์ หรือ ทำงานได้แต่ไม่มีประสิทธิภาพ ทั้งนี้อาจเกิดจากสภาพแวดล้อมเปลี่ยนไป เราจึง จำเป็นต้องมีการปรับปรุง เปลี่ยนแปลง แก้ไขซอฟต์แวร์เหล่านั้น เพื่อให้สามารถใช้ งานได้ดีเหมือนเดิม ดังนั้นเราก็ต้องศึกษาระบบการทำงานของซอฟต์แวร์นั้น ๆ ว่า มีการทำงานอย่างไร จึงจำเป็นที่ต้องมีการวิเคราะห์ระบบ (System Analysis) นั่นเอง ดังนั้นต่อไปจะเป็นการพูดถึงในเรื่องของระบบ (System)

6 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
ใครคือผู้วิเคราะห์ และออกแบบระบบ ? การวิเคราะห์ระบบ (System Analysis) การวิเคราะห์ระบบงาน เป็นการศึกษาถึงปัญหาที่เกิดขึ้นในระบบงานปัจจุบัน (Current System) เพื่อออกแบบระบบการทำงานใหม่ (New System) นอกจากจะสร้างระบบงานใหม่แล้ว เป้าหมายในการวิเคราะห์ระบบต้องการ ปรับปรุงและแก้ไขระบบเดิมให้มีทิศทางดีขึ้น โดยก่อนที่ระบบใหม่ยังไม่นำมาใช้งาน เราจะเรียกระบบงานที่กำลังใช้งานอยู่ว่า ระบบปัจจุบัน แต่หากนำเอาระบบใหม่มา ใช้งานเมื่อใด เราจะเรียกระบบปัจจุบันที่เคยใช้งานนั้นว่า ระบบเก่า (Old System) นั่นเอง

7 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
นักวิเคราะห์ระบบ (System Analyst: SA) SA หมายถึงคนที่ทำหน้าที่ศึกษาระบบงานเดิมเพื่อพัฒนาเป็นระบบงานใหม่ โดยเป็นผู้ประสานการติดต่อบุคคลต่าง ๆ ซึ่งจะต้องอาศัยกระบวนการต่าง ๆ ในการวิเคราะห์ระบบ

8 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
ข้อแตกต่างระหว่างนักเขียนโปรแกรม กับ นักวิเคราะห์ระบบ โปรแกรมเมอร์ ( programmer ) หมายถึงบุคคลที่รับผิดชอบในด้านการเขียน โปรแกรม สิ่งที่เขาจะเชื่อมโยงนั้น ได้แก่ อุปกรณ์คอมพิวเตอร์ ระบบปฏิบัติ ( Operating System :OS ) หรือแม้กระทั่งภาษาที่ใช้ในการเขียน เช่น COBOL, BASIC และ C++ งานของโปรแกรมเมอร์จะเป็นไปในลักษณะที่มีขอบเขตที่แน่นอนคือ โปรแกรมที่เขาเขียนขึ้นนั้นถูกต้องตามจุดประสงค์หรือไม่ กิจกรรมงานของโปรแกรม จะเกี่ยวข้องกับคนจำนวนน้อย เช่น กับโปรแกรมเมอร์ด้วยกันเอง หรือกับนักวิเคราะห์ ระบบที่เป็นผู้วางแนวทางของระบบให้แก่เขา

9 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
ข้อแตกต่างระหว่างนักเขียนโปรแกรม กับ นักวิเคราะห์ระบบ นักวิเคราะห์ระบบ หรือที่เรียกกันย่อๆ ว่า SA (SYSTEM ANALYSIS) นั้น นอกจาก จะต้องรับผิดชอบต่อการโปรแกรมคอมพิวเตอร์แล้ว ยังจะต้องรับผิดชอบงานในส่วนที่ เกี่ยวกับการจัดหาอุปกรณ์ต่างๆ เกี่ยวกับคอมพิวเตอร์ ผู้ที่จะใช้ระบบแฟ้มหรือ ฐานข้อมูลต่างๆ รวมทั้งข้อมูลดิบที่จะป้อนเข้าระบบงานของนักวิเคราะห์ระบบไม่ได้ อยู่ในลักษณะที่แน่นอนแบบโปรแกรมเมอร์ ไม่มีคำตอบที่แน่นอนจากระบบที่เขาวาง ไม่ว่าผิดหรือถูก งานของเขาเกิดจากการประนีประนอมและผสมผสานของปัจจัยต่างๆ ที่เกี่ยวข้องกับระบบงาน คือ ผู้ใช้ วิธีการ เทคโนโลยี และอุปกรณ์

10 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
คุณสมบัติของนักวิเคราะห์ระบบ (Property of System Analyst) หลังจากที่เราได้วิเคราะห์ว่า นักวิเคราะห์ระบบจะทำหน้าที่เป็นแกนกลางระหว่างนัก ธุรกิจ (BUSINESS PEOPLE) หรือผู้ใช้ระบบ (USERS) กับโปรแกรมเมอร์ (PROGRAMMERS) อย่างไรก็ตามธุรกิจหรือหน่วยงานต่างๆ จึงมักจะมีความคิดที่ว่า นักวิเคราะห์ระบบจะต้องมีพื้นฐานการเขียนโปรแกรมเป็นอันดับแรกแนวความคิดนี้ แท้จริงแล้วเป็นเพียงส่วนหนึ่งเท่านั้นในคุณสมบัติอันควรมีของนักวิเคราะห์ระบบ

11 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
คุณสมบัติของนักวิเคราะห์ระบบ (Property of System Analyst) นักวิเคราะห์ระบบจะต้องมีความสามารถที่จะพัฒนาระบบเพื่อแก้ปัญหาให้กับผู้ใช้ หรือธุรกิจอย่างมีเทคนิคและแบบแผน โปรแกรมเมอร์ที่เก่งมิได้หมายความว่าเขาจะ เป็นนักวิเคราะห์ระบบที่ดีได้ในทางตรงกันข้าม โปรแกรมเมอร์ที่ไม่เก่งมิได้หมายความ ว่าเขาจะเป็นนักวิเคราะห์ระบบที่ดีไม่ได้ หากเราจะพิจารณาถึงคุณสมบัติพื้นฐานที่นักวิเคราะห์ระบบควรมี โดยยึดตาม แนวทางของงานที่นักวิเคราะห์ระบบต้องใช้ปฏิบัติ ก็จะเป็นดังต่อไปนี้

12 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
คุณสมบัติของนักวิเคราะห์ระบบ (Property of System Analyst) มีความรู้ทางด้านระบบงานธุรกิจ มีความสามารถในการวิเคราะห์ ต้นทุน ผลตอบแทน มีภาวะความเป็นผู้นำ มีความรอบรู้เทคโนโลยี มีมนุษยสัมพันธ์ที่ดี มีความสามารถในการแก้ไขปัญหา ประสบการณ์จะสำคัญต่อ SA มีความรู้ในการเขียนโปรแกรม

13 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
ทีมงานการพัฒนาระบบ (Team of System Development) คณะกรรมการดำเนินงาน ผู้สนับสนุนฝ่ายเทคนิค ผู้อำนวยการ/ผู้จัดการ/หัวหน้า เจ้าหน้าที่ นักวิเคราะห์ระบบ ผู้ใช้งาน นักเขียนโปรแกรม ขนาดของทีมงานขึ้นอยู่กับขนาดของงาน และองค์กร วิศวกรระบบ

14 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
วงจรชีวิตการพัฒนาระบบ (System Development Life Cycle) เป็นวงจรที่แสดงถึงขั้นตอนต่าง ๆ ตั้งแต่เริ่มจนกระทั่งสำเร็จ โดยในแต่ละขั้นตอนจะ ประกอบไปด้วยกิจกรรมต่าง ๆ มากมาย ขั้นตอนต่าง ๆ ประกอบด้วย 7 ขั้นตอน ด้วยกันคือ กำหนดปัญหา (Problem Definition) ทดสอบ (Testing) วิเคราะห์ (Analysis) ติดตั้ง (Implementation) ออกแบบ (Design) บำรุงรักษา (Maintenance) พัฒนา(Development)

15 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
การกำหนดปัญหา (Problem Definition) การกำหนดปัญหา เป็นขั้นตอนของการกำหนดขอบเขตของปัญหา สาเหตุของ ปัญหาจากการดำเนินที่เกิดขึ้น แล้วทำการสำรวจความต้องการ ต่าง ๆ จากผู้ใช้งาน (Users Requirement) แล้วทำการศึกษาความเป็นไปได้ในการแก้ปัญหา เหล่านั้น ซึ่งปัญหาอาจจะมีหลายข้อ เราก็ต้องสำรวจคววามเป็นไปได้ (Feasibility Study)ด้วยเสมอ ผลลัพธ์ที่ได้จากขั้นตอนนี้คือUser Requirement นั่นเอง

16 และรวบรวมความต้องการ Requirement Gathering
หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ การกำหนดปัญหา (Problem Definition) กระบวนการทางธุรกิจ (Business Process) สารสนเทศทางธุรกิจ (Business Information) กฎของธุรกิจ (Business Rules) สร้างแบบจำลอง และรวบรวมความต้องการ Requirement Gathering กำหนดความต้องการ Requirement Specification

17 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
วิเคราะห์ (Analysis) การวิเคราะห์เป็นขั้นตอนการสำรวจการดำเนินงานของระบบปัจจุบัน โดยการนำ Requirement Specification ที่ได้จากขั้นตอนก่อนหน้านี้มาวิเคราะห์ใน รายละเอียดเพื่อพัฒนาเป็นแบบจำลองทางตรรกะ (Logical Model) ซึ่งจะใช้ เทคนิคของ แผนภาพกระแสข้อมูล (Data Flow Diagram) คำอธิบายการ ประมวลผลข้อมูล (Process Description) และแบบจำลองข้อมูล (Data Model) ในรูแบบของ ER-Diagram

18 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
วิเคราะห์ (Analysis) แบบจำลองตรรกะ Logical Model DFD System Flowchart Process Desc ERD ความต้องการ Requirement Specification วิเคราะห์ (Analysis)

19 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
การออกแบบ (Design) การออกแบบเป็นขั้นตอนของการนำผลลัพธ์ที่ได้จากการวิเคราะห์ทางตรรกะ มา พัฒนาเป็นแบบจำลองทางกายภาพ (Physical Model) ให้สอดคล้องกัน เช่น การออกแบบรายงาน (Report) การรับข้อมูล (Input) การแสดงผล (Output) และในส่วนของฐานข้อมูลต้องนำ ERD ที่อยู่ในแบบจำลองตรรก มา แปลงให้เป็น พจนานุกรมข้อมูล (Data Dictionary) ขั้นตอนนี้จะได้ตัวระบบที่ จะนำไปพัฒนาจริงๆ

20 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
การออกแบบ (Design) แบบจำลองตรรกะ Logical Model DFD System Flowchart Process Desc ERD Physical Model ออกแบบ Design

21 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
พัฒนา (Development) การพัฒนาเป็นขั้นตอนของการพัฒนาโปรแกรมด้วยการสร้างชุดคำสั่ง หรือเขียน โปรแกรมเพื่อสร้างระบบขึ้นมา ตามที่ได้ออกแบบไว้แล้ว Physical Model

22 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
ทดสอบ (Testing) การทดสอบระบบ เป็นขั้นตอนหลังจากที่เราพัฒนาเสร็จแล้ว ก่อนที่จะนำระบบไป ใช้งานจริง ผู้พัฒนาและทีมงานจะต้องทำการทดสอบการทำงานเบื้องต้น ด้วยการ สร้างสถานะการแบบจำลองเหตุการณ์ ในการการใช้งานขึ้นมา อาจจะอาศัยผู้ใช้งาน จริงมาทดสอบระบบ การทดสอบจะมี 2 ส่วน - Syntax Testing  Validation - Objective Testing  Verification

23 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
ติดตั้ง (Implement) หลังจากที่ระบบผ่านการทดสอบแล้ว จะเป็นการนำระบบไปติดตั้งเพื่อใช้งานจริง โดยการติดตั้งระบบนั้น ต้องดำเนินการทกอย่าง ตั้งแต่การจัดหา Hardware , OS Software หรือส่วนประกอบอื่นที่มีความเกี่ยวข้องกับการใช้งานระบบ นั่น หมายความว่าในการใช้งานระบบ เราต้องเตรียมความพร้อมในเรื่องต่างๆ ให้พร้อม แล้วจึงทำการติดตั้งระบบเพื่อใช้งานจริง

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

25 หน่วยที่1ความรู้เบื้องต้นเกี่ยวกับวิศวกรรมซอฟต์แวร์ การวิเคราะห์และออกแบบระบบ
งานกลุ่ม อภิปรายหลังคาบ -ให้แต่ละกลุ่มคิดและอภิปรายถึง คุณสมบัติของซอฟต์แวร์ที่มีคุณภาพ ว่ามีลักษณะ เป็นอย่างไร - ให้แต่ละกลุ่มแสดงความคิดเห็นว่าขั้นตอนใดของ SDLC มีความสำคัญที่สุด งานกลุ่มส่งคาบหน้า ให้แบ่งกลุ่มเป็น 3 กลุ่มค้นคว้าในหัวข้อต่อไปนี้แล้วนำมาสรุปในห้องเรียน -Water Fall Model - Spiral Model -Incremental Model

26 วิศวกรรมซอฟต์แวร์ เศรษฐกิจของประเทศที่พัฒนาแล้วต้องพึ่งพาSoftware
ซอฟต์แวร์เข้ามาควบคุมระบบต่างๆ มากขึ้น วิศวกรรมซอฟต์แวร์ เกี่ยวข้องกับ ทฤษฎี วิธี และเครื่องมือ สำหรับการ พัฒนาซอฟต์แวร์อ์อย่างมืออาชีพ ค่าใช้จ่ายกับซอฟต์แวร์คิดเป็นอัตราส่วนที่สำคัญต่อรายได้ประชาชาติในทุก ประเทศที่พัฒนาแล้ว


ดาวน์โหลด ppt วิชา COMP342 วิศวกรรมซอฟต์แวร์ (Software Engineering)

งานนำเสนอที่คล้ายกัน


Ads by Google