Tiến trình phần mềm được định nghĩa là một tập các hoạt động có thứ tự để phát triển hoặc bảo trì một sản phẩm phần mềm [2]. Ngày nay, tất cả các tổ chức phát triển phần mềm đều tuân thủ theo một tiến trình phát triển nào đó. Tiến trình phát triển phần mềm có ảnh hưởng to lớn đến chất lượng của các sản phẩm phần mềm. Từ đó chúng ta có thể thấy được tầm quan trọng của hướng nghiên cứu về công nghệ tiến trình.
21 trang |
Chia sẻ: vietpd | Lượt xem: 1190 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Luận văn Xây dựng công cụ mô hình hoá tiến trình hỗ trợ mẫu tiến trình, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
11
Chương 2
MÔ HÌNH HOÁ
TIẾN TRÌNH VÀ
MẪU TIẾN TRÌNH
12
CHƯƠNG 2 MÔ HÌNH HOÁ TIẾN TRÌNH VÀ MẪU TIẾN TRÌNH
Trong chương này, dựa trên nguồn tham khảo chính từ luận văn của TS
Trần Hạnh Nhi [2], chúng tôi xin trình bày tổng quan về việc mô hình hoá tiến
trình phần mềm và mẫu tiến trình. Ngoài ra, chúng tôi cũng đưa ra một ví dụ minh
họa để thấy rõ nhu cầu tái sử dụng lại mẫu tiến trình.
2.1 Mô hình hoá tiến trình
2.1.1 Giới thiệu
Tiến trình phần mềm được định nghĩa là một tập các hoạt động có thứ tự để
phát triển hoặc bảo trì một sản phẩm phần mềm [2]. Ngày nay, tất cả các tổ chức
phát triển phần mềm đều tuân thủ theo một tiến trình phát triển nào đó. Tiến trình
phát triển phần mềm có ảnh hưởng to lớn đến chất lượng của các sản phẩm phần
mềm. Từ đó chúng ta có thể thấy được tầm quan trọng của hướng nghiên cứu về
công nghệ tiến trình. Hướng nghiên cứu này tập trung vào các phương pháp, công
nghệ nhằm cho phép mô hình hoá, hỗ trợ vận hành các tiến trình đồng thời hỗ trợ
cả việc phân tích và cải tiến tiến trình. Để có thể vận hành, phân tích, và cải tiến
trước hết các tiến trình phần mềm cần phải được mô tả một cách tường minh thông
qua việc mô hình hoá tiến trình phần mềm [2].
Mô hình hoá tiến trình phần mềm là việc mô tả tiến trình phần mềm thông
qua một hoặc một vài mô hình tiến trình. Mô hình tiến trình là một bản mô tả tiến
trình bằng một ngôn ngữ mô hình hoá nào đó (Process Modeling Language).
Trong suốt hai thập niên qua, đã có rất nhiều nghiên cứu về mô hình hoá tiến trình
và các khía cạnh liên quan đến nó. Trong phần này, chúng tôi sẽ trình bày một bức
tranh tổng thể về việc mô hình hoá tiến trình như mục tiêu của việc mô hình hoá,
các ngôn ngữ dùng để mô hình hoá tiến trình.
13
2.1.2 Mục tiêu và lợi ích của việc mô hình hoá
Mục tiêu chính của việc mô hình hoá tiến trình là để xác định rõ quá trình
phát triển phần mềm trong thực tế từ đó có thể tìm hiểu, cải tiến và sử dụng lại
trong các trường hợp tương tự hoặc phục vụ cho việc vận hành tự động các tiến
trình [1].
Việc mô hình hoá tiến trình mang lại các lợi ích như sau [2]:
- Giúp tiến trình dễ hiểu: thông qua việc mô tả tiến trình một cách rõ
ràng, các tri thức tiến trình trở nên dễ hiểu và dễ trao đổi giữa những người cùng
tham gia tiến trình. Nếu không có một ngôn ngữ mô hình hoá chặt chẽ, thống nhất
thì việc mô tả và hiểu tiến trình có thể khác nhau giữa các nhóm đối tượng, từ đó
dẫn đến những bất cập trong quá trình phối hợp phát triển phần mềm [1].
- Giúp dễ dàng hơn trong việc quản lý và vận hành tiến trình: nếu
một mô hình tiến trình được định nghĩa một cách chi tiết, với ngữ nghĩa rõ ràng,
đầy đủ thì chúng ta có thể theo dõi diễn tiến của tiến trình sát sao hơn. Các thông
tin về trạng thái của các hoạt động, các sản phẩm…được mô tả rõ, qua đó có thể
kiểm chứng với tình hình của tiến trình trong thực tế để có thể điều chỉnh kịp thời
[1]. Ngoài ra chúng ta còn có thể phát triển các công cụ hỗ trợ cho việc lập kế
hoạch, điều khiển và giám sát việc thực thi tiến trình. Nếu mô hình tiến trình được
định nghĩa đủ hình thức, hoàn toàn có thể thực hiện chúng một cách tự động thông
qua các công cụ hỗ trợ tương ứng.
- Để dễ dàng hơn cho việc phân tích và cải tiến tiến trình: mô hình
tiến trình cung cấp các thông tin cho việc phân tích và giả lập tiến trình. Hơn nữa,
sự tồn tại của mô hình tiến trình cho phép dễ dàng hơn trong việc sử dụng lại các
tiến trình đã được kiểm nghiệm, đây là một nhân tố quan trọng để cải tiến tiến
trình.
2.1.3 Mô hình tiến trình
Mô hình tiến trình là một bản mô tả trừu tượng hoá của một tiến trình trong
thực tế. Hiện có nhiều quan điểm chưa thống nhất về các thành tố cần có trong
14
một mô hình tiến trình. Ở đây chúng tôi chỉ nhấn mạnh những điểm chung về nội
dung của các mô hình tiến trình trong một số nghiên cứu.
2.1.3.1 Nội dung của mô hình tiến trình
Có nhiều loại thành tố khác nhau của tiến trình có thể được biểu diễn trong
một mô hình tiến trình. Qua các hướng tiếp cận được đề nghị trong các nghiên cứu
khác nhau, chúng tôi nhận thấy có các loại thành tố tiến trình như sau [2]:
Các thành tố chính:
· Các tác vụ
· Các sản phẩm
· Các vai trò
Các thành tố phụ:
· Các Agent: là một cá nhân tham gia vào quá trình phát triển. Một
agent có thể đóng nhiều vai trò tại cùng một thời điểm.
· Các tài nguyên: là một thành tố giúp dễ dàng hơn cho việc thực thi
một hoạt động, ví dụ như các công cụ, hướng dẫn…Các thông tin
này rất hữu ích trong suốt quá trình thực hiện tiến trình.
· Các thông tin định lượng: cho phép đánh giá hiệu quả và chất
lượng tiến trình, ví dụ như độ đo, các kết quả kiểm thử…
· Các thông tin tổ chức: giúp dễ dàng hơn cho việc thi hành một tiến
trình trong một dự án cụ thể nào đó. Nói chung, chúng liên quan
đến ngữ cảnh công việc, cách sắp xếp, tổ chức các tài nguyên, cách
thức phối hợp và giao tiếp…
Một mô hình tiến trình không chỉ mô tả các thành tố tiến trình, mà còn mô
tả mối quan hệ giữa các thành tố đó. Một số quan hệ chính là quan hệ giữa các
hoạt động và các sản phẩm, quan hệ giữa các vai trò và các hoạt động và quan hệ
giữa các vai trò với các sản phẩm.
15
2.1.3.2 Các khung nhìn về mô hình tiến trình
Một mô hình tiến trình có thể được biểu diễn dưới nhiều góc nhìn khác
nhau nhằm mô tả các khía cạnh khác nhau của một tiến trình. Curtis [9] đã đề xuất
bốn góc nhìn khác nhau về mô hình tiến trình:
· Functional View: mô tả các hoạt động trong tiến trình
· Behavioral View: mô tả thứ tự thực thi của các hoạt động và các điều
kiện tương ứng.
· Organisatinal View: mô tả việc tham gia của các vai trò trong các hoạt
động và sự phân phối tài nguyên cho việc thi hành tiến trình.
· Informational View: biểu diễn các thông tin được xử lý trong tiến trình.
Việc lựa chọn góc nhìn để mô hình hoá tiến trình phụ thuộc vào nhu cầu của nhà
thiết kế tiến trình.
2.1.4 Ngôn ngữ mô hình hoá tiến trình
Một mô hình tiến trình phải được diễn đạt bằng một ngôn ngữ nào đó.
Ngôn ngữ mô tả tiến trình định nghĩa các khái niệm dành cho các tiến trình, đồng
thời cung cấp cú pháp và hệ thống ký hiệu để biểu diễn mô hình tiến trình thông
qua các khái niệm này.
Có nhiều cách phân loại ngôn ngữ mô tả tiến trình khác nhau, ví dụ như
dựa trên hệ ngôn ngữ, dựa trên mức độ hình thức của ngôn ngữ…Trong phần này,
chúng tôi quan tâm đến khía cạnh mức độ hình thức của ngôn ngữ để để phân loại
các ngôn ngữ. Mức độ hình thức của một ngôn ngữ được đo dựa trên mức độ chặt
chẽ, chính xác trong định nghĩa của ngôn ngữ đó. Các ngôn ngữ mô hình hoá có
thể được phân thành 3 loại như sau [2]:
- Ngôn ngữ không hình thức: là một ngôn ngữ không được định nghĩa
một cách rõ ràng. Chúng có thể đưa ra một vài ký hiệu nào đó để biểu diễn tiến
trình nhưng chúng không định nghĩa hệ thống các khái niệm, cú pháp và ngữ
nghĩa một cách đầy đủ và chính xác để thiết lập nên các quy luật tạo dựng các mô
hình tiến trình. Các mô hình được mô tả bởi các ngôn ngữ này có thể không chính
16
xác và nhập nhằng. Vì vậy chúng khó phân tích và không thể vận hành được. Các
ký hiệu được dùng có thể ở dạng văn bản (ngôn ngữ tự nhiên) hoặc ký hiệu đồ họa.
Tuy nhiên các ngôn ngữ này có khả năng diễn đạt cao nên được dùng để mô tả các
tiến trình phức tạp, ví dụ như các mô hình tiến trình được đề xuất trong CMMI và
ISO 12207.
- Ngôn ngữ bán hình thức: Các ngôn ngữ này đưa ra một định nghĩa rõ
ràng các khái niệm của tiến trình, một cú pháp hình thức để tạo dựng các mô hình
bằng cách sử dụng các khái niệm đã đề nghị. Ngữ nghĩa của các khái niệm cũng
được định nghĩa, nhưng vẫn còn chưa chính xác, chưa hoàn chỉnh và không thực
thi được. Các ngôn ngữ này có thể hỗ trợ cho việc phân tích nhưng không thể cho
việc giả lập hoặc thực thi tự động các mô hình tiến trình. Các ngôn ngữ này
thường được dùng để xác định và hiểu các tiến trình phần mềm. Ví dụ như IDEF0
[35], E3 [6], SPEM [38]…
- Ngôn ngữ hình thức: Các ngôn ngữ này xác định một cách đầy đủ và
chính xác hệ thống các khái niệm, cú pháp hình thức và ngữ nghĩa tương ứng để
tạo dựng nên các mô hình tiến trình. Các mô hình được biểu diễn bằng loại ngôn
ngữ này có thể giả lập và thực thi tự động được. Ví dụ như APPL/A [43], Spell
[12], APEL [17], Promenade [36], UML4SPM [8].
2.1.5 Nhu cầu sử dụng lại tiến trình
Các tiến trình phần mềm thường phụ thuộc yếu tố con người, có khuynh
hướng thay đổi, rất linh động và không ổn định [18]. Bản chất phức tạp này khiến
cho tiến trình phần mềm khó để mô tả và xử lý. Do đó, việc mô hình hoá tiến trình
là một công việc đòi hỏi rất nhiều công sức, sự đầu tư và thường tiêu tốn nhiều
thời gian, tiền bạc [23][27]. Hướng tiếp cận xây dựng tiến trình mới bằng cách sử
dụng lại những tiến trình có sẵn là một trong những cách thức nhằm nâng cao chất
lượng tiến trình và giảm chi phí thiết kế tiến trình. Nó được định nghĩa là một
hướng tiếp cận trong đó việc xây dựng một tiến trình được dựa trên tri thức của
tiến trình có sẵn, đã được trải nghiệm và có thể sử dụng lại [30].
17
Thường các nghiên cứu về hướng tiếp cận này tập trung vào hai vấn đề chính như
sau [24][34]: Vấn đề thứ nhất bao gồm việc nhận diện, biểu diễn và tổ chức tri
thức tiến trình, trong khi vấn đề thứ hai liên quan đến việc xây dựng một tiến trình
mới có sử dụng lại các tri thức tiến trình đã có này.
2.2 Mẫu tiến trình
2.2.1 Giới thiệu
Xuất phát từ các nghiên cứu của Alexander về mẫu kiến trúc [3], K. Beck và
W. Cuningham [7] đã đưa khái niệm mẫu đến với công nghệ phần mềm. Mẫu
phần mềm mô tả các vấn đề thường xuyên xảy ra trong một ngữ cảnh cụ thể của
quá trình phát triển phần mềm và đề xuất một giải pháp đã được kiểm nghiệm để
giải quyết vấn đề này [16]. Ngày nay, khái niệm mẫu được cộng đồng nghiên cứu
về kỹ thuật phần mềm xem là một phương tiện hữu hiệu để sử dụng lại các tri thức
thu được trong quá trình phát triển phần mềm. Mẫu phần mềm có thể được phân
thành các loại như sau:
- Mẫu sản phẩm: đưa ra các đặc tả về các sản phẩm trong quá trình phát triển.
- Mẫu tiến trình: đưa ra các đặc tả về các bước cần tuân thủ để thực hiện quá
trình phát triển.
Mẫu sản phẩm đã được biết đến và sử dụng rất nhiều trong quá trình phát triển
phần mềm hiện nay. Các nghiên cứu chính về mẫu sản phẩm gồm có: mẫu phân
tích [11] [22], mẫu thiết kế [25], mẫu kiến trúc [10] và mẫu cài đặt [14]. Trong khi
đó, mẫu tiến trình vẫn còn là một chủ đề mới, còn đang phát triển và có nhiều hạn
chế. Khái niệm mẫu tiến trình được Coplien [15] giới thiệu lần đầu tiên tại hội
nghị PloP’94 với ý nghĩa là mẫu về các tri thức tiến trình. Kể từ đó, đã có nhiều
nghiên cứu về khái niệm này và xem nó như là một phương tiện phục vụ cho việc
lưu trữ và sử dụng lại các tiến trình. Hiện nay có nhiều định nghĩa về mẫu tiến
trình được đề xuất bởi các nhóm nghiên cứu khác nhau. Mẫu tiến trình được định
nghĩa như là mẫu lưu giữ một tiến trình đã qua kiểm nghiệm [19][28], là toàn bộ
các công nghệ và hoạt động áp dụng để giải quyết các vấn đề thường gặp trong
18
quá trình phát triển [4][9], là một mô hình cung cấp bản thiết kế tiến trình [31], là
một mô hình lưu giữ cấu trúc chung của tiến trình [42]…Trong quan điểm của
nhóm tác giả Tran H.N [2], mẫu tiến trình là mẫu cung cấp giải pháp cho các vấn
đề mô hình hoá tiến trình thường gặp.
Giống như các loại mẫu phần mềm khác, mẫu tiến trình cho phép lưu giữ
các tri thức tiến trình đã qua kiểm nghiệm, cho phép mô tả các vấn đề và giải pháp
tương ứng trong quá trình phát triển, giúp thuận tiện cho việc trao đổi cũng như sự
hiểu biết về các tiến trình [19]. Ngoài ra, mẫu tiến trình còn có thể được sử dụng
cho việc mô hình hoá tiến trình [9][42] bởi vì chúng:
- Cho phép mô tả các tiến trình theo kiểu mô đun và có thể sử dụng lại: một
mẫu tiến trình lưu giữ các phần tiến trình có thể sử dụng lại cho một vấn đề cụ thể
nào đó. Một tiến trình mới có thể được thiết kế dựa trên cơ sở sử dụng lại một
hoặc nhiều mẫu tiến trình có sẵn.
- Cho phép mô tả các tiến trình theo kiểu linh động và dễ điều chỉnh: một
mẫu có thể được áp dụng trong nhiều tình huống khác, vì vậy nó góp phần tạo ra
các mô hình tiến trình linh động và dễ điều chỉnh hơn.
Như vậy, có thấy thấy rằng mẫu tiến trình giúp cho việc sử dụng lại các tiến
trình trở nên có triển vọng hơn. Tuy nhiên, các định nghĩa hiện tại vẫn còn chưa rõ
ràng và chưa được chuẩn hoá [2].
2.2.2 Các mẫu tiến trình hiện có
Hiện có nhiều nghiên cứu cố gắng rút trích các tri thức tiến trình từ các tiến
trình đã qua kiểm nghiệm. Tuy nhiên, chúng tôi nhận thấy chỉ có [4][5] là mô tả
được rõ ràng một hệ thống các mẫu tiến trình. Kết quả đáng ngạc nhiên này một
phần là do việc nhập nhằng về khái niệm giữa các nhà nghiên cứu với nhau [2]. Để
có một cái nhìn toàn cảnh về các hướng tiếp cận liên quan đến mẫu tiến trình,
chúng tôi mở rộng giới thiệu các nghiên cứu quan trọng khác trong lĩnh vực sử
dụng lại các tri thức tiến trình, không chỉ gói gọn trong các tiến trình phần mềm
mà còn cho cả các tiến trình nghiệp vụ.
19
2.2.2.1 Các mẫu tiến trình OOSP
Ambler đã đưa ra một tiến trình phát triển phần mềm hướng đối tượng gọi
tắt là OOSP (Object oriented software process) [4][5]. Mô hình tiến trình này được
biểu diễn bằng một tập hợp các mẫu tiến trình, mỗi mẫu tập trung vào một vấn đề
cụ thể của quá trình phát triển phần mềm hướng đối tượng. Tác giả đã phân thành
3 loại mẫu tiến trình:
- Task Pattern: loại mẫu tiến trình này mô tả các bước con để thực hiện một
tác vụ cụ thể nào đó. Ví dụ như mẫu “RequirementTesting”.
- Stage Pattern: loại mẫu tiến trình này mô tả một tập các tác vụ, thường
được thực hiện lặp lại nhiều lần, của một giai đoạn phát triển phần mềm. Một
Stage Pattern có thể bao gồm nhiều Task Pattern. Ví dụ như Stage Pattern
“Program” bao gồm các Task Pattern như mẫu “Write Source Codes”, mẫu “Reuse
existing components”, mẫu “Technical review”.
- Phase Pattern: loại mẫu này mô tả sự tương tác giữa các Stage Pattern
trong suốt một pha của dự án. Phase Pattern bao gồm nhiều Stage Pattern. Ví dụ
mẫu “Construct” bao gồm các Stage Pattern như mẫu “Model”, mẫu “Program”,
mẫu “Test in the Small” và mẫu “Generalize”.
2.2.2.2 Các mẫu của Bergner
Nhóm của Bergner [9] đã đề xuất một tập các mẫu tiến trình phục vụ cho
việc xây dựng các tiến trình phần mềm hướng đối tượng. Các tác giả đề xuất bốn
loại mẫu như sau:
- Project Pattern: các mẫu này mô tả thứ tự thực hiện các pha của tiến trình
phần mềm để tạo ra các sản phẩm. Ví dụ các mẫu như: Topdown, BottomUp,
ArchitectureDriven, Roundtrip, Iterative.
- Inter-Result Pattern: các mẫu thuộc loại này đề xuất một giải pháp nhằm
tạo ra các sản phẩm thuộc ít nhất hai pha phát triển phần mềm khác nhau. Ví dụ
mẫu Technical Foundation, Experimental Combined Prototyping, Component
Assessment và Component Update.
20
- Hand Result Pattern: các mẫu này liên quan đến việc tạo ra các sản phẩm
chính của quá trình phát triển. Ví dụ như Customer-Driven Analysis, Market-
Driven Analysis, Experimental Prototyping, Design-Driven Evaluation.
- Subresult Pattern: loại mẫu này cung cấp các giải pháp để tạo ra các sản
phẩm tạm thời trong quá trình phát triển. Ví dụ như Adaptation by Wrapping,
Wrapping and Adaptation by ReImplementation.
2.2.2.3 Workflow Patterns của Van der Aalst
Mẫu luồng công việc được đề xuất bởi Van der Aalst [46] là khái niệm xuất
hiện trong cộng đồng tiến trình nghiệp vụ. Mẫu luồng công việc đưa ra một giải
pháp để biểu diễn luồng điều khiển giữa các hoạt động trong một ngữ cảnh nào đó.
Mặc dù mẫu luồng công việc không mô tả các hoạt động có thể sử dụng lại như
các mẫu tiến trình bên trên, nhưng chúng cung cấp các cấu trúc thường gặp của
mô hình tiến trình. Mẫu luồng công việc hiện được chia thành 6 nhóm:
- Basic Control Flow: Luồng điều khiển cơ bản như Sequence, Parallele
Split, Exclusive Choice, Simple, Merge.
- Advanced Branching and Synchronization: Rẽ nhánh và đồng bộ hoá
nâng cao như MultipleChoice, SynchronizingMerge.
- Structural: biểu diễn các tình huống liên quan đến các ràng buộc cấu trúc
trong các tiến trình như Arbitrary Cycles, Implicit Termination.
- Muiltiple Instances: mô tả các tình huống nhiều thể hiện của một hoạt
động cùng được thực thiện tại một thời điểm: Multiple Instances Without
Synchronization, Multiple Instances With a priori Design Time Knowledge.
- State-based: biểu diễn việc thi hành một dãy các hoạt động phụ thuộc vào
trạng thái của việc thực hiện các hoạt động khác ví dụ như Deferred Choice,
Interleaved Parallel Routing.
- Cancellation: biểu diễn việc kết thúc một hoạt động hoặc một tiến trình ví
dụ như Cancel Activity.
21
2.2.2.4 Các nhóm mẫu tiến trình khác
Ngoài các mẫu tiến trình đã giới thiệu ở trên, vẫn còn một số nghiên cứu
khác liên quan đến việc tìm ra các mẫu tiến trình mới. Chúng tôi xin đề cấp một số
nhóm mẫu tiến trình khác như:
- Các mẫu MSF: tác giả đề xuất các mẫu tiến trình và mẫu tổ chức rút trích
từ Microsoft Solutions Framework (MSF) [40]. Các mẫu được giới thiệu gồm
Living Document, Clonable Lifecycle, Smart Lifecycle và Stakeholder-Oriented
Organization.
- Mẫu tiến trình nghiệp vụ: cộng đồng tiến trình nghiệp vụ cũng định nghĩa
các mẫu tiến trình cho phép mô tả tiến trình nghiệp vụ, tiêu biểu gồm
Penker&Eriksson [41] và MIT Handbook [33].
- Các mẫu tổ chức: Người ta cũng tìm ra các mẫu tiến trình trong hệ thống
các mẫu tổ chức như [21][15][29][32][45].
Phần lớn các mẫu liên quan đến tiến trình giới thiệu ở đây đều được biểu diễn một
cách không hình thức. Điều đó khiến cho người ta không thể sử dụng chúng trong
việc tự động hoá nhằm phục vụ cho việc mô hình hoá tiến trình phần mềm.
2.2.3 Sử dụng mẫu tiến trình
2.2.3.1 Biểu diễn mẫu tiến trình
Như chúng tôi đã đề cập, việc biểu diễn một cách trừu tượng, khó hiểu của
mẫu tiến trình sẽ ngăn cản khả năng sử dụng lại chúng một cách hiệu quả. Vì vậy
hình thức biểu diễn các mẫu tiến trình là yếu tố quan trọng để thúc đẩy việc ứng
dụng chúng trong thực tế. Biểu diễn hình thức đưa ra một cấu trúc bao gồm một
danh sách toàn bộ các đặc tính quan trọng của mẫu tiến trình. Hiện có khá nhiều
biểu diễn hình thức được đề xuất như [4][13][42][44]. Mặc dù các hình thức được
đề nghị khác nhau về số lượng và mức độ chi tiết về các đặc tính của mẫu tiến
trình, nhưng chúng vẫn luôn bao gồm ba đặc tính quan trọng nhất: vấn đề thường
xảy ra, giải pháp cho vấn đề đó và ngữ cảnh áp dụng của nó [2].
22
Việc mô tả một cách không hình thức các mẫu tiến trình bằng ngôn ngữ tự
nhiên được thực hiện khá dễ dàng và đơn giản. Nhưng ngôn ngữ tự nhiên có thể
gây ra việc hiểu sai, nhập nhằng và biểu diễn không hình thức của tiến trình là
không hiệu quả nếu muốn dùng nó như một cơ sở cho việc trao đổi hoặc nếu muốn
được hỗ trợ một cách tự động bằng các công cụ mô hình hoá tiến trình. Đây là lý
do tại sao xuất hiện nhu cầu cần một ngôn ngữ hình thức hơn để mô tả mẫu tiến
trình. Ngôn ngữ hình thức này phải cung cấp ngữ nghĩa cho các khái niệm để hạn
chế sự nhập nhằng và khó hiểu. Tuy nhiên, việc biểu diễn hình thức được đề cập
rất ít trong các nghiên cứu về mẫu tiến trình. Trong hiểu biết của chúng tôi, hiện
chỉ có một vài nhóm nghiên cứu về vấn đề này thông qua việc họ định nghĩa một
ngôn ngữ mô tả tiến trình hỗ trợ khái niệm mẫu tiến trình.
Tất cả các ngôn ngữ này đều xem mẫu tiến trình là một tập các hoạt động
phát triển có thể sử dụng lại. Các ngôn ngữ này đều liên quan đến UML nhưng với
những mức độ khác nhau: PROPEL [28], Promenade [36] và SPEM [38] là các
mở rộng của UML meta model; Living Process Framework [26] đơn giản đề nghị
dùng ký hiệu UML để biểu diễn khía cạnh động của tiến trình. Ưu điểm chính của
PROPEL là mô tả cấu trúc bên trong của một mẫu và định nghĩa các quan hệ giữa
các mẫu. Một trong những điểm mạnh của Promenade là