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

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

บทที่ 1 บทนำสู่วิศวกรรมซอฟต์แวร์

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


งานนำเสนอเรื่อง: "บทที่ 1 บทนำสู่วิศวกรรมซอฟต์แวร์"— ใบสำเนางานนำเสนอ:

1 บทที่ 1 บทนำสู่วิศวกรรมซอฟต์แวร์
บทที่ 1 บทนำสู่วิศวกรรมซอฟต์แวร์ เคยสังเกตบ้างไหมว่า การประดิษฐ์คิดค้นด้านเทคโนโลยีเรื่องหนึ่ง บางครั้งส่งผลที่ไม่คาดคิดต่อเรื่องอื่นที่อาจไม่เกี่ยวข้องกับเรื่องที่คิดค้นขึ้นนั้น เช่น การทำธุรกิจ ชีวิตความเป็นอยู่ของผู้คนหรือแม้แต่วัฒนธรรมโดยรวม ปรากฏการณ์ประเภทนี้เรียกว่าเป็น “กฎแห่งผลที่ไม่คาดหวัง(law of unintended consequences)” ทุกวันนี้ซอฟต์แวร์คอมพิวเตอร์เป็นเทคโนโลยีที่มีบทบาทสำคัญมาก ที่สุดในระดับโลกและเป็นตัวอย่างสำคัญของกฎแห่งผลที่ไม่ได้คาดหวัง ดังกล่าวข้างตันในราวทศวรรษ 1950 คงไม่มีใครคาดคิดว่าซอฟต์แวร์จะกลายเป็นเทคโนโลยีที่ขาดไม่ได้ทางธุรกิจ งานทางด้านวิทยาศาสตร์และวิศวกรรมศาสตร์ รวมถึงซอฟต์แวร์จะสามารถ ก่อให้เกิดเทคโนโลยีใหม่อื่นๆเช่น พันธุวิศวกรรม หรือเป็นส่วนขยาย เทคโนโลยีที่มีอยู่แล้วเช่น โทรคมนาคม หรือเป็นการผลัดใบของเทคโนโลยี เก่าเช่น อุตสาหกรรม การพิมพ์ นอกจากนี้ซอฟต์แวร์ยังเป็นแรงผลักดัน ให้เกิดการปรับโฉมหน้าของคอมพิวเตอร์จากที่มีขนาดใหญ่เทอะทะ มาสู่ยุค คอมพิวเตอร์ส่วนบุคคลแล้วต่อมาอีกไม่นานนักเราก็ได้รู้จักกับอินเตอร์เน็ต ระบบเครือข่ายใหญ่ที่มีซอฟต์แวร์เป็นตัวขับเคลื่อนซึ่งที่กำเนิดขึ้นมาเพื่อ นำไปสู่การเปลี่ยนแปลงครั้งใหญ่ในทุกๆเวดวงตั้งแต่ระบบสืบค้นข้อมูล ห้องสมุด การซื้อข้าวของไปจนถึงการติดต่อหาเพื่อนฝูง

2 ซอฟต์แวร์ได้กลายเป็นสิ่งที่แฝงอยู่ในทุกระบบเช่น การขนส่ง การทการ อุตสาหกรรม ความบันเทิง อุปกรณ์สำนักงานอื่นๆอีกมากมาย และหากเราเชื่อในกฎแห่งผลที่ไม่ได้คาดหวังก็จะมีผลกระทบอื่นๆที่ยังไมได้คาดการณ์ได้ในเวลานี้อีกด้วย ในปัจจุบันเพื่อให้เหมาะสมกับเทคโนโลยีและความต้องการที่เปลี่ยนแปลงไปตามกาลเวลา โปรแกรมคอมพิวเตอร์ต้องถูกปรับปรุงให้ทันสมัยอยู่เสมอ โดยกิจกรรมที่เกี่ยวข้องกับการดูแลรักษาโปรแกรมคอมพิวเตอร์ต้องทันสมัยอยู่เสมอนี้ เป็นกิจกรรมที่ต้องใช้คนและทรัพยากรอื่นๆมากกว่าตอนที่สร้างซอฟต์แวร์ใหม่เสียอีก แนวแความคิดและการค้นพบเทคโนโลยีเป็นแนวขับเคลื่อนเติบโตทางเศรษฐกิจ จาก The Wall Street journal

3 ในขณะที่ความสำคัญของซอฟต์แวร์มีเพิ่มมากขั้น ประชาคม ซอฟต์แวร์ได้พยายามที่จะพัฒนาเทคโนโลยีที่จะช่วยการสร้างและดุแล โปรแกรมคอมพิวเตอร์นั้นง่ายขึ้นเร็วขึ้นและเสียค่าใช้จ่ายน้อยลง โดยบาง เทคโนโลยีเน้นไปที่แอพพลิเคชั่นโดเมนเฉพาะเช่น การออกแบบและการ สร้างเว็บไซต์ บางเทคโนโลยีเน้นไปด้านเทคนิคเช่น ระบบเชิงวัตถุ หรือ การโปรแกรมเชิงแง่มุม และบางเทคโนโลยีสามารถนำไปใช้ได้อย่าง กว้างขวางเช่น ระบบปฏิบัติการ Linuxอย่างไรก็ตามยังไม่มีเทคโนโลยีด้าน ซอฟต์แวร์ใดที่ทำได้ทุกสิ่งทุกอย่างและโอกาสที่เกิดขึ้นดังกล่าวก็มีเพียงน้อย นิด ในขณะเดียวกันผู้คนส่วนใหญ่ก็ได้ฝากชีวิตหน้าที่การงาน ความ ปลอดภัย และทุกๆสิ่งไว้กับซอฟต์แวร์คอมพิวเตอร์ไปเรียบร้อยแล้ว ดังนั้น เราได้แต่หวังซอฟต์แวร์เหล่านั้นควรจะทำงานได้อย่างถูกต้อง หนังสือเล่มนี้จะนำเสนอให้กรอบแนวคิดกับผู้พัฒนาซอฟต์แวร์ คอมพิวเตอร์ ซึ่งครอบคลุมทุกกระบวนการ(Process)วิธีการ(Method)และ เครื่องมือ(Tool) ต่างๆที่จะนำมาใช้ในการพัฒนาซอฟต์แวร์ ศาสตร์ที่ เกี่ยวข้องกับเรื่องดังกล่าวนี้เรียกว่า วิศวกรรมซอฟต์แวร์ ในสังคมสมัยใหม่ บทบาทของวิศวกรรมคือจัดหาระบบและผลิตภัณฑ์ซึ่งช่วยยกระดับความเป็นอยู่ทางวัตถุของมนุษย์ อันจะนำไปสู่ชีวิตที่สะดวกสบายขึ้นมีความปลอดภัยและมั่นคงมากขึ้น

4 1.1บทบาทของซอฟแวร์ที่ไม่หยุดนิ่ง ปัจจุบันนี้ซอฟต์แวร์มีสองบทบาท ในด้านหนึ่งตัวมันเองคือตัว ผลิตภัณฑ์ในขณะที่อีกด้านหนึ่ง ซอฟต์แวร์เป็นเครื่องมือที่ก่อให้เกิด ผลิตภัณฑ์ ในฐานะผลิตภัณฑ์ ซอฟต์แวร์เป็นตัวดึงเอาความสามารถ ทางการประมวลผลของฮาร์ดแวร์คอมพิวเตอร์ออกมา ไม่ว่าจะเป็นซอฟต์แวร์ ที่อยู่ในโทรศัพท์เคลื่อนที่หรือในคอมพิวเตอร์เมนเฟรม มันจะเป็นเหมือนกับ ตัวแปลงข้อมูลข่าวสาร (Imformation Trnsformen)โดนมันอาจจะผลิต จัดการ จัดหา ปรับเปลี่ยน แสดงผล หรือส่งต่อข้อมูล ซึ่งอาจะเป็นเพียง ข้อมูลที่เล็กมากเช่น หนึ่งบิท หรืออาจะเป็นข้อมูลที่ซับซ้อนเช่น การ นำเสนอแบบมัลติมีเดีย ส่วนอีกในบทบาทหนึ่งของซอฟต์แวร์ซึ่งเป็นเครื่องมือ ในการก่อให้เกิดผลิตภัณฑ์ ซอฟต์แวร์จะทำงานเหมือนกับเป็นตัวควบคุม คอมพิวเตอร์เช่น ระบบปฏิบัติการหรือเป็นตัวสื่อสารข้อมูลทางสารสนเทศเช่น เครือข่ายหรือเป็นส่วนที่ช่วยในการสร้างและควบคุมโปรแกรมอื่นๆเช่น ซอฟต์แวร์เครื่องมือและสภาพแวดล้อม

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

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

7 1.2 ซอฟแวร์ (Software) นิยามซอฟต์แวร์ของหนังสือส่วนใหญ่จะกล่าวในทำนองที่ว่า (1)ชุดคำสั่ง(โปรแกรมคอมพิวเตอร์) (2)โครงสร้างข้อมูลซึ่งทำให้โปรแกรม จัดการสารสนเทศได้และ (3)ชุดเอกสารที่บรรยายการปฏิบัติงานและการใช้ โปรแกรม เนื่องจากซอฟต์แวร์ไม่ใช่สิ่งที่จับต้องได้ซึ่งเป็นลักษณะตรงกัน ข้ามกับฮาร์ดแวร์อันได้แก่ ซอฟต์แวร์ถูกพัฒนาหรือจัดการให้เกิดขึ้นไม่ได้เกิดจากการผลิตในโรงงาน เหมือนสินค้าทั่วไปแม้ว่าการพัฒนาซอฟต์แวร์จะมีส่วนคล้ายกับการผลิต ฮาร์ดแวร์อยู่บ้าง แต่ทั้งสองกิจกรรมมีความแตกต่างกันอยู่เช่น เพื่อให้ได้ คุณภาพที่ดีทั้งสองกิจกรรมต่างต้องมีการออกแบบที่ดี แต่ปัญหาบางอย่างที่ อาจเกิดในสายการผลิตฮาร์ดแวร์ นอกจากนี้แม้ว่าสองกิจกรรมต้องเกี่ยวข้อง กับคน แต่ความสัมพันธ์ระหว่างคนและงานที่ต้องทำต่างกันโดยสิ้นเชิง ดังนั้นเราไม่อาจจัดการงานด้านซอฟต์แวร์ในแบบเดียวกับผลิตฮาร์ดแวร์ได้ ซอฟต์แวร์มาสึกหรอ ซึ่งในรูป 1.1 แสดงถึงอัตราความล้มเหลว (Failure Rate) ที่ขึ้นอยู่กับเวลาสำหรับฮาร์ดแวร์ความสัมพันธ์แบบกราฟอ่าง น้ำ (Bathtub Curve)นี้อธิบายได้ว่าในช่วงต้นของวงจรชีวิต ฮาร์ดแวร์จะมี อัตราการล้มเหลวสูง ทั้งนี้สาเหตุมาจากการบกพร่องของการออกแบบหรือ หารผลิตต่อข้อบกพร่องเหล้านี้ได้รับการแก้ไขจึงทำให้อัตราการล้มเหลว น้อยลงแล้วเข้าสู่สถานะคงตัว(Steady State)

8 รูปที่ 1.1 กราฟแสดงอัตราการล้มเหลวของฮาร์ตแวร์
ในช่วยท้ายของชีวิตฮาร์ดแวร์ อัตราความล้มเหลวนี้เพิ่มขึ้นอีกเนื่องจากฮาร์ดแวร์ที่ใช้เป็นเวลานานนี้อาจมีฝุ่นไปสะสม ถูกกระทบกระเทือนหรือถูกใช้งานอย่างผิดๆกล่าวง่ายๆฮาร์ดแวร์ก็คือ ฮาร์ดแวร์เริ่มมีการสึกหรอ (Wear Out) รูปที่ 1.1 กราฟแสดงอัตราการล้มเหลวของฮาร์ตแวร์

9 ในทางตรงกันข้าม ซอฟแวร์ไม่ได้อยู่กับเหตุปัจจัยทางกายภาพเหมือนกับฮาร์ดแวร์ดังนั้น ในทางทฤษฏีกราฟแสดงอัตราการล้มเหลวของซอฟต์แวร์ควรจะเป็นในแบบอุดมคติ (Idealized Curve) ดังแสดงในรูป 1.2

10 ความแตกต่างอีกอย่างหนึ่งของฮาร์ดแวร์และซอฟแวร์ในเรื่องการสึก หรอนี้ก็คือ เมื่อฮาร์ดแวร์สึกหรอเราสามารถเปลี่ยนตัวใหม่ได้แต่เราไม่มี ซอฟต์แวร์อะไหล่ จึงทำให้ยากต่อการบำรุงรักษาความล้มเหลวของ ซอฟต์แวร์แต่ละครั้งแสดงให้เห็นข้อบกพร่องในการออกแบบ ต้นเหตุสำคัญ ที่ทำให้เกิดความล้อมเหลวทางด้านซอฟต์แวร์ก็คือการออกแบบและการ เปลี่ยนแปลงการออกแบบนั้น ไปสู่รหัสที่เครื่องคอมพิวเตอร์สามารถเข้าใจได้ นั้นเอง 3. แม้ว่าอุตสาหกรรมซอฟต์แวร์กำลังมุ่งไปสู่การสร้างองค์ประกอบย่อย (Component-based Custom build) แต่ซอฟต์แวร์ส่าวนใหญ่ยังคงถูก สร้างตามแบบที่ลุกค้าแต่ละคนต้องการ(Custom Build) ลองพิจารณารูปแบบ ที่ฮาร์ดแวร์สำหรับควบคุมผลิตภัณฑ์ทางด้านคอมพิวเตอร์ได้รับการออกแบบ และสร้างขึ้น วิศวกรผู้ออกแบบเริ่มร่างแบบวงจรดิจิตอล จากนั้นจึงวิเคราะห์ เบื้องต้นเพื่อให้แน่ใจว่าจะทำงานได้อย่างถูกต้อง จากนั้นเข้าจึงเดินไปชั้นที่ เก็บแค็ตตาล็อกของส่วนประกอบดิจิตอลที่ต้องการ แต่ละแผงวงจรรวมมีรหัส ชิ้นส่วนบ่งบอกอยู่ มีอินเตอร์เฟสมาตรฐานและมีคู่มือบอกการต่อเชื่อมกับ ชิ้นส่วนอื่นหลังจากเลือกชิ้นส่วนที่มาประกอบกันเสร็จแล้วก็สามารถประกอบ ตามคำสั่งซื้อได้ทันที

11 1.3 ลักษณะที่กำลังเปลี่ยนไปของซอฟต์แวร์
ในปัจจุบันเราสามารถแบ่งลักษณะของซอฟแวร์ออกเป็น 7 แบบ ดังนี้ ซอฟต์แวร์ระบบ(System Software) ซอฟแวร์ระบบเป็นชุดโปรแกรมที่ เขียนขึ้นเพื่อบริการโปรอแกรมอื่นๆซอฟต์แวร์ระบบบางประเภทเช่น ตัว แปลภาษา ตัวแก้ไขข้อความและตัวช่วยจัดการไฟล์ มีโครงสร้าง สารสนเทศที่ซับซ้อนแต่กำหนดได้ ซอฟต์แวร์ประยุกต์ (Application Software) ซอฟต์แวร์ประยุกต์ ประกอบไปด้วยโปรแกรมเฉพาะทางที่ใช้ปัญหาเฉพาะกิจ นอกจาก ประมวลผลข้อมูลซึ่งเป็นงานหลังของซอฟต์แวร์ประยุกต์แล้วยังใช้ไว้ควบคุม หน้าที่ทางธุรกิจในเวลาตามจริงเช่น การประมวล ณ จุดขาย การ ควบคุมกระบวนการผลิตตามเวลาจริง ซอฟต์แวร์เชิงวิศวกรรม/วิทยาศาสตร์ (Engineering/Scientific Software)ซอฟต์แวร์ในกลุ่มนี้มักเป็นขั้นตอนวิธีที่ช่วยในการคำนวณ มีการ ใช้งานกว้าตั้งแต่งานทางด้านดาราศาสตร์ ชีววิทยา ฟิสิกส์ และอื่นๆ ปัจจุบันยังมีซอฟต์แวร์ที่ช่วยในการออกแบบในการจำลองระบบ และในงาน อินเตอร์เน็ตแอคทีฟอื่นๆ

12 ซอฟแวร์ฝังตัว(Embedded software)เป็นซอฟต์แวร์ที่ฝั่งอยู่ในตัวผลิตภัณฑ์หรือตัวระบบ มีไว้เพื่อให้สามารถควบคุมลักษณะและหน้าที่ต่างๆเพื่อผู้ใช้งานสุดท้าย และเพื่อตัวระบบเองซอฟต์แวร์ฝังตัวอาจทำงานเฉพาะอย่างเช่น การควบคุมปุ่มต่างๆบนเครื่องไมโครเวฟ ซอฟต์แวร์การผลิต(Product-time Software)เป็นซอฟต์แวร์ที่มีความสามารถเฉพาะเพื่อให้ใช้ได้กับลูกค้าที่แตกต่างกันซอฟต์แวร์ตัวนี้เน้นไปที่ตลาดเฉพาะ เว็บแอพพลิเคชั้น(Web-Applications)หรือเรียกสั้นๆว่าเว็ปแอพส์(Web Apps)ครอบคลุมงานประยุกต์เกือบทุกด้านในรูปแบบที่ง่ายที่สุด เว็บแอพส์อาจเป็นไฟล์ข้อมูลหลายมิติที่เชื่อมกันหลายข้อความซึ่งนำเสนอสารสนเทศโดยใช้ข้อความและกราฟิกที่จำกัด ซอฟต์แวร์ปัญญาดิษฐ์(Artificial Intelligence Software)ซอฟต์แวร์ประเภทนี้ใช้ประโยชน์จากอัลกอลิทึมที่ไม่ใช่เชิงการค้า เพื่อแก้ปัญหาที่ยากและซับซ้อนกว่าการวิเคราะห์คำนวณแบบตรงๆงานประยุกต์ในซอฟต์แวร์หมวดนี้รวมถึงวิทยาการหุ่นยนต์ ระบบผู้เชี่ยวชาญ การรู้จักแบบโครงข่ายประสาทเทียม การพิสูจน์ทฤษฏี และการเล่นเกมส์

13 อย่างไรก็ตาม ความท้าทายในเรื่องใหม่ๆก็ได้บังเกิดขึ้นอยู่สม่ำเสมอเช่น
การประมวลผลได้ทุกที่(Ubiquitous Computing) จากการพัฒนาไป อย่างรวดเร็วของเครือข่ายไร้สายนำมาสู่การคอมพิวเตอร์แบบกระจายอย่าง แท้จริงนักวิศวกรรมซอฟต์แวร์ต้องสร้างซอฟต์แวร์ที่ใช้งานได้บนเครื่องมือ เล็กๆ โอเพนซอร์ส(Open Sourcing)ในปัจจุบันนี้มีการเปิดเผยรหัสต้นฉบับ สำหรับซอฟต์แวร์ระบบ ทำให้ผู้สามารถปรับเปลี่ยนระบบให้ตรงกับความ ต้องการของงานตนเอง เศรษฐกิจยุคใหม่(The new Economy)ธุรกิจดอทคอมซึ่งควบคุมตลาด การเงินในช่วงปลายทศววรษ 1990 แล้วตามมาด้วยความพินาศในช่วง ต้นทศวรรษ 2000 ทำให้ผู้คนส่วนใหญ่เชื่อว่าเศรษฐกิจยุคใหม่ได้ตายไป แล้ว แต่อันที่จริงมันเป็นแต่การเริ่มต้นของยุคใหม่เท่านั้นและมันจะค่อย วิวัฒนาการอย่างช้าๆแล้วปรับให้เข้าไปการสื่อสารและการกระจายในระดับ กว้าง ความท้าทายสำหรับนักวิศวกรรมซอฟต์แวร์คือ จะต้องหาวิธีที่จะ สร้างแอพพลิเคชั่นที่จะอำนวยความสะดวกในการติดต่อสื่อสารและการ กระจายสินค้าระดับมวลชนใช้แนวคิดใหม่ที่พึ่งจะเป็นรูปเป็นร่างขึ้นมา ความท้าทายใหม่ๆที่กล่าวมานี้ สอดคล้องกับกฎแห่งผลที่ไม่ได้ คาดหวังเป้นอย่างดีเรายังคาดถึงผลกระทบอย่างไม่ได้วันนี้ หากนัก วิศวกรรมซอฟต์แวร์สามารถที่จะเตรียมพร้อมได้โดยการร่วมกระบวนการซึ่ง ว่องไวและปรับเปลี่ยนให้เข้ากับเทคโนโลยีเปลี่ยนแปลงไปในอนาคต ข้างหน้า

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

15 ซอฟต์แวร์ต้องได้รับการเปลี่ยนแปลงคุณสมบัติกับความต้องการด้านธุรกิจ ใหม่
ซอฟต์แวร์ต้องได้รับการขายสอดคล้องกับระบบและฐานข้อมูลที่ทันสมัยขึ้น ซอฟต์แวร์ต้องได้รับการออกแบบสถาปัตยกรรมใหม่เพื่อให้ต่อชีวิตในสภาพ เครือข่ายที่เปลี่ยนไปได้ เมื่อวิวัฒนาการต่างๆเหล่านี้ค่อยเกิดขึ้นทำให้ระบบซอฟต์แวร์ลายครามต้อง ได้รับการรีเอ็จิเนียร์ในท้ายที่สุด เป้า ซอฟต์แวร์หมายของวิศวกรรม ซอฟต์แวร์สมัยใหม่อย่างหนึ่งก็คือ เพื่อคิดระเบียนวิธีซึ่งพบได้ในการ วิวัฒนาการ นั้นคือความคิดที่ว่าซอฟต์แวร์เปลี่ยนแปลงอยู่ทุกขณะระบบ ซอฟต์แวร์ใหม่ได้รับการสร้างขึ้นจากระบบเก่าๆและระบบทั้งหมดต้อง สอดคล้องและทำงานร่วมกันอย่างมีประสิทธิภาพ วิวัฒนาการของซอฟต์แวร์(Software Evolution) ซอฟต์แวร์มีการเปลี่ยนแปลงอยู่เสมอการเปลี่ยนแปลงเกิดขึ้นเมื่อมีสิ่ง ผิดพลาดที่ต้องการแก้ไขหรือ เกิดขึ้นเมื่อต้องการปรับใช้ซอฟต์แวร์เดิมใน สภาพแวดล้อมใหม่หรือเมื่อลูกค้าต้องการให้มีหน้าที่ใหม่ๆ ในช่วง30ปีที่ ผ่านมา Manny Lehman และคณะได้ทำการวิเคราะห์ซอฟต์แวร์เชิง พาณิชย์เพื่อที่จะสร้าง ทฤษฏีการวิวัฒนาการซอฟต์แวร์ (Theory for software Evolution)และได้พบกฎต่างๆที่น่าสนใจดังกล่าวถึงพอสังเขปคือ

16 กฎแห่งการเปลี่ยนแปลงอย่างต่อเนื่อง(Law of Continuing: 1974)ระบบ ซอฟต์แวร์แบบ E[E- tape System ระบบซอฟต์แวร์แบบEเป็น ซอฟต์แวร์ที่ได้รับการสร้างขึ้นในสภาพการประมวลผลตามสถานการณ์จริง กฎแห่งความซับซ้อนที่เพิ่มขึ้น(Law of Increasing Complexity: 1974)ใน ระหว่างมี่ระบบแบบeได้รับการปรับเปลี่ยนไปนั้น ความซับซ้อนของ ซอฟต์แวร์ก็เพิ่มมากขึ้นตาม จึงต้องมีการดูแลรักษาให้ความซับซ้อนอยู่ใน ระดับที่ไม่สูงมาก กฎแห่งการว่างระเบียนตัวเอง (Law of Self-regulation: 1974) กระบวนการวิวัฒนาการของระบบeนี้มีการวางแผนวางระเบียบได้ด้วย ตนเอง โดยการกระจายของตัววัดผลิตภัณฑ์ และกระบวนการมีค่าเข้า ใกล้การแจกแจงแบบปกติ กฎการอนุรักษ์สภาพเสถียรเชิงการจัดการระเบียบ(Law of Conservation Organizational Stability: 1980)อัตราการทำงานองค์รวมโดยเฉลี่ยนใน ระบบeค่อนข้างคงที่ตลอดอายุงานของผลิตภัณฑ์ กฎการคงไว้ซึ่งความคุ้นเคย(Law of Conservation of Familiarity: 1980) ในขณะที่ระบบeวิวัฒน์ไปนั้นทุกคนที่เกี่ยวข้องตั้งแต่ผู้พัฒนาฝ่ายขายและ ผู้ใช้ต้องรักษาความชำนาญการเกี่ยวกับซอฟต์แวร์นั้นๆในส่วนที่ตัวเอง รับผิดชอบอยู่การเปลี่ยนแปลงเร็วเกินไปของซอฟแวร์อาจทำให้ ความคุ้นเคยตรงส่วนนี้หายไปดังนั้นการเติบโตโดยเฉลี่ยควรเป็นไปอย่าง พอดี

17 กฎแห่งการเจริญเติบโตไปอย่างต่อเนื่อง(Law of Continuing Growth: )หน้าที่และระบบแบบeต้องเพิ่มขึ้นอย่างต่อเนื่อง เพ่อรักษาความพึง พอใจของผู้ใช้งานตลอดอายุการใช้งาน กฎแห่งการลดลงซึ่งคุณภาพ(Law of Declining Quality: 1996)ระบบแบบ eมีคุณภาพลดลงนอกจากมันได้รับการดูแลอย่างเข้มงวดเพื่อให้ปรับตัวได้ กับการเปลี่ยนแปลงภายใต้สภาพแวดล้อมที่ทำงานอยู่ ระบบย้อนกลับ(Freedback System Law)กระบวนการวิวัฒนาการของ ระบบeประกอบกันขึ้นเป็นระบบย้อนกลับที่มีหลายระดับ หลายรูป และ หลายตัวเอเจนต์ ดังนั้นจึงต้องได้รับการปฏิบัติในรูปแบบของระบบ ดังกล่าวเพื่อให้ได้การปรับปรุงที่ดีขึ้นอย่างเห็นได้ชัดภายใต้มูลฐานที่ สมเหตุสมผล

18 1.5 ความเชี่ยวชาญกับซอฟต์แวร์(Software Myths)
ความเชี่ยวเกี่ยวกับซอฟแวร์และกระบวนการที่ใช้สร้างในซอฟต์แวร์ ขึ้นมานี้อาจย้อนกลับไปถึงจั้งแต่ยุคต้นๆของคอมพิวเตอร์มันมีองค์ประกอบ หลายอย่างที่ทำให้ดูน่าเชื่อถือโดยส่วนใหญ่ความเชื่อเหล่านี้เกิดจากผู้ที่งาน จริง ซึ่งปัจจุบันหลายๆความเชื่อได้รับการพิสูจน์แล้วว่าเป็นความเชื่อที่ผิด ความเชื่อของผู้บริหาร(Management Myths)ผู้บริหารงานด้านซอฟต์แวร์ หรือผู้บริหารสาขาอื่นๆมักได้รับความกดดันทางด้านงบประมาณตารางเวลา ที่จำกัด ผู้บริหารที่มักจะยึดในความเชื่อเก่าๆถึงแม้ว่าจะเป็นที่ยอมรับมาแล้ว ว่าไม่ถูกต้อง ทั้งนี้เพื่อบรรเทาความรู้สึกที่กดดันของตัวเองนั้นเอง ความเชื่อ เรามีคู่มือที่บอกถึงมาตรฐานและขั้นตอนการปฏิบัติงานในการ พัฒนาซอฟต์แวร์อยู่แล้วก็เพียงแค่ให้ผู้ปฏิบัติงานรับทราบในทุกเรื่องที่เขา ควรรู้ไม่ใช่เช่นนั้นหรือ? ความจริง คู่มือมาตรฐานอาจมีอยู่จริงแต่มันใช้ได้จริงๆหรือ? ผู้ที่ เกี่ยวข้องทราบหรือไม่ว่ามีคู่มือเช่นนั้นอยู่? มันสะท้อนถึงแนวทางปฏิบัติ ทางด้านวิศวกรรมซอฟต์แวร์สมัยใหม่ได้หรือไม่? มันสามารถถูก ปรับเปลี่ยนได้หรือไม่? มันมุ่งไปที่การทำงานให้เสร็จในเวลาอันสั้นในขณะที่ ยังคงในเรื่องคุณภาพไว้ได้ด้วยหรือไม่? คำตอบต่อคำถามทั้งหมดนี้ คือ ไม่

19 ความเชื่อของลูกค้า(Customer Myths)ลูกค้าในที่นี้อาจหมายถึงบุคคล ภายในองค์กรเดียวกันเช่น ฝ่ายเทคนิค หรือฝ่ายการตลาด ที่มีความ ต้องการซอฟต์แวร์ประเภทต่างๆ ความเชื่อที่ผิดๆของลูกค้าที่เกี่ยวกับงาน ด้านซอฟต์แวร์นี้มาจากการที่ผู้รับผิดชอบโครงการไม่พยายามแก้ไขความ เชื่อที่ผิดเหล่านั้น และสุดท้ายก็นำมาสู่ความไม่พึงพอใจในผู้พัฒนา ซอฟต์แวร์ ความเชื่อ การบอกความต้องการเพียงคร่าวๆเพียงพอต่อการสั่งให้เริ่มเขียน โปรแกรม เราสามารถบอกรายละเอียดต่างๆได้ภายหลัง ความจริง แม้ว่าเป็นเรื่องยากที่จะวิเคราะห์ความต้องการอย่างละเอียด หากแต่ความต้องการไม่ชัดเจนนี้อาจนำไปสู่หายนะที่ยากกว่าจะแก้ไขได้ การได้มาซึ่งความต้องการที่ชัดเจนไม่คลุมเครือนี้มาจากการสื่อสารอย่าง ต่อเนื่อง ระหว่างลูกค้าและผู้พัฒนาซอฟต์แวร์ ความเชื่อของผู้ประกอบการ(Practitioner’s Myths)หมายถึงความเชื่อที่ ผิดๆของผู้ประกอบการที่ดำเนินมาเป็นเวลา 50 ปีแล้ว การเขียน โปรแกรมในสมัยก่อนถูกมองว่าเป็นงานศิลป์ ทัศนะคติแบบเก่านี้ยากที่จะ ล้มเลิก

20 ความเชื่อ ทันทีที่เราเขียนโปรแกรมเสร็จ และมันทำงานได้ งานเราก็ เสร็จ
ความจริง มีคนพูดไว้ว่า ยิ่งเริ่มการเขียนโปรแกรมเร็วเท่าใด ก็ยิ่งทำให้ เสร็จช้าขึ้นเท่านั้น ข้อมูลจากอุตสาหกรรมจริงบ่งบอกว่า 60-80% ของ ความพยายามที่ใช้ไปกับซอฟต์แวร์ถูกใช้หลังจากที่ได้ส่งมอบซอฟต์แวร์ ให้แก่ลูกค้าไปแล้ว ความเชี่ยวชาญทางด้านซอฟต์แวร์จำนวนมากตระหนังถึงความเข้าใจผิด ต่างๆเหล้านี้เป็นเรื่องน้าเศร้าที่ความเคยชินทำให้การบริหารโครงการ ซอฟต์แวร์แบบผิดๆ นี้ยังคงอยู่แม้ว่าความเป็นจริงนี้ก็เป็นด่านแรกของการ วางกฎเกณฑ์เพื่อหาคำตอบที่ปฏิบัติได้จริงสำหรับวิศวกรรมซอฟต์แวร์

21 สรุป ซอฟต์แวร์ได้กลายเป็นปัจจัยหลักในการปฏิวัติระบบผลิตภัณฑ์ที่มีคอมพิวเตอร์เป็นองค์ประกอบ และยังเป็นหนึ่งในเทคโนโลยีที่สำคัญที่สุดอันหนึ่งของโลก ในเวลา 50 ปี ที่ผ่านมา ซอฟต์แวร์ได้พัฒนาจากเครื่องมือในการวิเคราะห์ข้อมูลมาเป็นอุตสาหกรรมโดยตัวเอง และสิ่งที่ยังเป็นปัญหาก็คือ การสร้างซอฟต์แวร์ให้เสร็จภาพในเวลาและงบประมาณที่วางไว้ ซอฟต์แวร์----ซึ่งหมายถึงรวมโปรแกรม ข้อมูล เอกสาร ครอบคลุมเทคโนโลยีและแอพพลิเคชั่นหลายๆสาขา แต่ซอฟต์แวร์ยังคงค่อยๆแปรเปลี่ยนไปตามกฎเกณฑ์ต่างๆที่ได้กล่าวมาในบทนี้ เป้าหมายของวิศวกรรมซอฟต์แวร์คือการให้แนวทางในการสร้างซอฟต์แวร์ที่มีคุณภาพมากขึ้น


ดาวน์โหลด ppt บทที่ 1 บทนำสู่วิศวกรรมซอฟต์แวร์

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


Ads by Google