next up previous contents
Next: 1.2.1 การพัฒนาขยายเพิ่มเติม Up: 1. บทนำ Previous: 1.1 ความต้องการของอุตสาหกรรมซอฟต์แวร์   Contents

1.2 การพัฒนาซอฟต์แวร์ประยุกต์บนเว็ป

วิศวกรรมซอฟต์แวร์เป็นสาขาวิชาที่ว่าด้วยการทำงานอย่างเป็นระบบของการดำเนินการใดๆ เกี่ยวกับซอฟต์แวร์ [9,10] โดยนิยามวงจรชีวิตของการพัฒนา ใช้งาน และ เลิกใช้งาน ของ ระบบซอฟต์แวร์ จากนั้นได้ร่ายเรียงหลากหลายวิธีในรูปแบบต่างๆ ในการทำงานย่อย กำหนดกรอบของขั้นตอนต่างๆ และรวบรวม แนวทาง กระบวนงาน รูปแบบเอกสาร ตัวอย่างเอกสาร ต่างๆ ให้สามารถควบคุมการพัฒนาซอฟต์แวร์ที่จับต้องได้ยาก มีประสิทธิผลดีขึ้น ในวงจรชีวิตของการพัฒนาซอฟต์แวร์มีกระบวนการทำซอฟต์แวร์ที่หลากหลาย เช่น กระบวนการพัฒนาซอฟต์แวร์ตามรูปแบบกระบวนการ Waterfall, Spiral, Agile [11,12], Extreme Programming [13,14], Rational Unify Process [10], เป็นต้น ที่มีความเหมาะสมกับลักษณะเฉพาะของซอฟต์แวร์แต่ละประเภท การให้ความสำคัญกับวิธีการทำซอฟต์แวร์ตามหลักวิศวกรรมซอฟต์แวร์ดังกล่าว ได้มีการนำเสนอการพิจารณาเพื่อนำมาใช้งานอย่างเป็นระบบในรูปแบบของความสามารถเฉพาะในด้านต่างๆ และพิจารณาระดับของวัยวุฒิในส่วนของความสามารถที่ครอบคลุมในหลายๆ เพื่อแสดงศักยภาพในภาพรวมของการดำเนินการโครงการ ซึ่ง CMMI [15] เป็นการรวบรวมส่วนการดำเนินการ เป้าหมายรวม และเป้าหมายเฉพาะของส่วนการดำเนินการ และแนวทางการปฏิบัติในแต่ละส่วนอย่างเป็นระบบ โดยเฉพาะการควบคุมกระบวนงานของโปรแกมประยุกต์บนเว็ป [16]

การพัฒนาซอฟต์แวร์ในปัจจุบัน มีเครื่องมือที่หลากหลายในการช่วยพัฒนา ออกแบบ และควบคุมกระบวนการผลิตซอฟต์แวร์ตามหลักการวิศวกรรมซอฟต์แวร์ และการพัฒนาซอฟต์แวร์เชิงวัตถุ [17] เครื่องมือช่วยในการพัฒนาซอฟต์แวร์จำนวนมากได้รองรับมาตรฐานของการเขียนแบบซอฟต์แวร์ที่ชื่อว่า Unify Modeling Language (UML) [18,19] ตัวอย่าง เครื่องมือในการช่วยออกแบบและพัฒนาซอฟต์แวร์ ได้ Rational Rose [20], Visual Paradigm [21], Poseidon [22] เป็นต้น เครื่องมือเหล่านี้ สามารถออกแบบจากกระบวนการธุรกิจ การวิเคราะห์ความต้องการ และสร้างแบบเชิงวิเคราะห์ การสร้่างแบบซอฟต์แวร์ กระทั้งถึงการสร้างโครงร่างของโปรแกรมที่จะดำเนินการพัฒนาโดยนักเขียนโปรแกรม เครื่องมือจะสามารถ ร้อยเรียงกระบวนงานในการพัฒนาซอฟต์แวร์อย่างเป็นระบบ และลดเวลาใน การออกแบบ, สร้างเอกสาร, และควบคุมกระบวนงาน การใช้เครื่องมือช่วยในการออกแบบ และพัฒนาซอฟต์แวร์ ในปัจจุบันเป็นสิ่งที่ไม่อาจจะขาดเสียได้ของธุรกิจซอฟต์แวร์

ในกระบวนการออกแบบซอฟต์แวร์นั้น มีขั้นตอนหนึ่งที่มีความสำคัญคือ ขั้นตอนการออกแบบเชิงข้อมูลของระบบสารสนเทศที่ทำการพัฒนา การออกแบบข้อมูล จะได้ผลลัพธ์ออกมาเป็นลักษณะของกลุ่มของคลาส (Class) หรือแผนภาพข้อมูลเชิงสัมพันธ์ของฐานข้อมูลเชิงสัมพันธ์ (Entity Relationship Diagram) [23] ความจำเป็นของการพัฒนาซอฟต์แวร์ปัจจุบันอีกประการหนึ่งคือ ต้องหลีกเลี่ยงการออกแบบข้อมูล โดยเริ่มวิเคราะห์ และสร้างข้อมูลใหม่ทั้งหมด ในช่วงที่ผ่านมาของการพัฒนาระบบสารสนเทศ พบว่าการใช้งานข้อมูลขององค์กรต่างๆ มีความคล้ายคลึงกัน และมีแกนร่วมกันอย่างชัดเจน จากลักษณะดังกล่าว จึงมีการนำเสนอแบบข้อมูล (Data Model) [24,25] แบบต่างๆ เพื่อตอบสนองความต้องการในธุรกิจที่หลากหลาย การใช้งานแบบข้อมูลมาตรฐานจะช่วยลดเวลาในการออกแบบ และเสริมสร้างความแข็งเกร่งทางด้่านโครงสร้างข้อมูลได้ดีขึ้น เป็นการลดปัญหาของความด้อยประสบการณ์ของผู้ออกแบบได้ในบางส่วน อีกทั้งขยายครอบคลุมคลังข้อมูล [26] ข้อมูลที่เป็นเฉพาะของธุรกิจนั้นๆ สามารถเพิ่มเติมตามจุดที่เหมาะสม โดยแบบของข้อมูล สามารถขยายให้ใช้งานหลากหลายขึ้นโดยกำหนดให้เป็นแม่แบบของการทำธุรกิจ (Enterprise Archetype Pattern) [27,28] โดยกำหนด ข้อมูลประกอบคลาส (Attributes), ฟังก์ชั่นบนคลาส (Method หรือ Operation), และความสัมพันธ์ระหว่างคลาส (Relationship) จากแม่แบบของรูปแบบ จะเป็นกรอบกลางของการพัฒนาซอฟต์แวร์ที่เกี่ยวข้องกับการบริหารองค์กรธุรกิจ ที่สามารถสร้างประโยชน์ต่อการพัฒนาได้เป็นอย่างดี และมีผลต่อเนื่องในระยะยาวในการแลกเปลี่ยนข้อมูลระหว่างซอฟต์แวร์ เนื่องจากการแลกเปลี่ยนข้อมูลจะทำได้ง่ายขึ้นถ้าโครงสร้างหลักมีความคล้ายกัน โดยตั้งอยู่บนรากฐานของแบบข้อมูล และ แม่แบบของรูปแบบการทำธุรกิจเดียวกันหรือคล้ายคลึงกัน ที่จะสามารถลดความซับซ้อนของการต่อเชื่อมได้มาก

วิธีการออกแบบและพัฒนาระบบซอฟต์แวร์เชิงวัตถุ ได้มีการนำเสนอรูปแบบหลักของการออกแบบคลาสและความสัมพัทธ์ระหว่างคลาส จากนั้นทำการแบบแยกประเภทอย่างเป็นระบบ เรียกว่า ``แบบแผนซอฟต์แวร์'' (Software Pattern) [29] โดยได้มีการกำหนดแบบแผนสำหรับการออกแบบซอฟต์แวร์ที่เป็นพื้นฐานในการออกแบบซอฟต์แวร์เชิงวัตถุใดๆ ผู้พัฒนาสามารถศึกษาและเลือกใช้แบบแผนดังกล่าว ในการออกแบบซอฟต์แวร์ อีกทั้งช่วยเสริมความเข้าใจในการสื่อสารระหว่างผู้พัฒนาด้วยกัน สามารถช่วยในการลดเวลาการพัฒนาในระดับกลาง-ล่าง ได้ [30]

จากที่ได้มีการใช้งานระบบ WWW อย่างแพร่หลาย จึงได้มีการพัฒนาอย่างต่อเนื่องของการใช้งานบราวเซอร์ และระบบซอฟต์แวร์ที่ให้บริการข้อมูล ที่ประกอบด้วย HTTP Server, Application Server, Database Server, และซอฟต์แวร์ในการเชื่อมต่ออื่นๆ (อาจเรียกอีกชื่อหนึ่งว่ามิดเดิ้ลแวร์) [31,32] การพัฒนาซอฟต์แวร์ประยุกต์ที่ใช้เว็ปบราวเซอร์เป็นตัวเชื่อมต่อได้ขยายครอบคลุมเป็นการใช้งานอย่างกว้างขวาง วิธีการพัฒนาซอฟต์แวร์ประยุกต์ได้มีการพัฒนาไปในทิศทางเดียวกัน รูปแบบซอฟตต์แวร์ที่สามารถใช้งานได้ดีกับการออกแบบพัฒนาโปรแกรมประยุกต์ในลักษณะนี้ได้แก่ Model View Controller (MVC) [33] ที่ได้นำรูปแบบซอฟต์แวร์ที่กล่าวในย่อหน้าที่แล้วมาขยายสำหรับการใช้งานประยุกต์บนระบบเว็ป [34,33] การใช้งาน MVC มีประโยชน์ในการควบคุมการทำงานของโปรแกรมโดยแยกการทำงานของ กระบวนการของโปรแกรม การใช้งานข้อมูล และการนำเสนอออกจากกัน แม้ว่าแนวคิดจะซับซ้อนขึ้นบ้าง แต่การสร้าง บริหารการพัฒนา และการบำรุงรักษาทำได้ง่ายขึ้น [35]

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

จากเครื่องมือสำหรับช่วยในการออกแบบซอฟต์แวร์ [36] และแบบของซอฟต์แวร์ต่างๆ ที่มีการออกแบบไว้แล้วเพื่อนำสามารถนำกลับมาใช้ใหม่ได้ จึงมีความพยายามกำหนดวิธีการพัฒนาสถาปัตยกรรมของซอฟต์แวร์ ที่ใช้แบบเป็นหลักในการขับเคลื่อน การดำเนินการที่เรียกว่า Model Driven Architecture (MDA) [37] โดยจะแบ่งแบบของซอฟต์แวร์ออกเป็นแบบที่ไม่ขึ้นอยู่กับระบบที่พัฒนา (Platform Independent Model, PIM) และแบบเฉพาะการพัฒนา (Platform Specific Model) แสดงในรูป [*]ซึ่งสามารถนำเอาการออกแบบที่มีอยู่แล้ว มาใช้งานในการพัฒนาสำหรับโครงการใหม่ได้ การดำเนินการสามารถสร้างตัวแปลงของแบบในระดับต่างๆ จนกระทั่งถึงระดับโค๊ด ทำให้สามารถพัฒนาได้เร็วขึ้น

Figure 1.1: กระบวนการพัฒนาซอฟต์แวร์ที่อ้างแบบของซอฟตแวร์เป็นหลักในการขับเคลื่อน
\includegraphics[width=4in]{fig/BasicModel}



Subsections
next up previous contents
Next: 1.2.1 การพัฒนาขยายเพิ่มเติม Up: 1. บทนำ Previous: 1.1 ความต้องการของอุตสาหกรรมซอฟต์แวร์   Contents
2008-2009 Copyright Vara Varavithya. All rights reserved, DEPT of EE, KMUTNB, vara@computer.org