Object Oriented Software Analysis and Design

18
Object Oriented Software Analysis and Design อาจารย์สมเกียรติ ช่อเหมือน สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี ([email protected])

Transcript of Object Oriented Software Analysis and Design

Page 1: Object Oriented Software Analysis and Design

Object Oriented Software Analysisand Design

อาจารยสมเกยรต ชอเหมอน สาขาวชาวศวกรรมซอฟตแวร คณะวทยาศาสตรและเทคโนโลย

([email protected])

Page 2: Object Oriented Software Analysis and 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

Page 3: Object Oriented Software Analysis and Design

Requirements Analysis

• การพฒนาโปรแกรมคอมพวเตอรใด ๆ ตองเรมตนดวยการระบความตองการ– วศวกรตองการออกแบบสะพานดวยซอฟตแวรเพอสรางแบบจ าลองสามมต

ท าใหผคนสามารถเหนภาพสะพานทสรางจรง– ผจดการอาจตองการซอฟตแวรทจะตดตามการท างานของบคคลและ

มอบหมายงานใหบคคลากรตามความสามารถในโครงการ

• เราจะได ความตองการ ทางดานซอฟตแวร• การออกแบบเชงวตถจะตอบสนองความตองการไดหรอไม?• วศวกรซอฟตแวรทมความเชยวชาญในการวเคราะหความตองการ• ความเขาใจวาสงใดคอความตองการดานซอฟตแวร

Page 4: Object Oriented Software Analysis and Design

Requirements Analysis

• 1) การสมภาษณและลกคาผใชศกยภาพของระบบทจะหาสงทพวกเขาพดเกยวกบระบบทจ าเปน

• 2) การจดเกบเอกสารผลลพธของการสนทนาเหลาน

• 3) การระบคณสมบตทส าคญของระบบทจ าเปนตองใช

• 4) การผลตการออกแบบเบองตน (และอาจเปนตนแบบของระบบ)

• 5) การประเมนแผนการเรมตนเหลานกบลกคาและผทมศกยภาพ

• 6) ท าซ าขนตอนขางตนจนกวาจะเสรจสนการออกแบบไดววฒน

Page 5: Object Oriented Software Analysis and Design

Requirements Analysis

• การวเคราะหความตองการเปนทกษะ

• แตมงเนนไปทขนตอนท 3-4 คอ รายละเอยดของระบบ

• ประสบการณ ทกษะการออกแบบเปนปจจยทส าคญ

• การผลตออกแบบทเรยบงายและมรปแบบเปนสงส าคญ หากตองการซอฟตแวรทท างานไดดและงายตอการพฒนา

• แตการออกแบบทด คอ สงทไมงายและตองใชประสบการณเปนปจจยส าคญ

Page 6: Object Oriented Software Analysis and Design

Requirements Analysis

• เราเรยนรหลกการไดมากมาย แตประสบการณ ท าใหเกดความช านาญในการวเคราะหความตองการและออกแบบทด

• พนฐานของการวเคราะหปญหา– เรมจากการก าหนดรายละเอยดของปญหา

• รายชอค านามและค ากรยา• ระบสงทอยนอกขอบเขตของระบบ• ระบสงทเกยวของกน• ระบClassทมศกยภาพ• ระบแอตทรบวตทมศกยภาพ• ระบวธการทมศกยภาพ• ระบลกษณะทวไป• การปรบแตงการออกแบบของเราใชบตร CRC• ก าหนดรายะเอยดทงหมดของคลาส

Page 7: Object Oriented Software Analysis and Design

The Problem

• การออกแบบจ าเปนตองทราบรายละเอยดทงหมด

• การวเคราะหตองมความร ความเขาใจ

Page 8: Object Oriented Software Analysis and Design

Listing Nouns and Verbs

• ขนตอนแรกในการวเคราะห คอ การระบค านามและค ากรยา– ค านามบงบอกถง

• หนวยงานหรอวตถ object• บางสวนจะclass• บางสวนเปนแอตทรบวต attribute

– ค ากรยาบงบอกถง• การกระท าทจะด าเนนการ• บางสวนเปนวธการ (Methods)

– ค านามและค ากรยาระบไวในรปแบบของเอกพจน (เชน ‘books' กลายเปน ‘book')

– ค านามและค ากรยาวลทมการใชค านาม หรอ กรยาเพยงอยางเดยวไมเพยงพอ เชน ค ากรยา 'พมพ' ไมเปนทชดเจนเปน 'พมพใบเสรจรบเงน'

Page 9: Object Oriented Software Analysis and Design

Identifying Things Outside The Scope of The System

• ระบสงทอยนอกขอบเขตของระบบ– สงส าคญในการออกแบบระบบคอ การระบปญหาทเกยวของ

– รายละเอยดบางสวนตามบรบท • ตามวตถประสงค

• สวนทเกยวของกบการออกแบบ

• ค าอธบายจากผใชระบบ อาจหมายถงงานทจะด าเนนการ

• ค าอธบายฟงกชนทจะตองด าเนนการในระบบ

– ระบสงทไมเกยวของ และก าหนดปญหาพนฐานทจะท าได

Page 10: Object Oriented Software Analysis and Design

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

Page 11: Object Oriented Software Analysis and Design

Identifying Potential Classes

• ระบวาเปน class– ค านาม

• แสดงใหเหนขอมลและการด าเนนงานควรจะไดรบการบรรจเขาดวยกน

• การระบขอมลทเกยวของ แตไมมการด าเนนงานสามารถเกบไวเปนคณลกษณะของClass

Page 12: Object Oriented Software Analysis and Design

Identifying Potential Attributes

• การระบคณลกษณะ– ค านามอน ๆ ทไมสามารถน ามาใชในการระบ class

Page 13: Object Oriented Software Analysis and Design

Identifying Potential Methods

• ค ากรยาใชระบวธการ (methods)

Page 14: Object Oriented Software Analysis and Design

Identifying Common Characteristics

• ระบลกษณะทวไป– Class ทเลอกมคณลกษณะทเกยวของและวธการ

– โครงสรางของclass ในแตละล าดบชนทเหมาะสม โดยการระบคณลกษณะทวไปและคณสมบตพเศษ

Page 15: Object Oriented Software Analysis and Design

Refining Our Design using CRC Cards

• การปรบแตงสงทออกแบบดวยการใชบตร ซอารซ– เมอระบ Class หลก แลวก าหนดคณลกษณะและวธการ

– ก าหนดประเภทขอมลและรายละเอยดตางๆ ในแผนภาพ UML

– การวเคราะหและการปรบแตงการออกแบบจงเปนกระบวนการทซบซอนมาก เพอใหเหนสงทจะท าจรง

– การออกแบบครงแรกไมสมบรณ ตองตรวจสอบการออกแบบเพอแกไขปญหาทอาจเกดขน

– การใชบตร CRC เพอตรวจสอบการท างานในสถานการณทแตกตาง

Page 16: Object Oriented Software Analysis and Design

Refining Our Design using CRC Cards

Page 17: Object Oriented Software Analysis and Design

การตรวจสอบคลาส

• เนอหาในบตร CRC

• ท าใหสามารถวาดแผนภาพ

• คลาสส าหรบการออกแบบ

• ทน าเสนอได

Page 18: Object Oriented Software Analysis and Design

Summary

• การวเคราะหและออกแบบเชงวตถเปนการวเคราะหทงระบบและความตองการ จากการจดเกบรวบรวม เพอใหสามารถวเคราะหและออกแบบไดจ าเปนตองใชประสบการณและเครองมอเขามาชวยในการน าไปสรางในรปแบบทางซอฟตแวร

• ขอความทไดจากการรวบรวมความตองการ ท าใหเราทราบถงสวนประกอบทางดานซอฟตแวร ซงวตถตางๆ เชอมโยงกนตามแนวคดเชงวตถ