204362 object-oriented design - kku web hosting · pdf fileoestereich bernd , fideveloping...
TRANSCRIPT
1
204362 Object-oriented designการออกแบบเชงวตถCredit 3(3/3-0/p)Pre : CS 211 and CS 361
อ.วาสนา นยโพธ
2
Outline1. Introduction2. Software life-cycle model3. OO analysis -structure analysis4. Notation5. OO analysis -behavior analysis6. The method7. Object-oriented design
3
References :Coad,peter and Yourdon,edward.�Object-oriented design�.
Prentice-Hall International,Inc.,1991.Coad,peter and Yourdon,edward.�Object-oriented design�.
Prentice-Hall International,Inc.,1991.Gready booch . �Object-orientd analysis and design�.
Addison-wesley publishing company,1994.
4
Stephen R. schach , �Classical and object-oriented software engineering with UML and C++� , McGraw-hillinternational editor,1999.
Oestereich Bernd , �Developing software with UML:object-oriented analysis and design in practice� ,addisonwesley,2002.
5
คะแนน 100 คะแนนMidterm 35Final 35Project 20Class 5การบาน 5
วนสอบMidterm องคาร 21 ธ.ค. 12.00 - 15.00Final Th 24 Feb 15.30 - 18.30
6
บทท 1 บทนา1.1 ความหมายของ object1.2 แนวคดหลกเชงวตถ1.3 การจดการกบระบบทซบซอน1.4 เปรยบเทยบ Functional decomposition
Data Flow Information Modeling
7
1.1 ความหมายของ คลาส และ วตถ (definitions of class and object)
คาวา เชงวตถ (Object-oriented) เปนแนวคดของออปเจค ออปเจคเปนอะไรกไดเปนไดทงรปธรรมและนามธรรม
ออปเจคตองประกอบดวยคณสมบต (attribute)และพฤตกรรม (behavior)
8
พฤตกรรม สนใจวาทาเชนนแลวไดผลเชนนนไมสนใจกลไกภายใน
คณสมบต เชน ส รปราง ซงคณสมบตนมมมองของแตละระบบ จะไมเหมอนกน
เชน พนกงานระบบบคคลระบบการฝกอบรม(training)
คณสมบตของพนกงานจาก ทง 2 ระบบจะตางกนไมเหมอนกน
9
ตวอยางออปเจค ของบญชธนาคารคณสมบต : เลขบญช
ชอลกคาทอางองไดยอดคงเหลอวงเงนยอดเครดต
พฤตกรรม : เปดบญชฝากถอนปดบญชถามยอดคงเหลอ
10
หากชนสวนนมอยแลวในคลงโปรแกรม และมพฤตกรรมทตรงกบทเราตองการ
นามาประกอบเปนชนงานของเรา ไมตองสนใจกลไกภายในวาทางานอยางไรแตตองรวาแตละชนสวนมความสมพนธกนอยางไร
ระบบงาน ประกอบดวยชนสวนหรองานอะไรบาง แตละชนสวนหรองานนมสวนยอยๆ ประกอบดวยอะไรบาง
สรปวา เวลาทางานเราจะเรมจากทมอยแลวสรางสวนทไมมเพมเขามา
หากไมมชนสวนนกสรางชนใหม แลวนามาไวในคลงโปรแกรม
11
wording problem domain คอ ขอบเขตของปญหาทตองการแกไขsystem�s responsibilityคอการจดสงทสมพนธกนไวดวยกน
12
1.2 แนวคดหลกเชงวตถ (object-oriented concepts)มหลกการคดดงน- การแปลงเปนนามธรรม (abstraction)
เปนการลอมกรอบความคดในการมองสงใดสงหนง เพอเนนเฉพาะสวนทเกยวของกบปญหาทเราจะแก ตดสวนทไมเกยวของออกไปเปนการลดความซบซอนได
13
- การหอหม (encapsulation) การหอหมออปเจค คอ มองเหนเฉพาะพฤตกรรมท
ตองการใหเหน ทาไดเฉพาะการดาเนนงานทใหทา นอกนนเปลยนแปลงหรอเขาถงไมได- ขอความปฏบตการ (message)
การตดตอระหวางออปเจคออปเจคหนงสงไปยงอกออปเจคหนงเพอใหออปเจคนนทางานตามทตองการ
14
- การจาแนกชน (classification) ในระบบมหลาย ๆ ออปเจค เราจะนาคณสมบตและ
พฤตกรรมทเหมอนกนมา กรปใหอยในคลาสเดยวกน ในคลาสนนๆ มคณสมบตรวมกน
superclass / subclassบางทเรยกวา generalization / specialization
15
-การถายทอด(inheritance) เปนการรบมรดกซง Subclass จะรบจาก Superclassนนคอ subclass เหมอน (คอไดรบการถายทอดมา)subclass + คณสมบตพเศษ
ความสมพนธระหวาง Subclass กบ Superclass คอ ISA
16
ลกษณะความสมพนธการถายทอด- การถายทอดบางสวน (partial inheritance) (=LIKE)
บางสวนทงคณสมบตและพฤตกรรม-การถายทอดทงหมด (full inheritance)
ถายทอดหมดทงคณสมบตและพฤตกรรม-การถายทอดแบบไมสมบรณ (incomplete inheritance)
บางสวนเฉพาะพฤตกรรม คณสมบตถายทอดหมดในหนงสอเลมนเราจะศกษาการถายทอดทงหมด
17
การถายทอดแบงเปน- การถายทอดทางเดยว (single inheritance) ลกษณะคอ Subclass หนงมไดเพยง Superclass เดยว-การถายทอดหลายทาง (multiple inheritance)
Subclass หนงมไดมากกวาหนง Superclass
18
- การนากลบมาใชไดอก (reuse) เนองจากเราออกแบบทกอยางเปนคลาส
และเกบไวในคลงโปรแกรม เมอมระบบใหมจะใช กนาทมอยแลวในคลงมาใช
19
1.3 การวเคราะหระบบทซบซอน (principles for managing complexity)การวเคราะหระบบ เนองจากระบบมความซบซอน
เรามวธการทจะจดการกบสงทซบชอนดงน
20
(1) การแปลงเปนนามธรรมซงแบงเปน 2 สวน- การแปลงโฟรซเยอรเปนนามธรรม
(procedure abstraction) คอการดาเนนงานใด ๆ กตามทผใชมองเหนวามผลกระทบทางเดยว(single effect)คอทางานไดอยางเดยว
แมวาโฟรซเยอรนน จะประกอบดวยกรหสคาสงหรอกโปรแกรมยอยกตาม
21
-การแปลงขอมลเปนนามธรรม (data abstraction) คอ การกาหนดขอมลพรอมกบการดาเนนงานททาบนขอมล การทางานบนขอมลตองผานการดาเนนงานทเรากาหนดเทานนหามใชการดาเนนงานอน
22
(2) การหอหม เปนเหมอนกลองดาททกอยางถกหอหมไวภายใน การตดตอ รแควาเราสงอะไรเขาไปแลวจะไดอะไรออกมา
(3) การถายทอดเปนการถายทอดจากซปเปอรคลาสไปหาซบคลาส เปนเทคนคทเราสามารถระบในการวเคราะหไดวาsuperclass กบ subclassมสวนเหมอนกนอยาไร มตรงไหนทเหมอนกนระหวางหลาย ๆ คลาสระบไดในการวเคราะหของเรา
23
(4) การมสวนรวม (association)เปนการเชอมตอแนวคด เปนการเชอมตอระหวาง 2 สง และ 2 สงน
เชอมตอกนไดอยางไร(5) การตดตอดวยขอความ (communication with message)
ออปเจคหนงจะตดตอกบอกออปเจคหนงตองเปนการสงขอความเทานน จะตดตอโดยวธอนไมได เปนการกาหนดการตดตอระหวางกน
24
(6) วธการในการจดระเบยบ (method of organization )เปนวธการทเราจะจดสงตางๆ จะทาอยางม 3 วธ
6.1 ออปเจคและคณสมบต เปนการจดระหวางออปเจคกบคณสมบตวา สมพนธ
กนอยางไร เปนการหาความตางของสงทเหมอนกนโดยใชคณสมบต เชน ปากกาทเปนประเภทเดยวกนแตคนละส เราจงไดปากกาสแดง ปากกาสนาเงน เปนตน6.2 สวนประกอบ ( whole and part) เปนการหาสวนประกอบของของนนๆ
25
6.3 ความแตกตางระหวางคลาสเวลาดคลาส เราจะดสมาชก แลวหาความแตกตางของคลาสตางๆ สมมตมหลายๆออปเจค เราจะจดจาแนกออปเจค เหลานน ออกเปนกกลมโดยดจากคณสมบตและพฤตกรรม เชน ปากกาเขยนแผนใส ปากกาหมกซม ปากกาเขยนไวทบอรด เปนตน
26
(7) สเกล (scale)เปนการประยกตสวนประกอบเขาไป
ชวยทาใหเราเหน ออปเจคใหญขนซบซอนขน
27
(8) การจาแนกโดยพฤตกรรม (categories of behavior)เรามวธการจดพฤตกรรมวาเหมอนหรอตางกนอยางไรม 3 วธ8.1 สาเหตของการเกดพฤตกรรมมอะไรมากระตนใหเกดพฤตกรรมนน
8.2 ประวตของพฤตกรรมนนเปนมาอยางไร มรปแบบ (pattern) ทเหมอนกนหรอไม8.3 พฤตกรรมทงสอง มฟงกชนเหมอนกนหรอไม
28
1.4 วธการวเคราะห (analysis method)เปรยบเทยบวธการวเคราะหในแนวทางดงน
- functional decomposition- data flow approach- information modeling- object-oriented
29
เราจะศกษาวา functional decomposition เปนอยางไรมขอดขอเสยอยางไรdata flow diagram เปนอยางไร มขอดขอเสยอยางไรinformation modeling เปนอยางไร มขอดขอเสยอยางไรแลววธการเชงวตถนาขอดของวธการตางๆ มารวมกน
30
Functional decomposition= ฟงกชน + ฟงกชนยอย + การตดตอระหวางฟงกชนอธบายเปนการแบงระบบออกเปนฟงกชน จากฟงกชนแบงเปนฟงกชนยอยระหวางฟงกชนหรอฟงกชนยอยอาจมการตดตอกน
31
วธการนมองปญหา หรอโดเมนของปญหาเปนฟงกชน โดยดวาระบบเราตองการ กระบวนการอะไร
และการตดตอกนทาอยางไรขอเสย - ฟงกชนทเราวเคราะหอาจไมตรงตามทผใชตองการ- หากความตองการ ของผใชเปลยน ฟงกชนหรอฟงกชนยอยกตองเปลยนตาม
จะเหนวาวธการนมพนฐานอยบนสงทเปลยนแปลงเรว ทาใหนกวเคราะหตองเปลยนแปลงรปแบบเรอยๆ เพอใหตรงกบสงทผใชตองการ
32
data flow = การไหลของขอมล (data (& control ) flow)+ data ( & control ) transformation+ การเกบขอมล (data store)+ termination+ process spec.+ data dictionary
33
data flow diagram ใชสญลกษณวงกลม เรยก bubble แทนกระบวนการตางๆ - ขอมลมการไหลอยางไร - มการจดเกบขอมลทไหน - terminate คอจบทไหน - process spec เปนอยางไร (กระบวนการนทาอะไรบาง)- data dictionary ในระบบม field อะไรบาง แตละ field มชนดขอมลเปนอะไร มขนาดเทาไร
34
data flow มหลายระดบ แลวแตวาตองการดละเอยดแคไหน การดเปนระดบ จงเปนระดบของการแปลงเปนนามธรรม (level of abstraction)
เมอมระบบ เรากหาความตองการโดยอาจคยกบผใช
แลวเราจะเลอกวาอะไรควรเปน bubble
การเลอก bubble
35
- bubble แรก คอ bubble ทรบเหตการณทกระตนใหระบบเกด ซงอาจมหลายเหตการณ กมหลาย bubble เพอรบเหตการณตางๆ
- จากนนดวาขอมลอะไรไหล เขาสระบบ และไดขอมล อะไรออกไป
- แลวมอาจการเพมการจดเกบขอมล หากขอมลนนมการนาไปใชหรอถกตองการ
36
เมอเปนระดบลางๆ เชน ระดบ 2 ระดบ 3 กจะประยกต functional decomposition เขาไป วา bubble น จะมฟงกชนหรอฟงกชนยอยอะไรบาง ขอเสย - หากในระดบท 1 มเหตการณมาก bubble จะมาก&ยงยาก- ไมมวธทจะกร ป bubble ตาง ๆ ใหอยในกลมเดยวกน ซงการรวมอาจจะไมถกตองกได- ไมไดบอกวาการจดเกบนนมโครงสรางขอมลเปนอยางไร
37
-ไมเหมาะกบระบบททาเฉพาะ แกไขขอมล (update) คนคน ( retrieve) เพราะวาแทบจะไมม bubble ใดเลยนอกจาก update retrieve bubble และบอกรายละเอยดอะไรไมได
- จาก data flow เมอเขาสการออกแบบหรอ structure chart ไมมวธการไหนทจะ map ไปไดตองเรมการออกแบบใหม
38
information modeling= ออปเจค หรอ เอนทต+ คณสมบต+ ความสมพนธ+ ชนดซปเปอร/ชนดยอย(supertype/subtype)+ ความสมพนธของออปเจค (associative object)
เอนทตประกอบดวยคณสมบต อะไรบาง
?
E-R diagram เปน information modeling แบบหนง
39
1
1
1MWORKER WORK PROJECT
USES
MACHINE
รป associative object
40
อธบาย คาวา associative objectปกตความสมพนธเกดจากความสมพนธระหวางเอนทตกบเอนทต
แตหากเปน associative object หมายถงความสมพนธทเกดจากเอนทต กบความสมพนธ หรอ ความสมพนธ กบความสมพนธ
41
จากตวอยาง คนงานหลายๆ คน ทางานใน 1 โครงงาน และการทางาน(work) นน จะใชเครองมอ 1 ชดและความสมพนธ USES จะเกดไมได ถาความสมพนธ WORK ไมเกดขนกอนเรารวมเอนทตและความสมพนธ และตงชอใหเปนความสมพนธของออปเจค ชอ WORKแลวความสมพนธของออปเจค นจงมความสมพนธ USES กบเครองมอ
42
- ไมมการดาเนนงานตางๆ เนองจาก ใน E-R diagramมแตเอนทตและความสมพนธของเอนทต- การตดตอระหวางเอนทตไมม เนองจากไมมการดาเนนงานเราไมมการกาหนดขอความเลย- ไมมการถายทอด คอใน E-R diagram ความสมพนธระหวาง Superclass/subclassคอ ISA แตไมไดบงบอกวามการถายทอด จะนามาแค key ลกษณะอนๆ ไมไดระบชดเจนวามการถายทอดอยางไร
ขอเสยของ information modeling
43
การถายทอด ใน E-R diagram
แปลงเปนตาราง ไดดงนตาราง A ประกอบดวย 3 คอลมน R S T ม R เปน keyตาราง B ได 3 คอลมน R U Vตาราง C ได 3 คอลมน R X Y
A R , S , T
B U , V C X , Y
ISA
44
เชงวตถ = คลาสและออปเจค+ การถายทอด+ การตดตอดวยขอความ
Attribute and exclusive operationCommunication with messageGeneralization Specialization
attributeinstance connectiongeneralization specializationwhole & partE-R
OOPL
OOA
semantic
Inheritance
45
ในการวเคราะหเชงวตถ (OOA) เปนการ merge ระหวาง information modeling กบ OOPLนนคอเปนการนาสงทดของแตละสวนมา
46
สงทดใน E-R-คณสมบต-การตดตอระหวางออปเจค ออปเจคสมพนธกนอยางไร ตดตอกนอยางไร-เจนเนอรรลเซชน/สเปเชยลไรซเชชน คอ ความสมพนธ ISA ใน E-R diagram- สวนประกอบ เปนความสมพนธทออปเจคตางๆ ประกอบดวยออปเจคอะไรบาง
47
จาก OOPL- คณสบบตและการดาเนนงาน ใน OOPL เวลาออกแบบ ออปเจคเราตองกาหนดวาออปเจคนนมคณสมบตและการดาเนนงานอะไรบาง เพราะวาออปเจค กคอ การแปลงเปนนามธรรมอยางหนง- การตดตอระหวางออปเจค - มลกษณะของ Generalization/Specialization- มการถายทอด มลกษณะเปนการถายทอดแบบภายนอก คอการถายทอดใน 3 โมเดลทกลาวมายงไมกลาวถงการถายทอดทชดเจน แตมการกลาวใน OOPL
48
จบ...บทท 1 บทนา1.1 ความหมายของ object1.2 แนวคดหลกเชงวตถ1.3 การจดการกบระบบทซบซอน1.4 เปรยบเทยบ Functional decomposition Data Flow
Information Modeling