Phân tích và thiết kế hướng đối tượng slide

Diễn đàn sinh viên CNTT Quảng Ninh

Trang chủ Diễn đàn Học tập Công nghệ thông tin

Tóm tắt nội dung tài liệu

  1. HƯỚNG DẪN MÔN HỌC Tên môn học : PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG (Object-Oriented Analysis and Design) Giảng viên phụ trách Ths Tôn Long Phước Khoa Công nghệ thông tin.
  2. PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG  1. Số đơn vị học trình: 3  2. Mã số môn học: 019TH130  3. Môn học trước: 010TH130  4. Môn song hành: Thực Hành “Thiết kế phần mềm hướng đối tượng bằng UML”; Bài tập lớn “Phân tích thiết kế phần mềm hướng đối tượng”.  5. Mục tiêu môn học: giúp cho sinh viên có kiến thức cũng như kỹ năng cần thiết để phân tích thiết kế phần mềm theo hướng đối tượng
  3. Tài liệu tham khảo:  [1] James J. Odell, James Martin,Object-Oriented Analysis and Design,  Prentice-Hall, 1992.  [2] Object Oriented Systems Analysis and Design Using UML, (2nd Edition), McGraw Hill, 2002. By Bennett, McRobb and Farmer  [3] James Rumbaugh, Michael Blaha, Wiliam Premerlani, Frederick  Eddy, Wiliam Lorensen, Object-Oriented Modeling and Design,  Prentice-Hall International, 1991.  [4] Roger S, Software Engineering – A Practitioner’s Approach,  Pressman-International Edition, 1997.  [5] Tài liệu thiết kế phần mềm hướng đối tượng bằng UML( tiếng Việt)
  4. Cách đánh giá và tính điểm:  Thi viết 50%  Đề tài 20%  Giữa kì 30% (Seminar)  Seminar  Tìm hiểu về Rational Rose 2000  Tìm hiểu Công cụ hỗ trợ phát triển phần mềm hướng đối tượng bằng Visual.net 2005


Page 2

YOMEDIA

Thực Hành “Thiết kế phần mềm hướng đối tượng bằng UML”; Bài tập lớn “Phân tích thiết kế phần mềm hướng đối tượng”. Mục tiêu môn học: giúp cho sinh viên có kiến thức cũng như kỹ năng cần thiết để phân tích thiết kế phần mềm theo hướng đối tượng Tài liệu tham khảo: [1] James J. Odell, James Martin,Object-Oriented Analysis and Design, Prentice-Hall, 1992. [2] Object Oriented Systems Analysis and Design Using UML, (2nd Edition), McGraw Hill, 2002. ...

30-10-2011 229 38

Download

Phân tích và thiết kế hướng đối tượng slide

Giấy phép Mạng Xã Hội số: 670/GP-BTTTT cấp ngày 30/11/2015 Copyright © 2009-2019 TaiLieu.VN. All rights reserved.

phân tích thiết kế hướng đối tượng với uml 2.0.pdf

các bạn tự tìm sách trên google theo gợi ý bên dưới nhé!

Object-Oriented Analysis, Design And Implementation.Pdf

PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI KHOA ĐIỆN TỬ VIỄN THÔNG PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG CHƯƠNG 1. Giới thiệu Bộ môn Điện tử - Kỹ thuật máy tính

Chương 1. Giới thiệu 1.1. Giới thiệu phân tích thiết kế hệ thống 1.2. Phân tích thiết kế hệ thống hướng đối tượng 1.3. UML 17 September 2018 OOD - FET.HUST

1.1. Giới thiệu phân tích thiết kế hệ thống 1. Vòng đời phát triển hệ thống 2. Các phương pháp luận 3. Nhiệm vụ và kỹ năng của các thành viên trong đội dự án 17 September 2018 OOD - FET.HUST

1. Vòng đời phát triển hệ thống Vòng đời phát trển hệ thống (SDLC) được tính từ khi tìm hiểu một hệ thống thông tin sẽ được xây dựng có thể đáp ứng được các yêu cầu nghiệp vụ như thế nào, thiết kế nó, xây dựng nó và chuyển giao đến cho khách hàng sử dụng. Gồm 4 giai đoạn chính: Lập kế hoạch : Tại sao cần xây dựng hệ thống? Phân tích : Hệ thống sẽ phục vụ ai, ở đâu, khi nào? Thiết kế : Hệ thống làm việc như thế nào? Cài đặt : Chuyển giao đến người dùng. 17 September 2018 OOD - FET.HUST

Lập kế hoạch Khởi tạo dự án Quản trị dự án Xác định giá trị nghiệp vụ của hệ thống Giá trị kinh tế Giá trị phi kinh tế Xác định tính khả thi Mặt kỹ thuật -> Có thể làm được? Mặt kinh tế -> Có giá trị kinh te? Mặt tổ chức -> Ai sẽ là người dùng? Quản trị dự án Xây dựng kế hoạch Thành lập đội dự án (project team) Kiểm soát và chỉ đạo quá trình xây dựng hệ thống 17 September 2018 OOD - FET.HUST

Phân tích Ai? Làm gì? Ở đâu? Khi nào? 3 bước: Phát triển 1 chiến lược phân tích. Hệ thống hiện tại, các vấn đề (as-is system) Hệ thống mới (to-be system) Tập hợp yêu cầu Phỏng vấn Tập các câu hỏi sẵn … Đề xuất hệ thống mới Mô hình hóa nghiệp vụ Mô hình hóa dữ liệu => Phân tích và thiết kế sơ bộ Khái niệm ban đầu về hệ thống mới 17 September 2018 OOD - FET.HUST

Thiết kế Hệ thống sẽ hoạt động như thế nào? 4 bước Phát triển chiến lược thiết kế Tự phát triển Thuê ngoài Mua sẵn Thiết kế Kiến trúc hệ thống (Phần cứng, phần mềm, mạng,….) Giao diện (người dùng, hệ thống khác, etc.) Xây dựng đặc tả CSDL và file. Xây dựng bản thiết kế chương trình (phân hệ, module, phương thức/hàm, etc.) 17 September 2018 OOD - FET.HUST

Cài đặt Xây dựng hệ thống Triển khai Hỗ trợ Phát triển hệ thống Kiểm thử (> phát triển) Triển khai Gỡ bỏ hệ thống cũ Cài đặt hệ thống mới Đào tạo Chuyển giao Từng phần; toàn bộ Từng giai đoạn; Đột ngột Song song Hỗ trợ Thu nhận ý kiến phản hồi. Xác định các thay đổi cần thiết. 17 September 2018 OOD - FET.HUST

Tổng kết Phase Product Project Plan System Proposal System Specification New System and Maintenance Plan Planning Analysis Design Implementation 17 September 2018 OOD - FET.HUST

2. Các phương pháp phát triển hệ thống Phương pháp luận (Methodologies): là cách tiếp cận (hay các bước) và mối quan hệ giữa các pha trong vòng đời phát triển hệ thống. Phân loại phương pháp: Dựa vào cách tiếp cận hệ thống (hướng chức năng hay dữ liệu). Hướng chức năng:Tập trung mô hình hóa nghiệp vụ Hướng dữ liệu: Tập trung mô hình hóa dữ liệu Hướng đối tượng: Kết hợp 2 phương pháp trên 17 September 2018 OOD - FET.HUST

Thiết kế có cấu trúc Dự án phải trải qua từng bước một cách có hệ thống. Hoàn thành bước này mới chuyển sang bước tiếp theo. Điển hình: Waterfall Parallel 17 September 2018 OOD - FET.HUST

Waterfall – Mô hình thác nước 17 September 2018 OOD - FET.HUST

Waterfall (tiếp) Thực hiện các pha theo thứ tự Mất nhiều thời gian tại các pha Kết quả từng pha phải đưa ra báo cáo (dài) và phải được duyệt trước khi chuyển sang pha tiếp theo Khó khăn khi phải quay lại các pha đã qua. Sử dụng các sơ đồ khác nhau để mô tả hệ thống (DFD, FD, ERD) 17 September 2018 OOD - FET.HUST

Waterfall - Ưu điểm & nhược điểm Thời gian khảo sát yêu cầu dài => hạn chế phải thay đổi khi hệ thống đang được xây dựng. Nhược điểm: Phải hoàn thành bước thiết kế trước khi hệ thống bắt đầu được triển khai. Tốn nhiều thời gian. Phải làm lại các bước khi có thay đổi. 17 September 2018 OOD - FET.HUST

Parallel – Mô hình phát triển song song 17 September 2018 OOD - FET.HUST

Parallel - Ưu điểm & nhược điểm Rút ngắn thời gian so với waterfall Nhược điểm: Vẫn tốn giấy tờ Tích hợp các sub-project Các sub-project phụ thuộc lẫn nhau 17 September 2018 OOD - FET.HUST

RAD – Mô hình phát triển ứng dụng nhanh Điều chỉnh một số giai đoạn của SDLC để đẩy nhanh quá trình xây dựng hệ thống Cần có các kỹ thuật đặc biệt và sử dụng các công cụ hỗ trợ trên máy tính để đẩy nhanh các giai đoạn phân tích, thiết kế & triển khai: Công cụ hỗ trợ (CASE tools) Ngôn ngữ lập trình thế hệ thứ 4 Các bộ sinh mã Phân loại: Phased Development Khuôn mẫu (Prototyping) Khuôn mẫu loại bỏ (Throwaway Prototyping) 17 September 2018 OOD - FET.HUST

Phased Development 17 September 2018 OOD - FET.HUST

Phased Development Chia toàn bộ hệ thống thành các phiên bản khác nhau cần được xây dựng. Phân loại yêu cầu, các yêu cầu quan trọng và cần thiết nhất được đưa vào phiên bản đầu tiên. Sau đó phân tích, thiết kế, triển khai chỉ những yêu cầu đã được lựa chọn cho phiên bản đầu tiên. Khi hoàn thành phiên bản đầu tiên, tiếp tục phân tích, thiết kế, triển khai phiên bản tiếp theo. Tiếp tục……. Đến khi hoàn thiện hệ thống. 17 September 2018 OOD - FET.HUST

Prototyping 17 September 2018 OOD - FET.HUST

Throwaway Prototyping 17 September 2018 OOD - FET.HUST

Agile Quá trình phát triển là liên tục, đơn giản. Giảm thiểu/loại bỏ bước mô hình hoá hay tài liệu; Tiết kiệm thời gian và nguồn lực. 17 September 2018 OOD - FET.HUST

Agile – 12 nguyên tắc Giao hàng (phần mềm) sớm và liên tục trong suốt quá trình phát triển; thoả mãn yêu cầu khách hàng Thay đổi yêu cầu trong quá trình phát triển đều được chấp nhận dễ dàng Các tính tăng được hoàn thành và chuyển giao cho khách hàng thường xuyên Khách hàng và kỹ sư phát triển cùng làm việc, hợp tác với nhau. Thúc đẩy/khuyến khích từng cá nhân đề xuất giải pháp; cung cấp cho họ công cụ cần thiết và tin tưởng họ. Các thành viên trong nhóm phát triển thường xuyên trao đổi với nhau 17 September 2018 OOD - FET.HUST

Agile – 12 nguyên tắc (tiếp) Tiến độ được đánh giá bằng sản phẩm phần mềm hoạt động tốt Nhịp độ làm việc phải bền vững. Tập trung vào chất lượng kỹ thuật và thiết kế Đơn giản hoá, tránh các việc không cần thiết Nhóm làm việc tự tổ chức và đưa các bản yêu cầu, kiến trúc và thiết kế tốt nhất Nhóm phát triển thường xuyên đánh giá và cải tiến quá trình phát triển. 17 September 2018 OOD - FET.HUST

Agile Nhược điểm Ưu điểm Ví dụ: Nhóm nghiệp vụ và phát triển phải làm việc cùng nhau Không được quản lý tốt/chặt chẽ Thiếu tài liệu => khó kiểm soát tính đúng đắn của sản phẩm. Ưu điểm Chuyển giao sản phẩm đúng hạn Phù hợp với phương pháp hướng đối tượng Ví dụ: Extreme Programming (XP) Scrum 17 September 2018 OOD - FET.HUST

XP Core values: How communication, simplicity, feedback, Courage rapid feedback simplicity, KISS principle feedback, incremental changes to grow the system, Courage quality-first mentality. How Small team (<10) Start with user stories – what the system needs to do From simple small modules Users are always available Standardize: name, descriptions, coding pratices. 17 September 2018 OOD - FET.HUST

Scrum Backlog Sprint (Iteration) Set of small tasks 1-4 weeks Pick tasks at the beginning of the sprint Review tasks & deliverables by the end of the sprint New requirements: Add to backlog 17 September 2018 OOD - FET.HUST

Scrum Self-organizing team Does not need a team leader Daily scrum meeting Stand in a circle Sumarize previous achievement Plans for the day Anyone outside the team can attend Blockers must be resolved quickly. ”Bad” decision is better than nothing Identify new/changed requirements Small teams <= 7 Scrum of scrums Large project, needs large number of engineers Team representatives attend scrum-of-scrums meeting 17 September 2018 OOD - FET.HUST

Lựa chọn phương pháp Việc lựa chọn phương pháp không hề đơn giản. Không có phương pháp tốt nhất Mỗi tổ chức, dự án đều có các tiêu chuẩn lựa chọn khác nhau. 17 September 2018 OOD - FET.HUST

Các tiêu chí lựa chọn 17 September 2018 OOD - FET.HUST

Thảo luận Một công ty tư vấn toàn cầu có văn phòng ở khắp nơi trên thế giới. Công ty muốn xây dựng một hệ thống quản lý chuyên gia cho phép họ có thể quản lý, nhận biết, theo dõi trình độ và quá trình phát triển của từng chuyên gia làm việc tại bất kỳ văn phòng nào trên thế giới dựa trên trình độ học vấn cũng như kinh nghiệm tham gia các dự án của họ. Mỗi văn phòng tại mỗi quốc gia có thể có các tiêu chuẩn đầu tư phần cứng cũng như phần mềm khác nhau. Đây là một ý tưởng mới mà chưa có ai làm trước đó. Hệ thống phải đi vào hoạt động chính thức trong vòng 1 năm. Câu hỏi: Là một nhà tư vấn phát triển các dự án phần mềm, bạn sẽ đưa ra khuyến nghị sử dụng phương pháp nào? Vì sao? 17 September 2018 OOD - FET.HUST

Vai trò và kỹ năng của nhóm dự án Các vị trí: Phân tích nghiệp vụ Phân tích hệ thống Phân tích kiến trúc Phân tích sự thay đổi Quản trị dự án 17 September 2018 OOD - FET.HUST

Project Team Roles 17 September 2018 OOD - FET.HUST

Tổng kết SDLC: 4 phase Methodologies: 8 typical methodologies Roles and Skills: Project team 17 September 2018 OOD - FET.HUST

1.2 Phân tích thiết kế hướng đối tượng Các khái niệm Lớp và đối tượng Phương thức và thông điệp Đóng gói và che dấu thông tin Thừa kế Đa hình và liên kết động UML 2.0 17 September 2018 OOD - FET.HUST

Objects - Đối tượng Represent real or abstract things, with a name. Have well-defined responsibilities. Exhibit well-defined behavior. Have a well-defined interface, which is as simple as possible. Are self-consistent, coherent, and complete. Are (usually) not very complex or large. Have knowledge of themselves and the interfaces of a small number of other objects. Are as loosely coupled with other objects as possible. Are well documented, so that others may (re)use them. 17 September 2018 OOD - FET.HUST

Đối tượng (tiếp) Objects are instances of classes, each with a unique identity. A class defines both the interface(s) and the implementation for a set of objects, which determines their behavior. Abstract classes are classes that can have no instances. An object, once instantiated, cannot change its class. 17 September 2018 OOD - FET.HUST

Characteristics of Objects Have unique identity. Fall into categories, or classes. Fall into hierarchies or aggregations. Have well defined behaviors & responsibilities. Separate interface from implementation. Hide their internal structures. Have states. Provide services. Send messages to other objects. Receive messages from other objects, and react appropriately. 17 September 2018 OOD - FET.HUST

Classes A collection of objects, sharing common attributes and behaviors. The classification(s) of a collection of objects often depends on the attributes in which you are interested. Examples: streets, roads, and highways... Different programs would classify these differently… Classes themselves can have attributes and behaviors. Example: Class Employee, in a pension management program. – Total number of Employees. – How many Employees are fully vested? 17 September 2018 OOD - FET.HUST

Lớp (tiếp) Classes are objects too A class can have attributes An Employee class may have a list of all its instances A LotteryTicket class may have a seed it uses to generate random ticket numbers; that seed is shared by all instances of the class. A class can have behaviors An Employee class may have a getEmployeeBySerialNum behavior A LotteryTicket class may have a generateRandomNumber 17 September 2018 OOD - FET.HUST

Phương thức và thông điệp Phương thức (method): là hành động mà một đối tượng có thể thực hiện. Thông điệp (Message): là lời gọi đến các phương thức của đối tượng (hay nói cách khác, thông điệp là thông tin được gửi tới đối tượng để kích hoạt một hành động). 17 September 2018 OOD - FET.HUST

Đóng gói và che dấu thông tin Đóng gói (Encapsulation): Kết hợp dữ liệu và phương thức xử lý dữ liệu vào cùng một thực thể Che dấu thông tin (Information hidding): chỉ những thông tin cần thiết để sử dụng một module mới được công khai. 17 September 2018 OOD - FET.HUST

Thừa kế Inheritance is a way of describing a class by saying how it differs from another class. Why use inheritance? When you have two types where one is necessarily an extension of the other. Sometimes (but not all the time) you are going to want to ignore the differences and look only at the what they have in common (the base class).This is called generalization. 17 September 2018 OOD - FET.HUST

Thừa kế (tiếp) 17 September 2018 OOD - FET.HUST

Thừa kế (tiếp) 17 September 2018 OOD - FET.HUST

Thừa kế (tiếp) Base class ~ Parent Class ~ Supper Class ~ Abtract Class Derived class ~ Child Class ~ Sub Class ~ Concrete Class The Derived class inherits from the Base class; the Derived class extends the Base class; the Derived class is a specialization of the Base class. The Derived class may provide additional state (member data), or additional behavior (member functions/methods), or it may override the implementation of inherited methods. l The Base class is a generalization of all its Derived classes. 17 September 2018 OOD - FET.HUST

Đa hình và liên kết động Polymorphism Dynamic Binding Static Binding A message can be interpreted differently by different classes of objects Dynamic Binding Sometimes called late binding Delays typing or choosing a method for an object until run-time Static Binding Type of object determined at compile time 17 September 2018 OOD - FET.HUST

Đa hình Hinh c; c=new tron(); C.ve(); C=new chunhat(); c.ve(); 17 September 2018 OOD - FET.HUST

Đa hình 17 September 2018 OOD - FET.HUST

Exercise… 17 September 2018 OOD - FET.HUST

UML-unified modeling language UML là gì? Lịch sử UML Tại sao chúng ta cần UML? Các mô hình ý niệm trong UML Things Quan hệ (Relationships) Lược đồ (Diagrams) Cơ chế mở rộng (Extensibility Mechanism) 17 September 2018 OOD - FET.HUST

UML – Unified Modelling Language UML là một ngôn ngữ dùng cho Mô hình hóa trực quan (Visualizing) Đặc tả (Specifying) Xây dựng (Constructing) Tài liệu (Documenting) “The UML is the standard language for specifying, visualizing, constructing, and documenting all the artifacts of a system.” 17 September 2018 OOD - FET.HUST

Mô hình hóa trực quan Mô hình hóa Trực quan Đơn giản hóa thực tế Hiểu các hệ thống phức tạp rõ hơn Công cụ trao đổi thông tin (Communication tool) Suy nghĩ nhất quán (Unified Understanding). Thông tin được lưu trữ rõ ràng, dễ tra cứu quản lý Trực quan Mô tả hệ thống bằng các hình (Visualize) 17 September 2018 OOD - FET.HUST

Đặc tả Giúp xây dựng các mô hình Chính xác Rõ ràng, không nhập nhằng 17 September 2018 OOD - FET.HUST

Xây dựng Các mô hình UML dễ dàng ánh xạ sang Java C++,C# VB,VB.NET ….. Một ngôn ngữ lập trình Java C++,C# VB,VB.NET ….. Một bảng trong CSDL quan hệ (R-DBMS) Một lưu trữ bền vững của CSDL HĐT (OO- DBMS) 17 September 2018 OOD - FET.HUST

Tài liệu Mô tả các yêu cầu (Requirements) Phân tích thiết kế (architecture, design, source code,…) Các bộ kiểm thử (Tests) Mô hình hóa các hoạt động của việc quản lý dự án. Thống nhất 17 September 2018 OOD - FET.HUST

Lịch sử UML 17 September 2018 OOD - FET.HUST

Lịch sử UML (tiếp) 17 September 2018 OOD - FET.HUST

Đóng góp cho UML Booch Rumbaugh Jacobson Fusion Meyer Embley Harel Operation descriptions, Message numbering Meyer Before and after conditions Harel State charts Wirfs-Brock Responsibilities Embley Singleton classes, High-level view Odell Classification Shlaer - Mellor Object Lifecycles Gamma, et.al Frameworks, patterns, notes Booch Jacobson Rumbaugh 17 September 2018 OOD - FET.HUST

Các sơ đồ trong UML Tĩnh (Sơ đồ cấu trúc-Structure diagram) Sơ đồ đối tượng (Object diagram) Sơ đồ lớp (Class diagram) Sơ đồ thành phần (Component diagram) Sơ đồ triển khai (Deployment diagram) Động (Sơ đồ hành vi – Behavior diagram) Sơ đồ tương tác (Interaction diagram) Sơ đồ tuần tự (Sequence diagram) Sơ đồ hợp tác (Collborate Diagram) Sơ đồ hoạt động (Activity diagram) Sơ đồ chuyển dịch trạng thái (State transition diagram) Sơ đồ use-case (Use-case diagram) 17 September 2018 OOD - FET.HUST

Các sơ đồ trong UML 17 September 2018 OOD - FET.HUST

Sơ đồ lớp và sơ đồ đối tượng Mô hình hóa cấu trúc tĩnh của hệ thống trong quá trình phát triển, bao gồm các lớp và quan hệ giữa chúng. Sơ đồ đối tượng: Là một thể hiện của sơ đồ lớp, biểu diễn trạng thái của hệ thống tại một thời điểm cụ thể. Nó chính là một trường hợp thực tế của sơ đồ lớp. 17 September 2018 OOD - FET.HUST

Lớp: Một tập các đối tượng có cùng các thuộc tính, hành động và quan hệ ngữ nghĩa Biểu diễn bằng 1 hình chữ nhật Bao gồm Tên (Name) Để phân biệt với các lớp khác Là một chuỗi ngữ cảnh Simple name Path name Thuộc tính (Attributes) Một dữ liệu trừu tượng mà một đối tượng thuộc lớp đó có thể chứa Tên thuộc tính là một danh từ/cụm danh từ Phương thức (Operators) Một hành vi trừu tượng mà một đối tương thuộc lớp đó có thể thi hành Tên phương thức là một động từ/cụm động từ 17 September 2018 OOD - FET.HUST

Ví dụ: Customer Window height width open() close() move() display() Class name Attributes Operations Wall Cusomer Management::Customer java::awt::Rectangle 17 September 2018 OOD - FET.HUST

Quan hệ Phụ thuộc (Dependency) Tổng quát hóa (Generalization) Liên kết (Association) 17 September 2018 OOD - FET.HUST

Phụ thuộc (Dependency) Một thay đổi trong một đối tượng này có thể ảnh hưởng đến đối tượng còn lại Client Supplier Supplier phụ thuộc vào Client hay Client ảnh hưởng đến Supplier Client Supplier Client Supplier 17 September 2018 OOD - FET.HUST

Khái quát hóa (Generalization) Các đối tượng của lớp cụ thể (lớp con) chia sẻ cấu trúc và hành vi của lớp tổng quát (lớp cha) Định nghĩa một cấp bậc trừu tượng trong đó một lớp con kế thừa từ một hoặc nhiều lớp cha Đơn kế thừa (Single inheritance) Đa kế thừa (Multiple inheritance) Supperclass Animal Bird Wolf Horse Subclass 17 September 2018 OOD - FET.HUST

Liên kết (Association) Một sự kết nối giữa 2 đối tượng Aggregation Quan hệ toàn thể-bộ phận Composition Sở hữu chặt và gắn liền với đời sống Bộ phận không thể tồn tại mà không có toàn thể Employer Employee Work for Professor University Student Schedule whole part Student Schedule whole part 17 September 2018 OOD - FET.HUST

Association (tiếp) Lực lượng (Multiplicity) Điều hướng (Navigation) Số lượng đối tượng tham gia vào một quan hệ Điều hướng (Navigation) Liên kết là các quan hệ hai chiều Thường mong muốn hạn chế duyệt theo một hướng Student Schedule 1 0..* 17 September 2018 OOD - FET.HUST

Sơ đồ lớp 17 September 2018 OOD - FET.HUST

Sơ đồ đối tượng 17 September 2018 OOD - FET.HUST

Gói (Package) Nhóm các phần tử khác của UML thành một gói. Sơ đồ chỉ chứa các gói và mối quan hệ giữa chúng 17 September 2018 OOD - FET.HUST

Sơ đồ thành phần – Component Diagram Một bộ phận gần như độc lập có thể đóng vai trò một hệ thống thực thi một chức năng riêng biệt Có thể là Một thành phần mã nguồn (source code) Một thành phần run-time Một thành phần có thể thực thi orderform.java <> orderform.java <> orderform.java 17 September 2018 OOD - FET.HUST

Sơ đồ thành phần Bao gồm các thành phần và mối quan hệ giữa các thành phân trong môi trường cài đặt. Các thành phần đại diện cho các yếu tố cài đặt vật lý của hệ thống (CSDL, I/O, Giao diện,…). 17 September 2018 OOD - FET.HUST

Sơ đồ thành phần – Component Diagram 17 September 2018 OOD - FET.HUST

Sơ đồ kịch bản sử dụng (use-case) Mô tả hệ thống từ cách nhìn, quan điểm của NSD. Mô tả các tình huống của hệ thống Use-case mô tả cái mà hệ thống thi hành, không phải là thi hành như thế nào Đặt tả trạng thái của một use-case trong văn bản rõ ràng giúp cho người bên ngoài dự án cũng có thể hiểu dễ dàng 17 September 2018 OOD - FET.HUST

Sơ đồ use-case Tập hợp các hành động mà hệ thống thi hành để đạt được một kết quả có thể thấy được đối với một tác nhân. Được diểu bằng 1 hình ellipse Bao gồm Tên Luồng sự kiện Kịch bản Place order 17 September 2018 OOD - FET.HUST

Sơ đồ use-case Tên Để phân biệt với các use-case khác Là một chuỗi ngữ cảnh Tên đơn giản Tên đường dẫn Là những cụm động từ Place order Validate user Simple name Sensors:: Calibrate location Path name 17 September 2018 OOD - FET.HUST

Sơ đồ use-case Actor Biểu diễn cho tất cả những gì tương tác với hệ thống Biểu diễn những vai trò của người dùng trong hệ thống Có thể trao đổi thông tin một cách chủ động với hệ thống hoặc nhận thông tin bị động từ hệ thống Có thể biểu diễn người, thiết bị phần cứng, hoặc một hệ thống khác Printer Professor Student Billing System 17 September 2018 OOD - FET.HUST

Sơ đồ use-case – ví dụ: Login Maintain Professor Information Registrar Submit Grades Professor View Report Card Select Courses to Teach Student Course Catalog Register for Courses Maintain Student Information Maintain Professor Information Registrar Billing System Close Registration Login 17 September 2018 OOD - FET.HUST

Sơ đồ use-case Được áp dụng trong 2 cách Để mô hình hoá ngữ cảnh của một hệ thống Vẽ một đường biên xung quanh hệ thống Xác nhận những actor nằm ngoài hệ thống mà có tương tác với nó Đặc tả vai trò của các actor Course Registration System Student Billing System Course Catalog Registrar boundary? 17 September 2018 OOD - FET.HUST

Sơ đồ use-case Để mô tả yêu cầu của hệ thống Đặc tả những cái mà hệ thống sẽ phải làm (không phục thuộc vào cách làm) Đặc tả những hành vi hướng tới của hệ thống Student Billing System Professor Registrar Maintain Schedule Request Course Roster Maintain Curriculum 17 September 2018 OOD - FET.HUST

Sơ đồ triển khai Mô tả cách bố trí các thiết bị phần cứng trong kiến trúc tổng thể của hệ thống. Gồm các nút (node) đại diện cho các thiết bị , các thành phần bên trong và mối quan hệ giữa các nút. Node: Một thành phần vật lý tồn tại trong thời điểm run-time và biểu diễn một tài nguyên tính toán Thường có ít nhất một bộ nhớ và khả năng xử lý 17 September 2018 OOD - FET.HUST

Sơ đồ triển khai 17 September 2018 OOD - FET.HUST

Sơ đồ tương tác Tương tác: Tham gia trong một tương tác Link Một tập các thông điệp chuyển đổi giữa một tập các đối tượng để thi hành một mục đích cụ thể. Tham gia trong một tương tác Các đối tượng Link Một kết nối ngữ nghĩa giữa 2 đối tượng Có một link giữa 2 đối tượng, một đối tượng có thể gởi một thông điệp đến đối tượng kia Thông điệp Đặc tả của một giao tiếp giữa 2 đối tượng p: Person : Company Assign (development) link message 17 September 2018 OOD - FET.HUST

Sơ đồ tuần tự (Sequence Diagram) Biểu diễn một tương tác nhấn mạnh trình tự thời gian của các thông điệp Mô hình hoá luồng của tiến trình Mô tả một kịch bản(scenario) cụ thể Thường chứa Đối tượng (đường thời gian sống (lifeline)) Sự tồn tại của một đối tượng tại một thời điểm cụ thể Thông điệp Một sự giao tiếp của các đối tượng diễn ra trong luồng thông tin Luồng điều khiển (Focus of control) Khoảng thời gian mà một đối tượng đang thi hành một hành động 17 September 2018 OOD - FET.HUST

Sequence Diagram – Ví dụ 1: PerformResponsibility Client Object Supplier Object Message :Client :Supplier Focus of Control Reflexive Message Object Lifeline 1.1: PerformAnother Responsibility Hierarchical Message Numbering 17 September 2018 OOD - FET.HUST

Sequence Diagram – Ví dụ (tiếp) : Student : RegisterForCoursesForm : RegistrationController : Course Catalog : CourseCatalogSystem A list of the available course offerings for this semester are displayed Student wishes to create a new schedule 1. // create schedule( ) 1.2. // display course offerings( ) 1.1. // get course offerings( ) 1.1.1. // get course offerings(forSemester) 1.3. // display blank schedule( ) A blank schedule is displayed for the students to select offerings 1.1.1.1. // get course offerings( ) 17 September 2018 OOD - FET.HUST

Collaboration Diagram Nhấn mạnh vào trật tự không gian của các đối tượng tham gia vào tương tác Mô hình hoá luồng của tiến trình Mô tả trật tự vị trí giữa các đối tượng và xử lý Thường chứa Object Message Link Một quan hệ giữa các đối tượng qua đó thông điệp có thể được gởi Có thể là một cụ thể hóa của một sự kết hợp 17 September 2018 OOD - FET.HUST

Collaboration Diagram (t.) 1: PerformResponsibility Client Object Supplier Object Message Link :Client :Supplier 17 September 2018 OOD - FET.HUST

Collaboration Diagram (t.) : Student : RegisterForCoursesForm : RegistrationController : CourseCatalogSystem 1.2. // display course offerings( ) 1.3. // display blank schedule( ) : Course Catalog 1. // create schedule( ) 1.1. // get course offerings( ) 1.1.1. // get course offerings(forSemester) 1.1.1.1. // get course offerings( ) 17 September 2018 OOD - FET.HUST

Activity Diagram Biểu diễn các bước tuần tự trong một quá trình tính toán Nhấn mạnh luồng từ hành động này sang hành động khác Thường chứa Action state Không thể phân rã Đơn nhất: event may occurs, but the work of state is not interrupted Thời gian thi hành không đáng kể Activity state Có thể được phân rã Không “đơn nhất” Tốn một số thời gian để 17 September 2018 OOD - FET.HUST

Tách và gộp (Forking and Joining) Swimlanes Transition Chuyển đổi từ một trang thái hay hành động sang một trạng thái hay hành động kế tiếp Rẽ nhánh (Branching) Chỉ rõ việc rẽ nhánh dựa trên một vài biểu thức điều kiện Sử dụng cho các Using for sequence transitions Tách và gộp (Forking and Joining) Mô hình hóa cho các luồng song song Swimlanes Gom nhóm các trạng thái, hành động trên một lược đồ Mô hình hóa luồng công việc cho quy trình nghiệp vụ 17 September 2018 OOD - FET.HUST

Sử dụng trong hai cách Mô hình hóa luồng công việc Nhấn mạnh vào các hoạt động được xem bởi các actor có tham gia với hệ thống Mô hình hóa một thao tác Sử dụng như lược đồ luồng công việc chi tiết của một tính toán Mô tả luồng sự kiện của một use-case 17 September 2018 OOD - FET.HUST

Các cơ chế mở rộng Stereotypes Tagged values Contraints Phân loại và mở rộng hệ thống các thành phần ký hiệu UML Định nghĩa một phần tử mô hình hóa bằng thuật ngữ mới Biễu diễn với tên trong dấu kép hoặc bằng một biểu tượng khác Tagged values Sự mở rộng cho thuộc tính hay của một phần tử UML Mở rộng thuộc tính hoặc một phần tử UML Được biểu diễn bằng tên bên trong dấu ngoặc Contraints Thêm mới các luật hoặc hiệu chỉnh các luật đã có Biểu diễn bằng một chuỗi kèm trong ngoặc và cạnh thành phần chịu ảnh hưởng bởi ràng buộc đó 17 September 2018 OOD - FET.HUST

Phân tích thiết kế hướng đối tượng Use-case driven Sử dụng use-case để mô hình hóa các hoạt động của hệ thống. Use-case: Cách NSD giao tiếp với hệ thống để thực hiện các chức năng hệ thống. Architecture centric Các đặc tả, việc xây dựng và làm tài liệu cho hệ thống đều phụ thuộc vào kiến trúc của hệ thống. Iterative and Incremental Kiểm thử và chỉnh sửa trong suốt quá trình xây dựng và phát triển. 17 September 2018 OOD - FET.HUST

Unified Process Là một phương pháp phân tích thiết kế hệ thống sử dụng UML. Tổng hợp của cả 3 phương pháp trên:Use-case driven, Architecture centric và Iterative and Incremental. 2 chiều Thời gian Công việc 17 September 2018 OOD - FET.HUST

Unified Process Gồm các giai đoạn: Inception: Khởi tạo Elaboration: Chuẩn bị Construction: Xây dựng Transition: Chuyển giao 17 September 2018 OOD - FET.HUST

Inception - Khởi tạo Phân tích tính khả thi của dự án. Các công việc: Mô hình hóa nghiệp vụ, tìm hiểu yêu cầu và phân tích. Kết quả: Tài liệu mô tả phạm vi, các yêu cầu và ràng buộc, kế hoạch dự án, mô tả tính khả thi và rủi ro của hệ thống 17 September 2018 OOD - FET.HUST

Elaboration - Chuẩn bị (kỹ) Hoàn thiện các tài liệu mô hình hóa nghiệp vụ. Đánh giá lại rủi ro. Kế hoạch dự án đầy đủ. Kết quả: Lược đồ cấu trúc và hoạt động bằng UML Kế hoạch dự án chi tiết 17 September 2018 OOD - FET.HUST

Construction - Xây dựng Tập trung xây dựng hệ thống Tuy nhiên các công việc khác như tìm hiểu yêu cầu, phân tích, thiết kế cũng liên quan đến pha này (thường đề cập đến những yêu cầu mới phát sinh hoặc những yêu cầu còn thiếu sót trong quá trình tìm hiểu). 17 September 2018 OOD - FET.HUST

Transition - Chuyển giao Kiểm thử Có thể phải tìm hiểu, thiết kế lại một phần Cài đặt hệ thống Đào tạo người dùng Sản phẩm: Hệ thống thực tế Các tài liệu hướng dẫn 17 September 2018 OOD - FET.HUST

Các luồng công việc (Workflows) Luồng kỹ thuật Mô hình hoá nghiệp vụ Tìm hiểu yêu cầu Phân tích Thiết kế Triển khai Kiểm thử Cài đặt Luồng hỗ trợ Quản lý dự án Quản lý cấu hình và thay đổi Môi trường làm việc 17 September 2018 OOD - FET.HUST

Mô hình hóa nghiệp vụ Chỉ ra các dự án tiềm năng của tổ chức. Giúp tổ chức hiểu giá trị của hệ thống sẽ được xây dựng. Chủ yếu thực hiện trong giai đoạn khởi tạo 17 September 2018 OOD - FET.HUST

Tìm hiểu yêu cầu Đưa ra yêu cầu về chức năng và phi chức năng. Các phương pháp Phỏng vấn Quan sát Kết hợp (JAD) Phân tích tài liệu Câu hỏi sẵn 17 September 2018 OOD - FET.HUST

Phân tích Thiết kế kiến trúc tổng thể của hệ thống Sử dụng các lược đồ để mô tả hoạt động của hệ thống 17 September 2018 OOD - FET.HUST

Thiết kế Phân tích kỹ các vấn đề, luồng công việc, tập trung đưa ra giải pháp cho vấn đề với điều kiện môi trường cụ thể. Các công việc: thiết kế giao diện người dùng, CSDL, kiến trúc vật lý,… 17 September 2018 OOD - FET.HUST

Triển khai Lựa chọn giải pháp khả thi để xây dựng hệ thống. Xây dựng các lớp. Kiểm thử tại chỗ các lớp mới được xây dựng Tích hợp hệ thống 17 September 2018 OOD - FET.HUST

Kiểm thử Đảm bảo chất lượng hệ thống Là một luồng công việc được sử dụng nhiều lần trong toàn bộ quá trình xây dựng hệ thống, sau mỗi giai đoạn,.. 17 September 2018 OOD - FET.HUST

Cài đặt Đóng gói Phân phối Cài đặt Kiểm thử beta Đào tạo Chuyển đổi hệ thống 17 September 2018 OOD - FET.HUST

Quản lý dự án Lường trước rủi ro Quản lý phạm vi Dự tính thời gian hoàn thành mỗi giai đoạn Dự toán chi phí Theo dõi toàn bộ quá trình xây dựng hệ thống 17 September 2018 OOD - FET.HUST

Môi trường làm việc Công cụ cần sử dụng Các quy trình cần tuân thủ 17 September 2018 OOD - FET.HUST

UP-Các giai đoạn và luồng công việc 17 September 2018 OOD - FET.HUST

Unified Process mở rộng Các khiếm khuyết của UP Không đề cập đến tổ chức nhân sự, ngân sách, hay quản lý các điều khoản hợp đồng Thiếu các vấn đề liên quan đến bảo trì Không đề cập đến các công việc liên quan đến nhau (như là vấn đề tái sử dụng….) UP mở rộng: Khắc phục các khiếm khuyết trên. 17 September 2018 OOD - FET.HUST

Benefits of OOSAD 17 September 2018 OOD - FET.HUST

MOOSAD Minimalist Object-Oriented System Analysis and Design. Dựa trên mô hình phát triển ứng dụng nhanh theo từng pha (Phased-Development RAD). 17 September 2018 OOD - FET.HUST

MOOSAD 17 September 2018 OOD - FET.HUST

MOOSAD Chapter Steps Deliverable 3 Identifying business value System request Analyze feasibility Feasibility Study 4 Develop workplan Work plan Staff the project Staff plan Control and direct project GANTT Chart 5 Requirements determination Information 6 Functional modeling Function Models 7 Structural modeling Structure Models 8 Behavioral modeling Dynamic Models 9 Moving on to design Factored Models 17 September 2018 OOD - FET.HUST

MOOSAD Chapter Steps Deliverable 10 Class and method design logic design 11 Data management layer design Database design 12 Human computer interaction layer design Interface design 13 Physical architecture layer design Architecture design 14 Construction and verification Completed syst 15 Installation Training plan Operations and support Support plan 17 September 2018 OOD - FET.HUST

Tổng kết Phân tích thiết kế hướng đối tượng UML Unified process MOOSAD 17 September 2018 OOD - FET.HUST