บทที่ 6 วิศวกรรมระบบ (System Engineering)
6.1 ระบบเชิงคอมพิวเตอร์ (Computer-based Systems) บทที่ 6 วิศวกรรมระบบ 6.1 ระบบเชิงคอมพิวเตอร์ (Computer-based Systems) 6.2 ลำดับชั้นของวิศวกรรมระบบ (System Engineering Hierarchy) 6.3 วิศวกรรมกระบวนการธุรกิจ (Business Process Engineering –BPE) 6.4 วิศวกรรมผลิตภัณฑ์ (Product Engineering) 6.5 การจำลองระบบ (System Modeling) 6.6 สรุปท้ายบท
แนวคิดที่สำคัญ (Key Concepts) วิศวกรรมกระบวนการทางธุรกิจ Business Process Engineering - BPE องค์ประกอบมหภาค Macro elements วิศวกรรมผลิตภัณฑ์ Product Engineering สถาปัตยกรรมระบบ System architecture องค์ประกอบระบบ System elements ลำดับชั้นของระบบ System hierarchy แบบจำลองระบบ System modelling การจำลองระบบ System simulation แม่แบบ Templates แบบจำลอง UML UML Models
วิศวกรรมระบบ (System Engineering) ไม่ได้มุ่งเน้นในเรื่องของซอฟต์แวร์เพียงอย่างเดียว แต่ให้ความสำคัญกับส่วนประกอบอื่นๆ มีการวิเคราะห์ การออกแบบ และการจัดระเบียบส่วนประกอบเหล่านั้น ซึ่งรวมกันขึ้นทั้งระบบ ระบบอาจหมายถึงตัวสินค้า การบริการ หรือตัวควบคุมเทคโนโลยีสารสนเทศ
6.1 ระบบเชิงคอมพิวเตอร์ (COMPUTER-BASED SYSTEM)
ระบบเชิงคอมพิวเตอร์ หมายถึง ชุดขององค์ประกอบต่างๆ ที่ช่วยทำให้บรรลุเป้าหมายที่ตั้งไว้โดยการประมวลผลสารสนเทศ
ระบบเชิงคอมพิวเตอร์ จะต้องใช้ประโยชน์จากองค์ประกอบระบบ (System Elements) เหล่านี้ ได้แก่ ซอฟต์แวร์ (Software) หมายถึง โปรแกรมคอมพิวเตอร์ โครงสร้างข้อมูล และชิ้นงานที่เกี่ยวข้องเพื่อใช้ในวิธีการ ขั้นตอน หรือการควบคุมต่างๆ ในเชิงตรรกะ ฮาร์ดแวร์ (Hardware) หมายถึงอุปกรณ์อิเล็กทรอนิกส์ที่มีความสามารถในการคำนวณ หรือหมายถึงอุปกรณ์ในการต่อเชื่อมต่างๆ (Intercommunity Devices) เช่น สวิตช์เน็ตเวิร์ค หรือเครื่องมือติดต่อสื่อสารต่างๆ
ระบบเชิงคอมพิวเตอร์ จะต้องใช้ประโยชน์จากองค์ประกอบระบบ (System Elements) เหล่านี้ ได้แก่ บุคลกร (People) หมายถึง ผู้ใช้งานและผู้ปฏิบัติงานด้านซอฟต์แวร์และฮาร์ดแวร์ ฐานข้อมูล (Database) หมายถึง กลุ่มของสารสนเทศขนาดใหญ่ที่เป็นระเบียบและสามารถเรียกใช้งานได้ด้วยซอฟต์แวร์
ระบบเชิงคอมพิวเตอร์ จะต้องใช้ประโยชน์จากองค์ประกอบระบบ (System Elements) เหล่านี้ ได้แก่ เอกสารประกอบ (Documentation) หมายถึง สารสนเทศเชิงพรรณนา เช่น แบบจำลอง ข้อกำหนด คุณสมบัติ คู่มือการใช้งาน หรือเว็บไซต์ ซึ่งจะช่วยให้เข้าใจวิธีใช้และการทำงานของระบบ กระบวนงาน (Procedures) หมายถึง ลำดับขั้นตอนซึ่งกำหนดการใช้เฉพาะของแต่ละองค์ประกอบของระบบ
องค์ประกอบต่างๆ ข้างต้นนี้เป็นสิ่งที่ช่วยในการแปลงสารสนเทศ เช่น แผนกการตลาดแปลงข้อมูลการขายไปเป็นประวัติการซื้อของลูกค้า ลักษณะที่ยุ่งยากอย่างหนึ่งของระบบเชิงคอมพิวเตอร์ ก็คือองค์ประกอบที่รวมกันขั้นเป็นหนึ่งระบบ อาจจะเป็นองค์ประกอบมหภาคหนึ่งที่ใหญ่กว่า
6.2 ลำดับชั้นของวิศวกรรมระบบ (SYSTEM ENGINEERING HIERARCHY)
วิศวกรรมระบบรวบรวมวิธีการทั้งจากบนลงล่าง และจากล่างขึ้นบน ในการสร้างลำดับชั้น กระบวนการวิศวกรรมระบบจะเริ่มจาก “ภาพกว้าง (World View)” ซึ่งหมายถึงธุรกิจโดยรวม หรือโดเมนผลิตภัณฑ์ โดยจะทำการศึกษาเพื่อให้แน่ใจว่าจะสามารถทำธุรกิจหรือเทคโนโลยีที่ต้องการนั้นได้ จากนั้นเราจะแบ่งภาพกว้างออกเป็นโดเมนต่างๆ และเฉพาะภายในแต่ละโดเมน เราก็จะทำการวิเคราะห์ความต้องการด้านองค์ประกอบของระบบ เช่น ข้อมูล ซอฟต์แวร์ ฮาร์ดแวร์ บุคลากร และท้ายสุดจึงทำการวิเคราะห์ ออกแบบ และสร้างองค์ประกอบของระบบที่ต้องการ
เราอาจให้ WV แทนภาพกว้าง (World View) ซึ่งประกอบไปด้วยชุดโดเมน D1 ซึ่งอาจเป็นระบบหรือของระบบย่อย ดังนี้ WV = {D1, D2, D3, …, Dn}
แต่ละโดเมน D1 จะประกอบไปด้วยส่วนประกอบเฉพาะ E1 ซึ่งทำหน้าที่ยางอย่างเพื่อบรรลุวัตถุประสงค์และเป้าหมายของโดเมน D1 = {E1, E2, E3, …, En}
และในแต่ละส่วนประกอบ จะระบุองค์ประกอบย่อยเชิงเทคนิค (Technical Component) Ck ซึ่งช่วยให้หน้าที่ที่จำเป็นของส่วนประกอบเฉพาะนั้นสำเร็จลุล่วงไปได้ E1 = {C1, C2, C3, …, Ck}
ในความหมายด้านซอฟต์แวร์ องค์ประกอบย่อย (Component) จะหมายถึง โปรแกรมคอมพิวเตอร์ หรือส่วนของโปรแกรมที่นำกลับมาใช้ได้ หรือโมดูล (Module) หรือคลาส หรือวัตถุ (Object) หรืออาจหมายถึง คำสั่งในภาษาโปรแกรมคอมพิวเตอร์
6.2.1 การสร้างแบบจำลองระบบ (System Modeling) แบบจำลองที่สร้างขึ้นจะมีลักษณะ คือ กำหนดกระบวนการที่สดคล้องกับความต้องการของเรื่องที่กำลังพิจารณา เป็นตัวแทนพฤติกรรมของกระบวนการและสมมติฐานต่างๆ ของพฤติกรรมนั้น กำหนดข้อมูลภายนอก (Exogenous Input) และข้อมูลภายใน (Endogenous Input) ที่เข้าสู่แบบจำลองให้ชัดเจน ข้อมูลภายนอกจะเชื่อมส่วนประกอบ (Constituent) ของภาพที่กำลังพิพจารณากับส่วนประกอบอื่นที่ระดับเดียวกันหรือต่างกัน ส่วนข้อมูลภายในจะเชื่อมองค์ประกอบย่อย (Component) ของแต่ละส่วนประกอบหนึ่ง (Constituent) ที่กำลังพิจารณา เป็นตัวแทนการเชื่อมโยงทั้งหมด ซึ่งจะทำให้วิศวกรเข้าใจภาพได้ดีขึ้น
6.2.2 การจำลองระบบ (System Simulation) ระบบเชิงคอมพิวเตอร์จำนวนมากจะสื่อสารกับโลกจริงในเชิงตอบสนอง (Reactive Action) นั่นคือคอมพิวเตอร์จะคอยเฝ้าดูเหตุการณ์ที่เกิดขึ้น และสั่งการเครื่องจักร กระบวนการ หรือแม้แต่ผู้ปฏิบัติงาน ซึ่งมีส่วนในการก่อให้เกิดเหตุการณ์เหล่านั้นขึ้น โดยส่วนใหญ่ระบบเรียลไทม์และระบบฝังตัว (Real-time and Embedded Systems) จะเป็นระบบเชิงตอบสนอง
6.2.2 การจำลองระบบ (System Simulation) เครื่องมือการจำลองการออกแบบระบบแบ่งออกได้เป็น 2 กลุ่ม คือ แบบทั่วไป (General purpose tools) สามารถสร้างแบบจำลองเสมือนของระบบใดๆ ที่มีคอมพิวเตอร์เป็นส่วนประกอบได้ แบบเฉพาะ (Specific purpose tools) จะถูกออกแบบเฉพาะให้ตรงตามโดเมนประยุกต์เฉพาะเรื่องต่างๆ เช่น ระบบการบินของเครื่องบิน ระบบการผลิต หรือระบบอิเล็กทรอนิกส์
6.3 วิศวกรรมกระบวนการทางธุรกิจ (BUSINESS PROCESS ENGINEERING)
6.3 วิศวกรรมกระบวนการธุรกิจ (Business Process Engineering – BPE) เป้าหมายของวิศวกรรมกระบวนการธุรกิจ เพื่อกำหนดสถาปัตยกรรมซึ่งจะช่วยให้ธุรกิจสามารถใช้สารสนเทศได้อย่างมีประสิทธิภาพ
6.3 วิศวกรรมกระบวนการธุรกิจ (Business Process Engineering – BPE) สถาปัตยกรรม 3 แบบที่ต้องได้รับการวิเคราะห์และออกแบบให้สอดคล้องกับวัตถุประสงค์และเป้าหมายทางธุรกิจ ได้แก่ สถาปัตยกรรมข้อมูล (Data Architecture) สถาปัตยกรรมแอพพลิเคชั่น (Application Architecture) โครงสร้างพื้นฐานด้านเทคโนโลยี (Technology Infrastructure)
สถาปัตยกรรมข้อมูล (Data Architecture) เป็นเสมือนกรอบงาน (Frame work) สำหรับความต้องการสารสนเทศของธุรกิจ บล็อกโครงสร้างของสถาปัตยกรรมก็คือ วัตถุข้อมูล (Data Objects) ซึ่งธุรกิจใช้วัตถุข้อมูลประกอบไปด้วย เซตของแอดทริบิวที่กำหนดแง่มุมต่างๆ ของข้อมูล คุณภาพของข้อมูล และลักษณะข้อมูล
สถาปัตยกรรมแอพพลิเคชั่น (Application Architecture) จะรวมลักษณะต่างๆ ของระบบที่แปลงวัตถุภายในสถาปัตยกรรมข้อมูลให้เป็นไปตามเป้าประสงค์ของธุรกิจ ซึ่งในที่นี้สถาปัตยกรรมแอพพลิเคชั่นจะหมายถึงระบบซอฟต์แวร์ที่ทำหน้าที่การแปลงนี้ และอาจหมายความรวมถึงบุคลากรผู้ปฏิบัติงาน ผู้ใช้งาน และกระบวนงานที่ไม่ได้ถูกทำให้เป็นระบบอัตโนมัติ
โครงสร้างพื้นฐานด้านเทคโนโลยี (Technology Infrastructure) เป็นพื้นฐานของสถาปัตยกรรมข้อมูล และสถาปัตยกรรมแอพพลิเคชั่น โครงสร้างพื้นฐานประกอบไปด้วยฮาร์ดแวร์และซอฟต์แวร์ที่ใช้ในการสนับสนนุนแอพพลิเคชั่นและข้อมูล ซึ่งได้แก่ เครื่องคอมพิวเตอร์ ระบบปฏิบัติการ ระบบเครือข่าย ตัวเชื่อมโยงด้านโทรคมนาคม เทคโนโลยีในการจัดเก็บ (Storage Technologies) และสถาปัตยกรรมที่ออกแบบเพื่อรองรับเทคโนโลยีเหล่านี้
ลำดับชั้นของวิศวกรรมกระบวนการทางธุรกิจ (The business process engineering hierarch)
6.4 วิศวกรรมผลิตภัณฑ์ (PRODUCT ENGINEERING)
6.4 วิศวกรรมผลิตภัณฑ์ (Product Engineering) เป้าหมายของวิศวกรรมผลิตภัณฑ์ เพื่อแปลงความปรารถนาด้านสมรรถภาพ ของลูกค้าไปเป็นผลิตภัณฑ์ที่ทำงานได้
ลำดับชั้นของวิศวกรรมผลิตภัณฑ์
6.5 การจำลองระบบ (SYSTEM MODELING)
6.5.1 การสร้างแบบจำลองแฮทลีย์ – เพอร์ไบ HatLey – Pirbhai Modeling ข้อมูลเข้า (Input) ประมวลผล (Processing) ข้อมูลออก (Output) เราสามารถมองทุกระบบเชิงคอมพิวเตอร์ว่าเป็นเหมือนกับการแปลงสารสนเทศอย่างใดอย่างหนึ่ง โดยใช้แม่แบบ
6.5.1 การสร้างแบบจำลองแฮทลีย์ – เพอร์ไบ HatLey – Pirbhai Modeling แฮทลีย์ และ เพอร์ไบ ได้ขยายมุมมองนี้ให้รวมถึงลักษณะของระบบเพิ่มเติมอีก 2 ประการ คือ การประมวลผลต่อประสาน (User Interface Processing) การประมวลผล การบำรุงรักษา และการทดสอบตัวเอง (Maintenance and Self – test Processing)
6.6 สรุปท้ายบท
6.6 สรุปท้ายบท ระบบไฮเทคหนึ่งจะประกอบไปด้วยองค์ประกอบย่อยต่างๆ ได้แก่ ซอฟต์แวร์ ฮาร์ดแวร์ บุคลากร ฐานข้อมูล เอกสารประกอบ และกระบวนงาน วิศวกรรมระบบช่วยแปลงความต้องการของลูกค้าไปเป็นแบบจำลองของระบบซึ่งใช้ประโยชน์จากองค์ประกอบย่อยต่างๆ เหล่านั้น
6.6 สรุปท้ายบท วิศวกรรมระบบจะเริ่มต้นโดยการมองภาพกว้าง (World View) โดยทำการวิเคราะห์โดเมนหรือผลิตภัณฑ์ ซึ่งเป็นตัวสร้างความต้องงการทางธุรกิจเบื้องต้นทั้งหมด จากนั้นจึงเน้นลงมาที่ภาพระดับโดเมน (Domain View) โดยทำการวิเคราะห์แต่ละองค์ประกอบย่อยของระบบ ตามหลักการเชิงวิศวกรรมที่เกี่ยวข้อง
6.6 สรุปท้ายบท วิศวกรรมกระบวนการธุรกิจ (Business Process Engineering) หมายถึง แนวทางวิศวกรรมระบบที่ใช้ในการกำหนดสถาปัตยกรรมเพื่อให้ธุรกิจสามารถใช้สารสนเทศได้อย่างมีประสิทธิภาพ จุดมุ่งหมายของวิศวกรรมกระบวนการธุรกิจคือเพื่อสร้างสถาปัตยกรรมข้อมูลโดยรวม สถาปัตยกรรมของแอพพลิเคชั่น และโครงสร้างพื้นฐานด้านเทคโนโลยีที่จะช่วยให้บรรลุวัตถุประสงค์ทางธุรกิจ
6.6 สรุปท้ายบท วิศวกรรมผลิตภัณฑ์ (Product Engineering) หมายถึง แนวทางด้านวิศวกรรมระบบที่เริ่มต้นด้วยการวิเคราะห์ระบบ วิศวกรระบบจะทำการแจกแจงความต้องการของลูกค้า พิจารณาความเป็นไปได้ในเชิงเศรษฐกิจและเชิงเทคนิค จากนั้นจึงทำการจัดแบ่งหน้าที่และงานให้กับซอฟต์แวร์ ฮาร์ดแวร์ บุคลากร และฐานข้อมูลต่างๆ
คำถามท้ายบท จงเลือกระบบใหม่ระบบหนึ่งที่คุณรู้จักดี แล้วทำการกำหนดโดเมนต่างๆ ที่สามารถอธิบายถึงภาพกว้าง (World View) ของระบบ อธิบายถึงองค์ประกอบย่อยๆ ที่ประกอบกันขึ้นเป็นหนึ่งโดเมน จากนั้น ทำการกำหนดส่วนประกอบเชิงเทคนิคที่ต้องสร้างขึ้นสำหรับหนึ่งองค์ประกอบย่อย จงสร้าง “ระบบของระบบ (System of Systems)” แบบลำดับชั้นของระบบผลิตภัณฑ์หรือระบบบริการที่คุ้นเคย ลำดับชั้นที่สร้างขึ้นควรจะขยายลงไปให้ครอบคลุมองค์ประกอบย่อยต่างๆ ของระบบ อย่างน้อยหนึ่งส่วนประกอบย่อย วิศวกรรมกระบวนการเชิงธุรกิจพยายามที่จะนิยามคำว่า ข้อมูล (Data) สถาปัตยกรรม (Application Architecture) และโครงสร้างพื้นฐานด้านเทคโนโลยี (Technology Infrastructure) จงอธิบายความหมายของคำศัพท์ข้างต้นและยกตัวอย่าง
คำถามท้ายบท วิศวกรรมระบบอาจมีที่มาจากแหล่งต่อไปนี้คือ นักพัฒนาระบบ (System Developer) ลูกค้า หรือจากองค์กรภายนอก จงเปรียบเทียบข้อดีและข้อเสียของแต่ละแหล่งดังกล่าว จากนั้นจงบรรยายถึงลักษณะของนักวิศวกรในอุดมคติ จงเลือกระบบใหญ่หรือระบบที่คุณรู้จักดี แล้วทำการบอกสมมุติฐาน (Assumptions) การทำให้ง่ายขึ้น (Simplifications) ข้อจำกัด (Limitations) เงื่อนไข (Constraints) และความชอบของลูกค้า (Customer Preferences) ที่จะต้องมีเพื่อให้ได้แบบจำลองระบบที่มีประสิทธิภาพ
คำถามท้ายบท จงหาคำเหมือน (Synonyms) ของคำว่า “ระบบ (System)” มาให้มากที่สุดเท่าที่จะมากได้ มีลักษณะอะไรของระบบที่ไม่อาจสร้างขึ้นในระหว่างการทำกิจกรรมวิศวกรรมระบบหรือไม่ ถ้ามีจงอธิบายถึงลักษณะดังกล่าวนั้น และอธิบายว่าเพราะเหตุใดจึงจะต้องเก็บลักษณะนั้นไว้พิจารณาในช่วงท้ายของการสร้าง จงสร้างแผนภาพบริบทระบบ (System Context Diagram) ของระบบเชิงคอมพิวเตอร์ใดก็ได้มาหนึ่งระบบ