ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Minh Quý
TÍCH HỢP ATAM-CBAM TRONG ĐÁNH GIÁ
KIẾN TRÚC PHẦN MỀM VÀ ÁP DỤNG CHO DỰ ÁN
VANCO-NETDIRECT TẠI CÔNG TY PHẦN MỀM FSOFT
LUẬN VĂN THẠC SỸ
HƢNG YÊN 2/2008
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Minh Quý
TÍCH HỢP ATAM-CBAM TRONG ĐÁNH GIÁ
KIẾN TRÚC PHẦN MỀM VÀ ÁP DỤNG CHO DỰ ÁN
VANCO-NETDIRECT TẠI CÔNG TY PHẦN MỀM FSOFT
Ngành : Công nghệ thông tin
Chuyên ngành: Công nghệ phần mềm
Mã số:……………………
LUẬN VĂN THẠC SỸ
Người hướng dẫn Khoa học
PGS.TS HUỲNH QUYẾT THẮNG
Hƣng Yên - 2008
-2-
LỜI CẢM ƠN.
Em xin được gửi lời cảm ơn chân thành và sâu sắc nhất tới thầy giáo PGSTS.Huỳnh Quyết Thắng, Phó Trưởng Khoa Công nghệ thông tin - Trường Đại học Bách
Khoa Hà nội, là người đã tận tình dìu dắt và hướng dẫn em hoàn thành luận văn tốt
nghiệp này – một người mà em luôn ngưỡng mộ, là tấm gương mẫu mực về nghiên cứu
khoa học, về nhân cách sống để em học hỏi. Trong suốt thời gian đó, Thầy đã dành nhiều
tâm huyết và thời gian quí báu để động viên, giúp đỡ và thôi thúc em đạt được kết quả
như ngày hôm nay.
Em xin chân thành cảm ơn các thầy cô giáo trong khoa Công nghệ thông tin và các
thầy cô giảng dạy trong trường Đại học Công nghệ - Đại học Quốc gia Hà Nội, đặc biệt
là các thầy cô PGS.TS Nguyễn Ngọc Bình, PGS.TS Trịnh Nhật Tiến, T.S Nguyễn Việt
Hà, PGS.TS Nguyễn Văn Vỵ, PGS.TS Nguyễn Đình Hóa, PGS-T.S Nguyễn Đình Việt,
T.S Bùi Thế Duy, T.S Nguyễn Đại Thọ, T.S Trương Ninh Thuận,… đã truyền đạt kiến
thức và giúp đỡ em trong suốt thời gian là học viên của Trường Đại học Công nghệ..
Em cũng xin được cảm ơn TS. Võ Thanh Bình, nguyên Hiệu trưởng Trường Đại
học Sư phạm Kỹ thuật Hưng Yên, Th.S Ngô Hữu Tình – Trưởng Khoa CNTT, Th.S Lê
Tiến Đăng – Trưởng Phòng TCCB và lãnh đạo các phòng ban chức năng của trường
ĐHSPKT Hưng yên đã tạo mọi điều kiện tốt nhất để em hoàn thành khóa học này.
Luận văn sẽ không thể hoàn thành nếu không có sự chia sẻ và gánh vác công việc
giảng dạy giúp tôi của các thầy cô giáo trong khoa Công nghệ thông tin – ĐHSPKT
Hưng Yên đặc biệt là Bộ môn Công nghệ phần mềm. Tôi xin mãi ghi nhận những tình
cảm của các thầy cô Ngô Hữu Tình, Võ Thanh Mai, Ngô Thanh Huyền, Nguyễn Văn
Hậu, Phạm Minh Chuẩn, Trịnh Thị Nhị, Nguyễn Hữu Đông, Hoàng Trọng Thế,… và
nhiều thầy cô giáo khác.
Nhân đây cũng xin chân thành cảm ơn những đồng nghiệp đang làm việc tại G8D1, Công ty cổ phần phần mềm FSOFT, đã giúp đỡ tôi có điều kiện khảo sát và áp dụng
phương pháp phân tích kiến trúc ATAM-CBAM vào dự án thực tế Vanco-NetDirect
trong suốt thời gian tôi công tác tại đây.
Cuối cùng, tôi xin bày tỏ lòng biết ơn đến gia đình và bạn bè đã động viên và giúp
đỡ rất nhiều trong suốt quá trình tôi học tập và làm luận văn này.
Mặc dù có nhiều cố gắng nhưng do thời gian và trình độ có hạn nên luận văn
không thể tránh khỏi những thiếu sót. Em rất mong nhận được những ý kiến đóng góp
quý báu từ các thầy cô và các bạn.
Hưng Yên ngày 20/1/2008
Học viên: Nguyễn Minh Quý
Lớp cao học : K12-T2-CNPM
-3-
MỤC LỤC
LỜI CẢM ƠN. .............................................................................................................................................. 3
MỤC LỤC ..................................................................................................................................................... 4
DANH MỤC CÁC HÌNH ............................................................................................................................. 7
DANH MỤC CÁC BẢNG ............................................................................................................................ 8
MỞ ĐẦU........................................................................................................................................................ 9
1. Giới thiệu .............................................................................................................................................. 9
2. Mục tiêu của luận văn........................................................................................................................ 10
3. Cấu trúc và nội dung của luận văn ................................................................................................... 10
CHƢƠNG 1: TỔNG QUAN VỀ PHƢƠNG PHÁP ĐÁNH GIÁ KIẾN TRÚC PHẦN MỀM – SOFTWARE
EVALUATION ................................................................................................ Error! Bookmark not defined.
1.1 Tổng quan .............................................................................................. Error! Bookmark not defined.
1.1.1 Một số định nghĩa về kiến trúc phần mềm ..................................... Error! Bookmark not defined.
1.1.2 Tầm quan trọng của kiến trúc phần mềm ...................................... Error! Bookmark not defined.
1.1.3 Kiến trúc và khung nhìn kiến trúc ................................................. Error! Bookmark not defined.
1.1.4 Lý do cần phải đánh giá một kiến trúc .......................................... Error! Bookmark not defined.
1.1.5 Khi nào thì đánh giá kiến trúc ....................................................... Error! Bookmark not defined.
1.1.6 Những thành phần tham gia đánh giá kiến trúc ............................ Error! Bookmark not defined.
1.1.7 Kết quả của phiên đánh giá kiến trúc............................................ Error! Bookmark not defined.
1.1.8 Thuộc tính chất lượng nào trong kiến trúc cần phải đánh giá ...... Error! Bookmark not defined.
1.1.9 Lợi ích và chi phí của việc đánh giá kiến trúc............................... Error! Bookmark not defined.
1.1.10 Phong cách kiến trúc & Mẫu kiến trúc (Architecture Styles & Pattern)Error! Bookmark not defined.
1.1.11 Các quyết định kiến trúc – Architecture Decisions ..................... Error! Bookmark not defined.
1.2 Thuộc tính chất lƣợng .......................................................................... Error! Bookmark not defined.
1.3 Một số thuật ngữ thông dụng ............................................................... Error! Bookmark not defined.
1.3.1 Senario .......................................................................................... Error! Bookmark not defined.
1.3.2 Stakeholder.................................................................................... Error! Bookmark not defined.
1.3.3 Business Driver ............................................................................. Error! Bookmark not defined.
1.3.4 Architecture Driver ....................................................................... Error! Bookmark not defined.
CHƢƠNG 2: MỘT SỐ PHƢƠNG PHÁP ĐÁNH GIÁ KIẾN TRÚC PHẦN MỀM DỰA TRÊN SCENARIO
........................................................................................................................... Error! Bookmark not defined.
2.1. Phƣơng pháp phân tích kiến trúc phần mềm – SAAM (Software Architecture Analysis Method)
...................................................................................................................... Error! Bookmark not defined.
2.1.1 Ngữ cảnh sử dụng SAAM .............................................................. Error! Bookmark not defined.
2.1.2 Mục tiêu của SAAM ....................................................................... Error! Bookmark not defined.
2.1.3 Các yếu tố dẫn đến sự hình thành của SAAM ............................... Error! Bookmark not defined.
2.1.4 Các yêu cầu và đầu vào của SAAM ............................................... Error! Bookmark not defined.
2.1.5 Các bước thực hiện trong phiên đánh giá SAAM .......................... Error! Bookmark not defined.
2.1.6 Các đối tượng tham gia phiên đánh giá SAAM ............................. Error! Bookmark not defined.
2.1.7 Ước lượng chi phí áp dụng SAAM ................................................ Error! Bookmark not defined.
2.1.8 Công cụ hỗ trợ SAAM ................................................................... Error! Bookmark not defined.
2.1.9 Các phương pháp thay thế SAAM ................................................. Error! Bookmark not defined.
2.1.10 Điểm mạnh và đầu ra của SAAM ................................................ Error! Bookmark not defined.
2.11 Một số lưu ý về SAAM .................................................................... Error! Bookmark not defined.
2.2. Phƣơng pháp ALMA – Architecture Level Modifiability Analysis . Error! Bookmark not defined.
2.2.1. Ngữ cảnh sử dụng ALMA ............................................................. Error! Bookmark not defined.
2.2.2. Mục tiêu của ALMA ..................................................................... Error! Bookmark not defined.
2.2.3. Các yếu tố dẫn đến sự hình thành của ALMA .............................. Error! Bookmark not defined.
2.2.4. Các yêu cầu và đầu vào của ALMA. ............................................ Error! Bookmark not defined.
-4-
2.2.5. Các bước thực hiện phiên đánh giá ALMA. ................................. Error! Bookmark not defined.
2.2.6. Các đối tượng/ vai trò tham gia trong ALMA .............................. Error! Bookmark not defined.
2.2.7. Ước lượng chi phí khi áp dụng ALMA. ........................................ Error! Bookmark not defined.
2.2.8. Công cụ hỗ trợ ALMA. ................................................................. Error! Bookmark not defined.
2.2.9. Các phương pháp thay thế cho ALMA. ........................................ Error! Bookmark not defined.
2.2.10. Những ưu điểm và đầu ra của ALMA ......................................... Error! Bookmark not defined.
2.2.11. Một số lưu ý về ALMA. ............................................................... Error! Bookmark not defined.
2.3. Phƣơng pháp đánh giá kiến trúc FAAM (Family-Architecture Assessment Method)Error! Bookmark
not defined.
2.3.1. Ngữ cảnh sử dụng FAAM ............................................................. Error! Bookmark not defined.
2.3.2. Mục tiêu của FAAM ..................................................................... Error! Bookmark not defined.
2.3.3. Những yếu tố dẫn đến sự hình thành của FAAM ......................... Error! Bookmark not defined.
2.3.4. Các yêu cầu và đầu vào của FAAM ............................................. Error! Bookmark not defined.
2.3.5. Các bước trong một phiên đánh giá FAAM. ................................ Error! Bookmark not defined.
2.3.6. Các đối tượng tham gia phiên đánh giá FAAM ........................... Error! Bookmark not defined.
2.3.7. Ước lượng chi phí khi áp dụng FAAM. ........................................ Error! Bookmark not defined.
2.3.8. Công cụ hỗ trợ FAAM. ................................................................. Error! Bookmark not defined.
2.3.9. Các thay thế cho FAAM ............................................................... Error! Bookmark not defined.
2.3.10. Các ưu điểm và đầu ra của FAAM. ............................................ Error! Bookmark not defined.
2.4. Phƣơng pháp phân tích cân bằng kiến trúc-ATAM (Architecture Tradeoff Analysis Method)Error!
Bookmark not defined.
2.4.1 Giới thiệu phương pháp ................................................................. Error! Bookmark not defined.
2.4.2 Mô tả thuộc tính chất lượng .......................................................... Error! Bookmark not defined.
2.4.3 Scenario. ....................................................................................... Error! Bookmark not defined.
2.4.4 Đầu ra của ATAM. ........................................................................ Error! Bookmark not defined.
2.4.5. Chi tiết các bước thực hiện phiên đánh giá ATAM. ..................... Error! Bookmark not defined.
2.4.6 Đối tượng tham gia phiên đánh giá ATAM. .................................. Error! Bookmark not defined.
2.4.7. Ước lượng chi phí khi áp dụng phương pháp ATAM. .................. Error! Bookmark not defined.
2.4.8. Công cụ hỗ trợ ATAM. ................................................................. Error! Bookmark not defined.
2.4.9. Các phương pháp thay thế cho ATAM ......................................... Error! Bookmark not defined.
2.4.10. Đầu ra và điểm mạnh của ATAM. .............................................. Error! Bookmark not defined.
2.4.11 Lịch biểu thực hiện một phiên đánh giá ATAM điển hình ........... Error! Bookmark not defined.
2.5. Phƣơng pháp đánh giá kiến trúc phần mềm CBAM (Cost-Benefit Analysis Method)Error! Bookmark
not defined.
2.5.1. Bối cảnh hình thành phương pháp CBAM ................................... Error! Bookmark not defined.
2.5.2.Mục tiêu của CBAM ...................................................................... Error! Bookmark not defined.
2.5.3. Các yếu tố dẫn đến sự phát triển CBAM. ..................................... Error! Bookmark not defined.
2.5.4. Yêu cầu và đầu vào của CBAM. ................................................... Error! Bookmark not defined.
2.5.5. Các bước thực hiện phiên đánh giá CBAM. ................................. Error! Bookmark not defined.
2.5.6. Các đối tượng tham gia trong CABM .......................................... Error! Bookmark not defined.
2.5.7. Ước lượng chi phí khi áp dụng CBAM. ........................................ Error! Bookmark not defined.
2.5.8. Công cụ hỗ trợ CBAM. ................................................................. Error! Bookmark not defined.
2.5.9. Các phương pháp thay thế CBAM................................................ Error! Bookmark not defined.
2.5.10. Mục tiêu và ưu điểm của CBAM................................................. Error! Bookmark not defined.
2.6. So sánh một số đặc điểm của các phƣơng pháp đánh giá kiến trúc Error! Bookmark not defined.
Chƣơng 3: TÍCH HỢP ATAM-CBAM VÀ ĐỀ XUẤT QUI TRÌNH ĐÁNH GIÁ.Error! Bookmark not defined.
3.1. Hƣớng tiếp cận tích hợp ATAM và CBAM ....................................... Error! Bookmark not defined.
3.2. Cải tiến ATAM ..................................................................................... Error! Bookmark not defined.
3.3 Cải tiến CBAM ...................................................................................... Error! Bookmark not defined.
3.4 Đề xuất qui trình ................................................................................... Error! Bookmark not defined.
Chƣơng 4: ÁP DỤNG QUI TRÌNH TÍCH HỢP ATAM-CBAM PHÂN TÍCH KIẾN TRÚC CHO DỰ ÁN
VANCO-NETDIRECT ................................................................................... Error! Bookmark not defined.
4.1 Mô tả dự án Vanco-NetDirect .............................................................. Error! Bookmark not defined.
4.1.1 Thông tin sơ bộ.............................................................................. Error! Bookmark not defined.
-5-
4.2 Mô tả các Business drivers ................................................................... Error! Bookmark not defined.
4.2.1 Mục tiêu doanh nghiệp (Business goals) ....................................... Error! Bookmark not defined.
4.2.2 Các yêu cầu chính (Yêu cầu về chất lượng) .................................. Error! Bookmark not defined.
4.2.3 Bối cảnh doanh nghiệp.................................................................. Error! Bookmark not defined.
4.3 Vận dụng ATAM-CBAM đánh giá kiến trúc .................................... Error! Bookmark not defined.
4.3.1 Phát triển các scenario ................................................................. Error! Bookmark not defined.
4.2 Gán mức ưu tiên cho các scenario ................................................... Error! Bookmark not defined.
4.3 Xác định các tiếp cận kiến trúc ........................................................ Error! Bookmark not defined.
4.5 Đánh giá kết quả ................................................................................... Error! Bookmark not defined.
KẾT LUẬN ...................................................................................................... Error! Bookmark not defined.
PHỤ LỤC 1 ...................................................................................................... Error! Bookmark not defined.
Vanco-NetDirect Software Requirement Specification ................................ Error! Bookmark not defined.
1. Functional requirements Overview ....................................................... Error! Bookmark not defined.
2. Core modules ........................................................................................... Error! Bookmark not defined.
3. Non-Functional core requirements ........................................................ Error! Bookmark not defined.
3.1 Performance ..................................................................................... Error! Bookmark not defined.
3.2 Scalability......................................................................................... Error! Bookmark not defined.
3.3 Reliability ......................................................................................... Error! Bookmark not defined.
3.6 Supportability ................................................................................... Error! Bookmark not defined.
PHỤ LỤC 2 DANH MỤC CÁC TỪ VIẾT TẮT ........................................... Error! Bookmark not defined.
TÀI LIỆU THAM KHẢO .......................................................................................................................... 11
-6-
DANH MỤC CÁC HÌNH
Hình 1 - Ví dụ mô tả kiến trúc điển hình nhưng không đem lại thông tinError! Bookmark not
defined.
Hình 2 - Sáu thuộc tính chất lượng phần mềm theo ISO-9126Error! Bookmark not defined.
Hình 3 - Mô hình tiến trình của SAAM ................................Error! Bookmark not defined.
Hình 4 - Mô hình phân tích ATAM ......................................Error! Bookmark not defined.
Hình 5 - Mô hình tiến trình của ATAM ................................Error! Bookmark not defined.
Hình 6 – Mô tả thuộc tính chất lượng – Performance StimuliError! Bookmark not defined.
Hình 7 – Mô tả thuộc tính chất lượng – Performance ResponseError! Bookmark not defined.
Hình 8 - Mô tả thuộc tính chất lượng – Performance ParametersError! Bookmark not defined.
Hình 9 - Mô tả thuộc tính chất lượng – Modifiability ParamError! Bookmark not defined.
Hình 10 - Mô tả thuộc tính chất lượng – Modifiability AvailabilityError! Bookmark not defined.
Hình 11 – Ví dụ về cây tiện ích (Utility Tree) ......................Error! Bookmark not defined.
Hình 12 – Đầu vào, đầu ra của ATAM ................................Error! Bookmark not defined.
Hình 13 - Các khung nhìn khác nhau về hệ thống ...............Error! Bookmark not defined.
Hình 14 - Đầu vào và đầu ra của CBAM.............................Error! Bookmark not defined.
Hình 15 - Đầu vào và đầu ra của ATAM-CBAM sau khi tích hợpError! Bookmark not defined.
Hình 16 - Đầu vào, đầu ra và thành phần tham gia ATAM.Error! Bookmark not defined.
Bảng 17 - Sự lặp lại một số hoạt động của ATAM trong phiên CBAM.Error! Bookmark not
defined.
Hình 18 - Vai trò của Vanco trong cung cấp dịch vụ ..........Error! Bookmark not defined.
Hình 19 - Sản phẩm của dự án Vanco-Netdirect phase 2 trên websiteError! Bookmark not
defined.
-7-
DANH MỤC CÁC BẢNG
Bảng 1 – Các thuộc tính chất lượng theo chuẩn ISO 9126 .Error! Bookmark not defined.
Bảng 2 – Stakeholder và các mối quan tâm của họ .............Error! Bookmark not defined.
Bảng 3 - Bảng mẫu mô tả Business drivers .........................Error! Bookmark not defined.
Bảng 4 - Mẫu trình diễn kiến trúc ........................................Error! Bookmark not defined.
Bảng 5 - Mẫu ghi nhận các tiếp cận kiến trúc (Architectural approach)Error! Bookmark not
defined.
Bảng 6 - Ví dụ về mô tả một tiếp cận kiến trúc ....................Error! Bookmark not defined.
Bảng 7 - Ví dụ về kết quả Vote các scenario .......................Error! Bookmark not defined.
Bảng 8 - Mối liên quan giữa scenario và thuộc tính chất lượngError! Bookmark not defined.
Bảng 9 – Bảng so sánh một số phương pháp phân tích kiến trúc phần mềmError! Bookmark not
defined.
Bảng 10 - Cải tiến ATAM....................................................Error! Bookmark not defined.
Bảng 11 - Cải tiến CBAM. ...................................................Error! Bookmark not defined.
Bảng 12 - Danh sách những người tham gia dự án.............Error! Bookmark not defined.
-8-
MỞ ĐẦU
1. Giới thiệu
Kiến trúc là một trong các hoạt động chính của tiến trình phát triển hệ thống. Kết quả của
hoạt động này cho ta bản thiết kế ở mức cao của hệ thống đó - hay còn được gọi là kiến
trúc hệ thống (System Architecture). Kiến trúc cũng có thể được định nghĩa như là Tổ
chức cơ bản của hệ thống, được thể hiện bởi các thành phần, các mối quan hệ và môi
trường, cũng như các nguyên tắc để quản lý tiến trình và sự phát triển (IEEE standard.
Page 1471) [1].
Tương tự như vậy, trong qui trình phát triển phần mềm (SLC) thì kiến trúc phần mềm
(Software Architecture) đóng một vai trò vô cùng quan trọng, bởi nó ảnh hưởng trực tiếp
đến tất cả các công đoạn còn lại của cả chu trình. Việc lựa chọn kiến trúc phù hợp có ý
nghĩa rất lớn tới chất lượng của dự án (thể hiện qua các thuộc tính chất lượng phần mềm,
như: tính bảo mật, hiệu năng, khả năng sửa đổi,…). Tuy nhiên vấn đề đặt ra là liệu có thể
đánh giá sớm được một kiến trúc nào đó là ―Tốt‖ hơn hay không ? để từ đó giúp những
nhà quản lý đạt được hiệu quả cao nhất trong quá trình phát triển phần mềm đồng thời
giảm thiểu tối đa các rủi ro có thể xảy ra.
Câu trả lời ở đây là ―Các kiến trúc hoàn toàn có thể được phân tích‖, vì vậy chúng ta đều
có thể đánh giá một kiến trúc là tốt hay tồi theo một khía cạnh hay ngữ cảnh nào đó trước
khi tiến hành quá trình thiết kế dự án.
Chính vì tầm quan trọng đó mà trong những năm gần đây việc nghiên cứu về đánh giá
kiến trúc phần mềm (Software Architecture Evaluation – SWA) đã nhận được rất nhiều
sự quan tâm của những nhà nghiên cứu trong lĩnh vực kỹ nghệ phần mềm (Software
Engineering).
Ở nước ta hiện nay, lĩnh vực nghiên cứu về Kiến trúc phần mềm chưa thực sự được quan
tâm nhiều, hơn nữa việc áp dụng các kết quả có liên quan đến kiến trúc phần mềm trong
các dự án còn gặp nhiều hạn chế. Cụ thể là, đối với các dự án phát triển phục vụ
Outsourcing thì kiến trúc cho hệ thống đều được phía đối tác nước ngoài phân tích và xây
dựng sẵn, còn đối với những dự án trong nước hay những dự án mà chúng ta xây dựng từ
A-Z thì kiến trúc phần mềm được lựa chọn chủ yếu dựa theo kinh nghiệm mà ít có sự
phân tích một cách bài bản, khoa học.
Thực tế ở một số công ty phát triển phần mềm cho thấy rằng, việc xem nhẹ hoặc hiểu biết
không sâu sắc về kiến trúc có thể gây ra những hậu quả nghiêm trọng. Chi phí về tiền
bạc, thời gian và nhân lực có thể tăng lên rất cao nếu lựa chọn kiến trúc sai hoặc không
phù hợp [2]. Nhiều trường hợp, toàn bộ hệ thống có thể phải bỏ đi để xây dựng lại từ đầu
hoặc tồi tệ hơn đó là dự án bị thất bại hoàn toàn.
Chính nhờ nhận thức về tầm quan trọng đặc biệt của kiến trúc phần mềm, đồng thời trải
nghiệm qua những dự án phần mềm thực tế, em thấy rằng việc đầu tư nghiên cứu về lĩnh
vực này là vô cùng cần thiết.
-9-
2. Mục tiêu của luận văn
Mục tiêu chủ yếu của luận văn này là đi tìm hiểu, phân tích 2 phương pháp phân tích kiến
trúc phần mềm dựa trên Senario là ATAM (Architecture Trade-off Analysis method) và
CBAM (Cost Benefit Analysis Method), sau đó tìm ra qui trình kết hợp giữa 2 phương
pháp này và thực hành áp dụng chúng vào dự án thực tế - Dự án Vaco-NetDirect - tại
công ty cổ phần phần mềm FSoft.
3. Cấu trúc và nội dung của luận văn
Cấu trúc của luận văn bao gồm 4 chương (Không kể mục lục, phụ lục,…), thể hiện từ
khái niệm, phương pháp luận cho đến thực hành áp dụng.
Dưới đây là mô tả nội dung cơ bản của từng chương:
Chương 1: Tổng quan về phƣơng pháp đánh giá kiến trúc phần mềm. Chương này
chủ yếu giới thiệu về các định nghĩa, khái niệm cơ bản liên quan đến kiến trúc phần mềm,
đồng thời cũng cho biết vị trí, vai trò và tầm quan trọng của kiến trúc phần mềm trong
thiết kế phần mềm – đặc biệt là các phần mềm đòi hỏi chất lượng cao.
Chương 2: Một số phƣơng pháp đánh giá kiến trúc phần mềm dựa trên scenario.
Chương này giới thiệu và phân tích 5 phương pháp đánh giá kiến trúc phần mềm dựa trên
scenario đang được sử dụng rộng rãi hiện nay là: SAAM (Software Architecture Analysis
Method), ALMA (Architecture Level
Modifiability Analysis), FAAM (Family
Architecture Analysis Method), ATAM (Architecture Tradeoff Analysis Method) và
CBAM (Cost-Benefit Analysis Method). Trong đó hai phương pháp ATAM và CBAM
được mô tả chi tiết hơn.
Ngoài ra, chương này cũng thực hiện việc so sánh 5 phương pháp này ở một số khía
cạnh, cho biết rõ hơn về những điểm mạnh, yếu và phạm vi áp dụng của từng phương
pháp.
Chương 3: Tích hợp ATAM –CBAM và đề xuất qui trình đánh giá. Chương này phân
tích một số đặc điểm của phương pháp ATAM và CBAM, cải tiến và bổ sung một số hoạt
động bên trong để có một phương pháp phân tích mới, tốt hơn và tối ưu hơn (nhưng vẫn
trên nền 2 phương pháp đó). Trên cơ sở tích hợp này, đề xuất ra một qui trình đánh giá
tương ứng. Qui trình này sẽ được dùng để đánh giá kiến trúc cho một dự án phần mềm
thực tế tại FSoft, đó là : Vanco-NetDirect.
Chương 4: Áp dụng ATAM – CBAM vào đánh giá kiến trúc cho hệ thống phần
mềm Vanco-NetDirect tại công ty cổ phần phần mềm FSoft. Nội dung của chương
này tập trung chủ yếu vào việc đánh giá kiến trúc phần mềm cho dự án thực tế (VancoNetDirect) của công ty phần mềm FSoft bằng chính hai phương pháp ATAM và CBAM
và qui trình đã xây dựng được ở chương 3.
-10-
TÀI LIỆU THAM KHẢO
[1]
Atwood, J. The Systems Analyst, Hayden, 1977.
[2]
Clements, P., Bass, L., Kazman, R., Abowd, G., ―Predicting Software Quality
by Architecture- Level Evaluation‖, 5th International Conference on Software
Quality, (Austin, TX), October 1995, to appear.
[3]
Dardenne, A., ―On the Use of Scenarios in Requirements Acquisition‖, CISTR-93-17, Depart- ment of Computer and Information Science, University of
Oregon, 1993.
[4]
Dean, T., Cordy, ―A Syntactic Theory of Software Architecture‖, Transactions
on Software Engi- neering, 21(4), April 1995, 302-313.
[5]
Dijkstra, E. W. ―The structure of the ‗T.H.E.‘ multiprogramming system,‖
Communications of the ACM, 18(8), 1968, 453-457.
[6]
Garlan, D., Shaw, M. ―An Introduction to Software Architecture‖. Advances in
Software Engineer- ing and Knowledge Engineering, Volume I, World
Scientific Publishing, 1993.
[7]
Gough, P., Fodemski, F., Higgins, S., Ray, S., ―Scenarios - an Industrial Case
Study and Hyper- media Enhancements‖,
Proceedings of the Second
IEEE
International
Symposium
on Requirements Engineering, York,
England, March, 1995, 10-17.
[8]
Henry, S., Kafura, D. ―Software Structure Metrics Based on Information
Flow‖, IEEE Transac- tions on Software Engineering, SE-7(5), Sept. 1981.
[9]
Heyliger, G., ―Coupling‖, Encyclopedia of Software Engineering, J. Marciniak
(ed.), 220-228.
[10]
Jacobson, I., Christerson, M., Jonsson, P. and Overgaard, G. Object-Oriented
Software Engineer- ing: A Use Case Driven Approach. Addison-Wesley, 1992.
[11]
Kazman, R., Bass, L., Abowd, G., Webb, M., ―SAAM: A Method for Analyzing
the Properties of Software Architectures‖, Proceedings of ICSE 16, Sorrento,
Italy, May 1994, 81-90.
[12]
Kazman, R., Bass, L., ―Toward Deriving Software Architectures from Quality
Attributes‖, CMU/ SEI-94-TR-10, Software Engineering Institute, Carnegie
Mellon University, 1994.
-11-
[13]
Kazman, R., Bass, L., Abowd, G., and Clements, P., ―An Architectural Analysis
Case Study: Inter- net Information Systems,‖ Proceedings, First
International Workshop on Software-Intensive Systems, Seattle, April 1995.
(Also available as CMU-CS-TR-95-151, School of Computer Sci- ence,
Carnegie Mellon University, Pittsburgh).
[14]
Mettala, E., Graham, M. (eds.), ―The Domain-Specific Software Architecture
Program‖, CMU/ SEI-92-SR-9, Software Engineering Institute, Carnegie
Mellon University, 1992.
[15]
Parnas, D, ―On the design and development of program families,‖ IEEE
Transactions on Software Engineering, SE-2(1), 1976, 1-9.
[16]
Parnas, D., ―On the criteria for decomposing systems into modules,‖
Communications of the ACM, 15(12), December 1972, 1053-1058.
[17]
Shaw, M., ―Larger Scale Systems Require Higher-Level
Abstractions‖,Proceedings of Fifth Inter- national Workshop on
SoftwareSpecificationand Design, IEEE Computer Society, 1989, 143
Tichy, W. ―RCS—A System for Version Control‖, Software—Practice &
Experience, 15(7), July 1985, 637-654.
[18]
[19] Trowbridge, D., Roxburgh, U., Hohpe, G., Manolescu, D., and Nadhan,
E. ―Integration Patterns: Patterns & Practices‖, Microsoft Press, 2004,
ISBN: 073561850X.
[20] Young, R.M.; Riedl, M.O., Branly, M., Jhala, A., Martin, R.J., and Saretto,
C.J. ―An architecture for integrating plan-based behavior generation with
interactive game environments‖. J ourna l of Ga me Development , 1(1),
2004, pp. 51-70.
[21]
Weiss, D., Parnas, D., ―Active Design Reviews: Principles and Practices,‖
Proceedings, Eighth International Conference on Software Engineering, 1985,
132-136.
-12-