การออกแบบเชิงสถาปัตยกรรม

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
J2EE Architecture for Web Application & Enterprise Programming
Advertisements

Application Development Overview Nithi Thanon Computer Science Prince of Songkla University.
การออกแบบฐานข้อมูลในระดับ Conceptual
ระบบปฏิบัติการ (Operating System : OS )
CS Assembly Language Programming
Chapter 12 : Maintaining Information Systems
Client-Side Scripts เอกสารประกอบการบรรยาย รายวิชา Browser-Based Application Development.
Major Advisor : Miss.Man Soon Choi
นายภาณุพงษ์ คงคาวงศ์ประทีป
การออกแบบสถาปัตยกรรมแอปพลิเคชั่น
องค์ประกอบทางด้านซอฟต์แวร์
ทวีวัฒน์ เหลืองวิริยะ
Chapter 2 Software Process.
Advanced Class Design in Java Java Packages Week #6 Jarungjit Parnjai
วิชา วิศวกรรมซอฟต์แวร์ (Software Engineering)
เกียรติพงษ์ ยอดเยี่ยมแกร
Software Framework & Design Pattern
Introduction to Server Services
Data Modeling Using the Entity-Relationship Model
Embedded System K.Mathiang. What is Embedded System? ( ภาษาไทย ) ระบบสมองกลฝังตัว.
1 Security Door using RFID Present by Mr.Mahannop Pattarapakorn PSU Mr.Nattapong Jaroonruang KMUTNB.
MVC DESIGN PATTERN WATTANAPON G SUTTAPAK Software Engineering, School of Information Communication Technology, University of PHAYAO 1.
การฝึกอบรมเชิงปฏิบัติการ การพัฒนาผลงานวิจัย เพื่อพัฒนางานอย่างต่อเนื่องและยั่งยืน (R2R) ของงาน/หน่วยงาน/องค์การ อย่างมีคุณภาพมาตรฐาน ที่ไม่ยุ่ง และ ไม่ยาก.
จุดประสงค์การเรียนรู้ 1. บอกประวัติ ความเป็นมาของโปรแกรม FreeMind ได้ 2. บอกความหมายและสามารถเลือกใช้โปรแกรม Open Source Software ได้ 3. บอกความหมายของการอับโหลดและการดาวน์
ลักษณะงานของวิศวกร ซอฟต์แวร์ ● วิเคราะห์และจัดทำความ ต้องการซอฟต์แวร์ ● ออกแบบซอฟต์แวร์ ● พัฒนาซอฟต์แวร์ ● ทดสอบซอฟต์แวร์ ● บำรุงรักษาซอฟต์แวร์ ● จัดการองค์ประกอบ.
หน่วยที่ 1 ซอฟต์แวร์.
ระบบสารสนเทศ อ.วรพจน์ พรหมจักร.
รายวิชา คอมพิวเตอร์เพื่อการเรียนรู้ อาจารย์ ดร.นฤมล รักษาสุข
การออกแบบสถาปัตยกรรมแอปพลิเคชั่น
Thai Quality Software (TQS)
ฮาร์ดแวร์และยูทิลิตี้เบื้องต้น
บทที่ 5 แบบจำลองกระบวนการ
บทที่ 9 วิศวกรรมการออกแบบ (Design Engineering)
Information System Development
เทคโนโลยีสารสนเทศเพื่อการศึกษาค้นคว้า Information Technology for Study Skill 01/12/61.
ระบบเครือข่ายคอมพิวเตอร์
Client/Server Computing and Web Technologies (2-0-4)
การบูรณาการการช่วยเหลือผู้ประสบปัญหาสังคมของ OSCC ศูนย์ช่วยเหลือสังคม
Generic View of Process
การออกแบบระบบ System Design.
อาจารย์ชนิดา เรืองศิริวัฒนกุล หลักสูตรสาขาวิชาเทคโนโลยีสารสนเทศ
บทที่ 2 ภาพรวมกระบวนการ (A Generic View of Process)
พัฒนาระดับภาค ๖ ภาค การจัดทำแผน ปีงบประมาณ ๒๕๖๑
รวบรวมข้อมูลโดย กลุ่มแผนงานงบประมาณอุดมศึกษา สำนักนโยบายและแผนการอุดมศึกษา สำนักงานคณะกรรมการการอุดมศึกษา.
เทคโนโลยีสารสนเทศและการสื่อสาร
การสร้างความร่วมมือระหว่างบ้านและโรงเรียน: บทบาทผู้ปกครองและครู
การซักซ้อมความเข้าใจในการเบิกค่าตอบแทนให้กับเจ้าหน้าที่ ตามหลักเกณฑ์ของกระทรวงสาธารณสุข ที่บังคับใช้ในปัจจุบัน.
บทที่ 9 การออกแบบระบบ และการออกแบบยูสเซอร์อินเตอร์เฟช
สถาบันพัฒนาบุคลากรด้านการพัฒนาเมือง
ซักซ้อมแนวทางการจ่ายค่าตอบแทนตามหลักเกณฑ์ วิธีการและเงื่อนไขการจ่ายค่าตอบแทน แนบท้ายข้อบังคับกระทรวงสาธารณสุขว่าด้วยการจ่ายเงินค่าตอบแทนเจ้าหน้าที่ที่ปฏิบัติงานให้กับหน่วยบริการในสังกัดกระทรวงสาธารณสุข.
แอปพลิเคชันขององค์กรในยุคอินเทอร์เน็ต
วิศวกรรมซอฟต์แวร์ (Software Engineering)
Lecture no. 1: Introduction to Computer and Programming
สถาบันพัฒนาบุคลากรด้านการพัฒนาเมือง
“No time to go to library use MSU LibraryGO. App”
Chapter 7 ฟังก์ชัน Function.
โปรแกรมย่อย (Sub Program)
วิชา วิศวกรรมซอฟต์แวร์ (Software Engineering)
ความคิดเห็นของประชาชนเกี่ยวกับเกมออนไลน์ ในเขตกรุงเทพมหานคร
ระบบหล่อลื่นของเครื่องยนต์
บทที่ 3 กระบวนการผลิตซอฟต์แวร์ (Software Process)
นายเกรียงไกร แก้วมีศรี ผู้อำนวยการโรงเรียนเมืองสุราษฎร์ธานี
เก็บตกวันวาน “สานพลังสร้างมาตรการองค์กร เพื่อความปลอดภัยทางถนน”
การสร้างผังงานโปรแกรม
กองการพยาบาลสาธารณสุข สำนักอนามัย
การออกแบบส่วนต่อประสานผู้ใช้งาน (USER INTERFACE DESIGN)
Distributed Computers and Web Technologies (3-0-6)
บทที่ 2 ขอบเขตของการจัดการเชิงกลยุทธ์
องค์ประกอบของคอมพิวเตอร์ และภาษาซี
ใบสำเนางานนำเสนอ:

การออกแบบเชิงสถาปัตยกรรม บทที่ 8 การออกแบบเชิงสถาปัตยกรรม

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

บทนำ ขั้นตอนการออกแบบซอฟต์แวร์ สถาปนิกซอฟต์แวร์ (Software Architect) จะต้องพิจารณาลักษณะโครงสร้างของซอฟต์แวร์ ประกอบด้วย ส่วนประกอบ และความสัมพันธ์ระหว่างส่วนประกอบและคำนึงถึงรูปแบบเชิงสถาปัตยกรรมของซอฟต์แวร์ การออกแบบซอฟต์แวร์ แบ่งเป็น 2 ประเภท การออกแบบเชิงสถาปัตยกรรม (Architectural Design) การออกแบบเชิงละเอียด (Detailed Design)

การออกแบบเชิงสถาปัตยกรรม (Architectural Design) การออกแบบที่มองภาพรวมของซอฟต์แวร์ ซึ่งเกี่ยวข้องกับอุปกรณ์ฮาร์ดแวร์ ซอฟต์แวร์ เครือข่ายคอมพิวเตอร์ การออกแบบรายงาน การออกแบบส่วนต่อประสานกับผู้ใช้ ฐานข้อมูล และไฟล์ต่าง ๆ

การออกแบบเชิงละเอียด (Detailed Design) การปรับโครงสร้างสถาปัตยกรรมให้ตรงกับความต้องการของผู้ใช้ การออกแบบมอดูล การแบ่งมอดูลออกเป็นฟังก์ชันย่อย และการออกแบบเชิงโครงสร้าง วัตถุประสงค์ของการออกแบบสถาปัตยกรรมโปรแกรม หรือ แผนภูมิโครงสร้าง เพื่อเป็นประโยชน์สำหรับนักเขียนโปรแกรมต่อไป

รูปแบบเชิงสถาปัตยกรรม การเลือกรูปแบบเชิงสถาปัตยกรรม (Architectural Style) ให้กับซอฟต์แวร์ มีหลายรูปแบบ แตกต่างกันตามลักษณะของโครงสร้าง

การออกแบบเชิงสถาปัตยกรรมแบบ Pipe and Filters Pipe เป็นเสมือนท่อส่งข้อมูลนำเข้าไปยังกระบวนการเปลี่ยนรูปข้อมูล Filter เหมือนตัวกรองข้อมูลจนได้ผลลัพธ์

การออกแบบเชิงสถาปัตยกรรมแบบ Call and Return Main Program Controller Subprogram Application Subprogram การออกแบบที่มีลักษณะของโครงสร้างควบคุมแบบลำดับชั้นและบนลงล่าง

การออกแบบเชิงสถาปัตยกรรมแบบ Client/Server เครื่องไคลเอนต์ที่อยู่บนเครื่องคอมพิวเตอร์เครื่องใดเครื่องหนึ่งส่งคำร้องขอ (Request) บริการไปยังเครื่องเซิร์ฟเวอร์ จากนั้น เซิร์ฟเวอร์จะประมวลผลตามความต้องการที่ได้รับ แล้วส่งผล (Replay ) ของบริการกลับไปยังเครื่องไคลเอนต์ที่ขอใช้บริการ

การออกแบบเชิงสถาปัตยกรรมแบบ Client/Server กรณีมีเซิร์ฟเวอร์หลายตัว Client A

การออกแบบเชิงสถาปัตยกรรมแบบ Model View Controller เป็นการออกแบบที่แยกส่วนการทำงานแต่ละส่วนให้เป็นอิสระต่อกัน คือ แบบจำลอง (Model) มุมมอง (View) ตัวควบคุม(Controller)

การออกแบบเชิงสถาปัตยกรรมแบบเลเยอร์ Java API OS API Kernel จัดโครงสร้างระบบย่อยหรือส่วนประกอบต่าง ๆ ในมุมมองแบบลำดับชั้น โดยแต่ละเลเยอร์ คือส่วนประกอบย่อยซึ่งจะทำงานในแต่ละด้านของซอฟต์แวร์และสามารถทำงานร่วมกับเลเยอร์ด้านนอกได้

การออกแบบเชิงสถาปัตยกรรมแบบฐานข้อมูลเป็นศูนย์กลาง การออกแบบที่มีฐานข้อมูลเป็นศูนย์กลาง และผู้ใช้สามารถเข้าถึงข้อมูลในฐานข้อมูลได้โดยตรง

การออกแบบเชิงสถาปัตยกรรมแบบ Three Tier การออกแบบที่มีลักษณะคล้ายกันแบบฐานข้อมูลเป็นศูนย์กลาง และสามารถ ปรับเปลี่ยนการออกแบบให้มีลักษณะเป็น n-tier ได้

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

การออกแบบเชิงสถาปัตยกรรม ความสัมพันธ์ระหว่างความต้องการ การออกแบบเชิงสถาปัตยกรรมและการออกแบบเชิงละเอียด

ตัวอย่างการออกแบบเชิงสถาปัตยกรรมของบ้าน

การออกแบบเชิงละเอียด (Detailed Design) การออกแบบเชิงนำไปปฏิบัติ (Implementation Design) คือ การอธิบายรายละเอียดแต่ละส่วนประกอบของซอฟต์แวร์ เพื่อเป็นประโยชน์สำหรับการเขียนโปรแกรมให้มากที่สุด การแตกฟังก์ชันเป็นส่วนย่อย (Functional Decomposition) คือ การแบ่งมอดูลออกเป็นมอดูลย่อย ในปัจจุบัน นิยมใช้ในโปรแกรมประยุกต์บนเว็บ

การแตกฟังก์ชันของมอดูล

การแตกฟังก์ชันของมอดูลอีกรูปแบบ

การเกาะกลุ่มกัน การเกาะกลุ่มกัน ( Cohesion) คือ การเกาะกลุ่มกันระหว่างมอดูล วัตถุ หรือ ส่วนประกอบต่าง ๆ โดยคำนึงถึงดีกรีของความสัมพันธ์ (Degree of Relatedness) ภายในมอดูล วัตถุ หรือ ส่วนประกอบนั้น ๆ

การพึ่งพากัน (Coupling) การติดต่อระหว่างข้อมูลมอดูล โดยมอดูลจะส่งผ่านพารามิเตอร์ไปยังมอดูลอื่น เรียกกว่า Function Call เมื่องานสิ้นสุด มอดูลที่ถูกเรียกจะส่งค่ากลับคืนมา เรียกกว่า Function Return

คำถามท้ายบท รูปแบบเชิงสถาปัตยกรรมคืออะไร และมีความสำคัญอย่างไร การออกแบบเชิงสถาปัตยกรรมแบบ MVC คืออะไร และมีความสำคัญอย่างไร การออกแบบมอดูลที่ดีควรมีลักษณะอย่างไร พร้อมทั้งยกตัวอย่างประกอบและมีประโยชน์ต่อการพัฒนาซอฟต์แวร์อย่างไร