1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu UML - Phân tích và thiết kế hướng đối tượng ppt

346 3,4K 14

Đ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

Thông tin cơ bản

Định dạng
Số trang 346
Dung lượng 18,95 MB

Nội dung

2.3.2 Biểu đồ cấu trúc• Biểu đồ triển khai deployment diagram  Biểu diễn cấu trúc phần cứng và các thành phần phần mềm của hệ thống... 2.3.2 Biểu đồ cấu trúc• Biểu đồ thành phần compone

Trang 1

Ph ân tích và thiết kế hướng

đối tượng

Analysis and Design)

Giảng viên: Phạm Ngọc Nam

Trang 2

Làm theo nhóm tối đa 5 sinh viên

Nội dung: phân tích và thiết kế hệ thống sử dụng Rational

Trang 3

Nội dung

1 Giới thiệu chung về phân tích và thiết kế hệ thống

2 Giới thiệu về phân tích và thiết kế hướng đối

tượng với UML

3 Lập kế hoạch

4 Phân tích hệ thống

5 Thiết kế hệ thống

6 Triển khai hệ thống

Trang 4

Tài liệu tham khảo

• Systems Analysis and Design with UML Version

2.0-An object oriented approach; Alan Dennis,

Barbara Haley Wixom, David Tegarden.

www.uml.org

• www.rational.com

www.Google.com

Trang 5

tích và thiết kế hệ thống

1.1 Giới thiệu

1.2 Quy trình phát triển hệ thống

1.3 Các phương pháp phát triển hệ thống

Trang 6

1.1 Giới thiệu

Trang 7

Hệ thống sẽ làm việc như thế nào?

Tri ển khai hệ thống

Trang 8

Lập kế hoạch

• Xác định giá trị kinh doanh của hệ thống

• Phân tích tính khả thi

• Xây dựng kế hoạch công việc

• Xác định nguồn nhân lực cho dự án

• Điều khiển và quản lý dự án

Trang 9

Phân tích

• Phân tích hệ thống

• Thu thập các nguồn thông tin

• Mô hình hoá quá trình

• Mô hình hóa dữ liệu

Trang 10

Thiết kế

• Xác định chiến lược thiết kế

• Thiết kế cấu trúc

• Thiết kế giao diện

• Thiết kế cơ sở dữ liệu

• Thiết kế chương trình

Trang 11

Triển khai

• Xây dựng hệ thống

• Cài đặt hệ thống

Trang 12

Các pha và kết quả của từng pha

PlanningAnalysisDesignImplementation

Project PlanSystem Proposal

System SpecificationNew System and Maintenance Plan

Trang 13

Phương pháp thác nước (waterfall method)

Phương pháp phát triển song song (Parallel

development)

• Ph ương pháp phát triển nhanh ứng dụng ( RAD)

Phương pháp phát triển theo các pha

Phương pháp xây dựng nguyên mẫu (prototyping)

Th ông thường (regular)

Lo ại bỏ ( throwaway )

• Ph ương pháp phát triển rất nhanh ( Agile

development)

Trang 14

1.3.1 Thiết kế cấu trúc

• Dự án sẽ tiến triển từ bước này sang bước tiếp

theo một cách có hệ thống

• Thông thường, một bước phải được hoàn thành

trước khi bắt đầu bước tiếp theo

Trang 15

Phương pháp thác nước

Trang 16

Phương pháp thác nước

• Ưu điểm:

Trước khi lập trình thì các yêu cầu về hệ thống được

xác định rất chi tiết và đầy đủ => giảm thiểu được sự

thay đổi về yêu cầu trong quá trình phát triển hệ thống

• Nhược điểm:

Thời gian từ khi đề xuất dự án đến khi có sản phẩm cuối cùng thường rất dài (vài tháng -> vài năm)

Trang 17

Phương pháp phát triển song song

Trang 19

Phương pháp phát triển theo pha

Trang 20

Phương pháp xây dựng nguyên mẫu thông

thường

Trang 21

Phương pháp xây dựng nguyên mẫu loại bỏ

Trang 22

1.3.3 Lựa chọn phương pháp phù hợp

• Tiêu chí:

Độ rõ ràng, đầy đủ của các yêu cầu của người sử dụng

Khả năng, mức độ thành thạo về công nghệ

Độ phức tạp của hệ thống

Độ tin cậy của hệ thống

Quỹ thời gian

Trang 23

1.3.3 Lựa chọn phương pháp phù hợp

Trang 24

thiết kế hướng đối tượng với UML

Trang 26

2.1 Giới thiệu

• Lịch sử phát triển của UML

Trang 27

UML 1.1 (OMG Standard)

UML 1.3 (extensibility) UML 1.4 (action semantics)

UML 1.4.1

1996

1997 1998 2001 2002 2003

UML 2.0

Trang 28

2.1 Giới thiệu

• Thiết kế cấu trúc và thiết kế hướng đối tượng

Trang 29

2.1 Giới thiệu

• Thiết kế cấu trúc và thiết kế hướng đối tượng

Trang 30

hướng đối tượng

Trang 31

2.2.1 Lớp và đối tượng

• Lớp (Class) – Template to define specific

instances or objects

• Đối tượng (Object) – Instantiation of a class

• Thuộc tính (Attributes) – Describes the object

• Chức năng (Behaviors) – specify what object can

do

Trang 32

2.2.1 Lớp và đối tượng

Trang 34

2.2.2 Phương thức và message

• Phương thức (Methods) implement an object’s behavior

Analogous to a function or procedure

• Messages are sent to trigger methods

Procedure call from one object to the next

Trang 35

2.2.2 Phương thức và message

Trang 36

2.2.3 Tóm lược và ẩn thông tin

• Encapsulation

combination of data and process into an entity

• Information Hiding

Only the information required to use a software module

is published to the user

Trang 37

2.2.4 Thừa kế

• Superclasses or general classes are at the top of a

hierarchy of classes

• Subclasses or specific classes are at the bottom

• Subclasses inherit attributes and methods from

classes higher in the hierarchy

Trang 38

2.2.4 Thừa kế

Trang 39

2.2.4 Thừa kế

Trang 40

2.2.5 Đa hình thái và liên kết động

• Polymorphism

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

Trang 41

2.2.5 Đa hình thái và liên kết động

Trang 42

4 #define SHAPE_H

5

6 class Shape {

7 public:

8 virtual double area() const { return 0.0; }

9 virtual double volume() const { return 0.0; }

10

11 // pure virtual functions overridden in derived classes

12 virtual void printShapeName() const = 0;

13 virtual void print() const = 0;

30 Point( int = 0, int = 0 ); // default constructor

31 void setPoint( int, int );

32 int getX() const { return x; }

33 int getY() const { return y; }

Trang 44

66 void setRadius( double );

67 double getRadius() const;

68 virtual double area() const;

69 virtual void printShapeName() const { cout << "Circle: "; }

70 virtual void print() const;

Trang 45

84 Circle::Circle( double r, int a, int b )

85 : Point( a, b ) // call base-class constructor

92 double Circle::area() const

93 { return 3.14159 * radius * radius; }

Trang 46

114 virtual double area() const;

115 virtual double volume() const;

116 virtual void printShapeName() const { cout << "Cylinder: "; }

117 virtual void print() const;

Trang 47

131 Cylinder::Cylinder( double h, double r, int x, int y )

132 : Circle( r, x, y ) // call base-class constructor

147 double Cylinder::volume() const

148 { return Circle::area() * height; }

Trang 48

173 void virtualViaPointer( const Shape * );

174 void virtualViaReference( const Shape & );

181 Point point( 7, 11 ); // create a Point

182 Circle circle( 3.5, 22, 8 ); // create a Circle

183 Cylinder cylinder( 10, 3.3, 10, 10 ); // create a Cylinder

184

185 point.printShapeName(); // static binding

Trang 49

2 Function calls

189 circle.printShapeName(); // static binding

190 circle.print(); // static binding

191 cout << '\n';

192

193 cylinder.printShapeName(); // static binding

194 cylinder.print(); // static binding

208 // Loop through arrayOfShapes and call virtualViaPointer

209 // to print the shape name, attributes, area, and volume

210 // of each object using dynamic binding.

211 cout << "Virtual function calls made off "

217 // Loop through arrayOfShapes and call virtualViaReference

218 // to print the shape name, attributes, area, and volume

219 // of each object using dynamic binding.

Trang 50

229 // Make virtual function calls off a base-class pointer

230 // using dynamic binding.

231 void virtualViaPointer( const Shape *baseClassPtr )

239 // Make virtual function calls off a base-class reference

240 // using dynamic binding.

241 void virtualViaReference( const Shape &baseClassRef )

Trang 52

2.3.1 Giới thiệu về UML

"The Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive

system.”

• UML chỉ đơn thuần là ngôn ngữ đồ hoạ để mô hình hoá chứ không phải là phương pháp để phát triển hệ thống

Grady Booch, Ivar Jacobsen, Jim Rumbaugh

Rational Software

Trang 53

2.3.1 Giới thiệu về UML

• UML 2.0 cung cấp 14 biểu đồ để mô hình hoá cấu

trúc và chức năng của hệ thống, chia làm 2 nhóm:

Biểu đồ mô hình cấu trúc

Biểu đồ mô hình chức năng

Trang 54

2.3.2 Biểu đồ cấu trúc

• 6 loại biểu đồ cấu trúc:

Biểu đồ lớp (Class)

Biểu đồ đối tượng (Object)

Biểu đồ gói (package)

Biểu đồ triển khai (Deployment)

Biểu đồ thành phần (Component)

Biểu đồ cấu trúc phức hợp (Composite structure

diagrams)

Trang 55

2.3.2 Biểu đồ cấu trúc

• Biểu đồ lớp (class diagram)

Biểu diễn mối quan hệ giữa các lớp

Trang 56

2.3.2 Biểu đồ cấu trúc

• Biểu đồ đối tượng (object diagram)

Biểu diễn mối quan hệ giữa các đối tượng

Trang 57

2.3.2 Biểu đồ cấu trúc

• Biểu đồ gói (package diagram)

Biểu đồ gói gộp các thành phần khác nhau của UML (ví dụ: lớp) để tạo thành thành phần lớn hơn

Trang 58

2.3.2 Biểu đồ cấu trúc

• Biểu đồ triển khai (deployment diagram)

Biểu diễn cấu trúc phần cứng và các thành phần phần mềm của hệ thống

Trang 59

2.3.2 Biểu đồ cấu trúc

• Biểu đồ thành phần (component diagram)

Biểu diễn quan hệ giữa các thành phần của hệ thống

Trang 60

2.3.2 Biểu đồ cấu trúc

• Biểu đồ cấu trúc phức hợp (composite structure diagram)

Minh hoạ chi tiết cấu trúc bên trong của một lớp

Trang 61

2.3.3 Biểu đồ chức năng

• 8 loại biểu đồ chức năng

Biểu đồ hoạt động (activity diagram)

Biểu đồ tương tác (interaction diagrams)

Biểu đồ chuỗi tuần tự (sequence diagram)

Biểu đồ cộng tác (communication/collaboration diagram)

Biểu đồ khát quát tương tác (interaction overview diagram)

Biểu đồ thời gian (timing diagram)

Biểu đồ máy trạng thái (state machines)

Máy trạng thái chức năng (behavior state machines)

Máy trạng thái giao thức (protocol state machines)

Biểu đồ ca sử dụng (use case diagram)

Trang 62

2.3.3 Biểu đồ chức năng

• Biểu đồ hoạt động (activity

diagram)

Được dùng để mô tả luồng

công việc của hệ thống hoặc

luồng hoạt động trong một

ca sử dụng hoặc mô tả thiết

kế chi tiết của một phương

thức (method)

Trang 63

2.3.3 Biểu đồ chức năng

• Biểu đồ chuỗi tuần tự (sequence diagram)

Mô tả các hoạt động của các đối tượng trong một ca sử dụng dựa vào thứ tự xuất hiện theo thời gian

Trang 64

2.3.3 Biểu đồ chức năng

• Biểu đồ cộng tác (collaboration diagram)

Là cách biểu diễn khác của biểu đồ chuỗi tuần tự nhưng tập trung vào mối quan hệ và giao tiếp giữa các đối tượng

Trang 65

2.3.3 Biểu đồ chức năng

• Biểu đồ khát quát tương tác (interaction overview diagram)

Được dùng để mô tả tương tác giữa các đối tượng trong các ca sử dụng phức tạp

Ít được sử dụng

• Biểu đồ thời gian (timing diagram)

Được dùng để mô tả tương tác giữa các đối tượng theo thời gian Chủ yếu được dùng để mô tả sự thay đối trạng thái của đối tượng khi có tác động của một sự kiện theo thời gian.

Được dùng để phát triển các hệ thống thời gian thực và hệ thống nhúng

Trang 67

2.3.3 Biểu đồ chức năng

• Biểu đồ máy trạng thái giao thức (protocol state machines)

Được dùng để mô tả giao thức giữa các lớp

Ví dụ: open database -> Query or update

• Biểu đồ ca sử dụng (use case diagram)

Được dùng để mô tả tương tác giữa một hệ thống với người sử dụng hoặc với các hệ thống khác có tương tác với nó.

Là công cụ để mô tả các yêu cầu của hệ thống

Là một trong những công cụ quan trọng nhất trong phân tích và thiết kế hướng đối tượng

Trang 68

2.3.3 Biểu đồ chức năng

Trang 69

2.3.3 Biểu đồ chức năng

Trang 70

2.3.3 Biểu đồ chức năng

Trang 72

2.3.4 Các cơ chế mở rộng

• Nhãn:giá trị (tagged values)

Là một cặp chuỗi ký tự: nhãn (tag) và giá trị (value) được dùng để

bổ sung thông tin cho một phần tử nào đó (lớp, đối tượng, quan hệ

…)

Nhãn và giá trị được đặt trong ngoặc { }

Trang 73

2.3.4 Các cơ chế mở rộng

• Khuôn mẫu (stereotype)

Cho phép mở rộng UML bằng cách sử dụng các phần tử mô hình hoá đã có sẵn trong UML

Khuôn mẫu có thể sử dụng ràng buộc và tagged values

Khuôn mẫu được đặt trong dấu << >>

Trang 74

2.3.5 Tóm tắt

Trang 75

tượng với UML 2.0

2.4.1 Đặc điểm cơ bản của OOAD

2.4.2 Ưu điểm của OOAD

2.4.3 The Unified Process

2.4.4 The MOOSAD

Trang 76

2.4.1 Đặc điểm cơ bản của OOAD

• Use-case driven

• Architecture Centric

• Cấu trúc phần mềm quyết định việc mô tả, xây dựng và

viết tài liệu hệ thống

• 3 dạng cấu trúc của một hệ thống:

• Chức năng (functional view): chức năng bên ngoài của hệ thống

từ góc nhìn của người sử dụng : biểu đồ ca sử dụng, biểu đồ hoạt động

• Cấu trúc tĩnh (static view): lớp, thuộc tính, phương thức, quan hệ

• Cấu trúc động (dynamic view): chức năng bên trong của hệ thống: biểu đồ máy trạng thái chức năng

• Iterative and Incremental

Trang 77

2.4.2 Ưu điểm của OOAD

• Việc chia nhỏ một hệ thống lớn thành các module

sẽ giúp cho việc giải quyết vấn đề dễ dàng hơn, dễ chia sẻ giữa các thành viên của dự án và dễ dàng trao đổi với người dùng về các yêu cầu của hệ

Trang 78

2.4.2 Ưu điểm của OOAD

Trang 79

2.4.3 The Unified process

• Unified process là một phương pháp phát triển hệ

thống trong đó quy định khi nào thì sử dụng các

kỹ thuật UML và sử dụng chúng như thế nào trong quá trình phân tích và thiết kế hệ thống.

Tác giả: Booch, Jacobsen, Rumbaugh

Là phương pháp hướng đối tượng

Không phải là một quy trình phát triển phần mềm hoàn thiện

Không xét đến các vấn đề về phân bổ nhân lực, ngân quỹ, quản

lý hợp đồng

Không quy định về các hoạt động bảo trì hay hỗ trợ khách hàng

Không xét đến các vấn đề tương tác giữa các dự án

Trang 80

2.4.3 The Unified process

Trang 81

2.4.3 The Unified process

• Pha khởi tạo (Inception): giống như pha lập kế

hoạch

Mô hình hoá giá trị kinh doanh của hệ thống (business modeling) *

Xác định yêu cầu (requirements)*

Phân tích (analysis)*

Thiết kế (design)

Thực hiện (implementation)

Kiểm tra (test)

Môi trường phát triển (environment)*

Phạm vi của dự án

Các yêu cầu và ràng buộc quan trọng

Kế hoạch dự án bước đầu

Miêu tả tính khả thi và rủi ro của dự án

Lựa chọn môi trường cần thiết để phát triển hệ thống

Trang 82

2.4.3 The Unified process

• Pha phát triển (elaboration): hoàn thiện mô hình

kinh doanh, đánh giá lại rủi ro và hoàn thiện kế

hoạch dự án

Các bước liên quan:

Thu thập yêu cầu (requirements)

Phân tích (analysis)*

Thiết kế (design)*

Thực hiện (implementation)

Kiểm tra (test)

Triển khai (deployment)

Quản lý cấu hình và thay đổi (configuration and change management)

Kết quả:

Bi ểu đồ cấu trúc và chức năng UML

Phi ên bản hoạt động đầu tiên của hệ thống

Trang 83

2.4.3 The Unified process

• Pha xây dựng (construction): tập trung chủ yếu

vào lập trình

Các bước liên quan:

Thu thập yêu cầu (requirements)

Phân tích (analysis)

Thiết kế (design)

Thực hiện (implementation)*

Kiểm tra (test)

Triển khai (deployment)

Quản lý cấu hình và thay đổi (configuration and change management)*

Kết quả:

Phiên bản beta của hệ thống

Trang 84

2.4.3 The Unified process

• Pha chuyển tiếp (transition): tập trung chủ yếu vào

kiểm tra và triển khai

Các bước liên quan:

Thu thập yêu cầu (requirements)

Phân tích (analysis)

Thiết kế (design)

Thực hiện (implementation)

Kiểm tra (test)*

Triển khai (deployment)*

Quản lý cấu hình và thay đổi (configuration and change management)*

Trang 85

2.4.3 The Unified process

Các bước kỹ thuật (Engineering workflows)

1 Mô hình hoá giá trị kinh doanh (business modeling)

Diễn ra chủ yếu trong pha khởi tạo

Phát hiện vấn đề và xác định các dự án tiềm năng

Xác định giá trị kinh doanh mà dự án đem lại

Thu thập dữ liệu và mô hình hoá ca sử dụng có thể được sử dụng

2 Xác định yêu cầu (requirements)

Xác định yêu cầu về chức năng và cả không chức năng

Yêu cầu được thu thập từ người sử dụng, người quản lý người

Trang 86

2.4.3 The Unified process

4 Thiết kế

Chuyển từ mô hình phân tích sang mô hình thiết kế

Thiết kế giao diện, cơ sở dữ liệu, cấu trúc vật lý của hệ thống, thiết kế chi tiết các lớp

5 Thực hiện (implementation)

Lập trình: viết các lớp, chương trình và sử dụng các lớp trong thư viện

Tích hợp các module

6 Kiểm tra (Test)

Kiểm tra tích hợp hệ thống, chức năng, kiểm tra khả năng chấp nhận của người sử dụng …

Việc kiểm tra đuợc tiến hành trong suốt quá trình phát triển của hệ thống

7 Triển khai (deployment)

Đóng gói phần mềm, phân phối, cài đặt và beta testing

Ngày đăng: 26/01/2014, 16:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w