Trong đời sống của mỗi con người chúng ta và trong bản sắc của mỗi dân tộc, văn hóa nói chung và di sản văn hóa nói riêng, luôn có vai trò, vị trí quan trọng. Văn hóa không chỉ tạo nên nét độc đáo và sự khác biệt của mỗi dân tộc mà văn hóa còn giúp cho đời sống văn hóa của cả xã hội thêm phong phú, đa dạng. Cùng với sự phát triển và thay đổi từng ngày của xã hội hiện đại những bản sắc, hoạt động văn hóa này ngày càng mai một và rất cần được bảo tồn. Có rất nhiều hình thức bảo tồn, trong đó bảo tồn dưới dạng số hóa để lưu trữ trên máy tính, lưu giữ làm tài liệu giảng dạy cho các thế hệ mai sau đã và đang thu hút được rất nhiều nghiên cứu. Trên thế giới đã có nhiều công trình nghiên cứu bảo tồn nội dung văn hóa phi vật thể sử dụng các công nghệ khác nhau với hai hướng chính là hệ thống công nghệ nhằm truyền bá nội dung văn hóa phi vật thể và hệ thống công nghệ hỗ trợ giảng dạy nội dung văn hóa phi vật thể.
Trang 1MỞ ĐẦU
Trong đời sống của mỗi con người chúng ta và trong bản sắc của mỗi dântộc, văn hóa nói chung và di sản văn hóa nói riêng, luôn có vai trò, vị trí quantrọng Văn hóa không chỉ tạo nên nét độc đáo và sự khác biệt của mỗi dân tộc
mà văn hóa còn giúp cho đời sống văn hóa của cả xã hội thêm phong phú, đadạng Cùng với sự phát triển và thay đổi từng ngày của xã hội hiện đại nhữngbản sắc, hoạt động văn hóa này ngày càng mai một và rất cần được bảo tồn Córất nhiều hình thức bảo tồn, trong đó bảo tồn dưới dạng số hóa để lưu trữ trênmáy tính, lưu giữ làm tài liệu giảng dạy cho các thế hệ mai sau đã và đang thuhút được rất nhiều nghiên cứu Trên thế giới đã có nhiều công trình nghiên cứubảo tồn nội dung văn hóa phi vật thể sử dụng các công nghệ khác nhau với haihướng chính là hệ thống công nghệ nhằm truyền bá nội dung văn hóa phi vật thể
và hệ thống công nghệ hỗ trợ giảng dạy nội dung văn hóa phi vật thể
Việc giảng dạy và truyền bá nội dung văn hóa phi vật thể phụ thuộc nhiềuvào việc truyền thụ trực tiếp giữa người dạy và người học Các phương phápgiảng dạy trực tiếp khó có thể truyền bá được các nội dung văn hóa phi vật thểmột cách rộng rãi, hơn nữa tài nguyên về con người cho việc giảng dạy cũngnhư truyền thụ là hạn chế Do đó, việc xây dựng hệ thống hỗ trợ giảng dạy theo
mô hình vai mẫu sẽ tạo ra một phương pháp học mới, ở đó người học có cáccông cụ để xem và so sánh các diễn viên khác nhau diễn cùng một nhân vật Từ
đó, tăng khả năng cảm thụ và tính sáng tạo của người học Bên cạnh đó hệ thống
sẽ giúp bảo tồn và truyền bá nội dung văn hóa phi vật thể một cách rộng rãi
Cũng chính vì lý do này mà tôi chọn và nghiên cứu đề tài “Nghiên cứu, xây dựng phần mềm hỗ trợ giảng dạy theo mô hình “vai mẫu” đối với kịch hát dân tộc” Đề tài là một nội dung thực hiện trong dự án bảo tồn và phát huy di
sản văn hoá phi vật thể Nhằm nâng cao chất lượng, tăng hiệu quả của việc giảngdạy, bảo tồn và truyền bá nội dung văn hóa phi vật thể của dân tộc, đề tài được
đề xuất để giải quyết thực trạng giảng dạy tại các trường nghệ thuật, phục vụcông tác đào tạo bậc đại học và cao đẳng về văn hoá nghệ thuật Cụ thể là ápdụng tại trường Đại học Sân khấu – Điện ảnh
Trang 2Trường Đại học Sân khấu - Điện ảnh có sứ mạng đào tạo nguồn nhân lựcchất lượng cao, bồi dưỡng nhân tài trong các lĩnh vực sân khấu, điện ảnh, nhiếpảnh, múa, thiết kế mỹ thuật và truyền hình, góp phần xây dựng nền văn hóa ViệtNam và thực hiện thành công các mục tiêu về hội nhập quốc tế Hiện nay nhàtrường đang đào tạo 16 ngành đào tạo với các chuyên ngành khác nhau tươngứng với các trình độ đào tạo khác nhau Trong đó có các chuyên ngành về Kịch
về Sân khấu truyền thống: diễn viên Chèo, diễn viên Cải lương, diễn viênTuồng, diễn viên Kịch hát dân tộc, …
Công tác giảng dạy các loại hình sân khấu truyền thống tại trường hiệnđang theo hình thức truyền nghề, theo cách giảng viên dạy sinh viên trực tiếptrên lớp phần lý thuyết và thể hiện các mẫu nhân vật theo vai mẫu, sau đó chiacác nhóm sinh viên tự học và tự biểu diễn, sinh viên sẽ tự học và trả bài ở cácbuổi lên lớp tiếp theo Với cách giảng dạy này người học mới thu nhận đượcnhững kiến thức từ một phía và tạo ra những vai diễn dập khuôn, cứng nhắc,thiếu sự cá tính và nét riêng của bản thân Bên cạnh đó, công tác đào tạo bộ mônkịch hát dân tộc còn bất cập: thiếu thốn trang thiết bị phục vụ giảng dạy và họctập, tài nguyên người giảng dạy còn hạn chế, nên các phương pháp giảng dạytrực tiếp chưa thể truyền bá được nội dung văn hóa phi vật thể một cách rộng rãi.Những yếu tố này đã phần nào làm cho học sinh hụt hẫng, khiếm khuyết về kiếnthức và sinh ra những vai diễn “bản sao” của thầy, nghèo nàn, cứng nhắc, thiếucái riêng, độc đáo
Để khắc phục những hạn chế trên Trường ĐH Sân khấu & Điện ảnh đãthực hiện ghi hình (các tệp dữ liệu mẫu) trong các trích đoạn sân khấu truyềnthống, với sự trình diễn của các nghệ nhân, nghệ sĩ tài danh để đưa vào giảngdạy cho sinh viên ngành kịch hát dân tộc của nhà trường Tiến trình ghi hìnhdiễn ra tại cả ba miền ở nước ta với cả ba thể loại: chèo, tuồng, cải lương Tuynhiên, việc áp dụng công nghệ thông tin vào hỗ trợ việc giảng dạy tại nhà trườngmới chỉ ở mức ghi hình các trích đoạn và giảng dạy cho sinh viên với các thểloại: chèo, tuồng, cải lương, kịch hát dân tộc, múa rối Với hình thức ghi hìnhnày chưa đáp ứng được nhu cầu của người học khi muốn xem các vở diễn ởnhiều góc cảnh khác nhau, chưa hỗ trợ người học so sánh các ưu, nhược điểmcủa từng diễn viên khi diễn cùng vai diễn trong cùng một vở diễn
Trang 3Bên cạnh đó những hạn chế về kỹ năng sử dụng máy tính của cán bộ giáoviên trong nhà trường không đồng đều, cán bộ và giáo viên với nhiều độ tuổikhác nhau.
Từ thực trạng trên, việc nghiên cứu xây dựng một hệ thống hỗ trợ giảngdạy theo mô hình “vai mẫu” để giảng viên và người học dễ sử dụng, đạt hiệuquả trong công tác giảng dạy và học tập là rất cần thiết Để hiểu rõ hơn về mục
đích xây dựng hệ thống tôi xin trình bày về hai khái niệm đó là khái niệm “hệ thống hỗ trợ giảng dạy” và khái niệm “vai mẫu”.
Vai mẫu là những nhân vật tiêu biểu trong một số tích diễn của sân khấu
truyền thống, được các thế hệ nghệ nhân, nghệ sĩ sáng tạo, thể hiện, đạt đếnchuẩn mực, được xem là khuôn mẫu nghệ thuật Các vai mẫu này có thể donhiều diễn viên diễn khác nhau thể hiện cùng một nhân vật Trong mỗi loại hìnhnghệ thuật thì đều có các vai mẫu tiêu biểu Ví dụ trong sân khấu chèo các vaimẫu có thể nhắc đến như: Thị Kính, Thị Mầu, Xúy Vân, Mẹ Đốp, Lý Trưởng,…
Hệ thống hỗ trợ giảng dạy được hiểu là hệ thống được xây dựng giúp
công tác giảng dạy của giáo viên hiệu quả hơn, giúp người học phát huy khảnăng sáng tạo, tiếp thu kiến thức nhanh và học tập đạt kết quả cao
Có nhiều hình thức hỗ trợ giảng dạy khác nhau như:
- Các hệ thống quản lý học tâp - Learning managerment Systems
(LMSs) Những hệ thống này hỗ trợ việc quản lý lớp học, danh sách lớp, câu hỏi, bài tập và các học phần Các hệ thống hỗ trợ hình thức này có cả hệ thống nguồn mở và hệ thống trả phí phổ biến như
Moodle, BlackBoard/ WebCT…
- Các hệ thống cung cấp môi trường học tập ảo – Virtual learning
evironments (VLEs) Cung cấp môi trường học tập ảo thể hiện nội dung bài học theo các kịch bản dựng sẵn Các hệ thống này thường là những hệ thống yêu cầu người dùng phải trả phí sử dụng Nổi bật tronghình thức này như: Second life, Open cobalt, OpenSimulator…
- Các hệ thống quản lý nội dung – Content management systems(CMSs) Các hệ thống này cung cấp công cụ quản lý nội dung các bàigiảng, học phần, khóa học, nội dung đa phương tiện Hiện nay cónhiều hệ thống theo hình thức này
Trang 4- Các hệ thống học kết hợp – Blended and online learning Các hệ thống này sẽ áp dụng hình thức kết hợp giữa việc sinh viên lên lớp và kết hợphọc trực tuyến Ví dụ: sinh viên học lý thuyết trực tuyến trên hệ thống
và tham gia thực hành trên lớp, hoặc ngược lại,…
- Các hệ thống blog, wikis… cũng có thể hỗ trợ giảng dạy
Hệ thống được xây dựng sẽ cung cấp những hình thức hỗ trợ giảng dạynhư: cung cấp môi trường học tập ảo, lưu trữ nội dung các khóa học, nội dungcác loại hình nghệ thuật, nội dung bài giảng, người học sẽ kết hợp việc học trênlớp và học online trên hệ thống, bên cạnh đó hệ thống sẽ là thư viện tra cứu cácnội dung đa phương tiện của các loại hình nghệ thuật giúp việc bảo tồn và truyền
bá văn hóa phi vật thể tốt hơn và rộng rãi hơn
Phần mềm hỗ trợ giảng dạy theo mô hình vai mẫu được xây dựng từ cácmẫu thiết kế tương tác người máy lấy người dùng làm trung tâm và ứng dụngcông nghệ đa phương tiện sẽ cung cấp những hình thức hỗ trợ giảng dạy như:
thể hiện các vai mẫu trên môi trường học tập ảo, công cụ xây dựng và lưu trữ
nội dung các khóa học, các loại hình nghệ thuật, nội dung các bài giảng… Sinhviên sẽ kết hợp học lý thuyết trên lớp sau đó sử dụng phần mềm để tham khảo áp
dụng thực hành theo các vai mẫu.
Các mẫu thiết kế tương tác người máy lấy người dùng làm trung tâm đượcxây dựng giúp giảm thời gian, chi phí tài nguyên dự án và tăng cường sự thamgia của người dùng vào quá trình phát triển Việc phần mềm ứng dụng côngnghệ đa phương tiện như (hình ảnh, văn bản, âm thanh, video 2D, video 3D),đặc biệt ứng dụng công nghệ 3D vào hỗ trợ giảng dạy, cho phép người dùng chủđộng quản lý nội dung video 3D, nhúng nội dung video 3D vào bài giảng Trongkhi các phần mềm khác hiện tại mới cho phép nhúng nội dung video 3D từ hệthống khác vào bài giảng Bên cạnh đó phần mềm còn hỗ trợ việc biên tập nộidung video 3D, cho phép kết hợp âm thanh và ghép nhiều cảnh diễn 3D vàocùng một vở diễn, giúp tiết kiệm thời gian biên tập nội dung và tái sử dụng đượccác cảnh diễn 3D
Luận văn bao gồm những phần nội dung sau:
Chương 1 Tổng quan về quy trình phát triển phần mềm Chương này
tổng hợp, tóm tắt tổng quan về các quy trình phát triển phần mềm Để có thể lựachọn được quy trình phù hợp với dự án
Trang 5Chương 2 Các phương pháp tạo mẫu, thiết kế tương tác người máy.
Chương này trình bày tổng quan về mục đích, vai trò, qui trình tạo mẫu Phântích đánh giá, so sánh các phương pháp, các kỹ thuật tạo mẫu và các công cụ tạomẫu Sau đó áp dụng phương pháp tạo mẫu, thiết kế tương tác người máy phùhợp để xây dựng các mẫu thiết kế của phần mềm
Chương 3 Nghiên cứu xây dựng phần mềm Áp dụng kỹ thuật xây dựng
mẫu nhanh dựa trên phân tích lấy người dùng làm trung tâm vào quá trình pháttriển, nghiên cứu ứng dụng công nghệ đa phương tiện (văn bản, hình ảnh, âmthanh, video 2D và 3D) vào hỗ trợ giảng dạy, đặc biệt ứng dụng công nghệ 3D
Trang 6CHƯƠNG 1 TỔNG QUAN VỀ QUY TRÌNH PHÁT TRIỂN
1.1 Quy trình phát triển phần mềm
Vòng đời phần mềm (Software life-cycle): là thời kỳ tính từ khi phần mềm
được sinh (tạo) ra cho đến khi chết đi (từ lúc hình thành đáp ứng yêu cầu, vậnhành, bảo dưỡng cho đến khi loại bỏ) Quy trình phần mềm được phân chiathành các pha chính gồm: phân tích, thiết kế, chế tạo, kiểm thử và bảo trì [3]
Quy trình phát triển phần mềm (Software development/Engineering Process - SEP) là phương pháp phát triển hay sản xuất ra sản phẩm phần mềm.
Có thể nói quy trình phát triển phần mềm có tính chất quyết định để tạo ra sảnphẩm chất luợng tốt với chi phí thấp và năng suất cao [1, 3]
Thông thường một quy trình bao gồm những yếu tố cơ bản sau: Thủ tục
(Procedures), danh sách kiểm định (Checklists), hướng dẫn công việc (Activity Guidelines), công cụ hỗ trợ (Tools) và biểu mẫu (Forms/templates) [1].
Có 4 công việc chính trong quy trình phát triển phần mềm gồm:
- Đặc tả yêu cầu (Requirements Specification): chỉ ra những “đòi
hỏi” cho cả các yêu cầu chức năng và phi chức năng
- Phát triển phần mềm (Development): tạo ra phần mềm thỏa mãn các yêu cầu được chỉ ra trong phần “đặc tả yêu cầu”.
Trang 7- Kiểm thử phần mềm (Validation/Testing): để bảo đảm phần mềm sản xuất ra đáp ứng những “đòi hỏi” được chỉ ra trong “đặc tả yêu cầu”.
- Thay đổi phần mềm (Evolution): đáp ứng nhu cầu thay đổi của
khách hàng
Tùy theo mô hình phát triển phần mềm, các nhóm công việc được triểnkhai theo những cách khác nhau Để sản xuất cùng một sản phẩm phần mềmngười ta có thể dùng các mô hình khác nhau Tuy nhiên không phải tất cả các
mô hình đều thích hợp cho mọi ứng dụng
1.2 Các phương pháp phát triển phần mềm
Trong thời gian gần đây, rất nhiều các phương pháp phát triển phần mềmđược đề xuất Nhiều phương pháp đã được lý thuyết hoá thành các phương phápluận Trong dự án công nghệ thông tin, một phương pháp luận có thể được hiểunhư là một tập các hoạt động thực tiễn được hệ thống hoá Tuỳ theo phạm vi dự
án, điều kiện thời gian và nhiều yếu tố khác mà có thể lựa chọn áp dụng cácphương pháp khác nhau, hoặc kết hợp các phương pháp sao cho phù hợp Các
mô hình, phương pháp phát triển phần mềm có thể được phân chia thành hai lớpchính: các phương pháp truyền thống và các phương pháp phát triển nhanh
Các phương pháp truyền thống là các phương pháp thiên về kế hoạch,
quá trình phát triển phần mềm phải tuân thủ quy trình một cách nghiêm ngặt.Trong quá trình phát triển phần mềm, rất nhiều tài liệu được tạo ra, được xétduyệt và đó là một yếu tố quan trọng trong quản lý rủi ro
Với các phương pháp này, thì quá trình phát triển phần mềm giống nhưsản xuất các mặt hàng công nghiệp khác Những người phát triển thực hiện côngviệc một cách nghiêm ngặt theo các chuẩn và quy trình, không yêu cầu sáng tạonhiều Những người quản lý chỉ quan tâm đến việc tăng năng lực sản xuất và đạtđược một số mục tiêu như [3]:
- Giảm thiểu lỗi và làm sao cho mọi công việc diễn ra trơn tru
Trang 8Các phương pháp này thường áp dụng cho các dự án lớn Một số phươngpháp tiêu biểu thuộc lớp này như: mô hình thác nước, mô hình chữ V, mô hìnhxoắn ốc, mô hình lặp và gia tăng
Các phương pháp phát triển nhanh được gọi với cái tên là Agile, theo
nghĩa là nhanh nhẹn, khéo léo trong hành động, là các phương pháp dựa trên cácquy trình phát triển nhanh Điều này đặc biệt cần thiết trong lĩnh vực Internet vàtruyền thông di động hiện đang phát triển rất nhanh chóng [12]
Các phương pháp phát triển nhanh ra đời cách đây không lâu Nó được bắtđầu bởi tuyên ngôn về các phương pháp phát triển phần mềm Agile được đưa rabởi một nhóm những người hoạt động trong lĩnh vực phần mềm vào năm 2001.Những người này đại diện cho các phương pháp như: Extreme Programming(XP), Scrum, Crystal và các phương pháp khác cùng thống nhất đưa ra một bảntuyên ngôn với những điểm chính sau [12]:
Chúng ta dần phát hiện ra những cách phát triển phần mềm tốt hơn bằngcách thực hiện nó và giúp người khác thực hiện nó Qua công việc này, chúng tathu được các giá trị:
- Các cá nhân và sự tương tác với nhau quan trọng hơn các quy trình và các công cụ
- Làm phần mềm quan trọng hơn việc lập tài liệu
- Việc hợp tác với khách hàng quan trọng hơn việc ký kết hợp đồng
- Đáp ứng thay đổi quan trọng hơn việc theo một kế hoạch
Ở đây không có sự mâu thuẫn giữa các phương pháp truyền thống và cácphương pháp phát triển nhanh Vấn đề là ở chỗ những điều mà các phương phápphát triển nhanh và các phương pháp truyền thống chú trọng vào là khác nhau.Điểm chính của các phương phát phát triển nhanh là việc đáp ứng thay đổi trongkhi các phương pháp truyền thống tập trung vào kế hoạch
Đối với dự án bảo tồn văn hóa phi vật thể nói chung và nội dung “Nghiêncứu, xây dựng phần mềm hỗ trợ giảng dạy theo mô hình ‘vai mẫu’ đối với kịchhát dân tộc” nói riêng, việc áp dụng một trong các phương pháp nhanh sẽ phùhợp hơn so với các phương pháp truyền thống
Trang 91.3 Một số quy trình phát triển phần mềm
Mô hình thác nước (Waterfall Model) là mô hình hình phát triển phần
mềm áp dụng theo tính tuần tự của các giai đoạn phát triển phần mềm Tức làgiai đoạn sau chỉ được thực hiện tiếp khi giai đoạn trước đã kết thúc và khôngđược quay lại giai đoạn trước để xử lí các thay đổi trong yêu cầu
Năm 1970, Royce đã đưa ra khái niệm “mô hình thác nước” có thể sẽ
được cải tiến thành mô hình lặp với các pha theo thứ tự: Xác định các yêu cầu,thiết kế, xây dựng (triển khai, mã hóa, viết code), liên kết, kiểm thử và chỉnhsửa, cài đặt và bảo trì [1]
Nguyên tắc cơ bản của mô hình thác nước:
- Dự án được chia thành các giai đoạn tuần tự, có thể được chấp nhận được một chút sự chồng chéo và quay lui trở lại giữa các giai đoạn
- Nhấn mạnh vào kế hoạch, tiến độ, thời gian mục tiêu để hoàn thành dự
án, ngân sách và thực hiện toàn bộ hệ thống cùng một lúc
- Được kiểm soát chặt chẽ thông qua việc sử dụng tài liệu bằng văn bản, cũng như thông qua việc đánh giá chính thức và ký kết bởi người sử dụng vào cuối giai đoạn trước khi bắt đầu giai đoạn tiếp theo
Hình 1.1 Mô hình thác nước
Hiện nay, tồn tại một số mô hình thác nước biến thể như mô hình củaRoyce để phù hợp hơn với thực tế Để giải quyết các vấn đề với mô hình thácnước nguyên mẫu, các mô hình thác nước đã được chỉnh sửa và giới thiệu,
chẳng hạn như: “Mô hình thác nước với các pha chồng chéo, thác nước với các
dự án nhỏ và thác nước với giảm rủi ro”.
Trang 10Mô hình này được sử dụng khi yêu cầu ổn định và không thay đổi thường
xuyên, phù hợp với các ứng dụng nhỏ, không có yêu cầu khó hiểu hoặc không rõràng, môi trường ổn định, các công cụ và công nghệ được sử dụng là ổn định,nguồn lực được đào tạo sẵn sàng
Ưu điểm: đơn giản, dễ hiểu và sử dụng Đối với các dự án nhỏ hơn, mô
hình thác nước hoạt động tốt và mang lại kết quả phù hợp Vì các giai đoạn của
mô hình thác nước cứng nhắc và chính xác, một pha được thực hiện một lần, nórất dễ dàng để bảo trì Các tiêu chí đầu vào và đầu ra được xác định rõ ràng, do
đó dễ dàng đánh giá chất lượng
Nhược điểm: mô hình không thể chấp nhận thay đổi yêu cầu, sẽ trở nên rất
khó khăn để quay trở lại giai đoạn Đối với các dự án lớn và phức tạp, mô hìnhnày không tốt vì yếu tố rủi ro cao hơn Không thích hợp cho các dự án thườngxuyên thay đổi yêu cầu Khi thử nghiệm được thực hiện ở giai đoạn sau, nókhông cho phép xác định những thách thức và rủi ro trong giai đoạn trước nênchiến lược giảm thiểu rủi ro rất khó để chuẩn bị
Mô hình chữ V (V-Shaped Model) hay mô hình xác minh (verification)
và mô hình xác nhận (validation) là một mở rộng của mô hình thác nước, thay vì
di chuyển xuống theo tuần tự các bước thì quy trình sẽ đi theo hình chữ V Sựkhác biệt chính là việc lập kế hoạch kiểm tra sớm trong mô hình hình chữ V.Đây là mô hình có kỷ luật cao và giai đoạn tiếp theo chỉ bắt đầu sau khi giaiđoạn trước hoàn thành [1, 3]
Xác minh (Verification): là một kỹ thuật phân tích tĩnh Trong kiểm thử,
kỹ thuật này được thực hiện mà không phải chạy code Nó bao gồm một số hoạt
động như xem lại (Review), kiểm tra (Inspection) và kiểm tra từ đầu tới cuối (Walkthrough).
Xác nhận (Validation): là một kỹ thuật phân tích động, trong đó việc kiểm
thử được thực hiện bằng cách thực hiện code Ví dụ bao gồm kỹ thuật kiểm tra
chức năng (Function) và phi chức năng (Non-function).
Trong mô hình chữ này các hoạt động phát triển và đảm bảo chất lượngđược thực hiện đồng thời Kiểm thử được bắt đầu ngay từ giai đoạn lấy yêu cầu.Các hoạt động xác minh và xác nhận đi liền với nhau được minh họa trong Hình1.2 Trong quy trình phát triển theo mô hình chữ V điển hình, bên trái là các hoạtđộng phát triển và bên tay phải là các hoạt động kiểm thử Trong giai đoạn
Trang 11phát triển cả việc xác minh và xác nhận được thực hiện cùng với các hoạt độngphát triển thực tế.
Hình 1.2 Mô hình chữ V
Mô hình này phù hợp với các dự án có yêu cầu được xác định và ghi lại rõràng, các dự án được định nghĩa ổn định có quy mô vừa và nhỏ, các dự án ngắn,các dự án có công nghệ không thay đổi và đội ngũ dự án hiểu rõ yêu cầu, không
có yều cầu mơ hồ hoặc không xác định
Ưu điểm: quá trình phát triển và quy trình quản lý có tính tổ chức và hệ
thống, hoạt động tốt cho các dự án có quy mô vừa và nhỏ Kiểm tra bắt đầu từkhi bắt đầu phát triển vì vậy sự mơ hồ được xác định ngay từ đầu Dễ dàng quản
lý vì mỗi giai đoạn có các mục tiêu và mục tiêu được xác định rõ ràng Mỗi giaiđoạn có các sản phẩm cụ thể và một quá trình đánh giá
Nhược điểm: không thích hợp cho các dự án lớn và phức tạp, dự án có các
yêu cầu thường xuyên thay đổi
Mô hình thử nghiệm tiến hóa phần mềm (Evolutionary Prototyping Model) [3] đề cập đến việc xây dựng các nguyên mẫu ứng dụng phần mềm thể
hiện tính năng của sản phẩm đang được phát triển nhưng có thể không có sựhoạt động logic chính xác của phần mềm gốc Dựa vào những yêu cầu của kháchhàng người phát triển phần mềm sẽ xây dựng một mẫu thử ban đầu đưa chongười sử dụng xem xét, sau đó tinh chỉnh qua nhiều mẫu thử cho đến khi thỏamãn yêu cầu người sử dụng thì dừng lại
Sau đây là cách tiếp cận các bước để giải thích cách thiết kế một mẫu thửnghiệm của phần mềm
Trang 12Hình 1.3 Mô hình thử nghiệm tiến hóa Xác định yêu cầu cơ bản: bước này liên quan đến việc hiểu được các yêu
cầu cơ bản về sản phẩm và đặc biệt nhất là về giao diện người dùng Các chi tiếtphức tạp hơn của thiết kế bên trong và các khía cạnh bên ngoài như hiệu suất vàbảo mật có thể bỏ qua ở giai đoạn này
Phát triển nguyên mẫu ban đầu: những nguyên mẫu ban đầu được phát
triển trong giai đoạn này, nơi yêu cầu rất cơ bản được giới thiệu và các giao diệnngười dùng được cung cấp Các tính năng này có thể không hoạt động chính xáctheo cách tương tự trong phần mềm thực tế khi phát triển, những nguyên mẫucung cấp cho khách hàng cái nhìn và cảm nhận về phần mềm sẽ như thế nào saukhi phát triển
Đánh giá mẫu thử nghiệm: nguyên mẫu được phát triển sau đó được trình
bày cho khách hàng và các bên liên quan trong dự án Phản hồi được thu thập có
tổ chức và được sử dụng để cải tiến thêm trong sản phẩm đang được phát triển
Sửa đổi và nâng cao nguyên mẫu: phản hồi và ý kiến đánh giá được thảo
luận trong giai đoạn này và một số cuộc thương lượng diễn ra với khách hàngdựa trên các yếu tố như: hạn chế về thời gian, về ngân sách và tính khả thi vềmặt kỹ thuật khi thực hiện Các thay đổi được chấp nhận sẽ được kết hợp vớinguyên mẫu mới phát triển và chu kỳ lặp lại cho đến khi đáp ứng được kỳ vọngcủa khách hàng
Ưu điểm: tăng sự tham gia của người sử dụng vào sản phẩm ngay cả trước
khi phần mềm thực hiện Kể từ khi một mô hình làm việc của hệ thống đượchiển thị, người sử dụng hiểu rõ hơn về hệ thống đang được phát triển Giảm thờigian và chi phí vì các lỗi có thể được phát hiện sớm hơn nhiều Phản hồi củangười dùng nhanh hơn dẫn đến có các giải pháp tốt hơn Thiếu sót chức năng thì
có thể được xác định một cách dễ dàng Có thể xác định các chức năng khó hiểu
Trang 13Nhược điểm: có nguy cơ phân tích yêu cầu không đầy đủ do có sự phụ
thuộc quá nhiều vào mẫu thử nghiệm Người dùng có thể bị nhầm lẫn giữa cácchức năng trong nguyên mẫu và hệ thống thực tế Thực tế, phương pháp này cóthể làm tăng tính phức tạp của hệ thống vì phạm vi của hệ thống có thể mở rộng
ra ngoài kế hoạch ban đầu Các nhà phát triển có thể thử sử dụng lại nguyên mẫuhiện có để xây dựng hệ thống thực tế ngay cả khi nguyên mẫu không khả thi vềmặt kỹ thuật Nỗ lực, chi phí đầu tư xây dựng nguyên mẫu có thể là quá nhiềunếu nó không được theo dõi và quản lý đúng
Học viên đã áp dụng mô hình thử nghiệm tiến hóa vào quá trình nghiêncứu, xây dựng hệ thống hỗ trợ giảng dạy theo mô hình “vai mẫu” đối với kịchhát dân tộc, bởi các ưu điểm của mô hình này giúp quá trình phát triển hệ thốngđạt được tiến độ, và chi phí, giúp quá trình đào tạo người dùng dễ dàng hơn
Mô hình xoắn ốc (Spiral Model) [1-3] là sự kết hợp giữa mô hình thác
nước và mô hình tiếp cận lặp và nó có nhiều điểm giống nhau với mô hình giatăng Mô hình này chú trọng vào phân tích rủi ro dự án Mỗi giai đoạn trong môhình được bắt đầu với yêu cầu, mục tiêu thiết kế và kết thúc với việc khách hàngkiểm tra tiến độ của từng giai đoạn
Về cấu trúc, mô hình xoắn ốc có bốn giai đoạn Một dự án phần mềm liên tục
đi qua các giai đoạn này trong các vòng lặp gọi là xoắn ốc
Hình 1.4 Mô hình xoắn ốc
Các giai đoạn của mô hình xoắn ốc gồm:
Lập kế hoạch (Planning phase): thu thập, phân tích yêu cầu khách hàng
Trang 14lượng nhân lực, môi trường làm việc, tìm hiểu yêu cầu hệ thống từ đó đưa ra cáctài liệu đặc tả để phục vụ cho việc trao đổi giữa khách hàng và phân tích hệthống sau này.
Phân tích rủi ro (Risk analysis phase): xác định rủi ro và đưa ra các giải
pháp thay thế Một prototype sẽ được tạo ra ở cuối giai đoạn phân tích rủi ro.Nếu có bất kỳ rủi ro nào được tìm thấy trong quá trình này thì các giải pháp thaythế sẽ được đề xuất và thực hiện
Thực thi kỹ thuật (Engineering phase): dự án được tiến hành viết mã, một
bản demo được phát triển trong giai đoạn này để có thể nhận được phản hồi củakhách hàng Sau đó trong các vòng xoắn tiếp theo với độ rõ nét cao hơn về yêucầu và chi tiết thiết kế một mô hình làm việc của phần mềm được gọi là sảnphẩm được xây dựng với số phiên bản
Đánh giá (Evaluation phase): khách hàng sẽ tham gia đánh giá công việc,
sản phẩm và đảm bảo rằng sản phẩm đáp ứng tất cả các yêu cầu đã đặt Nếu cóbất kỳ yêu cầu thay đổi nào từ khách hàng, các giai đoạn sẽ được lặp lại Đây làgiai đoạn quan trọng vì cần có sự phản hồi của khách hàng về sản phẩm trướckhi sản phẩm được phát hành
Ưu điểm: cho phép các thành phần của sản phẩm được thêm vào, khi
chúng trở nên có sẵn Điều này đảm bảo rằng không có xung đột với yêu cầu vàthiết kế trước đó Một khía cạnh tích cực của phương pháp này là buộc người sửdụng sự tham gia sớm vào quá trình phát triển hệ thống
Nhược điểm: quản lý phức tạp và không thích hợp với các dự án nhỏ, ít
rủi ro Cần có kĩ năng tốt về phân tích rủi ro Yêu cầu thay đổi thường xuyên dẫnđến lặp vô hạn Đòi hỏi năng lực quản lí
Mô hình lặp và gia tăng Trong mô hình này, toàn bộ các yêu cầu được
chia thành nhiều bản xây dựng khác nhau Trong mỗi lần lặp, mỗi môđun pháttriển đi qua các giai đoạn yêu cầu, thiết kế, thực hiện và kiểm thử Mỗi phiênbản phát hành tiếp theo sẽ có thêm các chức năng mới cho các phiên bản đượcphát hành trước đó Quá trình này tiếp tục cho đến khi hệ thống hoàn chỉnh và
đã sẵn sàng theo yêu cầu [3]
Phát triển lặp và gia tăng là sự kết hợp của cả thiết kế lặp lại, phương pháplặp và xây dựng mô hình gia tăng để phát triển Trong quá trình phát triển
Trang 15phần mềm, có thể tiến hành nhiều vòng lặp cùng một lúc Quá trình này có thểđược mô tả như là một cách tiếp cận “tiến hóa” hoặc “tăng dần”.
Hình 1.5 Mô hình lặp và gia tăng
Ưu điểm: xây dựng và hoàn thiện các bước sản phẩm theo từng bước, có
thể nhận được phản hồi của người sử dụng từ những bản phác thảo, thời gianlàm tài liệu sẽ ít hơn so với thời gian thiết kế Tìm ra các vấn đề ở giai đoạn pháttriển sẽ làm giảm chi phí thực hiện các biện pháp khắc phục lỗi, sai sót
Nhược điểm: mô hình này chỉ áp dụng cho các dự án phát triển phần mềm
qui mô lớn và cồng kềnh, bởi vì đối với hệ thống phần mềm nhỏ rất khó có thểchia tách một hệ thống thành các bước gia tăng hay các mô-đun
Mô hình Scrum [11] là tập hợp các phương thức phát triển lặp và tăng
dần trong đó các yêu cầu cũng như giải pháp được phát triển thông qua sự liênkết và cộng tác giữa các nhóm, giữa các chức năng Agile chỉ là một mô hìnhtrên lý thuyết mà để triển khai nó đến thực tế thì cần phải có phương pháp cụthể, một trong các phương pháp được áp dụng rộng rãi là phương pháp Scrum
Dự án sẽ được chia thành từng nhóm phát triển bao gồm: Product Owner,Scrum Master và nhóm phát triển Product Owner sẽ tạo ra một danh sách cáchạng mục cần phải phát triển theo độ ưu tiên cho sản phẩm được gọi là ProductBacklog Dựa vào đó, một bản kế hoạch sẽ được lập để chia dự án thành cácSprint tương ứng là các Sprint Backlog Mỗi Sprint được kéo dài từ 1-4 tuần, saukhi kết thúc kết quả sẽ được chuyển giao theo các hạng mục trong SprintBacklog và phải thỏa mãn định nghĩa hoàn thành đã được thống nhất trước đó.Cuối cùng là sơ kết và cải tiến sprint sẽ được diễn ra, đưa ra phương pháp cảitiến để có được hiệu quả tốt hơn
Trang 16Hình 1.6 Mô hình Scrum
Ưu điểm: là một mô hình hiện đại đang được ưa chuộng, bàn giao sản
phẩm một cách nhanh chóng liên tục cho khách hàng Sự tương tác và yếu tốcon người được nhấn mạnh Đề cao tính thích nghi liên tục thay đổi và làm mới
Nhược điểm: mô hình này cần nguồn nhân lực có yếu tố chuyên môn kỹ
thuật cao Dự án dễ đi chệch hướng khi khách hàng không đưa ra được kết quảmong muốn cuối cùng Chưa có được sự tập trung cần thiết vào thiết kế và tàiliệu cần thiết
Mô hình Agile (Agile Software Development) [12] là một quy trình phát
triển phần mềm linh hoạt với ý tưởng khắc phục nhược điểm của các phươngpháp phát triển phần mềm truyền thống, với mục tiêu mang đến cho phần mềmkhả năng biến đổi, phát triển linh hoạt theo từng giai đoạn đơn giản đáp ứngđúng yêu cầu của khách hàng
Agile phát triển dựa trên quy trình phát triển lặp Mỗi dự án được chiathành nhiều giai đoạn nhỏ dễ dàng đáp ứng khi có yêu cầu thay đổi từ kháchhàng Sản phẩm được bàn giao cho khách hàng theo từng giai đoạn, cứ mỗi khimột mảng nhỏ được bàn giao, khách hàng có thể đưa ra các thay đổi hoặc yêucầu mới cho dự án và nhóm phát triển sẽ cập nhật sản phẩm theo đúng yêu cầucủa khách hàng mà không cần làm lại từ đầu
Trang 17Hình 1.7 Mô hình Agile
Mô hình Agile hoạt động dựa trên những tôn chỉ sau:
- Cá nhân và sự tương hỗ quan trọng hơn quy trình và công cụ
- Phần mềm sử dụng được quan trọng hơn tài liệu về sản phẩm
- Cộng tác với khách hàng quan trọng hơn đàm phán hợp đồng
- Phản hồi với sự thay đổi quan trọng hơn bám theo kế hoạch
Các nguyên tắc của Manifesto Agile
Nguyên tắc 1: thỏa mãn yêu cầu của khách hàng thông qua việc giao hàngsớm và liên tục
Nguyên tắc 2: giao phần mềm chạy được cho khách hàng một cáchthường xuyên (giao hàng tuần hơn là hàng tháng)
Nguyên tắc 3: chào đón việc thay đổi yêu cầu, thậm chí là những thay đổiyêu cầu muộn
Nguyên tắc 4: khách hàng của dự án và đội phát triển phải làm việc cùngnhau hàng ngày trong suốt dự án
Nguyên tắc 5: các dự án được xây dựng xung quanh những cá nhân cóđộng lực Cung cấp cho họ môi trường và sự hỗ trợ cần thiết, và tin tưởng họ đểhoàn thành công việc
Nguyên tắc 6: trao đổi trực tiếp mặt đối mặt là phương pháp hiệu quả nhất
để truyền đạt thông tin
Trang 18Ưu điểm: Agile là một cách tiếp cận rất thực tế để phát triển phần mềm
cho phép thúc đẩy làm việc theo nhóm và đào tạo chéo Các chức năng có thểđược phát triển nhanh chóng và có thể demo nhanh với yêu cầu tài nguyên tốithiểu Thích hợp với các dự án có yêu cầu cố định hoặc thay đổi, cung cấp cácgiải pháp làm việc từng phần
Nhược điểm: không thích hợp để xử lý phụ thuộc phức tạp Rủi ro hơn về
tính bền vững, khả năng bảo trì và khả năng mở rộng Một kế hoạch tổng thể,người quản lý nhóm và quản lý dự án là cần thiết mà không có nó sẽ không hoạtđộng Phụ thuộc rất nhiều vào sự tương tác của khách hàng, do đó nếu kháchhàng không rõ ràng, nhóm có thể bị lái theo đúng hướng Có một sự phụ thuộc
cá nhân rất cao, vì có tài liệu tối thiểu được tạo ra Việc chuyển giao công nghệcho các thành viên mới trong nhóm có thể khá khó khăn do thiếu tài liệu
Mô hình XP (Extreme Programming) [7] là phương pháp phát triển phần
mềm hướng đến việc nâng cao chất lượng phần mềm và khả năng đáp ứng vớithay đổi yêu cầu người dùng XP là một trong các phương pháp thuộc họ Agile,
nó chủ trương đưa ra các bản phát hành thường xuyên thông qua các chu trìnhphát triển ngắn Việc này là để nâng cao năng suất và tạo ra những thời điểm đểtiếp nhận những yêu cầu người dùng mới
XP tập trung vào việc áp dụng tốt nhất những kỹ thuật lập trình, giao tiếp
rõ ràng và làm việc nhóm để tạo những sản phẩm tốt nhất Một số thành phần và
đặc điểm của XP: Lập trình cặp (Pair programming), rà soát mã nguồn, kiểm
thử đơn vị, giữ mã nguồn đơn giản và rõ ràng, sẵn sàng đón nhận các thay đổi,trao đổi thường xuyên với khách hàng, trao đổi thường xuyên giữa các nhà pháttriển Bốn đại lượng được XP nhấn mạnh đó là: phạm vi, chi phí, chất lượng vàthời gian Các đại lượng này có liên hệ chặt chẽ với nhau và ảnh hưởng lẫnnhau, và việc thay đổi một đại lượng sẽ làm thay đổi các đại lượng còn lại Việcquản lý các đại lượng này sẽ có tác động đến sản phẩm đầu ra Vòng đời của quytrình XP được minh họa trong Hình 1.8
Trang 19Hình 1.8 Mô hình XP
Các giá trị trong XP:
- Giao tiếp (Communication): mọi người trong nhóm trao đổi trực
diện hằng ngày, trong tất cả các công việc từ phân tích yêu cầu chotới lập trình
- Tính đơn giản (Simplicity): chỉ làm những gì cần thiết, không hơn.
Làm những gì cần thiết cho hiện tại, không phải tương lai quá xa,với những bước nhỏ để cán đích và giản lược tối đa các sai sót
- Phản hồi (Feedback): cam kết nghiêm túc để liên tục bàn giao các
phần mềm chạy tốt vào cuối các phân đoạn (iteration) ngắn Luôn
có thể demo phần mềm chạy tốt từ sớm và thường xuyên, lắng nghephản hồi từ các bên và thực hiện các điều chỉnh cần thiết
- Tôn trọng (Respect): mọi người tự cảm thấy và được tôn trọng vì họ
là những thành viên quan trọng của nhóm Mỗi người đều đóng vaitrò vào việc tạo ra các giá trị không kể công việc như thế nào
- Can đảm (Courage): luôn nói đúng về tiến độ và ước lượng Không
cần thiết phải sợ điều gì bởi vì thành viên không làm việc mộtmình Mỗi khi có thay đổi, nhóm sẽ có các hành động cần thiết đểthích ứng Can đảm trong việc vứt đi những gì không thực sự cầnthiết nữa (mã nguồn, giấy tờ …)
Các nguyên tắc:
Trang 20- Phản hồi nhanh (Rapid Feedback): luôn lắng nghe phản hồi từ
nhiều phía, lấy được phản hồi một cách nhanh nhất, tìm hiểu chúng
và đưa những hiểu biết đó vào trong hệ thống nhanh nhất có thể.Lập trình viên có thể học được cách thiết kế, lập trình, kiểm thử tốtnhất trong phạm vi từng phút chứ không phải hằng ngày, tuần hoặcthậm chí hằng tháng
- Giả định đơn giản (Assume Simplicity): Đối xử với các vấn đề như
thể chúng có thể giải quyết bằng những giải pháp đơn giản nhất
- Thay đổi tiệm tiến (Incremental Change): không thay đổi cả “lố”,
mà chỉ thay đổi một ít trong thiết kế, chức năng
- Sống chung với thay đổi (Embracing Change): chiến thuật tốt nhất
là tôn trọng tất cả các khả năng trong khi giải quyết các vấn đề áplực nhất
- Công việc chất lượng cao (Quality Work): phải luôn đầu tư để có
được chất lượng công việc cao nhất, đến mức “hoàn hảo”
- Ưu điểm của mô hình này là đội dự án nhanh chóng nhận đượcphản hồi từ phía khách hàng Những thay đổi cần thiết sẽ được ápdụng ngay trong lần lặp tiếp theo
- Nhược điểm: khó có thể áp dụng XP trên các dự án có số lượngnhân viên lớn, không hiệu quả đối với những khách hàng ở xa độingũ phát triển
Mô hình phát triển nhanh (Rapid Application Development- RAD) [8]
chính là mô hình tăng dần với chu kỳ phát triển cực ngắn Để đạt được mục tiêunày, RAD dựa trên phương pháp phát triển trên cơ sở thành phần hóa hệ thốngcùng với việc tái sử dụng các thành phần thích hợp RAD thích hợp cho những
hệ thống quản lý thông tin Mô hình RAD phân phối các phân tích, thiết kế, xâydựng và các giai đoạn thử nghiệm vào một loạt các chu trình phát triển ngắn,lặp Các giai đoạn khác nhau của mô hình RAD:
Mô hình hóa nghiệp vụ, cho sản phẩm được phát triển, thiết kế theo luồng
thông tin và phân phối thông tin giữa các nghiệp vụ khác nhau Một phân tíchnghiệp vụ hoàn chỉnh được thực hiện để tìm ra những thông tin quan trọng chohoạt động nghiệp vụ, làm thế nào để có được điều đó, như thế nào và khi nào thìthông tin được xử lý và những yếu tố nào thúc đẩy dòng thông tin thành công
Trang 21Mô hình hóa dữ liệu, thông tin thu thập được trong giai đoạn mô phỏng
nghiệp vụ được xem xét và phân tích để tạo thành các bộ đối tượng dữ liệu quantrọng cho hoạt động nghiệp vụ Các thuộc tính của tất cả các bộ dữ liệu đượcđịnh nghĩa và xác định Mối quan hệ giữa các đối tượng dữ liệu được thiết lập vàxác định cụ thể liên quan đến mô hình nghiệp vụ
Mô hình hóa quy trình, tập những đối tượng dữ liệu được xác định trong
giai đoạn mô hình hóa dữ liệu được chuyển đổi để thiết lập luồng thông tinnghiệp vụ cần thiết để đạt được các mục tiêu nghiệp vụ cụ thể theo mô hìnhnghiệp vụ Mô hình hóa quy trình cho bất kỳ thay đổi hoặc cải tiến đối với tậpnhững đối tượng dữ liệu được xác định trong giai đoạn này Mô tả quy trình đểthêm, xóa, truy xuất hoặc sửa đổi một đối tượng dữ liệu được đưa ra
Xây dựng ứng dụng, hệ thống thực tế được xây dựng và mã hóa được thực
hiện bằng cách sử dụng các công cụ tự động hóa để chuyển đổi mô hình quytrình và dữ liệu thành các nguyên mẫu thực tế
Kiểm thử và nghiệm thu, thời gian thử nghiệm tổng thể được giảm xuống
trong mô hình RAD vì các nguyên mẫu được kiểm tra độc lập giữa mỗi lần lặp.Tuy nhiên, luồng dữ liệu và giao diện giữa tất cả các thành phần cần phải đượckiểm tra kỹ lưỡng với phạm vi kiểm tra hoàn chỉnh Vì hầu hết các thành phầnlập trình đã được thử nghiệm, nó làm giảm nguy cơ của bất kỳ vấn đề lớn nào
Hình 1.9 Mô hình phát triển nhanh
Ưu điểm: RAD cho phép phân phối nhanh chóng vì nó giúp giảm thời
gian phát triển tổng thể do khả năng sử dụng lại các thành phần và phát triểnsong song Có thể được áp dụng thành công cho các dự có sự môđun hóa rõ ràng
Nhược điểm: phụ thuộc vào các thành viên trong nhóm kỹ thuật để xác
định các yêu cầu nghiệp vụ Không thích hợp với các dự án ít kinh phí vì chi phícho việc lập mô hình và tạo mã tự động rất cao, quản lý phức tạp Thích hợp chocác dự án đòi hỏi thời gian phát triển ngắn hơn, yêu cầu sự tham gia của ngườidùng trong suốt vòng đời
Trang 221.4 Kết chương
Chương này cung cấp một cái nhìn tổng thể về các yếu tố trong qui trìnhphát triển phần mềm Những yếu tố này thường là các nhân tố quan trọng ảnhhưởng đến chất lượng phần mềm và khả năng đáp ứng mong muốn của kháchhàng Việc lựa chọn áp dụng các phương pháp phát triển phần mềm phù hợp, sẽtăng khả năng đáp ứng thay đổi nhanh để có thể đưa ra được sản phẩm phầnmềm có chất lượng, thoả mãn mong muốn của khách hàng và đảm bảo tiến độthực hiện Đã có nhiều phương pháp phát triển phần mềm được đề xuất, luận văn
đã phân tích, đánh giá ưu, nhược điểm và khả năng ứng dụng của từng phươngpháp Từ những nội dung trình bày trong chương 1, học viên đề xuất phương án
áp dụng mô hình thử nghiệm tiến hóa vào quá trình xây dựng phần mềm hỗ trợ
giảng dạy, bởi các ưu điểm của mô hình tăng sự tham gia của người dùng vàoquá trình phát triển, giúp người dùng có cái nhìn ban đầu về hệ thống sẽ đượcphát triển, bên cạnh đó mô hình còn hỗ trợ việc hướng dẫn sử dụng, đặc biệt vớiđối tượng người sử dụng là những giảng viên lớn tuổi
Để có thể áp dụng được mô hình thử nghiệm tiến hóa, trong chương 2
luận văn sẽ phân tích kỹ và chi tiết hơn về phương pháp tạo mẫu, thiết kế tương tác người - máy cho phần mềm.
Trang 23CHƯƠNG 2 CÁC PHƯƠNG PHÁP TẠO MẪU, THIẾT KẾ
TƯƠNG TÁC NGƯỜI - MÁY
Thiết kế phần mềm là một công đoạn quan trọng trong quy trình phát triểnphần mềm, giai đoạn này quyết định sự thành công hay thất bại của phần mềm.Việc xây dựng phần mềm theo mẫu thiết kế hướng tới việc tái sử dụng lại cácmẫu thiết kế nhằm giảm chi phí thực hiện, tăng tính hiệu quả và tính nhất quán
về bố cục phần mềm Trong mô hình thử nghiệm tiến hóa, việc tạo mẫu thiết kế
là công việc xuyên suốt của mô hình Vì vậy, việc lựa chọn phương pháp thiết kếphù hợp với mô hình phát triển này sẽ giúp đạt hiệu quả về tiến độ, chi phí, tàinguyên của dự án Nội dung chương này học viên sẽ tập trung giới thiệu tổngquan về mẫu thiết kế, các phương pháp và kỹ thuật tạo mẫu, ưu nhược điểm củaviệc tạo mẫu, các tiêu chí đánh giá mẫu Từ các nội dung này học viên đề xuấtphương pháp tạo mẫu thích hợp với mô hình đã lựa chọn Nội dung chi tiết củachương học viên trình bày dưới đây
2.1 Tổng quan về mẫu thiết kế
Ý tưởng dùng mẫu xuất phát từ ngành kiến trúc, Alexander, Ishikawa,Silverstein, Jacobson, Fiksdahl-King và Angel (1977) lần đầu tiên đưa ra ýtưởng dùng các mẫu chuẩn trong thiết kế xây dựng và giao thông Họ đã xácđịnh và lập sưu liệu các mẫu có liên quan để giải quyết các vấn đề thường xảy ratrong thiết kế các cao ốc Mỗi mẫu này là một cách thiết kế, chúng đã được pháttriển qua nhiều năm và như là các giải pháp cho các vấn đề trong lĩnh vực xâydựng thường gặp Các giải pháp tốt nhất có được là qua một quá trình sàng lọc
tự nhiên Mẫu được xem là giải pháp tốt để giải quyết vấn đề xây dựng hệ thốngphần mềm [4]
Mẫu thiết kế (Design Patterns) [4] mô tả giải pháp chung đối với một vấn
đề nào đó trong thiết kế thường được “lặp lại” trong nhiều dự án Một Pattern có thể được xem như một “khuôn mẫu” có sẵn áp dụng được cho nhiều tình huống
khác nhau để giải quyết một vấn đề cụ thể Trong bất kỳ hệ thống phần mềmhướng đối tượng nào chúng ta cũng có thể bắt gặp các vấn đề lặp lại Mẫu thiết
kế là những thiết kế đã được sử dụng và được đánh giá tốt giúp giải quyết nhữngvấn đề thiết kế thường gặp Chú trọng đến việc giúp cho bản thiết kế có tínhuyển chuyển, dễ nâng cấp và dễ thay đổi
Trang 24Mẫu thiết kế là khái niệm rộng và bao quát trong công đoạn thiết kế phầnmềm Cũng giống như các yêu cầu của thiết kế và phân tích hướng đối tượngviệc sử dụng các mẫu cũng cần tái sử dụng được các giải pháp chuẩn đối với cácvấn đề thường xuyên xảy ra Mẫu thiết kế giúp thúc đẩy việc sử dụng lại trongpha thiết kế vì mẫu cung cấp từ vựng chung cho thiết kế, cung cấp nhữngphương tiện để hiểu thiết kế, và được tạo thành khối hợp nhất từ đó xây dựngnhững ứng dụng phức tạp hơn.
Mục đích của một nguyên mẫu là cho phép người sử dụng phần mềmđánh giá các đề xuất của nhà phát triển cho việc thiết kế sản phẩm cuối cùngbằng cách thực sự thử chúng ở bên ngoài chứ không phải giải thích và đánh giáthiết kế dựa trên mô tả Tạo nguyên mẫu cũng có thể được sử dụng bởi ngườidùng cuối để mô tả và chứng minh những yêu cầu chưa được xem xét và đó cóthể là một yếu tố quan trọng trong mối quan hệ thương mại giữa các nhà pháttriển và khách hàng của họ Thiết kế tương tác nói riêng sử dụng rất nhiềunguyên mẫu phù hợp với mục tiêu đó Tạo mẫu cũng có thể tránh được chi phílớn và khó khăn trong việc thay đổi một sản phẩm phần mềm đã hoàn thành
2.2 Phương pháp và kỹ thuật tạo mẫu
2.2.1 Quá trình tạo mẫu (Software Prototyping)
Các mẫu được sử dụng khi các yêu cầu phần mềm không thể được xácđịnh tại thời điểm bắt đầu dự án, khi những người sử dụng không thể diễn đạtcác yêu cầu của họ một cách rõ ràng Mô hình phát triển phần mềm này rất phù
hợp để phát triển “cảm nhận” hoặc giao diện sử dụng của hệ thống, bởi vì các
đặc điểm này rất khó để miêu tả bằng tài liệu, mà thường thu được thông quaviệc dùng thử nghiệm Khi khách hàng yêu cầu chứng minh tính khả thi [5]
Quá trình tạo mẫu gồm các bước sau:
Hình 2.1 Quá trình tạo mẫu (Software Prototyping)
Trang 25Bước 1: Xác định các yêu cầu cơ bản Xác định các thông tin đầu vào và
đầu ra mong muốn
Bước 2: Phát triển nguyên mẫu ban đầu Nguyên mẫu ban đầu được
phát triển chỉ bao gồm các giao diện người dùng
Bước 3: Xem xét, đánh giá các nguyên mẫu Khách hàng và người dùng
cuối, kiểm tra nguyên mẫu và phản hồi để bổ sung tính năng hoặc thay đổi
Bước 4: Sửa đổi và nâng cao mẫu thử nghiệm Tại bước này sẽ sử dụng
các phản hồi cùng các chi tiết kỹ thuật và nguyên mẫu có thể được cải thiện.Đàm phán về những gì nằm trong phạm vi của hợp đồng, sản phẩm có thể là cầnthiết Nếu thay đổi được đề xuất thì có thể cần lặp lại các bước 3 và bước 4
2.2.2 Các phương pháp tạo mẫu
Nguyên mẫu (Prototyping) [8] là một hệ thống có tính trình diễn, một mô hình làm việc “nhanh và thô” của giải pháp cho hệ thống, nhằm kiểm tra một số
chức năng nào đó Có thể dùng giao diện người dùng miêu tả các thao tác khác
nhau của hệ thống, nội dung có thể là mã cứng (hard-coded) Đây là một công
cụ để thảo luận các khái niệm và có được sự đồng ý của người dùng sau trảinghiệm, nhưng nhóm phát triển vẫn phải hoàn toàn tạo ra hệ thống dựa trên bản
vẽ Vì lý do này, các bản vẽ này đôi khi được gọi là nguyên mẫu (Throwaway).
Khi các giải pháp được đề xuất liên quan đến việc bổ sung các màn hình trựctuyến hoặc tạo ra các báo cáo, các nhà phân tích nghiệp vụ thường tạo ra nhữngnguyên mẫu bao gồm storyboards, mô phỏng, hoặc mô hình Việc tạo mẫu phầnmềm có nhiều biến thể Tuy nhiên, tất cả các phương pháp này được dựa trên hai
hình thức tạo mẫu chính: nguyên mẫu (Throwaway Prototying) và mô hình tiến hóa (Evolutionary prototyping) [5].
Nguyên mẫu còn được gọi là mẫu cuối Mẫu mô phỏng hay mẫu nhanh
đề cập đến việc tạo ra một mô hình mà ở khâu cuối cùng mẫu sẽ được loại bỏchứ không trở thành một phần của phần mềm cuối cùng Sau khi hoàn thànhviệc thu thập yêu cầu sơ bộ, một mô hình làm việc đơn giản của hệ thống đượcxây dựng để hiển thị trực quan cho người sử dụng có thể thấy được hệ thống sẽgiống như khi được hoàn thành
Nguyên mẫu có thể được phân loại theo mức độ trung thực mà chúnggiống với sản phẩm thực tế về mặt ngoại hình, tương tác và thời gian Một
Trang 26giấy Nguyên mẫu được thực hiện bằng giấy và bút chì, và do đó bắt chước chứcnăng của sản phẩm thực tế, nhưng không giống như tất cả Một phương phápkhác để dễ dàng xây dựng các nguyên mẫu trung thực là sử dụng một GUIBuilder và tạo ra những kích chuột giả, một nguyên mẫu trông giống như hệthống mục tiêu, nhưng không cung cấp bất kỳ chức năng nào.
Việc sử dụng storyboards, animatics hoặc bản vẽ không hoàn toàn giốngnhư prototyping throwaway Bởi vì, đây là những triển khai phi chức năngnhưng cho thấy hệ thống sẽ trông như thế nào Khi đó, nguyên mẫu được xâydựng với ý tưởng sẽ bị loại bỏ và hệ thống cuối cùng sẽ được xây dựng từ đầu
Các bước thực hiện xây dựng nguyên mẫu như sau:
•Viết yêu cầu sơ bộ •Thiết kế nguyên mẫu •Kinh nghiệm người dùng
•Lặp lại nếu cần thiết •Viết yêu cầu cuối cùng / sử dụng nguyên mẫu, xác
định các yêu cầu mới
Hình 2.2 Các bước thực hiện xây dựng nguyên mẫu
Với ưu điểm của phương pháp tạo mẫu này như tốc độ đưa ra nguyên mẫunhanh, người dùng có thể tham gia vào quá trình xây dưng mẫu để đánh giá mẫu
và kiểm tra tính năng của phần mềm nên học việc đã đưa ra đề xuất để áp dụngphương pháp tạo nguyên mẫu này vào quá trình xây dựng phần mềm
Mẫu tiến hóa (Evolutionary prototyping) [5] là mẫu phát triển theo vòng
đời, trong đó hệ thống được phát triển theo từng bước cho phép sửa đổi để đápứng với phản hồi của người dùng và khách hàng Mẫu tiến hóa và mẫu môphỏng là khá khác nhau Mục tiêu chính khi sử dụng công cụ tạo mẫu tiến hóa làxây dựng một mẫu rất mạnh mẽ theo cấu trúc và liên tục tinh chỉnh nó Lý docho cách tiếp cận này là mẫu tiến hoá, khi được xây dựng, tạo thành trung tâmcủa hệ thống mới, những cải tiến và các yêu cầu tiếp theo sẽ được xây dựng
Khi phát triển một hệ thống bằng cách sử dụng mẫu tiến hóa, hệ thốngđược liên tục tinh chế và xây dựng lại Kỹ thuật này cho phép nhóm phát triển
bổ sung các tính năng hoặc thực hiện các thay đổi mà không thể hình dung trongcác yêu cầu ở giai đoạn thiết kế Để một hệ thống hữu ích, nó phải tiến hóathông qua việc sử dụng trong môi trường vận hành dự kiến của nó Một sản
phẩm không bao giờ "được hoàn thành" nó luôn luôn thay đổi khi môi trường sử
Trang 27dụng thay đổi, chúng ta thường cố gắng xác định một hệ thống bằng cách sửdụng khung thông tin quen thuộc nhất của chúng ta hiện tại Chúng ta đưa ra cácgiả định về nghiệp vụ sẽ được tiến hành và nền tảng công nghệ mà doanh nghiệp
sẽ thực hiện
•Initial Concept •Design and Implement •Prefine prototype ultil •Complete and release
Hình 2.3 Các bước thực hiện xây dựng mẫu tiến hóa
Mẫu gia tăng (Incremental prototyping) [5] có thể được so sánh với 'khối
xây dựng'; mỗi lần gia tăng một thành phần mới được thêm vào hoặc tích hợp,dựa trên một giải pháp thiết kế tổng thể Khi tất cả các thành phần được đưa ra,giải pháp đã hoàn tất
Lợi thế của phương pháp này là khách hàng và người dùng cuối có cơ hộikiểm tra các thành phần đã phát triển và chức năng của chúng Họ cũng có cơhội để cung cấp phản hồi trong khi các thành phần khác vẫn đang trong quá trìnhphát triển và do đó có thể ảnh hưởng đến kết quả của sự phát triển tiếp theo
•Building and prototyping
Hình 2.4 Các bước thực hiện xây dựng mẫu gia tăng
Mẫu cực biên (Extreme prototyping) [5] là một quá trình kiến trúc để
phát triển các ứng dụng, đặc biệt là các ứng dụng web, về nguyên mẫu ngàycàng tăng Ở mức độ cao, nó phân chia sự phát triển web thành ba giai đoạnriêng biệt Giai đoạn đầu là nguyên mẫu tĩnh, bao gồm các trang HTML và cóthể là một mô hình dữ liệu lôgíc hỗ trợ các trang đó Giai đoạn thứ hai là mộtquá trình mã hóa trong khuôn khổ web đã chọn của bạn, theo đó các màn hình
có đầy đủ chức năng bằng cách sử dụng một lớp dịch vụ mô phỏng Giai đoạnthứ ba là nơi mà các dịch vụ được thực hiện
Trang 28kết quả này chủ yếu bằng cách chia nhỏ các phụ thuộc giữa nhiều nhóm và do
đó cho phép phát triển song song Mẫu cực biên chú trọng hơn vào các sản phẩm
2.2.3 Các kỹ thuật xây dựng mẫu
Nguyên mẫu không nhất thiết giống sản phẩm cuối cùng mà hướng đếnviệc truyền tải cảm giác và cảm nhận của sản phẩm cuối cùng Mức độ trung
thực của nguyên mẫu được chia ra các cấp độ từ thấp (Low Fidelity), trung bình cho tới cao (High Fidelity) Các mẫu thử nghiệm với độ trung thực thấp chủ yếu
là mô phỏng bằng giấy còn mẫu thử nghiệm với độ trung thực cao chủ yếu là môphỏng trên máy tính Yếu tố quyết định trong độ tin cậy của nguyên mẫu là mức
độ mà nguyên mẫu mô tả chính xác sự xuất hiện và tương tác của sản phẩm, chứkhông phải mức độ mà mã và các thuộc tính vô hình khác đối với người dùng là
chính xác Mức độ trung thực thể hiện ở các khía cạnh như: thiết kế trực quan, nội dung, tương tác Các nhóm sản phẩm chọn độ tin cậy của mẫu dựa trên mục
tiêu tạo mẫu, tính đầy đủ của thiết kế và các tài nguyên có sẵn [4]
Hình 2.6 So sánh giữa mức độ trung thực từ thấp đến cao
Trang 29Các nguyên mẫu độ trung thực thấp được xây dựng nhanh chóng để mô tảcác khái niệm, thiết kế thay thế và bố cục màn hình hơn là mô hình tương tácngười dùng với một hệ thống Các nguyên mẫu độ trung thực thấp cung cấpchức năng hạn chế hoặc không có Chúng nhìn chung được dùng để chứng minh
và cảm nhận giao diện, chứ không phải là chi tiết cách ứng dụng hoạt động.Chúng được tạo ra để giao tiếp và trao đổi ý kiến với người sử dụng, nhưngkhông phải để làm cơ sở để mã hóa và kiểm tra
Ngược lại, các nguyên mẫu độ trung thực cao tương tác đầy đủ, mô phỏngnhiều chức năng trong sản phẩm cuối cùng Người dùng có thể hoạt động trênnguyên mẫu, hoặc thậm chí thực hiện một số nhiệm vụ thực sự với nó Cácnguyên mẫu độ trung thực cao không nhanh và không dễ dàng tạo ra như cácnguyên mẫu độ trung thực thấp, nhưng chúng đại diện trung thành cho giao diệnđược thực hiện trong sản phẩm Mẫu trung gian trung thành mô phỏng một phần
sự tương tác và chức năng của hệ thống
Mẫu thử nghiệm độ trung thực thấp là biểu diễn một cách nhanh chóng
và dễ dàng để dịch các khái niệm thiết kế cấp cao thành các hiện vật hữu hình vàthử nghiệm được Vai trò đầu tiên quan trọng nhất của nguyên mẫu là kiểm tra
và kiểm tra chức năng hơn là sự xuất hiện trực quan của sản phẩm
Hình 2.7 Phác thảo nhanh một wireframes
Trang 30Các đặc tính cơ bản của việc tạo mẫu độ trung thực thấp là chỉ có một sốthuộc tính trực quan của sản phẩm cuối cùng được thể hiện (chẳng hạn như hìnhdạng của các thành phần, hệ thống thị giác cơ bản…), chỉ biểu diễn được cácyếu tố chính của nội dung Không có tính tương tác với người dùng như mộtmáy tính và tự thay đổi trạng thái của thiết kế theo thời gian thực Tương tác
cũng có thể được tạo ra từ wireframes, còn được gọi là “connected wireframes”
thông qua các ứng dụng như: PowerPoint hay Keynote, Adobe XD
Ưu điểm: lợi thế của việc tạo mẫu này là chi phí cực thấp Tốc độ, có thể
tạo một nguyên mẫu giấy nhanh cho phép các nhóm trao đổi các ý tưởng khácnhau mà không cần quá nhiều công sức, nhiều người có thể tham gia vào quátrình thiết kế và xây dựng ý tưởng
Nhược điểm: không cho phép người dùng tương tác được được những gì
có thể làm được hoặc không làm được Một mẫu thử nghiệm độ trung thực thấpđòi hỏi nhiều trí tưởng tượng từ người dùng, hạn chế kết quả của việc kiểm trangười dùng đặc biệt với các nội dung chuyển tiếp phức tạp
Hình 2.8 Một thiết kế phác họa màn hình điện thoại
30
Trang 31Bản phác thảo tự do là cần thiết để đưa ra các ý tưởng trong giai đoạn đầucủa thiết kế Thông qua việc biểu diễn ý tưởng trên giấy, người thiết kế có thểhiệu chỉnh các tính năng Ngoài việc sử dụng viết tay và bút chì, các bản phácthảo cũng có thể được thực hiện bằng phần mềm như: Paint và SILK SILK chophép các nhà thiết kế nhanh chóng phác hoạ một giao diện bằng điện tử và tươngtác Khi đó, các bản thảo sẽ được tạo ra nhanh hơn và rẻ hơn khi sử dụng cácmẫu giấy và bút chì ở giai đoạn đầu Nguyên mẫu tạo trên máy tính cho phépkhám phá và thể hiện sự tương tác, tính nhất quán trong thiết kế.
Bảng phân cảnh
Bảng phân cảnh (Storyboard) [8] là mô tả đồ họa về sự xuất hiện bênngoài của hệ thống dự kiến mà không có chức năng hệ thống đi kèm Bảng phâncảnh cung cấp ảnh chụp nhanh giao diện tại các điểm cụ thể trong tương tác đểngười dùng có thể xác định nhanh chóng nếu thiết kế đang đi đúng hướng
Bảng phân cảnh không yêu cầu nhiều về sức mạnh tính toán để xây dựng,trên thực tế, các bảng phân cảnh sẽ thiếu tính thuyết phục nếu không có sự hỗtrợ của máy tính Các mô tả đồ họa ngày nay được thiết kế với sự trợ giúp củamáy tính thay vì bằng tay sẽ cung cấp hình ảnh động thô nhưng hiệu quả bằngcách tự động sắp xếp trình tự thông qua một loạt các bức ảnh chụp nhanh Ví dụnhư ứng dụng SILK cung cấp các chức năng kịch bản điện tử
Hình 2.9 Bảng phân cảnh tương tác và chức năng trên điện thoại
So sánh ưu nhược điểm giữa kỹ thuật sử dụng bảng phác thảo và bảngphân cảnh được thể hiện trong Bảng 2.1
Bảng 2.1 So sánh giữa các kỹ thuật tạo mẫu độ trung thực thấp
Trang 32Kỹ thuật Ưu điểm Nhược điểm
Bản phác thảo - Rất đơn giản và rẻ - Phải tập trung cao ở mức khái
niệm Sketched
- Khó tưởng tượng để phát triển
- Đơn giản và rẻ - Chỉ có thể hiện thị hệ thống Bảng phân cảnh - Người dùng có thể đánh tương tác.
Storyboard giá trực tiếp của giao diện - Phải có chuyên môn cần thiết về
Mẫu thử nghiệm mức độ trung thực cao xuất hiện và có chức năng
giống với sản phẩm thực tế sẽ được đề xuất Các nhóm thường tạo ra nguyênmẫu độ trung thực cao khi họ có hiểu biết chắc chắn về những gì họ sẽ xây dựng
và họ cần hoặc thử nghiệm nó với người dùng thực hoặc nhận được sự chấpthuận thiết kế cuối cùng từ các bên liên quan
Các đặc tính cơ bản của việc tạo mẫu độ trung thực cao bao gồm: Thiết kếtrực quan, chi tiết tất cả các yếu tố giao diện, khoảng cách và đồ họa giống nhưmột ứng dụng thực Nguyên mẫu sẽ bao gồm hầu hết hoặc tất cả nội dung sẽxuất hiện trong thiết kế cuối cùng và thể hiện được sự tương tác
Hình 2.10 Nguyên mẫu tương tác có độ trung thực cao được tạo ra trong Adobe XD
Ưu điểm: Nhận được những phản hồi hữu ích trong quá trình thử nghiệm
khả năng sử dụng giống như sản phẩm thực Điều này có nghĩa là trong cácphiên thử nghiệm khả năng sử dụng, người tham gia kiểm tra sẽ có nhiều khảnăng sử dụng một cách tự nhiên hơn như thể họ đang tương tác với sản phẩmthực Mẫu thiết kế có thể dễ dàng thuyết phục khách hàng và các bên liên quan,phù hợp cho các cuộc giới thiệu demo với khách hàng với khả năng thể hiện ýtưởng rõ ràng về cách sản phẩm khi đưa vào hoạt động
Nhược điểm: Chi phí thiết kế cao hơn cả về thời gian và tài chính.
Trang 33 Mô phỏng trên máy tính
Mô phỏng trên máy tính (Computer-based simulation) là nguyên mẫu mô
phỏng trung thực một số tương tác, tính năng của hệ thống dự định phát triển
Có ba cách tiếp cận để mô phỏng chức năng nguyên mẫu:
Nguyên mẫu theo chiều dọc ( Vertical ): Dựa trên nguyên mẫu cắt giảm về
số lượng các tính năng, chỉ hướng đến các chức năng chuyên sâu và các chứcnăng đã lựa chọn Nguyên mẫu dọc cho phép người dùng thực hiện và kiểm tramột số nhiệm vụ quan trọng nhất
Nguyên mẫu theo chiều ngang ( Horizontal): Dựa trên nguyên tắc giảmmức độ chức năng hướng đến một hệ thống đầy đủ tính năng của giao diện hệthống mà không có các chức năng cơ bản thực sự Ưu điểm chính của nguyênmẫu ngang là chúng có thể được thực hiện nhanh chóng với việc sử dụng công
cụ tạo mẫu và công cụ thiết kế màn hình, và chúng có thể được sử dụng để đánhgiá giao diện nói chung
Kịch bản ( Scenario ): Dựa trên nguyên tắc giảm cả số lượng các tính năng
và mức độ chức năng Giao diện người dùng được mô phỏng theo một kế hoạch
đã có để đạt được kết quả cụ thể trong những trường hợp nhất định Các kịchbản có thể dễ dàng được xây dựng, đánh giá sớm thiết kế giao diện để có đượcphản hồi của người dùng Các công cụ phần mềm tạo mẫu phổ biến có thể kểđến như: RAPID, HyperCard, CHIRP Bên cạnh đó, có rất nhiều ngôn ngữ thế
hệ thứ tư dễ học và dễ sử dụng như: Smalltalk và Microsoft Visual Basic
Wizard of Oz
Kỹ thuật Wizard of Oz là một phương pháp thử nghiệm một hệ thốngkhông tồn tại, cho phép các nhà thiết kế kiểm tra ý tưởng mà không cần thựchiện một hệ thống Người dùng tương tác với màn hình, nhưng thay vì một phầncủa phần mềm đáp ứng các yêu cầu của người dùng, nhà phát triển đang ngồi ởmàn hình khác mô phỏng hệ thống và tương tác với người dùng Trình hướngdẫn có thể mô phỏng tất cả hoặc một phần của hệ thống chức năng Khi thiết lậpmột mô phỏng Wizard of Oz cần những kinh nghiệm với các hệ thống đã đượctriển khai trước đó rất hữu ích để đạt những giới hạn thực tế lên "khả năng"
Wizard of Oz thường được sử dụng cho việc thiết kế hệ thống thông minh,thử nghiệm và phát triển hệ thống nhận dạng ngôn ngữ tự nhiên, mô phỏng chứcnăng của hệ thống rất khó thực hiện trong một nguyên mẫu Wizard
33
Trang 34of Oz là lý tưởng cho việc thử nghiệm các nguyên mẫu sơ bộ và để thu thậpnhững mong đợi của người dùng về hệ thống Với kỹ thuật này, các nhà pháttriển có thể phát triển một nguyên mẫu chức năng giới hạn và tăng cường tínhnăng của nó trong việc đánh giá bằng cách cung cấp các chức năng bị thiếuthông qua sự can thiệp của con người mà không tốn chi phí cho việc lập trình.
Sự hiểu biết thêm về người dùng cũng có thể đạt được thông qua việc tham giachặt chẽ với người dùng
Hình 2.11 Kỹ thuật Wizard of Oz
Nguyên mẫu trình chiếu và video
Nguyên mẫu trình chiếu và video (Slide shows and video prototyping) sử
dụng các phương tiện truyền thông để tạo nguyên mẫu Trong các trình chiếu,nguyên mẫu của storyboard được mã hoá trên một máy tính với các công cụphần mềm Quá trình chuyển cảnh được kích hoạt đơn giản bởi đầu vào là ngườidùng thao tác Các trang trình bày tạo thành nguyên mẫu ngang hoặc dọc đơngiản Nguyên mẫu video loại bỏ những hạn chế của phần mềm Không yêu cầuchỉnh sửa sau khi sản xuất hoặc bất kỳ chuyên môn đặc biệt nào trong sản xuấtvideo Tạo mẫu video không dừng lại ở việc ghi lại các ý tưởng thế kế, mà còntạo ra một mô phỏng gợi ý về giao diện được đề xuất
34
Trang 35Hình 2.12 Kỹ thuật nguyên mẫu trình chiếu và video
Cả hai kỹ thuật trình chiếu và tạo mẫu video đều cung cấp kiểu mô phỏngcuả hệ thống Chúng xuất hiện như một hệ thống thực sự mặc dù chúng chỉ hiểnthị một số cảnh Mô phỏng được hạn chế bởi một số nhiệm vụ được xác địnhtrước chặt chẽ, và người dùng hầu như không tương tác với hệ thống
Bảng 2.2 So sánh giữa các kỹ thuật tạo mẫu mức độ trung thực cao
- Kiểm tra sâu trong các tình - Chỉ kiểm tra một phần giới
- Kiểm tra với các tác vụ theo chiều dọc
của người dùng Nguyên mẫu - Kiểm tra toàn bộ giao diện - Không thể thực hiện được theo chiều ngang - Có thể thực hiện nhanh các tác vụ
- Dễ và rẻ tiền để xây dựng - Chỉ kiểm tra một phần giới Kịch bản - Không thể thực hiện đượchạn chức năng của hệ thống
các tác vụ
- Tiết kiệm thời gian lập - Mọi thành viên cần được
- Tham gia chặt chẽ với như máy tính người dùng giúp họ có thể - Ít thực tế hiểu biết thêm về hệ thống
trình chiếu và - Mô phỏng hệ thống - Người dùng không thể
2.2.4 Các công cụ tạo mẫu
Để việc tạo nguyên mẫu hiệu quả cần phải sử dụng các công cụ tạo mẫu
Các ngôn ngữ lập trình thế hệ thứ 4 (Visual Basic và ColdFusion) được sử dụng
Trang 36để tạo mẫu nhanh chóng thay cho các công cụ case tích hợp phức tạp Với cácứng dụng trên nền web, các công cụ để tạo mẫu cũng phát triển, có thể kể đến
như: Bootstrap, Foundation, AngularJS, Node JS, React Native… Các công cụ
trên cung cấp các công cụ cần thiết để xây dựng được một nguyên mẫu nhanhchóng từ ý tưởng Các farmeworks này bao gồm một tập hợp các điều khiển,tương tác và hướng dẫn thiết kế cho phép các nhà phát triển nhanh chóng thửnghiệm các ứng dụng web [4]
Hình 2.13 Các công cụ tạo mẫu
Chương trình tạo màn hình, công cụ thiết kế Các chương trình tạo màn
hình cũng thường được sử dụng để giả lập hiển thị hệ thống cho người dùng.Các chức năng của hệ thống lúc này chưa hoạt động nhưng được hiển thị giả lậptrên màn hình Phát triển tương tác người máy sẽ là một phần quan trọng của nỗlực phát triển vì người dùng sử dụng giao diện chủ yếu là hệ thống Các công cụphần mềm có thể tạo ra mã bằng cách kết hợp các thành phần môđun có sẵn nên
có thể nhanh chóng cung cấp các chương trình với hành vi mong muốn, với sốlượng mã hóa thủ công tối thiểu
Ứng dụng định nghĩa hoặc phần mềm mô phỏng Một lớp mới của phần
mềm được gọi là định nghĩa ứng dụng hoặc phần mềm mô phỏng cho phépngười dùng nhanh chóng xây dựng các mô phỏng hoạt hình nhẹ, sống động củamột chương trình máy tính khác mà không cần viết mã Phần mềm mô phỏngứng dụng cho phép cả người dùng kỹ thuật và phi kỹ thuật để trải nghiệm, thửnghiệm, hợp tác và xác nhận chương trình mô phỏng và cung cấp các báo cáonhư chú thích, ảnh chụp màn hình và sơ đồ Là một kỹ thuật đặc tả giải pháp, môphỏng ứng dụng nằm giữa rủi ro thấp, nhưng giới hạn, văn bản hoặc bản vẽ dựa
trên Mock-ups (hoặc wireframes) đôi khi được gọi là mẫu giấy dựa trên
Trang 37prototyping, và tốn nhiều thời gian, cho phép các chuyên gia phần mềm xácnhận các yêu cầu và lựa chọn thiết kế trước khi bắt đầu phát triển Khi làm nhưvậy, rủi ro và chi phí liên quan đến việc triển khai phần mềm có thể được giảmđáng kể Để mô phỏng các ứng dụng có thể sử dụng phần mềm mô phỏng để đàotạo trên máy tính, demo, và hỗ trợ khách hàng, ví dụ phần mềm Screencasting.Ngoài ra còn có nhiều công cụ chuyên dụng khác.
2.3 Ưu điểm nhược điểm của tạo mẫu
Ưu điểm: Giảm thời gian và chi phí trong quá trình phát triển Cải thiện và
tăng cường sự tham gia của người sử dụng: nguyên mẫu yêu cầu sự tham gia củangười sử dụng, cho phép họ nhìn thấy và tương tác với những mẫu thử nghiệm,
để người dùng cung cấp phản hồi và thông số kỹ thuật tốt hơn, đầy đủ hơn.Nguyên mẫu được kiểm tra bởi người sử dụng, ngăn ngừa những hiểu lầm khimất giao tiếp xảy ra, khi mà mỗi bên tin rằng bên khác hiểu những gì họ nói Vìngười dùng biết về những vấn đề liên quan đến nghiệp vụ trong lĩnh vực của họtốt hơn bất cứ ai trong nhóm phát triển, khi gia tăng sự tương tác thì sản phẩmcuối cùng có chất lượng hơn cả về hữu hình và vô hình Sản phẩm cuối cùng cónhiều khả năng đáp ứng mong muốn của người dùng về giao diện, cảm nhận vàhiệu suất Người dùng tích cực tham gia phát triển thì sẽ hiểu rõ hơn về hệ thốngđang được phát triển Các lỗi có thể được phát hiện sớm hơn với phản hồi ngườidùng nhanh hơn, dẫn đến có các giải pháp tốt hơn Các chức năng khó có thểđược xác định và hoàn thiện nhanh
Nhược điểm: Việc tập trung vào một nguyên mẫu hạn chế có thể làm phân
tâm các nhà phát triển, dẫn đến phân tích sai hệ thống cuối Các chi tiết kỹ thuậtkhông đầy đủ sẽ khiến việc chuyển đổi các nguyên mẫu giới hạn thành các chứcnăng của dự án cuối cùng được thiết kế kém và khó bảo trì
Người dùng có thể nghĩ rằng nguyên mẫu ban đầu sẽ là một hệ thống thực
sự cuối cùng chỉ cần hoàn thiện Điều này sẽ khiến họ mong đợi mô hình mẫuthử nghiệm hoạt động chính xác như hệ thống cuối Các nhà phát triển cũng cóthể gắn liền với các nguyên mẫu mà họ đã dành rất nhiều nỗ lực để thiết kế, dẫnđến việc chuyển đổi một mẫu thử nghiệm giới hạn thành một hệ thống cuối cùngtrong khi nó không có kiến trúc cơ bản phù hợp
Thời gian phát triển nguyên mẫu, một thuộc tính quan trọng để tạo mẫu làđược thực hiện nhanh chóng Khi mẫu thử nghiệm được loại bỏ đi các yêu cầu
Trang 38chính xác cần phát triển mà nó cung cấp có thể không mang lại năng suất đủ để
bù cho thời gian dành cho việc phát triển nguyên mẫu Người dùng có thể bịmắc kẹt trong cuộc tranh luận về chi tiết của nguyên mẫu, giữ đội ngũ phát triển
và trì hoãn hoàn thành sản phẩm cuối cùng Chi phí cho việc xây dựng mẫu cóthể cao Một vấn đề thường gặp khi áp dụng công nghệ tạo mẫu là mong đợi cao
về năng suất khi không đủ nỗ lực hoàn thiện
2.4 Tiêu chí đánh giá mẫu
Mỗi mẫu xây dựng có thể sẽ rất sáng tạo, nhưng nguyên mẫu cũng cầnđánh giá một cách khách quan thông qua các yếu tố khác nhau gồm: Giai đoạnthiết kế (đầu, giữa, cuối), tính mới của dự án (được xác định rõ ràng so với khảosát), số người sử dụng dự kiến, tầm quan trọng của giao diện, chi phí sản phẩm
và tài chính được phân bổ, thời gian hoàn thiện mẫu và kinh nghiệm của đội ngũthiết kế và đội ngũ đánh giá [10]
Để đánh giá các giao diện mới hoặc sửa đổi giao diện được thực hiện khikhách hàng gửi phản hồi Các buổi trình bày không chính thức cũng có thể nhậnđược một số phản hồi hữu ích, nhưng các đánh giá chuyên gia chính thức sẽmang lại hiệu quả hơn Phương pháp này phụ thuộc vào chuyên gia hoặc tư vấn.Các đánh giá của chuyên gia sau đó có thể được tiến hành thông báo ngắn gọn
và nhanh chóng Những điểm sau đây cần được người thiết kế quan tâm:
- Trong thiết kế sẽ không thể có sự hoàn hảo đối với hệ thống phức tạp,
do đó kế hoạch phải bao gồm các phương pháp để tiếp tục sửa chữa các vấn đề phát sinh trong suốt vòng đời của một giao diện
- Tại một số thời điểm quyết định việc thực hiện kiểm tra toàn diện các nguyên mẫu thiết kế và phân phối các sản phẩm cuối
- Các phương pháp kiểm tra thích hợp cho việc sử dụng các chức năng bình thường, nó thực sự hiệu quả khi phát hiện lỗi trong các tình huốngkhông thể dự đoán trước khi sử dụng
Nhận xét của chuyên gia có thể sớm hoặc muộn trong giai đoạn thiết kế.Kết quả có thể là một báo cáo chính thức với những vấn đề được xác định hoặc
đề xuất thay đổi Chuyên gia đánh giá cần phải đưa ra các gợi ý thận trọng bởi vìrất khó cho ai đó chỉ mới kiểm tra giao diện hiểu đầy đủ lý do thiết kế và lịch sửphát triển Người đánh giá lưu ý các vấn đề có thể xảy ra để thảo luận với cácnhà thiết kế Có thể lựa chọn một trong nhiều phương pháp đánh giá chuyên gia:
Trang 39Nguyên tắc đánh giá, kiểm thử Là phương pháp kiểm tra kép, tìm kiếm
các lỗi có thể đối với chương trình, giao diện Các chuyên gia phê bình đánh giámột giao diện để xác định phù hợp với một danh sách ngắn các thiết kế thựcnghiệm, chẳng hạn như tám quy tắc vàng: Chặt chẽ theo sự thống nhất chung,phục vụ khả năng sử dụng phổ thống, cung cấp thông tin phản hồi, thiết kế hộpthoại tiện dụng và dễ hiểu, phòng tránh lỗi xảy ra trong quá trình sử dụng, chophép dễ dàng thay đổi các hành động, hỗ trợ tập trung vào điểu khiển, giảm sựghi nhớ của người sử dụng
Hướng dẫn đánh giá: Giao diện được kiểm tra để phù hợp với tài liệu
hướng dẫn tổ chức hoặc tài liệu hướng dẫn khác Bởi vì tài liệu hướng dẫn cóthể chứa hàng nghìn bài viết, nên có thể cần có thời gian để các chuyên gia nhậnxét làm chủ các nguyên tắc để xem xét một giao diện lớn
Kiểm tra tính nhất quán Các chuyên gia xác minh tính nhất quán trong
một tập hợp các giao diện, kiểm tra tính nhất quán của thuật ngữ, phông chữ, cácphối màu, bố cục, định dạng đầu vào và đầu ra trong giao diện cũng như trongtài liệu đào tạo và trợ giúp trực tuyến Các công cụ phần mềm có thể giúp tựđộng hóa quá trình, cũng như kết hợp các từ và chữ viết tắt
Định hướng nhận thức Các chuyên gia mô phỏng cho người dùng thông
qua giao diện để thực hiện các tác vụ tiêu biểu, các kịch bản cụ thể Phân chiakịch bản thành các kịch bản nhỏ hơn, mô phỏng tuân theo người dùng Một sốhình thức mô phỏng ngay trong cuộc sống của người sử dụng nên là một phầncủa quá trình đánh giá chuyên gia Các hướng dẫn định hướng nhận thức đãđược phát triển cho các giao diện có thể học bằng cách khám phá, nhưng chúngrất hữu ích ngay cả đối với các giao diện đòi hỏi phải đào tạo đáng kể
Kiểm tra khả năng sử dụng Các chuyên gia tổ chức một cuộc họp đánh
giá, với một người điều tiết, để mô tả, trình bày giao diện và thảo luận về nhữngđiểm mạnh và những điểm yếu của giao diện Các thành viên của nhóm thiết kế
có thể đưa ra bằng chứng về các vấn đề trong một định dạng đối lập Kiểm trakhả năng sử dụng có thể là truyền đạt kinh nghiệm cho các nhà thiết kế và ngườiquản lý mới làm quen, nhưng có thể mất nhiều thời gian hơn chuẩn bị và cónhiều nhân viên để thực hiện hơn là làm các loại đánh giá khác
Đánh giá dựa trên nguyên mẫu trên giấy hoặc nguyên mẫu trên máy đểxác định các vấn đề về khả năng sử dụng, nơi mà người sử dụng được thăm dò