PDA

View Full Version : [Q] Phân tích bài toán theo hướng đối tượng UML



hienpn
09-11-2002, 07:29
Phân tích một bài toán theo hướng đối tượng UML thì các bước phải làm như thế nào? Anh chị nào biết thì chỉ cho tôi với.

mel
24-12-2002, 01:48
Chỉ bằng ... forum coi bộ không ổn đâu. Tốt nhất bạn nên bắt đầu bằng việc đọc các Sách nói về Phân Tích Thiết Kế Hệ Thống trước đã(tất nhiên bạn phải biết về CSDL thì mới hiểu được), UML phân tích các đối tượng chính bằng việc xác định ... danh từ. Nghe có vẻ khó hiểu nhưng quả thật đây là 1 cách hay nhất(theo tôi) trong việc phân tích và thiết kế CSDL

meomuop
07-03-2003, 13:38
Thế còn Use-Case là thế nào hả bạn ? Dịch nó như thế nào cho dễ hiểu đây ?

Huynt
17-04-2003, 16:26
Unified Process chia quá trình phát triển phần mềm thành 4 phase chính: Inception (Sơ bộ), Elaboration (Chi tiết), Construction (Xây dựng), Transition (Chuyển giao) nối tiếp nhau.
Mỗi phase lại bao gồm 5 dòng công việc lặp đi lặp lại sau:
-Requirement (Xác định yêu cầu)
-Analysis (Phân tích)
-Design (thiết kế)
-Implemention (viết mã)
-Testing (kiểm thử)

Trước hết, Xác định yêu cầu để xác định các use-case (trường hợp sử dụng).
Một use-case là một trường hợp mà một tác nhân (người hoặc hệ thống) sử dụng hệ thống để thực hiện một công việc gì đó mà đem lại giá trị cho tác nhân đó.
Nói một cách nôm na, xác định use-case là xác định toàn bộ các khả năng bạn sử dụng hệ thống để làm gì, phục vụ cho công việc cụ thể nào.
Xác định được hết các use-case tức là đã xác định được toàn bộ chức năng của hệ thống.

Sau khi đã xác định được các use-case, bạn sẽ tiến hành phân tích chi tiết từng use-case dưới dạng tương tác của các đối tượng. tức là, bạn sẽ cụ thể một quá trình sử dụng hệ thống bằng các đối tượng cụ thể và các đối tượng này tương tác với nhau để thực hiện chức năng đó.
Thông thường, đây là bước quan trọng nhất để xác định các đối tượng - > xác định các lớp (hoặc lớp-> đối tượng)

Nói chúng, bạn phải tìm được các use-case, rồi từ các use-case để bật ra các đối tượng, rồi từ các đối tượng ta sẽ tổng quát hoá thành các lớp tương ứng.

Nói ngắn gọn thì thế, còn thực tế thì người ta có cả một quyển sách dày cộp để bàn về vấn đề này.

tieuquaydelhi
17-04-2003, 23:42
Xin hỏi bạn có thể cho mình biết sơ qua về chương trình UML này không? Nó có phải là một ngôn ngữ như C++ hoặc JAVA không, nó khác biệt thế nào vậy? Nó có thể giúp mình làm những gì vậy (lập trình software hay OS) Cám ơn các bạn nhiều

Huynt
18-04-2003, 00:17
UML ko phải là một ngôn ngữ lập trình như Java hay C++. Người ta coi rằng UML là một ngôn ngữ để mô hình hóa.
Thực tế, UML được sử dụng để trực quan hóa toàn bộ quá trình phát triển phần mềm. Bạn hãy suy nghĩ một cách đơn giản như sau: khi phát triển phần mềm, để ghi lại các thông tin, người ta có thể dùng các văn bản text hoặc các văn bản hình vẽ.
Rõ ràng là dùng hình vẽ để thể hiện thông tin dễ hiểu hơn nhiều. Và UML chính là như vậy, nó bao gồm nhiều hình vẽ cơ bản và cách thức tổ chức các hình vẽ này để mô hình hóa một quá trình làm phần mềm.
Khi sử dụng trong thực tế, UML lại cung cấp cho ta các khái niệm như use-case (được thể hiện bằng một hình quả trứng nằm ngang), actor (hình người), các lược đồ (có rất nhiều loại), và còn rất nhiều thứ khác nữa.....
Hỗ trợ UML có nhiều công cụ trực quan như Modeler (đồ của Microsoft thì phải???), Rational,.... Theo mình nghĩ, bộ Rational Suite của hãng Rational Corp là ngon nhất trong hỗ trợ UML.

tieuquaydelhi
18-04-2003, 00:47
Cám ơn bạn rất nhiều, giờ thì mình đã căn bản hiểu được UML là gì. Nhưng để chuẩn bị học UML tốt thì mình nên tham khảo hoặc tim hiểu gì thêm không bạn ?

Huynt
18-04-2003, 08:35
Để học tốt UML thì tốt nhất là bạn phải có trước một số kiến thức về Object oriented programming và Component oriented programming. Một số kiến thức cơ bản về Software Engineering cũng cần.
Sách vở về UML cũng khá nhiều. Nhưng theo mình, nên đọc kết hợp Unified Process và Rational Rose.

tieuquaitu
18-04-2003, 09:08
UML lý thuyết rất trừu tượng,học nó thì dùng Rational Rose để thực hành là tốt nhất đó

tieuquaydelhi
18-04-2003, 09:41
Rất cám ơn các bạn đã nhiệt tình chỉ dẫn cho mình.
Về OOP thì mình đã biết nhưng Component OP thì mình chỉ mới nghe bạn nói thôi. Bạn có thể cho mình một số link để tham khảo thêm vể COP(Component OP ) và rational Rose không ? Tuần sau mình sẽ học rồi. Nghe các bạn nói vậy chắc môn này khó nuốt rồi.

Huynt
18-04-2003, 23:27
Hì hì, về cơ bản thì Component based programming chính là OOP. Nhưng biết nói thế nào nhỉ, trong Component programming thì người ta chủ yếu xử lý với các interface và component, còn OOP thì là các class. Điển hình cho Component programming chính là COM, J2EE, CORBA.
Mình ko có link nào về những cái này cả. Cũng chỉ do đọc sách bình thường mà biết vậy thôi.
Mọi thứ đều ko dễ (chứ ko khó), nhưng hard working + strong will sẽ overcome everything.

ngocthuytk1
05-12-2008, 10:55
Để phân tích thiết kế hệ thống bằng UML thì mình dùng Rational Rose phải ko bạn? nếu ai có cho mình xin bản full nha!
thanks

MichaelTuanAnh
05-12-2008, 11:20
Bạn ra ngoài tiệm CD mua có vài nghìn à.

Để phân tích thiết kế hệ thống bằng UML thì mình dùng Rational Rose phải ko bạn? nếu ai có cho mình xin bản full nha!
thanks