SlideShare a Scribd company logo
Object Oriented Software Analysis
and Design
อาจารย์สมเกียรติ ช่อเหมือน
สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี
(tkorinp@hotmail.com)
Object Oriented Software Analysis
and Design
1) Requirements Analysis
2) The Problem
3) Listing Nouns and Verbs
4) Identifying Things Outside The Scope of The System
5) Identifying Synonyms
6) Identifying Potential Classes
7) Identifying Potential Attributes
8) Identifying Potential Methods
9) Identifying Common Characteristics
10) Refining Our Design using CRC Cards
11) Elaborating Classes
Requirements Analysis
• การพัฒนาโปรแกรมคอมพิวเตอร์ใด ๆ ต้องเริ่มต้นด้วยการระบุความ
ต้องการ
– วิศวกรต้องการออกแบบสะพานด้วยซอฟต์แวร์เพื่อสร้างแบบจาลองสามมิติ
ทาให้ผู้คนสามารถเห็นภาพสะพานที่สร้างจริง
– ผู้จัดการอาจต้องการซอฟต์แวร์ที่จะติดตามการทางานของบุคคลและ
มอบหมายงานให้บุคคลากรตามความสามารถในโครงการ
• เราจะได้ ความต้องการ ทางด้านซอฟต์แวร์
• การออกแบบเชิงวัตถุจะตอบสนองความต้องการได้หรือไม่?
• วิศวกรซอฟต์แวร์ที่มีความเชี่ยวชาญในการวิเคราะห์ความต้องการ
• ความเข้าใจว่าสิ่งใดคือความต้องการด้านซอฟต์แวร์
Requirements Analysis
• 1) การสัมภาษณ์และลูกค้าผู้ใช้ศักยภาพของระบบที่จะหาสิ่งที่
พวกเขาพูดเกี่ยวกับระบบที่จาเป็น
• 2) การจัดเก็บเอกสารผลลัพธ์ของการสนทนาเหล่านี้
• 3) การระบุคุณสมบัติที่สาคัญของระบบที่จาเป็นต้องใช้
• 4) การผลิตการออกแบบเบื้องต้น (และอาจเป็นต้นแบบของ
ระบบ)
• 5) การประเมินแผนการเริ่มต้นเหล่านี้กับลูกค้าและผู้ที่มีศักยภาพ
• 6) ทาซ้าขั้นตอนข้างต้นจนกว่าจะเสร็จสิ้นการออกแบบได้วิวัฒน์
Requirements Analysis
• การวิเคราะห์ความต้องการเป็นทักษะ
• แต่มุ่งเน้นไปที่ขั้นตอนที่ 3-4 คือ รายละเอียดของระบบ
• ประสบการณ์ ทักษะการออกแบบเป็นปัจจัยที่สาคัญ
• การผลิตออกแบบที่เรียบง่ายและมีรูปแบบเป็นสิ่งสาคัญ หาก
ต้องการซอฟต์แวร์ที่ทางานได้ดีและง่ายต่อการพัฒนา
• แต่การออกแบบที่ดี คือ สิ่งที่ไม่ง่ายและต้องใช้ประสบการณ์เป็น
ปัจจัยสาคัญ
Requirements Analysis
• เราเรียนรู้หลักการได้มากมาย แต่ประสบการณ์ ทาให้เกิดความชานาญในการ
วิเคราะห์ความต้องการและออกแบบที่ดี
• พื้นฐานของการวิเคราะห์ปัญหา
– เริ่มจากการกาหนดรายละเอียดของปัญหา
• รายชื่อคานามและคากริยา
• ระบุสิ่งที่อยู่นอกขอบเขตของระบบ
• ระบุสิ่งที่เกี่ยวข้องกัน
• ระบุClassที่มีศักยภาพ
• ระบุแอตทริบิวต์ที่มีศักยภาพ
• ระบุวิธีการที่มีศักยภาพ
• ระบุลักษณะทั่วไป
• การปรับแต่งการออกแบบของเราใช้บัตร CRC
• กาหนดรายะเอียดทั้งหมดของคลาส
The Problem
• การออกแบบจาเป็นต้องทราบรายละเอียดทั้งหมด
• การวิเคราะห์ต้องมีความรู้ ความเข้าใจ
Listing Nouns and Verbs
• ขั้นตอนแรกในการวิเคราะห์ คือ การระบุคานามและคากริยา
– คานามบ่งบอกถึง
• หน่วยงานหรือวัตถุ object
• บางส่วนจะclass
• บางส่วนเป็นแอตทริบิวต์ attribute
– คากริยาบ่งบอกถึง
• การกระทาที่จะดาเนินการ
• บางส่วนเป็นวิธีการ (Methods)
– คานามและคากริยาระบุไว้ในรูปแบบของเอกพจน์ (เช่น ‘books' กลายเป็น
‘book')
– คานามและคากริยาวลีที่มีการใช้คานาม หรือ กริยาเพียงอย่างเดียวไม่
เพียงพอ เช่น คากริยา 'พิมพ์' ไม่เป็นที่ชัดเจนเป็น 'พิมพ์ใบเสร็จรับเงิน'
Identifying Things Outside The Scope of The System
• ระบุสิ่งที่อยู่นอกขอบเขตของระบบ
– สิ่งสาคัญในการออกแบบระบบคือ การระบุปัญหาที่เกี่ยวข้อง
– รายละเอียดบางส่วนตามบริบท
• ตามวัตถุประสงค์
• ส่วนที่เกี่ยวข้องกับการออกแบบ
• คาอธิบายจากผู้ใช้ระบบ อาจหมายถึงงานที่จะดาเนินการ
• คาอธิบายฟังก์ชั่นที่จะต้องดาเนินการในระบบ
– ระบุสิ่งที่ไม่เกี่ยวข้อง และกาหนดปัญหาพื้นฐานที่จะทาได้
Identifying Synonyms
• คาพ้องรูปหรือพ้องเสียง นาไปสู่การซ้าซ้อนและสับสน
Synonyms
Nouns :-
.. world ranking professional=professional runner
.. fund-raising amateur=amateur runner
.. runner=competitor
Note runner is not a synonym of professional runner as some runners are amateurs.
Verbs :-
.. marathon=compete
.. check status=display status
.. print collection list = print list
.. finish race = record specified time
Identifying Potential Classes
• ระบุว่าเป็น class
– คานาม
• แสดงให้เห็นข้อมูลและการดาเนินงานควรจะได้รับการบรรจุเข้า
ด้วยกัน
• การระบุข้อมูลที่เกี่ยวข้อง แต่ไม่มีการดาเนินงานสามารถเก็บไว้
เป็นคุณลักษณะของClass
Identifying Potential Attributes
• การระบุคุณลักษณะ
– คานามอื่น ๆ ที่ไม่สามารถนามาใช้ในการระบุ class
Identifying Potential Methods
• คากริยาใช้ระบุวิธีการ (methods)
Identifying Common Characteristics
• ระบุลักษณะทั่วไป
– Class ที่เลือกมีคุณลักษณะที่เกี่ยวข้องและวิธีการ
– โครงสร้างของclass ในแต่ละลาดับชั้นที่เหมาะสม โดยการระบุ
คุณลักษณะทั่วไปและคุณสมบัติพิเศษ
Refining Our Design using CRC Cards
• การปรับแต่งสิ่งที่ออกแบบด้วยการใช้บัตร ซีอาร์ซี
– เมื่อระบุ Class หลัก แล้วกาหนดคุณลักษณะและวิธีการ
– กาหนดประเภทข้อมูลและรายละเอียดต่างๆ ในแผนภาพ UML
– การวิเคราะห์และการปรับแต่งการออกแบบจึงเป็นกระบวนการที่
ซับซ้อนมาก เพื่อให้เห็นสิ่งที่จะทาจริง
– การออกแบบครั้งแรกไม่สมบูรณ์ ต้องตรวจสอบการออกแบบเพื่อแก้ไข
ปัญหาที่อาจเกิดขึ้น
– การใช้บัตร CRC เพื่อตรวจสอบการทางานในสถานการณ์ที่แตกต่าง
Refining Our Design using CRC Cards
การตรวจสอบคลาส
• เนื้อหาในบัตร CRC
• ทาให้สามารถวาดแผนภาพ
• คลาสสาหรับการออกแบบ
• ที่นาเสนอได้
Summary
• การวิเคราะห์และออกแบบเชิงวัตถุเป็นการวิเคราะห์ทั้งระบบและ
ความต้องการ จากการจัดเก็บรวบรวม เพื่อให้สามารถวิเคราะห์
และออกแบบได้จาเป็นต้องใช้ประสบการณ์และเครื่องมือเข้ามา
ช่วยในการนาไปสร้างในรูปแบบทางซอฟต์แวร์
• ข้อความที่ได้จากการรวบรวมความต้องการ ทาให้เราทราบถึง
ส่วนประกอบทางด้านซอฟต์แวร์ ซึ่งวัตถุต่างๆ เชื่อมโยงกันตาม
แนวคิดเชิงวัตถุ

More Related Content

PDF
Creating And Using Exceptions
PDF
Creating And Using Exceptions
PDF
Java Development Tools
PDF
The Collections Framework
PPTX
OOSE
PDF
Ferrero completo ibr
PDF
Auditoria administrativa
PDF
Alat Bantu Sex Kondom
Creating And Using Exceptions
Creating And Using Exceptions
Java Development Tools
The Collections Framework
OOSE
Ferrero completo ibr
Auditoria administrativa
Alat Bantu Sex Kondom

Viewers also liked (16)

PPTX
Realizar una búsqueda en PubMed
PPTX
Castillo y zambrano bomba
PPTX
como acceder a las paginas de armonia
PPTX
Realizar búsqueda en SCOPUS y CINAHL. Referencias bibliográficas.
PPT
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
PPTX
Object Oriented Software Engineering
PPTX
Ketrampilan Diri
PPTX
Object oriented methodologies
PPSX
Busqueda en PubMed
ODP
Búsqueda en PubMed
PPTX
Generalidades de la ISO
PDF
America First
PPTX
Celiac disease
DOCX
Estrategia metodológica para Finanzas I
PPTX
3Com TC1000-4E1-120-AC/DC
Realizar una búsqueda en PubMed
Castillo y zambrano bomba
como acceder a las paginas de armonia
Realizar búsqueda en SCOPUS y CINAHL. Referencias bibliográficas.
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
Object Oriented Software Engineering
Ketrampilan Diri
Object oriented methodologies
Busqueda en PubMed
Búsqueda en PubMed
Generalidades de la ISO
America First
Celiac disease
Estrategia metodológica para Finanzas I
3Com TC1000-4E1-120-AC/DC
Ad

Similar to Object Oriented Software Analysis and Design (20)

PPT
The system-analysis-and-design
PDF
System Development Life Cycle
PPT
Soft were
PPT
การพัฒนาซอฟแวร์
PDF
Chapter 02
PPT
228-8 /231-9
PPT
System Development Life Cycle S D L C
PPT
System development life cycle sdlc
PDF
PDF
PPT
วงจรการพัฒนาโปรแกรม
PDF
Project Sky
PPT
SA Chapter 8
PPT
การพัฒนา Software
The system-analysis-and-design
System Development Life Cycle
Soft were
การพัฒนาซอฟแวร์
Chapter 02
228-8 /231-9
System Development Life Cycle S D L C
System development life cycle sdlc
วงจรการพัฒนาโปรแกรม
Project Sky
SA Chapter 8
การพัฒนา Software
Ad

More from CC Nakhon Pathom Rajabhat University (20)

PDF
ภาษา java sript
PDF
การสร้่างเว็บด้วยภาษา html
PDF
หลักการออกแบบเว็บไซต์
PDF
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจ
PDF
การนำระบบไปใช้/การบำรุงรักษาระบบ
PDF
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซ
PDF
การออกแบบเอาต์พุต/การออกแบบอินพุต
PDF
PDF
แบบจำลองระบบ
PDF
การวิเคราะห์ระบบ 2
PDF
การวิเคราะห์ระบบ 1
PDF
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศ
PDF
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบ
PDF
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศ
PDF
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธา
ภาษา java sript
การสร้่างเว็บด้วยภาษา html
หลักการออกแบบเว็บไซต์
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจ
การนำระบบไปใช้/การบำรุงรักษาระบบ
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซ
การออกแบบเอาต์พุต/การออกแบบอินพุต
แบบจำลองระบบ
การวิเคราะห์ระบบ 2
การวิเคราะห์ระบบ 1
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศ
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบ
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศ
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธา

Object Oriented Software Analysis and Design

  • 1. Object Oriented Software Analysis and Design อาจารย์สมเกียรติ ช่อเหมือน สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี (tkorinp@hotmail.com)
  • 2. Object Oriented Software Analysis and Design 1) Requirements Analysis 2) The Problem 3) Listing Nouns and Verbs 4) Identifying Things Outside The Scope of The System 5) Identifying Synonyms 6) Identifying Potential Classes 7) Identifying Potential Attributes 8) Identifying Potential Methods 9) Identifying Common Characteristics 10) Refining Our Design using CRC Cards 11) Elaborating Classes
  • 3. Requirements Analysis • การพัฒนาโปรแกรมคอมพิวเตอร์ใด ๆ ต้องเริ่มต้นด้วยการระบุความ ต้องการ – วิศวกรต้องการออกแบบสะพานด้วยซอฟต์แวร์เพื่อสร้างแบบจาลองสามมิติ ทาให้ผู้คนสามารถเห็นภาพสะพานที่สร้างจริง – ผู้จัดการอาจต้องการซอฟต์แวร์ที่จะติดตามการทางานของบุคคลและ มอบหมายงานให้บุคคลากรตามความสามารถในโครงการ • เราจะได้ ความต้องการ ทางด้านซอฟต์แวร์ • การออกแบบเชิงวัตถุจะตอบสนองความต้องการได้หรือไม่? • วิศวกรซอฟต์แวร์ที่มีความเชี่ยวชาญในการวิเคราะห์ความต้องการ • ความเข้าใจว่าสิ่งใดคือความต้องการด้านซอฟต์แวร์
  • 4. Requirements Analysis • 1) การสัมภาษณ์และลูกค้าผู้ใช้ศักยภาพของระบบที่จะหาสิ่งที่ พวกเขาพูดเกี่ยวกับระบบที่จาเป็น • 2) การจัดเก็บเอกสารผลลัพธ์ของการสนทนาเหล่านี้ • 3) การระบุคุณสมบัติที่สาคัญของระบบที่จาเป็นต้องใช้ • 4) การผลิตการออกแบบเบื้องต้น (และอาจเป็นต้นแบบของ ระบบ) • 5) การประเมินแผนการเริ่มต้นเหล่านี้กับลูกค้าและผู้ที่มีศักยภาพ • 6) ทาซ้าขั้นตอนข้างต้นจนกว่าจะเสร็จสิ้นการออกแบบได้วิวัฒน์
  • 5. Requirements Analysis • การวิเคราะห์ความต้องการเป็นทักษะ • แต่มุ่งเน้นไปที่ขั้นตอนที่ 3-4 คือ รายละเอียดของระบบ • ประสบการณ์ ทักษะการออกแบบเป็นปัจจัยที่สาคัญ • การผลิตออกแบบที่เรียบง่ายและมีรูปแบบเป็นสิ่งสาคัญ หาก ต้องการซอฟต์แวร์ที่ทางานได้ดีและง่ายต่อการพัฒนา • แต่การออกแบบที่ดี คือ สิ่งที่ไม่ง่ายและต้องใช้ประสบการณ์เป็น ปัจจัยสาคัญ
  • 6. Requirements Analysis • เราเรียนรู้หลักการได้มากมาย แต่ประสบการณ์ ทาให้เกิดความชานาญในการ วิเคราะห์ความต้องการและออกแบบที่ดี • พื้นฐานของการวิเคราะห์ปัญหา – เริ่มจากการกาหนดรายละเอียดของปัญหา • รายชื่อคานามและคากริยา • ระบุสิ่งที่อยู่นอกขอบเขตของระบบ • ระบุสิ่งที่เกี่ยวข้องกัน • ระบุClassที่มีศักยภาพ • ระบุแอตทริบิวต์ที่มีศักยภาพ • ระบุวิธีการที่มีศักยภาพ • ระบุลักษณะทั่วไป • การปรับแต่งการออกแบบของเราใช้บัตร CRC • กาหนดรายะเอียดทั้งหมดของคลาส
  • 7. The Problem • การออกแบบจาเป็นต้องทราบรายละเอียดทั้งหมด • การวิเคราะห์ต้องมีความรู้ ความเข้าใจ
  • 8. Listing Nouns and Verbs • ขั้นตอนแรกในการวิเคราะห์ คือ การระบุคานามและคากริยา – คานามบ่งบอกถึง • หน่วยงานหรือวัตถุ object • บางส่วนจะclass • บางส่วนเป็นแอตทริบิวต์ attribute – คากริยาบ่งบอกถึง • การกระทาที่จะดาเนินการ • บางส่วนเป็นวิธีการ (Methods) – คานามและคากริยาระบุไว้ในรูปแบบของเอกพจน์ (เช่น ‘books' กลายเป็น ‘book') – คานามและคากริยาวลีที่มีการใช้คานาม หรือ กริยาเพียงอย่างเดียวไม่ เพียงพอ เช่น คากริยา 'พิมพ์' ไม่เป็นที่ชัดเจนเป็น 'พิมพ์ใบเสร็จรับเงิน'
  • 9. Identifying Things Outside The Scope of The System • ระบุสิ่งที่อยู่นอกขอบเขตของระบบ – สิ่งสาคัญในการออกแบบระบบคือ การระบุปัญหาที่เกี่ยวข้อง – รายละเอียดบางส่วนตามบริบท • ตามวัตถุประสงค์ • ส่วนที่เกี่ยวข้องกับการออกแบบ • คาอธิบายจากผู้ใช้ระบบ อาจหมายถึงงานที่จะดาเนินการ • คาอธิบายฟังก์ชั่นที่จะต้องดาเนินการในระบบ – ระบุสิ่งที่ไม่เกี่ยวข้อง และกาหนดปัญหาพื้นฐานที่จะทาได้
  • 10. Identifying Synonyms • คาพ้องรูปหรือพ้องเสียง นาไปสู่การซ้าซ้อนและสับสน Synonyms Nouns :- .. world ranking professional=professional runner .. fund-raising amateur=amateur runner .. runner=competitor Note runner is not a synonym of professional runner as some runners are amateurs. Verbs :- .. marathon=compete .. check status=display status .. print collection list = print list .. finish race = record specified time
  • 11. Identifying Potential Classes • ระบุว่าเป็น class – คานาม • แสดงให้เห็นข้อมูลและการดาเนินงานควรจะได้รับการบรรจุเข้า ด้วยกัน • การระบุข้อมูลที่เกี่ยวข้อง แต่ไม่มีการดาเนินงานสามารถเก็บไว้ เป็นคุณลักษณะของClass
  • 12. Identifying Potential Attributes • การระบุคุณลักษณะ – คานามอื่น ๆ ที่ไม่สามารถนามาใช้ในการระบุ class
  • 13. Identifying Potential Methods • คากริยาใช้ระบุวิธีการ (methods)
  • 14. Identifying Common Characteristics • ระบุลักษณะทั่วไป – Class ที่เลือกมีคุณลักษณะที่เกี่ยวข้องและวิธีการ – โครงสร้างของclass ในแต่ละลาดับชั้นที่เหมาะสม โดยการระบุ คุณลักษณะทั่วไปและคุณสมบัติพิเศษ
  • 15. Refining Our Design using CRC Cards • การปรับแต่งสิ่งที่ออกแบบด้วยการใช้บัตร ซีอาร์ซี – เมื่อระบุ Class หลัก แล้วกาหนดคุณลักษณะและวิธีการ – กาหนดประเภทข้อมูลและรายละเอียดต่างๆ ในแผนภาพ UML – การวิเคราะห์และการปรับแต่งการออกแบบจึงเป็นกระบวนการที่ ซับซ้อนมาก เพื่อให้เห็นสิ่งที่จะทาจริง – การออกแบบครั้งแรกไม่สมบูรณ์ ต้องตรวจสอบการออกแบบเพื่อแก้ไข ปัญหาที่อาจเกิดขึ้น – การใช้บัตร CRC เพื่อตรวจสอบการทางานในสถานการณ์ที่แตกต่าง
  • 16. Refining Our Design using CRC Cards
  • 17. การตรวจสอบคลาส • เนื้อหาในบัตร CRC • ทาให้สามารถวาดแผนภาพ • คลาสสาหรับการออกแบบ • ที่นาเสนอได้
  • 18. Summary • การวิเคราะห์และออกแบบเชิงวัตถุเป็นการวิเคราะห์ทั้งระบบและ ความต้องการ จากการจัดเก็บรวบรวม เพื่อให้สามารถวิเคราะห์ และออกแบบได้จาเป็นต้องใช้ประสบการณ์และเครื่องมือเข้ามา ช่วยในการนาไปสร้างในรูปแบบทางซอฟต์แวร์ • ข้อความที่ได้จากการรวบรวมความต้องการ ทาให้เราทราบถึง ส่วนประกอบทางด้านซอฟต์แวร์ ซึ่งวัตถุต่างๆ เชื่อมโยงกันตาม แนวคิดเชิงวัตถุ