object oriented software analysis and design
TRANSCRIPT
Object Oriented Software Analysisand Design
อาจารยสมเกยรต ชอเหมอน สาขาวชาวศวกรรมซอฟตแวร คณะวทยาศาสตรและเทคโนโลย
Object Oriented Software Analysisand Design
1) Requirements Analysis2) The Problem3) Listing Nouns and Verbs4) Identifying Things Outside The Scope of The System5) Identifying Synonyms6) Identifying Potential Classes7) Identifying Potential Attributes8) Identifying Potential Methods9) Identifying Common Characteristics10) Refining Our Design using CRC Cards11) 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
• ค าพองรปหรอพองเสยง น าไปสการซ าซอนและสบสน
SynonymsNouns :-.. world ranking professional=professional runner.. fund-raising amateur=amateur runner.. runner=competitorNote 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
• การวเคราะหและออกแบบเชงวตถเปนการวเคราะหทงระบบและความตองการ จากการจดเกบรวบรวม เพอใหสามารถวเคราะหและออกแบบไดจ าเปนตองใชประสบการณและเครองมอเขามาชวยในการน าไปสรางในรปแบบทางซอฟตแวร
• ขอความทไดจากการรวบรวมความตองการ ท าใหเราทราบถงสวนประกอบทางดานซอฟตแวร ซงวตถตางๆ เชอมโยงกนตามแนวคดเชงวตถ