mở đầu cho phân tích thiết kế hệ thống hƣớng đối tƣợng. Các nội dung cơ bản cần nhớ gồm : • Có nhiều loại hệ thống thông tin khác nhau nhƣ : hệ thống thông tin quản lý, các Website, các hệ thống thƣơng mại, các hệ thống điều khiển. Mỗi loại hệ thống thông tin sẽ tƣơng ứng với một phƣơng pháp phát triển riêng. 15 • Việc phát triển các hệ thống thông tin nói chung đƣợc xem nhƣ một vòng đời với các pha : Xác định yêu cầu, đặc tả, thiết kế, cài đặt tích hợp, bảo trì và loại bỏ.
Có hai mô hình vòng đời đơn giản và hay dùng nhất là mô hình thác nƣớc và mô hình làm bản mẫu nhanh. • Phƣơng pháp phát triển phần mềm hƣớng đối tƣợng tỏ ra có nhiều ƣu điểm hơn so với phƣơng pháp hƣớng cấu trúc. Các pha đặc trƣng trong vòng đời phát triển phần mềm hƣớng đối tƣợng là phân tích hƣớng đối tƣợng, thiết kế hƣớng đối tƣợng và lập trình hƣớng đối tƣợng. • Các bƣớc phát triển phần mềm hƣớng đối tƣợng đƣợc xây dựng dựa trên các biểu đồ trong ngôn ngữ mô hình hoá thống nhất UML.
Chƣơng 2 sẽ trình bày chi tiết về UML và tập ký hiệu cho các bƣớc phát triển hệ thống. CÂU HỎI VÀ BÀI TẬP 1. Kể tên một số ví dụ cho các loại hệ thống thông tin: hệ thống thông tin quản lý, hệ thống website thƣơng mại điện tử, hệ thống điều khiển. Vì sao nói tiến trình phần mềm là sự kết hợp khía cạnh kỹ thuật và khía cạnh quản lý.
So sánh ƣu, nhƣợc điểm của phƣơng pháp phát triển phần mềm hƣớng cấu trúc và hƣớng đối tƣợng. Trình bày các khái niệm trong hƣớng đối tƣợng : lớp, đối tƣợng, gói, thành phần, kế thừa. 16 CHƢƠNG 2 UML VÀ CÔNG CỤ PHÁT TRIỂN HỆ THỐNG Giới thiệu: Chƣơng này nhằm giới thiệu về ngôn ngữ mô hình hoá thống nhất UML và công cụ phát triển phần mềm hƣớng đối tƣợng. Nội dung cụ thể bao gồm: - Giới thiệu UML - Các biểu đồ trong UML - Các bƣớc phân tích thiết kế hƣớng đối tƣợng sử dụng UML - Giới thiệu bộ công cụ Rational Rose Mục tiêu: - Trình bày đƣợc lịch sử của UML.
- Giải thích đƣợc các loại biểu đồ trong UML - Mô tả quá trình khảo sát hệ thống - Mô tả mục đích của việc phát biểu vấn đề. - Sử dụng đƣợc phần mềm RATIONAL ROSE Nội dung chính: I. GIỚI THIỆU VỀ UML 1. Lịch sử ra đời của UML Việc áp dụng rộng rãi phƣơng pháp hƣớng đối tƣợng đã đặt ra yêu cầu cần phải xây dựng một phƣơng pháp mô hình hóa để có thể sử dụng nhƣ một chuẩn chung cho những ngƣời phát triển phần mềm hƣớng đối tƣợng trên khắp thế giới.
Trong khi các ngôn ngữ hƣớng đối tƣợng ra đời khá sớm, ví dụ nhƣ Simula-67 (năm 1967), Smalltalk (đầu những năm 1980), C++, CLOS (giữa những năm 1980)…thì những phƣơng pháp luận cho phát triển hƣớng đối tƣợng lại ra đời khá muộn. Cuối những năm 80, đầu những năm 1990, một loạt các phƣơng pháp luận và ngôn ngữ mô hình hóa hƣớng đối tƣợng mới ra đời, nhƣ Booch của Grady Booch, OMT của James Rambaugh, OOSE của Ivar Jacobson, hay OOA and OOD của Coad và Yordon. Mỗi phƣơng pháp luận và ngôn ngữ trên đều có hệ thống ký hiệu riêng, phƣơng pháp xử lý riêng và công cụ hỗ trợ riêng. Chính điều này đã thúc đẩy những ngƣời tiên phong trong lĩnh vực mô hình hoá hƣớng đối tƣợng ngồi lại cùng nhau để tích hợp những điểm mạnh của mỗi phƣơng pháp và đƣa ra một mô hình thống nhất 17 chung.
Nỗ lực thống nhất đầu tiên bắt đầu khi Rumbaugh gia nhập nhóm nghiên cứu của Booch tại tập đoàn Rational năm 1994 và sau đó Jacobson cũng gia nhập nhóm này vào năm 1995. James Rumbaugh, Grady Booch và Ivar Jacobson đã cùng cố gắng xây dựng đƣợc một Ngôn Ngữ Mô Hình Hoá Thống Nhất và đặt tên là UML (Unifield Modeling Language) đầu tiên đƣợc đƣa ra năm 1997 và sau đó 1. Hiện nay chúng ta đang sử dụng UML đƣợc chuẩn hoá để trở thành phiên bản ngữ UML phiên bản 2. UML – Ngôn ngữ mô hình hoá hƣớng đối tƣợng UML (Unified Modelling Language) là ngôn ngữ mô hình hoá tổng quát đƣợc xây dựng để đặc tả, phát triển và viết tài liệu cho các khía cạnh trong phát triển phần mềm hƣớng đối tƣợng.
UML giúp ngƣời phát triển hiểu rõ và ra quyết định liên quan đến phần mềm cần xây dựng. UML bao gồm một tập các khái niệm, các ký hiệu, các biểu đồ và hƣớng dẫn. UML hỗ trợ xây dựng hệ thống hƣớng đối tƣợng dựa trên việc nắm bắt khía cạnh cấu trúc tĩnh và các hành vi động của hệ thống. Các cấu trúc tĩnh định nghĩa các kiểu đối tƣợng quan trọng của hệ thống, nhằm cài đặt và chỉ ra mối quan hệ giữa các đối tƣợng đó.
Các hành vi động (dynamic behavior) định nghĩa các hoạt động của các đối tƣợng theo thời gian và tƣơng tác giữa các đối tƣợng hƣớng tới đích. Các mục đích của ngôn ngữ mô hình hoá thống nhất UML: Mô hình hoá các hệ thống sử dụng các khái niệm hƣớng đối tƣợng. Thiết lập sự liên hệ từ nhận thức của con ngƣời đến các sự kiện cần mô hình hoá. Giải quyết vấn đề về mức độ thừa kế trong các hệ thống phức tạp với nhiều ràng buộc khác nhau.
Tạo một ngôn ngữ mô hình hoá có thể sử dụng đƣợc bởi ngƣời và máy. UML quy định một loạt các ký hiệu và quy tắc để mô hình hoá các pha trong quá trình phát triển phần mềm hƣớng đối tƣợng dƣới dạng các biểu đồ. Các khái niệm cơ bản trong UML a) Khái niệm mô hình Mô hình là một biểu diễn của sự vật hay một tập các sự vật trong một lĩnh vực áp dụng nào đó theo một cách khác. Mô hình nhằm nắm bắt các khía cạnh quan trọng của sự vật, bỏ qua các khía cạnh không quan trọng và biểu diễn theo một tập ký hiệu và quy tắc nào đó.
Các mô hình thƣờng đƣợc xây dựng sao cho có thể vẽ đƣợc thành các biểu đồ dựa trên tập ký hiệu và quy tắc đã cho. Khi xây dựng các hệ thống, mô hình đƣợc sử dụng nhằm thoả mãn các mục đích sau: Nắm bắt chính xác yêu cầu và tri thức miền mà hệ thống cần phát triển Thể hịên tƣ duy về thiết kế hệ thống Trợ giúp ra quyết định thiết kế dựa trên việc phân tích yêu cầu Tổ chức, tìm kiếm, lọc, kiểm tra và sửa đổi thông tin về các hệ thống lớn. Làm chủ đƣợc các hệ thống phức tạp Các thành phần trong một mô hình bao gồm: Ngữ nghĩa và biểu diễn: Ngữ nghĩa là nhằm đƣa ra ý nghĩa, bản chất và các tính chất của tập các ký hiệu. Biểu diễn là phƣơng pháp thể hiện mô hình theo cách sao cho có thể nhìn thấy đƣợc.
Ngữ cảnh: mô tả tổ chức bên trong, cách sử dụng mô hình trong tiến trình phần mềm … b )Các hƣớng nhìn (View) trong UML Các mô hình trong UML nhằm mục đích hỗ trợ phát triển các hệ thống phần mềm hƣớng đối tƣợng. Trong phƣơng pháp luận hƣớng đối tƣợng không có sự phân biệt rạch ròi giữa các pha hay các bƣớc. Tuy nhiên, thông thƣờng UML vẫn đƣợc chia thành một số hƣớng nhìn và nhiều loại biểu đồ. Một hƣớng nhìn trong UML là một tập con các biểu đồ UML đƣợc xây dựng để biểu diễn một khía cạnh nào đó của hệ thống.
Sự phân biệt giữa các hƣớng nhìn là rất linh hoạt. Có thể có những biểu đồ UML có mặt trong cả hai hƣớng nhìn. Các hƣớng nhìn cùng các biểu đồ tƣơng ứng đƣợc mô tả trong bảng sau: 19 Bảng 2.1: Các hƣớng nhìn trong UML c) Các phần tử mô hình và các quan hệ Một số ký hiệu để mô hình hƣớng đối tƣợng thƣờng gặp trong UML đƣợc biểu diễn trong Hình 2. Đi kèm với các phần tử mô hình này là các quan hệ.
Các quan hệ này có thể xuất hiện trong bất cứ mô hình nào của UML dƣới các dạng khác nhau (nhƣ quan hệ giữa các usecase, quan hệ trong biểu đồ lớp …) (Hình 2. 20 NewPackage NewUseCase Hình 2.2: Một số phần tử mô hình thƣờng gặp trong UML Hình 2.3: Một số dạng quan hệ trong UML Ý nghĩa của các phần tử mô hình và các quan hệ sẽ đƣợc giải thích cụ thể hơn trong các chƣơng sau. CÁC BIỂU ĐỒ UML Thành phần mô hình chính trong UML là các biểu đồ: Biểu đồ usecase biểu diễn sơ đồ chức năng của hệ thống. Từ tập yêu cầu của hệ thống, biểu đồ usecase sẽ phải chỉ ra hệ thống cần thực hiện điều gì để thoả mãn các yêu cầu của ngƣời dùng hệ thống đó.
Đi kèm với biểu đồ usecase là các kịch bản. Biểu đồ lớp chỉ ra các lớp đối tƣợng trong hệ thống, các thuộc tính và phƣơng thức của từng lớp và các mối quan hệ giữa những lớp đó. Biểu đồ trạng thái tƣơng ứng với mỗi lớp sẽ chỉ ra các trạng thái mà đối tƣợng của lớp đó có thể có và sự chuyển tiếp giữa những trạng thái đó. 21 Các biểu đồ tƣơng tác biểu diễn mối liên hệ giữa các đối tƣợng trong hệ thống và giữa các đối tƣợng với các tác nhân bên ngoài.
Có hai loại biểu đồ tƣơng tác: Biểu đồ tuần tự: Biểu diễn mối quan hệ giữa các đối tƣợng và giữa các đối tƣợng và tác nhân theo thứ tự thời gian. Biểu đồ cộng tác: Biểu diễn mối quan hệ giữa các đối tƣợng và giữa các đối tƣợng và tác nhân nhƣng nhấn mạnh đến vai trò của các đối tƣợng trong tƣơng tác. Biểu đồ hoạt động biểu diễn các hoạt động và sự đồng bộ, chuyển tiếp các hoạt động, thƣờng đƣợc sử dụng để biểu diễn các phƣơng thức phức tạp của các lớp. Biểu đồ thành phần định nghĩa các thành phần của hệ thống và mối liên hệ giữa các thành phần đó.
Biểu đồ triển khai mô tả hệ thống sẽ đƣợc triển khai nhƣ thế nào, thành phần nào đƣợc cài đặt ở đâu, các liên kết vật lý hoặc giao thức truyền thông nào đƣợc sử dụng. Dựa trên tính chất của các biểu đồ, UML chia các biểu đồ thành hai lớp mô hình: - Biểu đồ mô hình cấu trúc (Structural Modeling Diagrams): biểu diễn các cấu trúc tĩnh của hệ thống phần mềm đƣợc mô hình hoá. Các biểu đồ trong mô hình tĩnh tập trung biểu diễn khía cạnh tĩnh của hệ thống, liên quan đến cấu trúc cơ bản cũng nhƣ các phần tử chính trong miền quan tâm của bài toán.