You are on page 1of 31

Nhóm chuyên môn Nhập môn Công nghệ phần mềm

Tổng quan về mô hình hoá trong phát triển phần mềm


NỘI DUNG

1. Thế nào là mô hình hoá?

2. Tại sao cần mô hình hoá?

3. Ngôn ngữ mô hình hoá Unified


Khung hình giảng viên

Modelling Language (UML) xuất hiện khi ghi hình bài giảng
(Thầy/Cô không chèn
văn bản/hình ảnh vào đây)

4.44”
MỤC TIÊU

Sau bài học này, người học có thể:

1. Nắm được khái niệm mô hình hoá hệ


thống
Khung hình giảng viên
2. Hiểu được vai trò và mức độ quan trọng xuất hiện khi ghi hình bài giảng
(Thầy/Cô không chèn
của mô hình hoá trong phát triển phần văn bản/hình ảnh vào đây)

mềm

3. Hiểu được vai trò của ngôn ngữ mô hình


hoá UML trong phát triển phần mềm
4.44”
NỘI DUNG TIẾP THEO

1. Thế nào là mô hình hoá (modelling)?

2. Tại sao cần mô hình hoá?


3. Ngôn ngữ mô hình hoá Unified Modelling Language (UML)

4
1. THẾ NÀO LÀ MÔ HÌNH HOÁ (Modelling)?
1.1. Hệ thống phức tạp (Complex System)

▪ Làm thế nào để có thể mô hình các hệ thống


phức tạp trong thực tế?
▪ Ví dụ mô hình hoá 1 máy bay chiến đấu

▪ Nếu chỉ đơn giản quan sát một vật thể như
vậy làm sao để biết cách tạo ra chúng, cấu
trúc bên trong, cách thức vận hành?
5
1. THẾ NÀO LÀ MÔ HÌNH HOÁ (Modelling)?
1.2. Thế nào là mô hình

Một mô hình là một sự đơn giản hoá thế giới thực

6
1. THẾ NÀO LÀ MÔ HÌNH HOÁ (Modelling)?
1.2. Thế nào là mô hình

Không thể hiểu rõ về một hệ thống với chỉ một góc nhìn

7
1. THẾ NÀO LÀ MÔ HÌNH HOÁ (Modelling)?
1.2. Thế nào là mô hình

Xây dựng các mô hình để hiểu rõ hơn hệ thống mà


chúng ta muốn xây dựng

8
NỘI DUNG TIẾP THEO

1. Thế nào là mô hình hoá?

2. Tại saothức
2. Thách cần trong định yêu cầu
xáchoá
mô hình

3. Ngôn ngữ mô hình hoá Unified Modelling Language (UML)

9
2. TẠI SAO CẦN MÔ HÌNH HOÁ?
2.1. Thảo luận

▪ Tầm quan trọng của mô hình hoá còn phụ thuộc vào
mức độ phức tạp của các hệ thống chúng ta cần xây
dựng
▪ Ví dụ 1: Làm thế nào để xây dựng 1 cái máy bay
giấy?
▪ Làm thê nào nếu máy bay giấy không thể bay?

▪ Ví dụ 2: Làm thế nào để xây dựng 1 máy bay chiến


đấu?
10
2. TẠI SAO CẦN MÔ HÌNH HOÁ?
2.2. Mục đích của mô hình hoá

▪ Mô hình hoá giúp đạt được 4 mục đích:


▪ Cho phép trực quan hoá một hệ thống cần phải xây dựng
▪ Cho phép đặc tả cấu trúc và hành vi của hệ thống
▪ Đưa ra một khuôn mẫu (template) hướng dẫn chúng ta xây dựng
một hệ thống
▪ Tài liệu hoá lại những quyết định mà chúng ta đưa ra trong quá
trình phát triển

11
2. TẠI SAO CẦN MÔ HÌNH HOÁ?
2.3 Mô hình được coi như một bản vẽ thiết kế (blueprint)

12
2. TẠI SAO CẦN MÔ HÌNH HOÁ?
2.3 Mô hình được coi như một bản vẽ thiết kế (blueprint)

Tuỳ thuộc vào công cụ, kỹ thuật và nền tảng mà chúng ta sử dụng, các phiên
bản khác nhau của hệ thống có thể được tạo ra, tuy nhiên tất cả sẽ đều tuân
thủ theo bản thiết kế (mô hình) ban đầu! 13
2. TẠI SAO CẦN MÔ HÌNH HOÁ?
2.4. Những nguyên lý khi mô hình hoá

▪ Có rất nhiều mô hình khác nhau, mỗi mô hình cung cấp một góc
nhìn riêng về hệ thống
▪ Việc lựa chọn mô hình nào phụ thuộc một cách mật thiết vào việc
chúng ta giải quyết yêu cầu đặt ra như thế nào?
▪ Môt mô hình duy nhất không thể biểu diễn được cả một hệ thống
▪ Mọi mô hình đều có thể được biểu diễn ở các mức độ chi tiết
khác nhau
▪ Những mô hình tốt giúp kết nối hệ thống với thực tế
14
NỘI DUNG TIẾP THEO

1. Thế nào là mô hình hoá?

2. Tại sao cần mô hình hoá

3. Ngôn ngữ mô hình hoá Unified Modelling Language (UML)

15
3. Ngôn ngữ mô hình hoá Unified Modelling Language (UML)

3.1. Tại sao lại sử dụng UML

▪ 1980s: phân tích và thiết kế hướng cấu trúc


▪ 1990s: phân tích và thiết kế hướng đối tượng
▪ Giữa những năm 1990: nhiều hơn 50 phương pháp hướng đối
tượng với rất nhiều định dạng khác nhau ra đời
▪ Fusion, Shlaer-Mellor, ROOM, Class-Relation, Wirfs-Brock, MOSES,
Syntropy, BOOM, OOSD, OSA, BON, Catalysis, COMMA, HOOD,
Ooram, DOORS…
▪ Một ngôn ngữ mô hình hoá chung nhất do đó được mong đợi ra đời!
16
3. Ngôn ngữ mô hình hoá Unified Modelling Language (UML)

3.1. Nguồn gốc ra đời UML

▪ 1980s: phân tích và thiết kế hướng cấu trúc


▪ 1990s: phân tích và thiết kế hướng đối tượng
▪ Giữa những năm 1990: nhiều hơn 50 phương pháp hướng đối
tượng với rất nhiều định dạng khác nhau ra đời
▪ Fusion, Shlaer-Mellor, ROOM, Class-Relation, Wirfs-Brock, MOSES,
Syntropy, BOOM, OOSD, OSA, BON, Catalysis, COMMA, HOOD,
Ooram, DOORS…
▪ Một ngôn ngữ mô hình hoá chung nhất do đó được mong đợi ra đời!
17
3. Ngôn ngữ mô hình hoá Unified Modelling Language (UML)

3.1. Nguồn gốc ra đời UML

Rumbaugh Booch Jacobson

Meyer Fusion
Before and after
conditions

Harel Embley
State charts Singleton classes,
High-level view

Gamma, et.al Wirfs-Brock


Frameworks, patterns, Responsibilities
notes

Shlaer- Mellor Selic, Gullekson, Ward Odell


Object lifecycles ROOM (Real-Time Classification
Object-Oriented Modeling)
18
3. Ngôn ngữ mô hình hoá Unified Modelling Language (UML)

3.2. Lịch sử UML


UML 2.0
(2004)

UML 1.5
(March, ‘03)

UML UML 1.1


Partners’ (Sept. ‘97)
Expertise
UML 1.0
(Jan. ‘97)

UML 0.9 and UML 0.91


(June ‘96) (Oct. ‘96)
Public
Unified Method 0.8 Feedback
(OOPSLA ’95)

Booch ’93 OMT - 2

OOSE Other Booch ‘91 OMT - 1


Methods 19
3. Ngôn ngữ mô hình hoá Unified Modelling Language (UML)

3.3. UML là gì?

▪ UML là ngôn ngữ cho


▪ Trực quan hoá
▪ Đặc tả
▪ Xây dựng
▪ Tài liệu hoá
mọi thành phần của một hệ thống phần mềm

20
3. Ngôn ngữ mô hình hoá Unified Modelling Language (UML)

3.3. UML là gì?

▪ Trực quan hoá


▪ Việc giao tiếp bằng các mô hình mang tính khái niệm (khái quát)
thường dễ mắc lỗi trừ khi tất cả mọi người tham gia đều có chung
một hệ quy chiếu về khái niệm
▪ Có những thành phần của hệ thống phần mềm mà chúng ta không
thể nắm rõ được cho đến khi chúng ta xây dựng mô hình cho chúng
▪ Mô hình trong UML được biểu diễn một cách trực quan và mang
ngữ nghĩa rõ ràng giúp việc giao tiếp dễ dàng giữa đội phát triển và
khách hàng hoặc giữa các thành viên trong đội phát triển.
21
3. Ngôn ngữ mô hình hoá Unified Modelling Language (UML)

3.3. UML là gì?

▪ Đặc tả
▪ Các mô hình UML mang ngữ nghĩa chính xác, tường minh và đầy
đủ thông tin

22
3. Ngôn ngữ mô hình hoá Unified Modelling Language (UML)

3.3. UML là gì?

▪ Xây dựng
▪ Các mô hình UML có thể kết nối trực tiếp với nhiều loại ngôn ngữ
lập trình khác nhau
▪ Java, C++, Visual Basic
▪ Bảng trong các hệ quản trị dữ liệu quan hệ hoặc kho lưu trữ lâu
dài trong các hệ quản trị dữ liệu hướng đối tượng

23
3. Ngôn ngữ mô hình hoá Unified Modelling Language (UML)

3.3. UML là gì?


▪ Tài liệu hoá: ngôn
Use Case Diagram Deployment Diagram
º лê ȯ°æÀÇÇÏ µå
¿þ¾î¹ ׳×Æ®÷
¿À¸· ÎÀÇÁ¤º̧ ½Ã½º ÅÛ¿¬°á¸ ð
µ¨
- À©µµ¿ì 95:Ŭ¶ó
ÀÌ ¾ð
Æ®
- À©µµ¿ì NT: À¿ë¼ö
¹
- À¯´ нº ¸ Ó½Å:ÀÀ¿ë¼¹ö¹ ×µ¥À Ì Å¸¼ ¹ö,Åë½Å¼¹ ö
- I BM Þ̧ÀÎÇÁ· ¹ÀÓ: µ
¥ÀÌŸ ¼¹ ö
, Åë
½ żö
¹

ngữ UML hướng tới Use Case 1


Window95
Windows95

Windows95

¹ ®¼ ° ü¸ ®

xây dựng tài liệu cho


Ŭ¶óÀÌ ¾ ðÆ®. E
XE
¹ ®¼ °ü¸ ® ¾ÖÇø´

Windows
NT

Actor A Actor B
Us e Cas e 2 Solar is

¹ ®¼ ° ü¸ ® ¿
£Áø.EXE

Alpha

một hệ thống phần


UNI X
ÀÀ¿ë¼ ¹ ö. EX
E

Windows
NT

I BM

Use Case 3 M ainf r ame

mềm, từ kiến trúc tới


µ¥ÀÌ Å¸ º £À̽º ¼¹ ö

Docum ent L
ist
m a i n Wn d fi l e M g r : d o c u m en t : g Fi l e re p o s i tory
Docum ent
FileM gr
Fi l e M g r Do c u m e nt

yêu cầu, kiểm thử,


us er
add( )
nam e : int
f et chDoc( ) delet e( )
docid : int
sor t ByName( )
num Field : int

1: Doc viewr e
que
st ( ) get ( )
ƯÁ¤¹ ®¼ ¿¡ ë́ÇѺ ±̧⸦
»ç¿ëÀÚ° ¡ ¿ä
ûÇÑÙ́. open( ) r ead( ) fil t h
e

code. .
close( )

2: f et chDoc() r ead( )
FileList
sor t FileList ( )
f List
cr eat e( )
3: cr eate( )

lập kế hoạch project


f ilDocum ent ( )
add( )

delet e( )

4: cr eate( ) 1

5: r eadDo
c( )

ÈÀÏ °ü¸ ®ÀÚ´ ÂÀоî¿Â 6: f ilDocum e


nt ( )
¹ ®¼ ÀÇ Á¤º ¸ ¦ÇØ´ ç¹®¼
°´ ü ¿¡ ¼³Á¤À»¿ äûÇÑÙ́.

và quản lý phiên bản


r ep

7: r eadFile( )
File
Reposit or y

8: f ilFile ( )
( f r om Persistence)
r ead( ) G r pFile

ȸ é °´ ü´ ÂÀоîµéÀÎ 9: sor tByName( ) nam e : ch


ar * =0
°´ ü µé¿¡ ´ ë
ÇØ À
Ì ¸§º° ·Î
Á¤· ÄÀ» ½ ÃÄÑ Èȩ́¿¡
r ead( )
º ¸ ¿©ÁØ ´ Ù. r eadDoc( )
open( )
r eadFile( )
cr eat e( )

f ilFile( )

Sequence Diagram Class Diagram

24
3. Ngôn ngữ mô hình hoá Unified Modelling Language (UML)

3.4. Một mô hình duy nhất không thể đủ để mô hình hoá

▪ Mọi hệ thống phần


mềm đều cần tiếp Logical View Implementation View

cận bằng một tập Analysts/Designers Programmers

hợp các mô hình Structure Software


management
Use-Case View
độc lập End-user
Functionality

▪ 4+1 View Process View Deployment View

System engineering
System integrators
System topology, delivery,
Performance, scalability,
installation, communication
throughput 25
3. Ngôn ngữ mô hình hoá Unified Modelling Language (UML)

3.5. Các thành phần của UML

▪ Diễn tả 2 khía cạnh của hệ thống:


▪ Cấu trúc tĩnh (static structure) biểu diễn các thành phần của phần
mềm (component, package, class) và các quan hệ giữa các thành
phần đó
▪ Hành vi động (dynamic behavior) biểu diễn cách các thành phần
tương tác với nhau để thực hiện các thay đổi về trạng thái của hệ
thống theo thời gian

26
3. Ngôn ngữ mô hình hoá Unified Modelling Language (UML)

3.5. Các thành phần của UML


▪ Use-case diagram: biểu đồ ca sử dụng
▪ Class diagram: biểu đồ class
▪ Object diagram: biểu đồ đối tượng
▪ State machine diagram: biểu đồ máy hữu hạn trạng thái
▪ Activity diagram: biểu đồ hoạt động
▪ Interaction diagram: biểu đồ tương tác
▪ Deployment diagram: biểu đồ triển khai

27
TỔNG KẾT VÀ GỢI MỞ

1. Bài học đã cung cấp cho người học một số khái niệm cơ
bản về mô hình hoá trong công nghệ phần mềm

2. Tiếp sau bài này, người học có thể tự tìm hiểu thêm về tài liệu
đặc tả các mô hình thông dung trong UML phiên bản 2.0 trở
đi để nắm rõ về mục đích và các đặc điểm của từng loại mô
hình cũng như vai trò và vị trí của chúng trong quá trình phân
tích và xây dựng phần mềm

28
Tổng quan về mô hình hoá trong phát triển
phần mềm

Biên soạn:
TS. Bùi Thị Mai Anh
Trình bày:
TS. Bùi Thị Mai Anh
Bài học tiếp theo:
Quy trình xây dựng và đặc tả yêu cầu phần mềm
Tài liệu tham khảo

[1] R. Pressman, Software Engineering: A Practitioner’s Approach. 8th Ed., McGraw-Hill, 2016.

[2] I. Sommerville, Software Engineering. 10th Ed., AddisonWesley, 2017.

[3] Pankaj Jalote, An Integrated Approach to Software Engineering, 3rd Ed., Springer.

[4] Shari Lawrence Pleeger, Joanne M.Atlee, Software Engineering theory and practice. 4th Ed., Pearson, 2009

UML 2 Toolkit. Hans-Erik Eriksson and Magnus Penker. Wiley Publishing Inc. URL:

http://www.ges.dc.ufscar.br/posgraduacao/UML_2_Toolkit.pdf.

Astah Manual. URL: http://astah.net/tutorial/astah%20professional%20referencemanual.pdf


KẾ HOẠCH GIẢNG DẠY
Tuần Chương Video
6 Kỹ nghệ yêu cầu phần mềm C6-01, C6-02, C6-03
7 Mô hình hoá yêu cầu phần mềm C6-04, C6-05, C6-06
10 Hướng dẫn bài tập chương 6 Prj-C6

You might also like