\chapter{การวิเคราะห์และออกแบบระบบ}

การวิเคราะห์และออกแบบระบบก่อนดำเนินการจริงเป็นอีกหนึ่งขั้นตอนที่มีความสำคัญ เพราะการวิเคราะห์และออกแบบระบบนั้นเป็นการกระทำที่ทำให้ผู้พัฒนาเห็นรายละเอียดส่วนย่อยของงานทั้งหมด เพิ่มประสิทธิภาพในการวางแผน การทำงาน และยังช่วยลดปัญหาที่อาจจะเกิดขึ้นในระหว่างพัฒนา เพื่อให้ระบบมีความสมบูรณ์มากยิ่งขึ้น ในบทนี้จะแบ่งออกเป็น 3 ขั้นตอนเพื่อให้เห็นการดำเนินงานอย่างมีระบบ

\begin{enumerate}[label=3.\arabic*]
	\item usecase diagram
	\item context diagram
	\item data flow diagram level 0
	\item Entity Relationship Diagrams
	\item Sequence Diagrams
\end{enumerate}	

\section{usecase diagram}
\begin{figure}[H]
	\centering
	\includegraphics[width=\textwidth]{Figures/my3/Untitled Diagram-usecase}
	\caption{usecase diagram ของระบบท่องเที่ยวอีสาน}
	\label{Fig:usecase}
\end{figure}
\begin{table}[H]
	\centering
	\caption{อธิบาย Use Case หน้าที่ของระบบ ในภาพที่ \ref{Fig:usecase}}
	\label{tab:usecase}
	\resizebox{\totalheight}{!}{\textwidth}{%
		\begin{tabular}{|c|p{10cm}|}
			\hline
			\multicolumn{1}{|c|}{\textbf{Use Case}} & \multicolumn{1}{c|}{\textbf{คำอธิบาย}} \\ \hline
			ค้นหาสถานที่ท่องเที่ยว & ผู้ใช้งานสามารถค้นหาสถานที่ท่องเที่ยวได้โดยการเลือกจากชื่อจังหวัด \\ \hline
			เลือกสถานที่ & ผู้ใช้งานเลือกสถานที่ท่องเที่ยวที่สนใจ \\ \hline
			ดูลำดับการเดินทาง & ผู้ใช้งานสามารถดูลำดับการเดินทางไปยังสถานที่ท่องเที่ยวที่เลือกได้ \\ \hline
			ดูรายละเอียดของสถานที่ & ผู้ใช้งานสามารถดูรายละเอียดของสถานที่ท่องเที่ยว และตำแหน่งของสถานที่ท่องเที่ยว \\ \hline
			เข้าสู่ระบบ & admin ทำการเข้าสู่ระบบก่อน เพื่อที่จะจัดการข้อมูลสถานที่ท่องเที่ยว \\ \hline
			เพิ่ม/ลบ จังหวัด & admin สามารถเพิ่มและลบข้อมูลจังหวัด\\ \hline
			เพิ่ม/ลบ/แก้ไข & admin สามารถเพิ่ม แก้ไขและลบ ข้อมูลสถานที่ท่องเที่ยว\\ \hline
		\end{tabular}%
	}
\end{table}

\section{context diagram}
    Context diagram เป็น diagram ที่แสดงถึงขอบเขตของระบบงาน โดยไม่แสดงสัญลักษณ์แหล่งจัดเก็บข้อมูล ทำให้สามารถเห็นภาพรวมของระบบ และขอบเขตการวิเคราะห์ระบบ
   	\begin{figure}[H]
   		\centering
   		\includegraphics[width=\textwidth]{Figures/my3/Untitled Diagram-Context }
   		\caption{context diagram ของระบบท่องเที่ยวอีสาน}
   		\label{Fig:context}
   	\end{figure}
   
   จากรูปที่ \ref{Fig:context} มีส่วนที่เกี่ยวข้อง 3 ส่วน คือ ผู้ใช้ทั่วไป ผู้ดูแลระบบ และgoogle map/distance martrix api
  

\section{data flow diagram level 0}
DFD 0 หรือ data flow diagram level 0 เป็นแผนภาพแสดงการไหลของข้อมูลของระบบ เพื่อแสดงวิธีการไหลของข้อมูลจากกระบวนการหนึ่งไปอีกกระบวนการหนึ่ง 
\begin{figure}[H]
	\centering
	\includegraphics[width=\textwidth]{Figures/my3/Untitled Diagram-DFD 0}
	\caption{data flow diagram level 0 ของระบบท่องเที่ยวอีสาน}
	\label{Fig:dfd}
\end{figure}
\begin{table}[H]
	\centering
	\caption{Process description ค้นหาสถานที่ท่องเที่ยว}
	\label{my-label1}
	\begin{tabular}{|c p{10cm}|}
		\hline
		Process name : & ค้นหาสถานที่ท่องเที่ยว \\\hline
		Input Data Flows : & ชื่อจังหวัด \\\hline
		Output Data Flows :& ข้อมูลสถานที่ท่องเที่ยว \\\hline
		Data Stored used :& สถานที่ท่องเที่ยว \\\hline
		Description :& เป็นกระบวนการค้นหาสถานที่ท่องเที่ยวจากจังหวัดที่ผู้ใช้สนใจ\\
		\hline
	\end{tabular}
\end{table}
\begin{table}[H]
	\centering
	\caption{Process description แสดงรายละเอียดสถานที่ท่องเที่ยว}
	\label{my-label1}
	\begin{tabular}{|c p{10cm}|}
		\hline
		Process name : & แสดงรายละเอียดสถานที่ท่องเที่ยว \\\hline
		Input Data Flows : & ชื่อสถานที่ท่องเที่ยว \\\hline
		Output Data Flows :& ข้อมูลสถานที่ท่องเที่ยว \\\hline
		Data Stored used :& สถานที่ท่องเที่ยว \\\hline
		Description :& เมื่อผู้ใช้คลิกดูรายละเอียดสถานที่ ระบบจะส่ง ID สถานที่ท่องเที่ยวเพื่อไปค้นหาข้อมูลจาก Data Stored ที่มีID สถานที่ท่องเที่ยวเหมือนกัน \\
		\hline
	\end{tabular}
\end{table}
\begin{table}[H]
	\centering
	\caption{Process description เลือกสถานที่ท่องเที่ยว}
	\label{my-label1}
	\begin{tabular}{|c p{10cm}|}
		\hline
		Process name : & เลือกสถานที่ท่องเที่ยว \\\hline
		Input Data Flows : & ชื่อสถานที่ท่องเที่ยว \\\hline
		Output Data Flows :& - \\\hline
		Data Stored used :& - \\\hline
		Description :& เมื่อผู้ใช้ทำการเลือกสถานที่ท่องเที่ยว ระบบจะทำการเก็บ ID สถานที่ท่องเที่ยวที่เลือกไว้ใน Session \\
		\hline
	\end{tabular}
\end{table}
\begin{table}[H]
	\centering
	\caption{Process description หาลำดับการเดินทาง}
	\label{my-label1}
	\begin{tabular}{|c p{10cm}|}
		\hline
		Process name : & หาลำดับการเดินทาง \\\hline
		Input Data Flows : & ID สถานที่ท่องเที่ยวที่เลือก,ระยะทาง \\\hline
		Output Data Flows :& ลำดับการเดินทาง,ค่าlattitude,longitude \\\hline
		Data Stored used :& สถานที่ท่องเที่ยว \\\hline
		Description :& ระบบจะทำการเอาค่า ID สถานที่ท่องเที่ยวจาก Session เพื่อไปดึงข้อมูลละติจูดกับลองจิจูดไปหาระยะทางด้วย Distance Matrix API เพื่อทำการเรียงลำดับการเดินทาง และส่งให้ผู้ใช้ทั่วไป  \\
		\hline
	\end{tabular}
\end{table}
\begin{table}[H]
	\centering
	\caption{Process description เพิ่ม/แก้ไขข้อมูลสถานที่ท่องเที่ยว}
	\label{my-label1}
	\begin{tabular}{|c p{10cm}|}
		\hline
		Process name : & เพิ่ม/แก้ไขข้อมูลสถานที่ท่องเที่ยว \\\hline
		Input Data Flows : & ข้อมูลสถานที่ท่องเที่ยว \\\hline
		Output Data Flows :& ข้อมูลสถานที่ท่องเที่ยว \\\hline
		Data Stored used :& สถานที่ท่องเที่ยว \\\hline
		Description :& admin ทำการกรอกข้อมูลสถานที่ท่องเที่ยวและทำการบันทึกข้อมูลลง Data Stored  D1\\
		\hline
	\end{tabular}
\end{table}
\begin{table}[H]
	\centering
	\caption{Process description เพิ่มข้อมูลจังหวัด}
	\label{my-label1}
	\begin{tabular}{|c p{10cm}|}
		\hline
		Process name : & เพิ่มข้อมูลจังหวัด \\\hline
		Input Data Flows : & ข้อมูลจังหวัด \\\hline
		Output Data Flows :& ข้อมูลจังหวัด \\\hline
		Data Stored used :& จังหวัด \\\hline
		Description :& admin ทำการกรอกข้อมูลจังหวัด และทำการบันทึกลง Data Stored D2  \\
		\hline
	\end{tabular}
\end{table}
\begin{table}[H]
	\centering
	\caption{Process description ลบสถานที่ท่องเที่ยว}
	\label{my-label1}
	\begin{tabular}{|c p{10cm}|}
		\hline
		Process name : & ลบข้อมูลสถานที่ท่องเที่ยว \\\hline
		Input Data Flows : & ชื่อสถานที่ท่องเที่ยว,ข้อมูลสถานที่ท่องเที่ยว \\\hline
		Output Data Flows :& id สถานที่ท่องเที่ยว \\\hline
		Data Stored used :& สถานที่ท่องเที่ยว \\\hline
		Description :& admin ทำการเลือกสถานที่ท่องเที่ยวที่ต้องการลบ และระบบทำการส่ง id สถานที่ท่องเที่ยวเพื่อดึงข้อมูลจาก Data Stored D1 มาเพื่อทำการลบข้อมูล \\
		\hline
	\end{tabular}
\end{table}
\begin{table}[H]
	\centering
	\caption{Process description ลบข้อมูลจังหวัด}
	\label{my-label1}
	\begin{tabular}{|c p{10cm}|}
		\hline
		Process name : & ลบข้อมูลจังหวัด \\\hline
		Input Data Flows : & ชื่อจังหวัด,ข้อมูลจังหวัด,ข้อมูลสถานที่ท่องเที่ยว \\\hline
		Output Data Flows :& idจังหวัด \\\hline
		Data Stored used :& สถานที่ท่องเที่ยว,จังหวัด \\\hline
		Description :& admin ทำการเลือกจังหวัดที่ต้องการลบ ระบบจะส่งidจังหวัดนั้นเพื่อไปดึงข้อมูลสถานที่ท่องเที่ยวในจังหวัดนั้นจาก Data Stored D1 มาลบ และทำการลบข้อมูลจังหวัดใน Data Stored D2\\
		\hline
	\end{tabular}
\end{table}
\section{Entity Relationship Diagrams}
Entity Relationship Diagrams คือ แบบจำลองที่ใช้อธิบายโครงสร้างของฐานข้อมูลซึ่งเขียนออกมาในลักษณะของรูปภาพ การอธิบายโครงสร้างและความสัมพันธ์ของข้อมูล ประกอบด้วย
	\begin{enumerate}
		\item เอนทิตี้ (Entity) เป็นวัตถุ หรือสิ่งของที่เราสนใจในระบบงานนั้น ๆ
		\item	แอททริบิว (Attribute) เป็นคุณสมบัติของวัตถุที่เราสนใจ
		\item	ความสัมพันธ์ (Relationship) คือ ความสัมพันธ์ระหว่างเอนทิตี้
	\end{enumerate}
Entity Relationship Diagram ของระบบอธิบายได้ตามภาพที่ดังต่อไปนี้
\begin{figure}[H]
	\centering
	\includegraphics[width=\textwidth]{Figures/my3/Untitled Diagram-ER}
	\caption{ Entity Relationship Diagram ของระบบท่องเที่ยวอีสาน}
	\label{Fig:erd}
\end{figure}
\subsection{Data dictionary}
\begin{table}[H]
	\centering
	\caption{ตาราง provinces}
	\label{my-label1}
	\begin{tabular}{|c|c|c|c|}
		\hline
		Attribute Name & Description & Data Type & Key Type \\ \hline
		provinces\_id &	รหัสจังหวัด	&int	&PK \\\hline
		provinces\_name&	ชื่อจังหวัด&	varchar& \\	
		\hline
	\end{tabular}
\end{table}
\begin{table}[H]
	\centering
	\caption{ตาราง attractions}
	\label{my-label1}
	\begin{tabular}{|c|c|c|c|}
		\hline
		Attribute Name & Description & Data Type & Key Type \\ \hline
		provinces\_id &	รหัสจังหวัด	&int	&FK \\\hline
		attractions\_id&	รหัสสถานที่ท่องเที่ยว&	int&	PK\\\hline
		attractions\_name &	ชื่อสถานที่ท่องเที่ยว&	varchar& \\\hline
			Latitude&	ละติจูด&	double& \\\hline
	longitude	&ลองจิจูด&	double&\\\hline				
		description&	รายละเอียด	&text& \\\hline
		image\_url &	url รูปภาพ&	varchar& \\
		\hline
	\end{tabular}
\end{table}
\begin{table}[H]
	\centering
	\caption{ตาราง admin}
	\label{my-label1}
	\begin{tabular}{|c|c|c|c|}
		\hline
		Attribute Name & Description & Data Type & Key Type \\ \hline
		username&ชื่อผู้ใช้&varchar& \\\hline
		password &	รหัสผู้ใช้&	varchar& \\
		\hline
	\end{tabular}
\end{table}
\section{Sequence Diagram}
Sequence Diagram เป็น Diagram ที่แสดงขั้นตอนการทำงานของแต่ละ Use Case ระหว่าง Object ต่าง ๆ ที่ส่งข้อความถึงกันและกัน โดย Sequence Diagram จะช่วยให้มองเห็นการทำงานของภาพรวมของระบบ ส่วนประกอบสัญลักษณ์ที่ใช้ในการเขียน Sequence Diagram 
แสดงดังตารางที่ \ref{tab:Sequences}
\begin{table}[H]
	\centering
	\caption{สัญลักษณ์ของ Sequence Diagram}
	\label{tab:Sequences}
	\begin{tabular}{| c	| p{10cm} |}
		\hline
		\textbf{สัญลักษณ์} & \multicolumn{1}{c|}{\textbf{การใช้งาน}} \\ \hline
		\raisebox{-\totalheight}{\includegraphics[width=0.17\textwidth]{Figures/table/Sequence/Sequence1}}
		& \setstretch{1.5} {Object ที่ต้องทำหน้าที่ในการส่งหรือรับข้อมูล } \\ \hline
		\raisebox{-\totalheight}{\includegraphics[height=0.08\textheight]{Figures/table/Sequence/Sequence2}}
		& \setstretch{1.5} {Lifeline หรือเส้นอายุขัย แสดงช่วงเวลาตั้งแต่เริ่มสร้าง object ในคลาสนั้น จนกระทั่ง object นั้นถูกทำลาย สัญลักษณ์แทนด้วยเส้นประ} \\ \hline
		\raisebox{-\totalheight}{\includegraphics[height=0.08\textheight]{Figures/table/Sequence/Sequence3}}
		& \setstretch{1.5} {Focus of control หรือจุดควบคุม เป็นจุดควบคุมที่ object ใช้ทำการส่งหรือรับข้อความ สัญลักษณ์แทนด้วยสี่เหลี่ยม} \\ \hline
		\raisebox{-\totalheight}{\includegraphics[width=0.3\textwidth]{Figures/table/Sequence/Sequence4}}
		& \setstretch{1.5} {Message คือ ข้อความที่รับส่งระหว่าง Object สัญลักษณ์แทนด้วยลูกศรและประกอบด้วย 2 ส่วน คือ ข้อมูล (Data) และฟังก์ชัน (Function)} \\ \hline
		\raisebox{-\totalheight}{\includegraphics[width=0.3\textwidth]{Figures/table/Sequence/Sequence5}}
		& \setstretch{1.5} {Return Message เป็นข้อมูลที่ส่งกลับหลังจากทำงานเสร็จ} \\ \hline
		\raisebox{-\totalheight}{\includegraphics[height=0.08\textheight]{Figures/3/selfcall}}
		& \setstretch{1.5} {Self call เป็นการเรียกฟังชันก์การทำงานภายในตัวเอง} \\ \hline
		\raisebox{-\totalheight}{\includegraphics[height=0.1\textheight,width=0.3\textwidth]{Figures/3/frame}}
		& \setstretch{1.5} {สร้างกรอบการทำงานของโปรแกรม เพื่อให้รู้ขอบเขตของการทำงานเช่น ลูป(loop)} \\ \hline
	\end{tabular}
\end{table}
\begin{figure}[H]
	\centering
	\includegraphics[width=\textwidth,angle=90,scale=1.5]{Figures/my3/Untitled Diagram-sq ล็อตอิน}
	\caption{Sequence Diagram เข้าสู่ระบบ}
	\label{Fig:sqlogin}
\end{figure}
จากภาพที่ \ref{Fig:sqlogin} สามารถอธิบายแผนภาพ Sequence Diagram เข้าสู่ระบบ ได้ดังนี้ เมื่อ
ผู้ใช้กรอก username,password ระบบจะเรียกใช้เมธอด login() ที่ loginController ระบบจะดึงข้อมูลจาก model User เพื่อมาตรวจสอบว่า username,password ถูกต้องหรือไม่ ถ้าถูกต้องจะไปแสดงหน้า admin.blade.php ถ้าไม่ถูกต้องจะกลับไปแสดงหน้า login พร้อมแจ้งเตือนการเข้าสู่ระบบไม่สำเร็จ
\begin{figure}[H]
	\centering
	\includegraphics[width=\textwidth,angle=90,scale=1.5]{Figures/my3/Untitled Diagram-sq ค้นหาท่องเที่ยว}
	\caption{Sequence Diagram ค้นหาสถานที่ท่องเที่ยว}
	\label{Fig:sqsearch}
\end{figure}
จากภาพที่ \ref{Fig:sqsearch} สามารถอธิบายแผนภาพ Sequence Diagram ค้นหาสถานที่ท่องเที่ยว ได้ดังนี้ หน้าsearch.blade.php จะทำการดึงข้อมูลจังหวัดจากโมเดล Province มาเพื่อให้ผู้ใช้งานทำการเลือกจังหวัด เมื่อผู้ใช้งานเลือกจังหวัด จะส่งค่าที่เลือกไปยัง controller getplace จากนั้น getplace จะไปดึงข้อมูลสถานที่ท่องเที่ยวจาก model Attraction และส่งข้อมูลสถานที่ท่องเที่ยวไปยังหน้า getview.blade.php เพื่อแสดงข้อมูลสถานที่ท่องเที่ยว
\begin{figure}[H]
	\centering
	\includegraphics[width=\textwidth]{Figures/my3/Untitled Diagram-sq รายละเอียด}
	\caption{Sequence Diagram ดูรายละเอียด}
	\label{Fig:sqdetail}
\end{figure}
จากภาพที่ \ref{Fig:sqdetail} สามารถอธิบายแผนภาพ Sequence Diagram ดูรายละเอียด ได้ดังนี้ เมื่อผู้ใช้งานทำการเลือกสถานที่ท่องเที่ยวที่หน้า getview.blade.php ระบบจะทำการส่ง idสถานที่ท่องเที่ยวไปยังcontroller detail จากนั้น controller detail จะทำการไปดึงข้อมูลสถานที่ท่องเที่ยวจาก model Attraction และส่งข้อมูลไปยังหน้า viewdetail.blade.php เพื่อแสดงรายละเอียดของสถานที่ท่องเที่ยวให้ผู้ใช้งาน
\begin{figure}[H]
	\centering
	\includegraphics[width=\textwidth]{Figures/my3/Untitled Diagram-sq เลือก}
	\caption{Sequence Diagram เลือกสถานที่ท่องเที่ยว}
	\label{Fig:sqselect}
\end{figure}
จากภาพที่ \ref{Fig:sqselect} สามารถอธิบายแผนภาพ Sequence Diagram เลือกสถานที่ท่องเที่ยว ได้ดังนี้ เมื่อผู้ใช้งานทำการเลือกสถานที่ท่องเที่ยวที่หน้า getview.blade.php ระบบจะทำการส่ง idสถานที่ท่องเที่ยวไปยังcontroller addplace และเรียกใช้งานเมธอด add() จากนั้นจะทำการบันทึก idสถานที่ท่องเที่ยวที่เลือก และส่งแจ้งเตือนการเลือกสำเร็จกลับให้ผู้ใช้งาน
\begin{figure}[H]
	\centering
	\includegraphics[width=\textwidth]{Figures/my3/Untitled Diagram-sq ดูลำดับการเดินทาง}
	\caption{Sequence Diagram ดูลำดับการเดินทาง}
	\label{Fig:sqresult}
\end{figure}
จากภาพที่ \ref{Fig:sqresult} สามารถอธิบายแผนภาพ Sequence Diagram ดูลำดับการเดินทาง ได้ดังนี้ เมื่อผู้ใช้งานทำการกดปุ่มค้นหาเส้นทางที่หน้า selectview.blade.php ระบบจะส่งค่า lat,lng ของตำแหน่งปัจจุบันของผู้ใช้งานไปยัง ResultController จากนั้นจะเรียกใช้งานเมธอด geturl() โดยเมธอดนี้จะทำหน้าที่สร้าง url เพื่อส่งไปหาค่าระยะทาง และเรียกใช้เมธอด getdistance() เมธอดนี้มีหน้าที่ส่ง url เพื่อหาระยะทางจาก distance matrix api จากนั้นจะทำการเรียงลำดับการเดินทาง เมื่อเรียงลำดับการเดินทางเสร็จแล้ว จะทำการดึงข้อมูลสถานที่ท่องเที่ยวจาก model Attraction และส่งไปแสดงหน้า result.blade.php เพื่อแสดงลำดับการเดินทางให้ผู้ใช้งาน
\begin{figure}[H]
	\centering
	\includegraphics[width=\textwidth]{Figures/my3/Untitled Diagram-sq เพิ่มจังหวัด}
	\caption{Sequence Diagram เพิ่มจังหวัด}
	\label{Fig:sqaddp}
\end{figure}
จากภาพที่ \ref{Fig:sqaddp} สามารถอธิบายแผนภาพ Sequence Diagram เพิ่มจังหวัด ได้ดังนี้ เมื่อผู้ใช้กรอกข้อมูลที่หน้า insert.blade.php ระบบจะส่งข้อมูลที่กรอกไปยัง adminController และเรียกใช้งานเมธอด insertProvince() จากนั้นจะทำการบันทึกข้อมูลที่กรอกลงฐานข้อมูลและส่งแจ้งเตือนการบันทึกไปยังผู้ใช้ 
\begin{figure}[H]
	\centering
	\includegraphics[width=\textwidth]{Figures/my3/Untitled Diagram-sq เพิ่มท่องเที่ยว}
	\caption{Sequence Diagram เพิ่มสถานที่ท่องเที่ยว}
	\label{Fig:sqadda}
\end{figure}
จากภาพที่ \ref{Fig:sqadda} สามารถอธิบายแผนภาพ Sequence Diagram เพิ่มสถานที่ท่องเที่ยว ได้ดังนี้ เมื่อผู้ใช้กรอกข้อมูลที่หน้า insert.blade.php ระบบจะส่งข้อมูลที่กรอกไปยัง adminController และเรียกใช้งานเมธอด insertAttraction() จากนั้นจะทำการบันทึกข้อมูลที่กรอกลงฐานข้อมูลและส่งแจ้งเตือนการบันทึกไปยังผู้ใช้ 
\begin{figure}[H]
	\centering
	\includegraphics[width=\textwidth]{Figures/my3/Untitled Diagram-sq ลบจังหวัด}
	\caption{Sequence Diagram ลบจังหวัด}
	\label{Fig:sqdelp}
\end{figure}
จากภาพที่ \ref{Fig:sqdelp} สามารถอธิบายแผนภาพ Sequence Diagram ลบจังหวัด ได้ดังนี้ เมื่อผู้ใช้กดปุ่มลบที่หน้า admin.blade.php ระบบจะส่ง idจังหวัดไปยัง adminController และเรียกใช้งานเมธอด deleteProvince ระบบจะทำการดึงข้อมูลสถานที่ท่องเที่ยวที่มี idจังหวัดที่ต้องการลบจาก model Attraction และทำการลบสถานที่ท่องเที่ยวนั้นออก จากนั้นจะทำการดึงข้อมูลจังหวัดที่ต้องการลบและทำการลบ และส่งแจ้งเตือนการลบไปยังผู้ใช้งาน
\begin{figure}[H]
	\centering
	\includegraphics[width=\textwidth]{Figures/my3/Untitled Diagram-sq ลบสถานที่ท่องเที่ยว}
	\caption{Sequence Diagram ลบสถานที่ท่องเที่ยว}
	\label{Fig:sqdela}
\end{figure}
จากภาพที่ \ref{Fig:sqdela} สามารถอธิบายแผนภาพ Sequence Diagram ลบสถานที่ท่องเที่ยว ได้ดังนี้ เมื่อผู้ใช้กดปุ่มลบที่หน้า adminsearch.blade.php ระบบจะส่ง idสถานที่ท่องเที่ยวไปยัง adminController และเรียกใช้งานเมธอด deleteAttraction ระบบจะทำการดึงข้อมูลสถานที่ท่องเที่ยวที่มี idสถานที่ท่องเที่ยวที่ต้องการลบจาก model Attraction และทำการลบสถานที่ท่องเที่ยวนั้นออก จากนั้นจะทำการส่งแจ้งเตือนการลบไปยังผู้ใช้งาน
\begin{figure}[H]
	\centering
	\includegraphics[width=\textwidth]{Figures/my3/Untitled Diagram-sq แก้ไขท่องเที่ยว}
	\caption{Sequence Diagram แก้ไขสถานที่ท่องเที่ยว}
	\label{Fig:squpdate}
\end{figure}
จากภาพที่ \ref{Fig:squpdate} สามารถอธิบายแผนภาพ Sequence Diagram แก้ไขสถานที่ท่องเที่ยว ได้ดังนี้ เมื่อผู้ใช้กดปุ่มแก้ไขที่หน้า adminsearch.blade.php ระบบจะส่ง idสถานที่ท่องเที่ยวไปยัง adminController และเรียกใช้งานเมธอด edit() ระบบจะทำการดึงข้อมูลสถานที่ท่องเที่ยวที่มี idสถานที่ท่องเที่ยวเหมือนกันจาก model Attraction และส่งข้อมูลไปแสดงหน้า update.blade.php จากนั้นผู้ใช้จะทำการกรอกข้อมูลที่ต้องการแก้ไขที่หน้า update.blade.php เมื่อกดปุ่ม submit ระบบจะส่งข้อมูลที่กรอกมายัง adminController และเรียกใช้งานเมธอด update() โดยเมธอดนี้มีหน้าที่อัพเดทข้อมูล และทำการส่งแจ้งเตือนการแก้ไขสำเร็จให้ผู้ใช้