Thiết kế sơ đồ chuẩn – sơ đồ CSDL

Một phần của tài liệu giáo trình ngôn ngữ hóa thống nhất uml (Trang 180 - 195)

- 17

8.3.2 Thiết kế sơ đồ chuẩn – sơ đồ CSDL

Bước này thực hiện việc chuyển đổi từ mô hình khái niệm (biểu đồ lớp trong UML)sangsơđồquảnlýdữliệuđốitượng.

Nhưchúngtađãkhẳngđịnh,sơđồCSDLchỉlưutrữnhữngđốitượngbềnvững.

1 diaChi: AddressCuaHang tenGoi: String 1 Sử-dụng 1 1 Chứa 1 MoTaMatHang maSanPham: UPC giaBan: Number addSale() DanhMucMatHang moTa: Text

HBH Sử- dụng 1 1 specificatio n() loadProdSp ecs() PhienBanHang 1 Được-mô-tả-bởi * DongBanHang soLuong: Int subtotal() hangTruong: String enterItems() endSale() makePayment() Ghi-Nhận 1 * ngayBan: Date gioBan: Time becomeComplete() makeLineItem() makePayment() 1 gồm có 1..* total() Quản-lý * 1 1 Được-trả-bởi ThanhToan tongsoTien: Number ThanhToanTM ThanhToanCheck Trả-bằng * 1 Trả-bằng 1 1 TheCredit TheCheck Hình8-3Môhìnhkháiniệm-biểuđồlớpcủahệthốngbánhàng

- 162 -

Chuyểnđổicáckiểuđốitượng

Mỗi lớpbền vữngtrongUMLphảiđượcchuyểnđổisang lớptrongODL(Object

Definition Language) thể hiện được cả hành vi trừu tượng lẫn các trạng thái trừu

tượng,nhưhình8-3.

Chúng taxétmột lớpđiển hình,lớp CuaHang để chuyển cácthuộctính của lớp đượcthiếtkế tươngứngsangthuộctínhcủalớptrongODL.

Class CuaHang

{ attribute String(30) tenGoi;

CuaHang diaChi: Address tenGoi: String

addSale()

attribute struct diaChi{

char(3) soPho, char(20) t

enPho,

char(15) tinhThanh};

void Nguoi(); // Constructor

void ~Nguoi(); // Destructor

void addSale(){…}

};

Hình8-3ĐịnhnghĩalớptrongODL

Nhữngthuộctínhphứchợpnhư diaChiđượcchuyểnthànhkiểu structnhưtrên.

Lưu ý:trong CSDL cũng cócác ràngbuộc tương với các ràngbuộc trong UML, như: UNIQUE, NOT NULL, CHECK, ASSERTION, TRIGGERtrongSQL.

Chuyểnđổicácquanhệkếthợp

Quan hệkếthợp nhịnguyên đượcchuyểnsang mốiquanhệ liên kết relationship trongODL.Chúngtahãyxétmốiquanhệkếthợpgiữacáclớpnhưhình8-4.

HBH hangTruong: String enterItems() endSale() makePayment() 1 ghiNhan banHang * PhienBanHang ngayBan: Date gioBan: Time becomeComplete() makeLineItem() makePayment() total() Class HBH {

attribute String(25) hangTruong;

attribute String(15) tenTruong;

relationship PhienBanHang ghiNhan

inverse banHang::PhienBanHang; void HBH(); - 163 - void ~HBH(); void enterItems(){…} void endSale(){…} }; Class PhienBanHang

{ attribute Date ngayBan;

attribute Time gioBan;

relationship Set<PhienBanHang> banHang

inverse ghiNhan::HBH;

void ~PhienBanHang(); Boolean becomeComplete(){…} void makeLineItem() makePayment(){…} Number total(){…} };

Hình8-4 Chuyểnđổiquanhệkếthợp

Lưu ý:khimộtđốitượngkếthợpvớinhiềuđốitượngcủalớpkhácthìmốiquanhệđó

đượccóthểđượccàiđặtbằngkiểutuyểntập:SethoặcList,Bag,Array,v.v.Trongbiểuđồ lớpởhình8-4,HBHcóquanhệkếthợp*(nhiều)vớiPhienBanHang,dovậynóđượccài đặtthànhSet<PhienBanHang>trongODL.Ngoàira,tên vaitròởmỗiđầuquanhệsẽlà tênxácđịnhtrongcácnútcủađườngduyệtcácmốiquanhệgiữacáclớp.

ODMG hỗ trợ để định nghĩa các mối quan hệ kết hợp hai chiều, song đối với nhữngquanhệmộtchiềuthìhiệuquảhơn.TrongcáchệQTCSDL,cácmốiquanhệsẽ đượccàiđặtbằng cáccontrỏ.

Nếuquanhệkếthợp cócácthuộctínhthìcóhaikhảnăng:

1. Nếubộisốtrênquanhệlà nhiều-nhiều, thìchuyểnquanhệkếthợp thànhmộtlớp mới,trongđóđịnhnghĩacácthuộctínhnhưhaiquanhệgiữahailớp.

2. Nếu bội số của quan hệ là một- nhiều, thì có thể định nghĩa thuộc tính bên

tronglớpkếthợpởđầu một.

Vídụ,lớpMonHoctựkếthợpvớichínhnóđượcđịnhnghĩatrongODLnhưsau: làmônCN 0..* MonHoc tenMH gioLT gioTH 0..1 cómônCN Class MonHoc

{ attribute String(20) tenMH;

attribute short gioLT;

attribute short gioTH;

relationship Set<MonHoc> coMonCN

inverse laMonCN::MonHoc;

relationship MonHoc laMonCN

inverse coMonCN::MonHoc;

void MonHoc();

void ~MonHoc();};

- 164 -

Hình8-5ĐịnhnghĩaquanhệtựkếthợptrongODL

Quanhệtổngquáthoávàcụthểhoá

UML hỗ trợ hầu như tất cả các quan hệ tổng quát hoá: rời nhau / giao nhau (disjoint/overlapping),đầyđủ/khôngđầyđủ (complete/incomplete).

Mô hình đối tượng ODMG không hỗ trợ tổng quát hoá mà có giao nhau. Nói chungnóhỗtrợquanhệkếthừarờinhauvàkhôngđầyđủnhưhình2-6.

ThanhToan

{disjoint,complete} ThanhToanTM

ThanhToanThe

(extent ThanhToanTM Key number) {

… };

Class ThanhToanThe extends ThanhToan (extent ThanhToanThe)

{ … };

Hình8-6ĐịnhnghĩaquanhệkếthừatrongODL

Quanhệkếttập

UMLhỗtrợhailoạiquanhệkếttập:

Kết tập tuyển tập các thành viên(member-collection aggregation)làmộtloạiđặc

biệt củaquan hệ kếthợp (association). Quanhệ nàybiểu diễn tuyển tập của cácđốitượng.

Cây kết tập (aggregation tree) là mối quan hệ kết tập giữa bộ phận và tổng thể

(part-whole aggregation). Quanhệnàythểhiệnnhư làlớp cấu trúcgồmhầu nhưlàhailớpkhácnhau.

ODL không cung cấpmột toán tửtạo lậpnào để hỗ trợtrựctiếp việcđịnh nghĩa kếttập,vàdo vậycảhailoạiquanhệ trêncó thểđượcđịnh nghĩathôngquacácthuộc tính.

1. Kết tập tuyển tập được chuyển kiểu tuyển tập, nếu các phần tử được sắp thì chuyểnthànhList,Array,Sequence,ngượclạicóthểsửdụngSet,Bag.

2. Kết tậpbộphận /tổng thểđịnhnghĩa thành lớpthànhphần nhưlà thuộctính tronglớpcấuthành. - 165 - Vídụ: PhienBanHang ngayBan: Date gioBan: Time becomeComplete() makeLineItem() makePayment() total() Class PhienBanHang

{ attribute Date ngayBan;

attribute Time gioBan;

attribute List<DongBanHang> gomCo;

BooleanbecomeComplete(){…}

void makeLineItem()

void makePayment(){…}

gomCo 1..* } ; PhienBanHang(); ~PhienBanHang(); DongBanHang soLuong: Int subtotal() Class DongBanHang

{ attribute Integer soLuong;

Number subtotal(){…}

};

Hình8-7 ĐịnhnghĩakếttậptuyểntậptrongODL

Cáckiểucấutrúcvàcáctuyểntập

Nhưchúngtađãthảoluận,kiểudữliệucócấutrúcvàcáctuyểntậplànhữngkhái niệm chính cần xâydựng trong thiết kếCSDL HĐT. Chúngcho phép địnhnghĩa các thuộctínhđatrị, cáclựclượngcủaquanhệkếthợp,kếttập,v.v.

ODMGhỗtrợcácloạituyểntậpkhácnhau:

+KiểuBag,chophéplặp, khôngđượcsắpthứtựvàsốphầntửkhônggiớihạn.

+KiểuSet,khônglặp,khôngsắpthứtự,khôngbịgiớihạnvềsốlượng.

+ Kiểu List, được sắp thứ tự, không bị giới hạn về số lượng, có thể lặp hoặc khônglặp.

+Kiểu Dictionary,các cặpphần tử(Key-value)khôngbị chặn về số lượng với điềukiệnlàKeykhôngbịlặp.

+KiểuArrayhoặcSequence,giớihạnvềsố lượngcácphầntử.

+ Kiểu cấu trúc (Struct), được sử dụng khi bạn muốn biểu diễn cho những đối tượngphứchợp,trongđómỗiphầntửcóthểcónhiềukiểukhácnhau.

Mặcdùviệccàiđặt chúnglàcóthểgiốngnhau,songcácgiátrịvàcáckiểulàcơ bản khác nhau. Một đối tượng trong CSDL là một thể hiện kết quả tính toán của đối tượngtrongthế giớithực. Cácgiátrị tựchúng khôngtồn tạiđộc lập,chúng cho phép địnhnghĩacácđốitượngcủahệthống.

Tươngtựnhư trên, chúngtathựchiện chuyển đổitấtcảcác lớp vàcácmối quan hệcủachúngvềODL.

- 166 -

Bài tậpvà câuhỏi

8.1 Những mệnh đề sau mô tả Java như là ngôn ngữ lập trình hướng đối tượng, hãy chọnnhữngcụmtừdướiđâyđểđiềnvàochỗ[(…)]chothíchhợp.

"CSDL HĐT làmột [(1)] [(2)]. Trong CSDL QH lưu trữ cácdữ liệu như [(3)] và [(4)] thì CSDL HĐT chỉ lưu giữ [(5)]. Một phần mềm cho phép tạo lập, quản lý, xử lý, huỷ bỏ các đối tượng được gọi là [(6)]. Tập các mục dữ liệu đượctậphợp lạibởihệQTCSDLHĐTđượcgọilà[(2)]".

Chọn các câu trả lời:

a. CSDLHĐT(cơsởdữliệuhướngđốitượng) b.đốitượng

c. thếhệmới d.cáckýtự e. cácgiátrịsố

f. hệQTCSDLHĐT(quảntrịcơsởdữliệuhướngđốitượng)

8.2 Những mệnh đề sau mô tả về cơ chế đọc/ghi trong CSDL hướngđối tượng, hãy chọnnhữngcụmtừdướiđâyđểđiềnvàochỗ[(…)]chothíchhợp.

"Trong [(1)],đốitượngsaukhixửlý đượclưutrữvàoCSDLbởihệQTCSDL HĐT sau [(2)] kết thúc. Những đối tượngđược lưu trữ vào CSDL gọi là[(3)], cònđốitượngkhôngđượclưuvàoCSDLgọilà[(4)]".

Chọn câu trả lời:

a.chươngtrình b.đốitượngtạmthời c. mộtCSDLHĐT d.đốitượngbềnvững

8.3 Hãychọnnhữngtừthíchhợpđểđiềnvàocácchỗtrong[(…)]chođúngvớinhững đặctínhcủaCSDLHĐT.

+ CSDLHĐTchophép xửlý[(1)]cónhiều[(2)]có thểđượcxáotrộn vàomột CSDL.

+ CSDL HĐT có thể lưu trữ[(3)] mà CSDL truyền thống (CSDL QH) không lưutrữvàquảnlýđược.

+ TrongCSDLHĐT, cácdữliệuvà[(4)]là[(5)], vàvìvậydữ liệucóthểnhận đượctừ[(4)].

+TrongCSDLHĐT,NSDkhôngcần[(6)]vềviệcđọc/ghidữliệunhưthếnào.

-167-

8.4 SửdụngObjecStorevàC++đểcàiđặttấtcảcáclớpởhình8-3(chitiếtthamkhảo http: www.odi.com .

TÀI LIỆU THAM KHẢO

[1] Booch G., Rumbaugh J. and Jacobson I., The Unified Software Development

Process,Addision–Wesley,1998

Guide,Addision–Wesley,1999

[3] SommervilleI., Software Engineering,4thEdition,AdditionWesley,1994

[4] Larman C., Applying UML and Patterrns: An Instruction to Object-Oriented

Analysis and Design,PrenticeHall,1997.

[5] Michael B., William P., Object – Oriented Modeling and Design for Database

Applications,PrenticeHall,NewJersey1998

[6] Oestereich B., Developing Software with UML, Object-Oriented Analysis and

Design in Prctice,Addision–Wesley,2000.

[7] OMG,“The OMG Unified Modeling Language Specification”, http:// www.omg.org/uml ,

1999.

[8] Quatrani T., Visual Modeling With Rational Rose and UML, Addison-Wesley,

http:// www.rational.com, 2000.

[9] LiangY.,Fromusecasestoclasses:awayofbuildingobjectmodelwithUML,

Information and Software Technology, 45 (2003) 83-93, www.elservier.com/locate/infsof.

[10] Zhiming L., Object-Oriented Software Development Using UML, UNU /IIST, Macau2001.

[11] Đặng Văn Đức, Phân tích thiết kế hướng đối tượng bằng UML (Thực hành với

Rational Rose),NXBKhoahọcvàKỹthuật,HàNội2002.

[12] ĐoànVăn Ban,Phântích, thiếtkếvàlậptrìnhhướngđối tượng,NXBThống Kê 1997.

[13] Đoàn Văn Ban, Hoàng Quang, Chuyển đổi các biểu thức đại số quan hệ thành

câu truy vấn trong mô hình dữ liệu hướng đối tượng,TạpchíKhoahọcvàCông

nghệ,Tập40-SốĐB,2002 (120-129)

[14] ĐoànVănBan,Cơsởdữliệuhướngđốitượng, giáo trình Khoa CNTT, HN 2003

- 168 -

Danhsáchthuậtngữvàcác từviếttắt

1.TừviếttắttiếngAnh

UML Unified Modeling Language

OOD ObjectOrientedDesign

API ApplicationProgrammingInterface CASE ComputerAidedSoftwareEngineering OMT ObjectModelingTechnique

OOSE Object-OrientedSoftwareEngineering OCL ObjectConstraintsLanguage

GRASP GeneralResponsibilityAssignmentSoftwarePatterrn ODMG ObjectDataManagementGroup

USPD UnifiedSoftwareDevelopmentProcess RUP RationalUnifiedProcess

UP UnifiedProcess

2.TừviếttắttiếngViệt

CNTT Côngnghệthôngtin

CSDL Cơ sởdữliệu

NSD Người sửdụng

CNPM Côngnghệphầnmềm

HBH Hệthốngbánhàng

CSDLQH Cơ sởdữliệuquanhệ

CSDLHĐT Cơ sởdữliệuhướngđốitượng QTCSDL Hệquảntrịcơsởdữliệu

3. Các thuật ngữ Việt - Anh

Hệthốngphầnmềm SoftwareSystem Tínhtiệndụng usability

Khảnăngduytrìhoạtđộng Maintainability Tínhtincậy Dependability Tínhhiệuquả Efficiency

Hệthống thôngtin InformationSystem Cáchệthốngkỹthuật TechnicalSystems

CáchệthốngnhúngthờigianthựcEmbeddedReal_timeSystems Cáchệthốngnghiệpvụ BusinessSystems

Cáchtiếphướngchứcnăng Functional-OrientedApproach Cáchtiếpcậnhướngđốitượng Object-OrientedApproach Hướngthủtục Procedure-Oriented

Chiađểtrị Devideandconquer

Cốkết Cohension

Thôngđiệp Message

Lớp Class

- 169 -

Thuộctính Attribute Dữliệuthànhphần Datamember

Phươngthức Method

Thaotác Operation

Hàmthànhphần Memberfunction Baogói Encapsulation Chegiấuthôngtin Informationhidding

Môhìnhthácnước Waterfallmodel Môhìnhxoánốc Spiralmodel

Côngnghệthếhệthứtư4GT FourthGenerationTechnology Nguyênmẫu Prototype

Vậtphẩm Artifact

Đượchướngdẫnbởicasửdụng Use-case-driven Tậptrungvàokiếntrúc Architecture-centric Quansáttheocasửdụng Usecaseview Quansátlogic Logicview Quansátthànhphần Componentview Quansáttươngtranh Concurrencyview Quansáttriểnkhai Deployementview Biểuđồcasửdụng Usecasediagram Biểuđồlớp Classdiagram Biểuđồ Objectdiagram Biểuđồtrìnhtự Sequencediagram Biểuđồcộngtác Collaborationdiagram Biểuđồthànhphần Componentdiagram Biểuđồtriểnkhai Deploymentdiagram Biểuđồhànhđộng Activitydiagram

Biểuđồtrạngthái Statediagram,Statechartdiagram

Gói Package

Luồng Thread

Tácnhân Actor

Địnhdanh Identifier (ID) Đaxạ,đahình Polymorphic Nạpchồng Overloading

Liênkết Link

Sựkếthợp Association Sựkếttập,gộplại Aggregation

Quanhệhợpthành CompositionAggregation Quanhệkếthợp Associationrelationship Quanhệkếttập Aggregationrelationship Quanhệphụthuộc Depedencyrelationship Tổngquáthóa Generalization

Kếthừa Inheritance

Kếthừađơn Singleinheritance

-170-

Kếthừabội Multipleinheritance Bộisố,bảnsố Multiplicity

Têncủavaitrò Rolename Quitắcràngbuộc Constraintrule Quitắcsuydẫn Derivationrule Lớpmẫu Templateclass Lớphiệnthực Instantiatedclass

Lớptiệních Classutility Mẫurậpkhuôn Stereotype Lớpbiên Boundaryclass Lớpthựcthể Entityclass Lớpđiềukhiển Controlclass Từđiểnthuậtngữ Glossary Tuyểntập Collection

Chỉsố Index

Siêudữliệu Metadata

-171-

MỤC LỤC

LỜINÓIĐẦU... 2

1.1Giớithiệuvềhệthốngphầnmềm... 4

1.2Môhìnhhoáhệthống... 7

1.3Cáccáchtiếpcậntrongpháttriểnphầnmềm... 9

1.3.1 Cáchtiếpcậnhướngchứcnăng...

9 1.3.2 Cáchtiếpcậnhướngđốitượng... 11

1.3.3 Ưuđiểmchínhcủaphươngpháphướngđốitượng... 13

1.4 Cácmôhìnhpháttriểnphầnmềm... 14

Câuhỏivàbàitập... 16

CHƯƠNGII:UMLVÀQUÁTRÌNHPHÁTTRIỂNPHẦNMỀM... 18

2.1TổngquátvềUML... 18

2.1.1MụcđíchcủaUML... 18

2.1.2GiớithiệutổngquátvềUML... 20

2.1.3CácphầntửcủaUML... 21

2.2CáckháiniệmcơbảncủaphươngpháphướngđốitượngtrongUML...23

2.2.1Cácđốitượng... 23

2.2.2Lớpđốitượng... 24

2.2.3Cácgiátrịvàcácthuộctínhcủađốitượng... 25

2.2.4Cácthaotácvàphươngthức... 26

2.3Cácmốiquanhệgiữacáclớp... 26

2.3.1Sựliênkếtvàkếthợpgiữacácđốitượng... 27

2.3.2Bộisố... 28

2.3.3Cácvaitròtrongquanhệ... 29

2.3.4Quanhệkếttập... 30

2.3.5Quanhệtổngquáthoá... 31

2.3.6Kếthừabội... 33

2.3.7Quanhệphụthuộc... 34

2.4Cácgói... 35

2.5Cácquitắcràngbuộcvàsuydiễn... 36

-172- 2.6Quátrìnhpháttriểnphầnmềm... 37

2.6.1Xácđịnhcácyêucầuvàphântíchhệthống...39

2.6.2Phântíchhệthốnghướngđốitượng... 41

2.6.4Lậptrìnhvàkiểmtrachươngtrình... 42

2.6.5Vậnhànhvàbảotrìhệthống... 43

2.7RationalRosevàquátrìnhpháttriểnphầnmềmthốngnhất... 44

Bàitậpvàcâuhỏi... 45

CHƯƠNGIII:BIỂUĐỒCASỬ DỤNG:PHÂNTÍCHCÁCYÊUCẦUCỦA HỆTHỐNG... 46

3.1Địnhnghĩabàitoán... 46

3.2Phântíchvàđặctảcácyêucầuhệthống... 49

3.2.1 Casửdụng... 49

3.2.2 Tácnhân... 50

3.2.3 Xácđịnhcáccasửdụngvàcáctácnhân... 51

3.2.3 Đặctảcáccasửdụng... 53

3.3 Biểuđồcasửdụng... 57

3.4 TạolậpbiểuđồcasửdụngtrongRationalRose... 60

Bàitậpvàcâuhỏi... 60

CHƯƠNGIV:PHÂNTÍCHHỆTHỐNG–MÔHÌNHKHÁINIỆM VÀBIỂUĐỒLỚP... 61

4.1Môhìnhkháiniệm–môhìnhđốitượng... 61

4.2Xácđịnh cáclớpđốitượng... 62

4.3Mốiquanhệgiữacáclớpđốitượng... 70

4.3.1Đặttênchocácquanhệkếthợp... 71

4.3.2Cácphươngphápxácđịnhcácmốiquanhệkếthợp...72

4.4Biểuđồlớp... 73

4.4.1Cácloạilớp trongbiểuđồ... 73

4.4.2Mẫurậpkhuôn(stereotype)củacáclớp... 74

4.4.3BiểuđồlớptrongHệHBH... 75

4.5Thuộctínhcủalớp... 76

4.5.1Tìmkiếmcácthuộctính... 77

4.5.2CácthuộctínhcủacáclớptrongHBH... 80

-173- 4.6Ghinhậntrongtừđiểnthuậtngữ... 81

4.7ThựchànhtrongRationalRose... 82

Một phần của tài liệu giáo trình ngôn ngữ hóa thống nhất uml (Trang 180 - 195)

Tải bản đầy đủ (DOCX)

(195 trang)
w