Giáo án - Bài giảng: Công nghệ thông tin: Phân tích thiết kế hướng đối tượng với uml trong lập trình

159 751 0
Giáo án - Bài giảng: Công nghệ thông tin: Phân tích thiết kế hướng đối tượng với uml trong lập trình

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 t r × n h ® é ® µ o t ¹ o cc GIÁO TRÌNH PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG VỚI UML 2 MỤC LỤC  TRANG 01. L  3 02.  4 03.  5 04.  9 05. Bài 1  11 06. Bài 2  19 07. Bài 3  69 08. Bài 4  80 09. Bài 5  94 10. Bài 6  109 11. Bài 7  116 12. Bài 8  132 13.  170 14.  158 15.  160 15.  162 3 BÀI 1 Tên bài : TỔNG QUAN VỀ OOAD VÀ UMLbài : ITPRG3_16.1 Giới thiệu :  t  Mục tiêu thực hiện:  -  -  -  -  -  Nội dung chính: I. Giới thiệu về OOAD và UML 1. Phân tíchthiết kế hướng đối tượng Hướng đối tượng là thut ng thông dng hin thi ca ngành công nghip phn mm. Các ng và tích hp công ngh mi này vào các ng dng ca h. Tht s n các ng dng hin th ng có  Li tip cng là mt l v theo li ánh x các thành phn trong i thc. Vi li tip cn này, chúng ta chia ng dng thành các thành phn nh, gc lp v xây dng ng dng bng cách chi v ng các mu gu tiên là to hay mua mt vài loi mu g n, t o nên các khi xây dn ca mình. Mi xây dn có th chp ráp chúng li v t y mng mt s i n trong th gii máy tính, bn có th chp chúng li v to ng dng ca mình. Xin ly mt ví d n: v rút tin mt tu gn   s là ánh x ci thng dng s c s c nhn di  pháp phân tích và thit k ng thc hin theo các thut ng và khái nim ca phc ng dng (tc là ca doanh nghi mà h thn phc v), nên nó to s tip cng gia h thng và v thc ngoài i. Trong ví d bán xe ô tô, mn phân tích thit k và thc hiu xoay quanh các khái nim n phn mng thi 4 là quá trình cng tác ci dùng, nhà phân tích, nhà thit k, nhà phát trin, c, chuyên gia k thut, nên li tip cn này khin cho vic giao tip gia h vc d  Mt trong nhm quan trng bc nht ct k ng  ng là tính tái s dng: bn có th to các thành ph  ng) mt ln và dùng chúng nhiu lc bn có th tái s dng các khi xây dng (hay bn sao ca nó ) trong mt ngôi nhà , m, b tái s dng các thành phn trong các thit k  ca mt h thng k toán, h thng kim kê, hoc mt h tht hàng. c th nghim k càng trong l s dng có tác dng gim thiu lc b thit k và phát trin phn mm. ng giúp chúng ta x lý các v phc tp trong phát trin phn mm và to ra các th h phn mm có kh ng và bn chc. 2. Ngôn ngữ mô hình hóa thống nhất (Unifield Modeling Language – UML) Ngôn ng mô hình hóa thng nht (Unifield Modeling Language  UML) là mt ngôn ng  biu ding vi ch   Mô hình hoá các h thng s dng các khái ning.  Thit lp mt kt ni t nhn thc cn các s kin cn mô hình hoá.  Gii quyt v v m tha k trong các h thng phc tp, có nhiu ràng buc khác nhau.  To mt ngôn ng mô hình hoá có th s dc bi và máy. II. Các quá trình OOAD 1. Phân tích hướng đối tượng (Object Oriented Analysis - OOA): an phát trin mt mô hình chính xác và súc tích ca v, có thành phi ng và khái nii thc, d hii vi s dng. n OOA, v c trình bày bng các thut ng ng vng có th thng cn phi không chuyên Tin hc có th d dàng hic. Da trên mt v có sn, nhà phân tích cn ánh x ng hay thc th có th t k  tc bn thit k gn cn vi tình hung thc. Mô hình thit k s cha các thc th trong mt v có thc và gi nguyên các mu hình v cu trúc, quan h    a chúng. Nói mt cách khác, s dng 5 ng chúng ta có th mô hình hóa các thc th thuc mt v có thc mà vn gi c cu trúc, quan h a chúng. i vi ví d mn OOA s nhn bic các thc th   Khách hàng  i bán hàng  Phit hàng  Phi  Xe ô tô  ging trên là:  i bán hàng dy xe.  Khách hàng chn mt chic xe  Khách hàng vit phit xe  Khách hàng tr tin xe  n cho khách hàng i vi ví d n OOA s nhn bic các thc th   Loi tài khon: ATM (rút tin t ng), Savings (tit kim), Current (bình   Khách hàng  Nhân viên  Phòng máy tính.  ging trên: Mt khách hàng mi m mt tài khon tit kim Chuyn tin t tài khon tit kim sang tài kho Chuyn tin t tài khon tit kim sang tài khon ATM Xin chú ý là  n c hai khía cnh: thông tin và cách hong ca h thng (tc là nhng gì có th xy ra vi nh Li phân tích bng kiu ánh x i th  tht s m ln ca ng. 2. Thiết kế hướng đối tượng (Object Oriented Design - OOD): 6 n t chp hng cng tác, mng trong c th ca mt lp. Các lp là thành viên ca mt cây cu trúc vi mi quan h tha k. Mn OOD là to thit k da trên kt qu cn OOA, da trên nhnh phi chng yêu cu v ng, nhng yêu cu v kh  thc thi, OOD tp trung vào vic ci thin kt qu ca OOA, tc cung cp trong khi vm bo tho mãn tt c các yêu cc xác lp. n OOD, nhà thit k  tc (operations), thuc tính i quan h ca mt hay nhiu lp (class) và quynh chúng cn phi u chnh sao cho phù hp vng phát tri thit k ngân hàng d liu và áp dng các k thut tiêu chun hóa. V cun OOD, nhà thit k t lot các bi (diagram) khác nhau. Các bi này có th ng. Các bi u th các lng, trong khi bi ng biu th a các lc ho ng chính xác ca chúng. Các l      c nhóm thành các gói (Packages) t thành phn nh a ng dng. 3. Lập trình hướng đối tượng (Object Oriented Programming - OOP): n xây dng phn mm có th c thc hin s dng k thut li c thc hin thit k ng qua vic s dng mt ngôn ng lp trình có h tr ng. Mt vài ngôn ng ng c nhc ti là C++ và Java. Kt qu chung cuc cn này là mt lot các code chc, nó ch  di qua nhiu vòng quay ca nhic th nghim khác nhau. III. Tiến trình Objectory Chu trình ca mt phn mm có th   Nghiên c (Preliminary Investigation hay còn gi là Feasibility Study)  Phân tích yêu cu (Analysis)  Thit k h thng (Design of the System)  Xây dng phn mm (Software Construction)  Th nghim h thng (System Testing)  Thc hin, trin khai (System Implementation)  Bo trì, nâng cp (System Maintenance) a - Nghiên cứu sơ bộ: 7 Câu hi quan trng nht khi phát trin mt h thng hoàn toàn không phi câu hi mang tính ng phi câu hi v k thut. Nó là mt câu h có v c bit khó tr lt h th thc hin n là chính câu hi này trong thc t ng chng h t ra và li c tr li. Mc dù vic lm ln v nh sai lm v k thu dn ti tht bng thì d án có th c cu vãn n tài nguyên cùng s c gng quên mình ca các nhân viên tài gi chng mt ai và mu gì cu vãn cho mt h thng phn mm hoàn toàn chc cn ti hoc c gng t ng hóa mt quy trình lm lc. c khi bt tay vào mt d án, bn phi có m vi vic nm bt các yêu cu và xut hin khu. Nó hoàn tt mt phát biu: "H thng mà chúng ta mong mun s c nhng vit giai n này, chúng ta to nên mt bc tranh v t nhiu gi thuyt s c công nhn hay loi b. Các hong trong thng bao gm thu thng, nhn bit ri ro, nhn bit các giao din bên ngoài, nhn bit các các ch thng cn cung cp, và có th to mt vài nguyên m ng các khái nim ca h thng có th n t nhiu ngun khác nhau: khách hàng,  vc, các nhà phát trin khác, chuyên gia v k ngh, các bn nghiên cu tính kh  vic xem xét các h thn ti. Mt khía cnh cn nhc ti là code vit trong thi k ng s b "b c vit nhm mm tra hay tr giúp các gi thuyt khác nhau, ch i th c vit theo kt qu phân tích và thit k th an nghiên c, nhóm phát trin h thng cn xem xét các yêu cu ca doanh nghip (cn dùng h thng), nhng ngun tài nguyên có th s dng, công ngh  ng ca h i vi h thng mi. Có th thc hin tho lun, nghiên cu, xem xét khía ci, phân tích kh i-l, phân tích các ng hp s dng và to các nguyên m xây dng nên mt khái nim cho h th cùng vi các mm vi ca nó. n hành to mt phiên bn thô ca lch trình và k hoch s dng tài nguyên. Mt n nghiên c  lp nên tp hp các yêu cu (dù  m khái i vi mt h thng kh c mong mun, k c v n k thut ln xã hi. Mn nghiên c c thc hin tho  dn ti các h thc mong mut tin, bt kh m lc  nhng h thng thc hoàn tt hay s dng. 8 Kt qu cn nghiên c là Báo Cáo Kt Qu Nghiên Cu Tính Kh Thi. Khi h thc chp nhn da trên bn Phân tích bu. b- Phân tích yêu cầu  tính kh thi ca h tho lp mt b ca d c coi là quan trng nht trong các công vic lp trình: hiu h thng cn xây di thc hin công vic này là nhà phân tích. Quá trình phân tích nhìn chung là h qu ca vic tr li câu hi "H thng cn phi làm gì?". Quá trình phân tích bao gm vic nghiên cu chi tit h thng doanh nghip hin thi, tìm cho ra nguyên lý hong ca nó và nhng v trí có th c nâng cao, ci thin. Bên cnh c nghiên cu xem xét các ch thng cn cung cp và các mi quan h ci phía ngoài h thng. Trong toàn b n này, nhà i dùng cn cng tác mt thit v nh các yêu ci vi h thng, ti cn ph thng. Nhng mc tiêu c th cn phân tích là:  nh h thng cn phi làm gì.  Nghiên cu tht c các chn cung cp và nhng yu t liên quan  Xây dng mt mô hình nêu bt bn cht v t m ng nhìn có thc i sng thc).   v nhn s   Kt qu c  n phân tích là b c T Yêu Cu (Requirements Specifications). c - Thiết kế hệ thống n phân tích, khi các yêu cu c th i vi h thn tip theo là thit k cho các yêu cu mi. Công tác thit k xoay quanh câu hi chính: H th tha mãn các yêu cc T Yêu Cu? Mt s các công vic thc hin thit k:  Nhn bit form nhp liu tùy theo các thành phn d liu cn nhp.  Nhn bit reports và nhng output mà h thng mi phi sn sinh  Thit k forms (v trên giy hay máy tính, s dng công c thit k)  Nhn bit các thành phn d liu và b to database 9  c tính các th tc gii thích quá trình x lý t n output. Kt qu n thit k c T Thit K (Design Specifications). Bc T Thit K Chi Tit s c chuyn sang cho các l thc hin xây dng phn mm. d - Xây dựng phần mềm n vit lnh (code) thc s, to h thng. Ti vit code thc hin nhng yêu cc nhà thit k nh si vit code chu trách nhim vit tài lii thích th tc (procedure) mà anh ta tc vit  nào và lý do cho vic này.  m bc vit nên phi tho mãn mi yêu cc trong bn c T Thit K Chi Tii ving thi phi tin hành th nghim phn a mình. Phn th nghim n này có th c chính: Thử nghiệm đơn vị: i vit code chy th các pha mình vi d liu gi (test/dummy data). Vic thc hin theo mt k hoch thi vit code son ra. Mc n th ng kt qu i. n th nghi nhic gi là "Th hp trng" (White Box Testing) Thử nghiệm đơn vị độc lập: Công vic này do mt thành viên khác trong nhóm trách. Cn chi không có liên quan trc tin vic vit code c n th nghi m bo tính c lc th c thc hin da trên k hoch th i vit code son nên. e- Thử nghiệm hệ thống Sau khi các th tc th nghim riêng, cn phi th nghim toàn b h thng. Mi th tc tích hp và chy th, kim tra xem mi chi tic T Yêu Cu và nhng mong ch cc tho mãn. D liu th cc chn lc bit, kt qu c phát hin mi lch lc so vi mong ch. f - Thực hiện, triển khai  n này, h thng va phát trin s c tri i dùng.  i dùng tht s bt tay vào s dng h thng, nhóm các nhà phát trin cn to các file d liu cn thin luy m bo h thc s dng hu hiu nht. g - Bảo trì, nâng cấp 10 Tùy theo các bing s dng, h thng có th tr nên li thi hay cn phi c si nâng c s dng có hiu qu. Hong bo trì h thng có th rt khác bit tùy theo m si và nâng cp cn thit. Sơ đồ tổng quát các giai đoạn của Chu Trình Phát Triển Phần Mềm: Hình 1.3:  tn ca Chu Trình Phát Trin Phn Mm Câu hỏi và bài tập 1. Hỏi: Mt s tp hp d liu phc tp nh   c trình bày b  th s truyn tn c nhii các d liu thô? 2. Hỏi: Mô hình giúp chúng ta t chc, trình bày trc quan, thu hiu và to nên các h thng phc tp. 3. Hỏim ln nht cng là tính tái s dng (Reusable)? Bài tập thực hành :  160 [...]... thay đổi trong cả hai phương diện: Phạm vi vấn đề và hạ tầng cơ sở Giai đoạn thiết kế sẽ đưa ra kết quả là bản đặc tả chi tiết cho giai đoạn xây dựng hệ thống 16 1. 4- Giai đoạn xây dựng: Trong giai đoạn xây dựng (giai đoạn lập trình) , các lớp của giai đoạn thiết kế sẽ được biến thành những dòng code cụ thể trong một ngôn ngữ lập trình hướng đối tượng cụ thể (không nên dùng một ngôn ngữ lập trình hướng. .. theo dạng một biểu đồ đối tượng, nơi một loạt các đối tượng được chỉ ra cùng với mối quan hệ giữa chúng với nhau (sử dụng những ký hiệu như trong biểu đồ lớp/ biểu đồ đối tượng) Các mũi tên được vẽ giữa các đối tượng để chỉ ra dòng chảy thông điệp giữa các đối tượng Các thông điệp thường được đính kèm theo các nhãn (label), một trong những chức năng của nhãn là chỉ ra thứ tự mà các thông điệp được gửi... sẽ được phân bố ra sao trong cấu trúc vật lý - Nói một cách khác là nó có thể nằm trong máy tính nào) Ngoài các hướng nhìn kể trên, ngành công nghiệp phần mềm còn sử dụng cả các hướng nhìn khác, ví dụ hướng nhìn tĩnh-động, hướng nhìn logic-vật lý, quy trình nghiệp vụ (workflow) và các hướng nhìn khác UML không yêu cầu chúng ta phải sử dụng các hướng nhìn này, nhưng đây cũng chính là những hướng nhìn... miêu tả trong một loạt các hướng nhìn khác nhau, mỗi hướng nhìn sẽ thể hiện một bức ảnh ánh xạ của toàn bộ hệ thống và chỉ ra một khía cạnh riêng của hệ thống Hình 2. 1- Các View trong UML Mỗi một hướng nhìn được miêu tả trong một loạt các biểu đồ, chứa đựng các thông tin nêu bật khía cạnh đặc biệt đó của hệ thống Trong thực tế khi phân tíchthiết kế rất dễ xảy ra sự trùng lặp thông tin, cho nên một... miêu tả chi tiết hơn trong chương sau (Mô hình động) Hình 2. 5- Một ví dụ về biểu đồ trạng thái 2. 5- Biểu đồ trình tự (Sequence Diagram): Một biểu đồ trình tự chỉ ra một cộng tác động giữa một loạt các đối tượng (xem hình 3.6) Khía cạnh quan trọng của biểu đồ này là chỉ ra trình tự các thông điệp (message) được gửi giữa các đối tượng Nó cũng chỉ ra trình tự tương tác giữa các đối tượng, điều sẽ xảy ra... thống  Tạo một khuôn mẫu hướng dẫn nhà phát triển trong suốt quá trình xây dựng hệ thống  Ghi lại các quyết định của nhà phát triển để sử dụng sau này 2- Trước khi UML ra đời: Đầu những năm 1980, ngành công nghệ phần mềm chỉ có duy nhất một ngôn ngữ hướng đối tượng là Simula Sang nửa sau của thập kỷ 1980, các ngôn ngữ hướng đối tượng như Smalltalk và C++ xuất hiện Cùng với chúng, nảy sinh nhu cầu... độ phần mềm cao UML có thể được sử dụng làm công cụ giao tiếp giữa người dùng, nhà phân tích, nhà thiết kế và nhà phát triển phần mềm Trong quá trình phát triển có nhiều công ty đã hỗ trợ và khuyến khích phát triển UML có thể kể tới như: Hewlett Packard, Microsoft, Oracle, IBM, Unisys 4- UML (Unifield Modeling Language): Ngôn ngữ mô hình hóa thống nhất (Unifield Modeling Language – UML) là một ngôn... tĩnh của các lớp trong hệ thống (nhìn hình 3.3) Các lớp là đại diện cho các “vật” được xử lý trong hệ thống Các lớp có thể quan hệ với nhau trong nhiều dạng thức: liên kết (associated - được nối kết với nhau), phụ thuộc (dependent - một lớp này phụ thuộc vào lớp khác), chuyên biệt hóa (specialized - một lớp này là một kết quả chuyên biệt hóa của lớp khác), hay đóng gói ( packaged - hợp với nhau thành... được miêu tả chi tiết trong chương sau Hình 2.3 - Biểu đồ lớp cho một giao dịch Tài chính 22 4. 3- Biểu đồ đối tượng (Object Diagram): Một biểu đồ đối tượng là một phiên bản của biểu đồ lớp và thường cũng sử dụng các ký hiệu như biểu đồ lớp Sự khác biệt giữa hai loại biểu đồ này nằm ở chỗ biểu đồ đối tượng chỉ ra một loạt các đối tượng thực thể của lớp, thay vì các lớp Một biểu đồ đối tượng vì vậy là một... hình vẽ miêu tả nội dung trong một hướng nhìn UML có tất cả 9 loại biểu đồ khác nhau được sử dụng trong những sự kết hợp khác nhau để cung cấp tất cả các hướng nhìn của một hệ thống 17  Phần tử mô hình hóa (model element): Các khái niệm được sử dụng trong các biểu đồ được gọi là các phần tử mô hình, thể hiện các khái niệm hướng đối tượng quen thuộc Ví dụ như lớp, đối tượng, thông điệp cũng như các . phát trin UML có th k t 4- UML (Unifield Modeling Language): Ngôn ng mô hình hóa thng nht (Unifield Modeling Language  UML) là mt. dụng UML. 1- UML và các giai đoạn của chu trình phát triển phần 1.1- Giai đoạn nghiên cứu sơ bộ: ái nim Use Case  nm bt các yêu cu ci s dng). UML. Ngôn ngữ mô hình hóa thống nhất (Unifield Modeling Language – UML) Ngôn ng mô hình hóa thng nht (Unifield Modeling Language  UML) là mt ngôn ng  biu ding

Ngày đăng: 18/04/2014, 10:16

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan