Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
1,57 MB
Nội dung
Nhập mơn Phân tích & Thiết kế hướng đối tượng với UML Mai Thúy Nga, ngamt@thanglong.edu.vn ðại học Thăng Long Nội dung • Phương hướng tiếp cận • Giới thiệu mơn học PT&TK sử dụng UML • Lịch sử phát triển UML • Nội dung mơn học Object Oriented Analysis & Design with UML Hiện trạng • Sinh viên trường • Nhìn nhận việc lập trình cơng việc • ðã tiếp cận số ngơn ngữ, thư viện, cơng cụ lập trình mức • Cho giải chuyện thơng qua lập trình • Sự phản ánh cơng ty • Q tập trung vào ngơn ngữ lập trình kỹ thuật lập trình • Chưa có tư làm việc nhóm • Chưa trọng tới vấn ñề giao tiếp làm việc với ñối tượng khác K/H, QLDA, ñồng nghiệp hay nhóm kiểm thử… • Chưa có tư lập kế hoạch, phân tích hay thiết kế u cầu giao • Chưa có tư quy trình phát triển phần mềm Object Oriented Analysis & Design with UML Mục tiêu trang bị cho sinh viên • Có tư phân tích vấn ñề trước phát triển, với ñề xuất thiết kế để giải vấn đề • Nắm bắt nguyên lý phân tích thiết kế phần mềm theo UML • Tìm hiểu số tư tưởng thiết kế sẵn có (design patterns) • Nâng cao khả làm việc nhóm • Xây dựng tài liệu, mơ hình … cho phù hợp với đối tượng tham gia dự án • Có khả đọc hiểu ñược tài liệu kỹ thuật dự án • Tiếp cận tư làm dự án theo quy trình phát triển phần mềm (tiếp tục với môn Công nghệ phần mềm) • Các vấn đề làm việc với khách hàng • Các vấn đề quản lý chất lượng dự án • Các vấn đề quản lý dự án Object Oriented Analysis & Design with UML Nội dung • Phương hướng tiếp cận • Giới thiệu mơn học PT&TK sử dụng UML • Lịch sử phát triển UML • Nội dung mơn học Object Oriented Analysis & Design with UML Vai trò phân tích thiết kế • Mục tiêu dự án • Tìm hiểu u cầu • Kiến thức chun mơn • Trừu tượng hóa • Mơ hình hóa • Kiến trúc hệ thống • Cấu trúc thành phần • Thuật toán • Cấu trúc liệu • Nền tảng cơng nghệ & ngơn ngữ Object Oriented Analysis & Design with UML Phân tích Thiết kế phần mềm • Cần xây dựng quy trình phát triển phần mềm hiệu • Quản lý yêu cầu dự án • Lập kế hoạch kiểm sốt cơng việc • ðảm bảo chất lượng sản phẩm… • Thiết lập chế để nắm bắt yêu cầu, xây dựng thiết kế ñiều quan trọng • Sử dụng mẫu, kỹ thuật để đặc tả minh họa q trình phân tích thiết kế • Sử dụng chương trình hỗ trợ phân tích thiết kế (tools) • Cơ chế phải “ngôn ngữ thống nhất” giúp cho trình hợp tác hiệu thành viên khách háng nhóm phát triển phần mềm Object Oriented Analysis & Design with UML Phương hướng tiếp cận Phân tích thiết kế hướng cấu trúc Phân tích thiết kế hướng đối tượng Phân tích hướng cấu trúc Phân tích hướng đối tượng (UML) Thiết kế hướng cấu trúc (ERD, DFD) Thiết kế hướng ñối tượng (UML) Lập trình cấu trúc (C, Pascal…) Lập trình ñối tượng (C++, Java, NET …) Những năm 60-90 Những năm 2000-nay Object Oriented Analysis & Design with UML Hướng tiếp cận sử dụng UML • Về UML ngơn ngữ dùng để mơ hình hóa thành phần cần thiết trình phát triển dự án • Tuy nhiên vận dụng hợp lý, UML sử dụng phương pháp (quy trình) phân tích thiết kế dự án • Mặc dù vậy, UML chưa làm ñược vấn đề khác Cơng nghệ phần mềm lập kế hoạch, quản lý chất lượng… • UML sử dụng biểu tượng để mơ hình hóa thực thể theo chiều khác nhau, ñể phục vụ ñối tượng khác nhau, cho giai ñoạn khác dự án • Ví dụ: mơ hình hóa Use-case cho K/H, QLDA • Mơ hình hóa lớp trình tự cho LTV • … Object Oriented Analysis & Design with UML Tại cần mơ hình hóa • Khó khăn • Phần mềm ngày trở nên phức tạp • Windows XP > 40M LoC • Tìm hiểu mã nguồn ln vấn đề khó LTV • Cần cách thể toán phức tạp cách đơn giản • Mơ hình hóa phương tiện giúp đơn giản hóa tốn • Mơ hình phương tiện để giao tiếp thành viên tham gia phát triển dự án Object Oriented Analysis & Design with UML ðịnh nghĩa mơ hình hóa, (Modeling) • Mơ hình hóa q trình trừu tượng hóa đối tượng (thực thể) giới thực • Trừu tượng hóa đảm bảo đơn giản hóa phức tạp giới thực: • Bỏ qua thơng tin khơng cần thiết • Chỉ thể thơng tin cần thiết mang tính đặc thù thực thể ngữ cảnh cụ thể • Phù hợp với đối tượng dự án • Khái niệm cần thiết không cần thiết phụ thuộc vào mục đích mơ hình đó, người quan tâm đến mơ hình số nhân tố khác Object Oriented Analysis & Design with UML Ngơn ngữ q trình phát triển Phân tích nghiệp vụ Kỹ sư phát triển u cầu Mơ hình nghiệp vụ C++ Java Mơ hình phát triển HTML CGI XML JavaScript SQL Mơ hình quan hệ (ER) Quản trị nội dung Quản trị CSDL Nhiều ngôn ngữ = Rào cản giao tiếp Object Oriented Analysis & Design with UML Ngơn ngữ mơ hình hóa thống (UML) Lập trình viên Kiểm thử Kiến trúc sư Khách hàng Quản lý dự án UML Mơ hình Use Case Giao diện Kiến trúc hệ thống Sơ ñồ trình tự Object Oriented Analysis & Design with UML Một số khái niệm UML • Hệ thống (System) • Là hệ thống thực tế cần phải mô tả xây dựng • Mơ hình (Model) • Là kết q trình trừu tượng hóa hệ thống thực • Khung nhìn (View) • Phản ánh khía cạnh mơ hình • Mỗi Model có nhiều View khác tùy thuộc vào mục đích View • Mỗi View phù hợp cho nhóm đối tượng dự án • Ký hiệu (Notation) • Là ký hiệu ñồ họa văn cho phép mô tả khung nhìn Object Oriented Analysis & Design with UML UML - Các sơ ñồ chuẩn (Diagram) Use Case Use Case Diagrams Activity Diagrams Diagrams Scenario Scenario Diagrams Sequence Diagrams Diagrams Scenario Scenario Diagrams Collaboration Diagrams Diagrams Use Case Use Case Diagrams Use Case Diagrams Diagrams State State Diagrams Class Diagrams Diagrams State State Diagrams Object Diagrams Diagrams State State Diagrams State Diagrams Diagrams Model Deployment Diagram Component Component Diagrams Component Diagrams Diagrams Object Oriented Analysis & Design with UML Một số sơ ñồ quan trọng (View) Kiến trúc Sơ ñồ lớp Sơ đồ trình tự Sơ đồ hành động Mơ hình Hệ thống Sơ ñồ thành phần Sơ ñồ Use Case Sơ ñồ triển khai Sản phẩm Object Oriented Analysis & Design with UML Khảo sát phân tích dự án • Xây dựng mơ hình Use Case (Use case diagram) Object Oriented Analysis & Design with UML Phân tích & Thiết kế • Xây dựng sơ đồ lớp gói (Class & Package diagrams) Object Oriented Analysis & Design with UML Thiết kế • Xây dựng sơ đồ trình tự kịch (Sequence & Interaction diagrams) Object Oriented Analysis & Design with UML Thiết kế • Xây dựng sơ ñồ hành ñộng (Activity diagram) Object Oriented Analysis & Design with UML Thiết kế • Xây dựng sơ ñồ trạng thái (State diagram) Object Oriented Analysis & Design with UML Phát triển • Lập trình mã nguồn Object Oriented Analysis & Design with UML Bàn giao • Xây dựng sơ ñồ triển khai (Deployment diagram) Object Oriented Analysis & Design with UML Nội dung • Phương hướng tiếp cận • Giới thiệu mơn học PT&TK sử dụng UML • Lịch sử phát triển UML • Nội dung môn học Object Oriented Analysis & Design with UML UML (1) • UML xây dựng chun gia phân tích hướng đối tượng • Grady Booch: Booch91 • Ivar Jacobson: Object-Oriented Software Enginering (OOSE) • Jim Rumbaugh: Object Modeling Technique (OMT) • Thiết lập phương thức thống để xây dựng “mơ hình hóa” u cầu & thiết kế theo hướng ñối tượng trình phân tích thiết kế phần mềm • UML áp dụng nhiều quy trình phát triển phần mềm khác • UML áp dụng với phần lớn ngơn ngữ OOP Java, NET… Object Oriented Analysis & Design with UML UML (2) • Ba chuyên gia hợp kỹ thuật họ vào năm 1994 • UML cơng nhận chuẩn chung vào năm 1997 Object Oriented Analysis & Design with UML UML (3) • UML sử dụng số kỹ thuật chuyên gia khác Booch Rumbaugh Jacobson Meyer Fusion Operation descriptions, Message numbering Before and after conditions Embley Harel Singleton classes, High-level view State charts Gamma, et.al Wirfs-Brock Frameworks, patterns, notes Shlaer - Mellor Object Lifecycles Odell Responsibilities Classification Object Oriented Analysis & Design with UML Lịch sử phát triển UML UML 2.0 2005 UML 1.4 OMT (Rumbaugh) 5/2000 1996 Booch UML 0.9 UML 1.1 11/1997 OOSE (Jacobson) Object Oriented Analysis & Design with UML Nội dung • Phương hướng tiếp cận • Giới thiệu mơn học PT&TK sử dụng UML • Lịch sử phát triển UML • Nội dung mơn học Object Oriented Analysis & Design with UML Tổng quan môn học • Phân tích chức tốn theo mơ hình Usecase, phát triển phần mềm theo hướng tiếp cận • Sử dụng UML để biểu diễn mơ hình phân tích thiết kế • Áp dụng khái niệm hướng đối tượng: trừu tượng hố, đóng gói, phân cấp, module hố, đa hình để phát triển mơ hình thiết kế • ðặc tả tài liệu phân tích thiết kế module • Song song với việc học lý thuyết, sinh viên chia nhóm thực hành theo tập lớn Object Oriented Analysis & Design with UML Phạm vi mơn học (1) • Tập trung vào giai đoạn phân tích & thiết kế tốn • Khơng đặt nặng vấn đề làm việc với khách hàng, thay vào tập trung vào vấn đề làm việc nhóm (nhóm kỹ thuật) để phân tích thiết kế yêu cầu dự án • Khơng bao gồm tồn quy trình phát triển phần mềm mức cao, giai ñoạn lập kế hoạch kiểm thử phần mềm • Khơng bao gồm vấn ñề quản lý dự án quản lý rủi ro, ước lượng ñộ lớn phần mềm hay quản lý thay ñổi yêu cầu • Các vấn ñề ñược giải môn học: Công nghệ phần mềm, Quản lý dự án, Quản lý chất lượng phần mềm Object Oriented Analysis & Design with UML Phạm vi môn học (2) Object Oriented Analysis & Design with UML Nội dung mơn học Giới thiệu PTTK hướng đối tượng với UML Khái niệm Hướng ñối tượng UML ðặc tả u cầu với mơ hình Use Case II Tổng quan Phân tích Thiết kế Phân tích Use Case II ðặc tả Yêu cầu với mơ hình Use Case I Phân tích Use Case I Thiet ke CSDL Mơ hình hóa Thiết kế Object Oriented Analysis & Design with UML Nội dung thực hành Tìm hiểu mục đích tập lớn Thực hành UML với Rational Rose Xây dựng ðặc tả Yêu cầu I Xây dựng ðặc tả Yêu cầu II Xây dựng sơ ñồ nhân tích Use Case I Phân tích yêu cầu tập lớn Xây dựng sơ ñồ Kiến trúc Triển khai Xây dựng sơ ñồ phân tích Use Case I Báo cáo tập lớn Object Oriented Analysis & Design with UML ðánh giá mơn học • Bài tập lớn • Mỗi nhóm khoảng 4-6 sv cho tập lớn • Tài liệu (Tuần 1-9) • Tài liệu yêu cầu, thiết kế (theo mẫu cung cấp) • Báo cáo cơng việc thực hàng tuần • Bảo vệ dự án (sử dụng PowerPoint) vào Tuần • Thi cuối mơn • Thi viết tiết • ðược sử dụng tài liệu • ðiểm mơn học • (Dự án * + Bảo vệ + Thi) / • Dự án = (ðiểm kỳ + Tài liệu)/2 • Nếu điểm điểm cuối ñiểm Object Oriented Analysis & Design with UML Tài liệu tham khảo • DEV485 – Object Oriented Analysis and Design with UML • IBM • Master UML with Rational Rose • Wendy Boggs, Michael Boggs • The Unified Modeling Language User Guide • Grady Booch, Ivar Jacobson, James Rumbaugh • UML Distilled • Martin Fowler • Writing Effective Use Cases • Alistair Cockburn • Design Patterns • Nhà xuất Minh Khai • Elements of Reusable Object Oriented Software • GoF • Rational Web Site • http://www.rational.com Object Oriented Analysis & Design with UML