End-User Software Engineering đã trở thành một biểu tượng của sự thay đổi và cách tiếp cận hiện đại trong quản lý và triển khai ứng dụng.Với tốc độ chóng mặt của sự phát triển công nghệ
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ
TRUYỀN THÔNG VIỆT – HÀN
KHOA KHOA HỌC MÁY TÍNH
CÔNG NGHỆ PHẦN MỀM
Sinh viên thực hiện: TRẦN QUANG TRÌNH 21IT456
TRỊNH CÔNG TOÀN 21IT388
Lớp : CÔNG NGHỆ PHẦN MỀM (3)Giảng viên hướng dẫn: TS HUỲNH NGỌC THỌ
Đà Nẵng, ngày 24 tháng 09 năm 2023
Trang 2ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ
TRUYỀN THÔNG VIỆT – HÀN
KHOA KHOA HỌC MÁY TÍNH
CÔNG NGHỆ PHẦN MỀM
Sinh viên thực hiện: TRẦN QUANG TRÌNH 21IT456
TRỊNH CÔNG TOÀN 21IT388
Lớp : CÔNG NGHỆ PHẦN MỀM (3)Giảng viên hướng dẫn: TS HUỲNH NGỌC THỌ
Trang 3Đà Nẵng, ngày 24 tháng 09 năm 2023ĐẠI HỌC ĐÀ NẴNG
Trang 4MỞ ĐẦU
Tự động hóa, tích hợp liên tục, và hiệu suất ổn định - đó là những từ mà ngày càng nhiều tổ chức trong ngành công nghiệp Công nghệ thông tin (IT) và phát triển phần mềm đang tiếp xúc và áp dụng trong hệ thống của họ End-User Software Engineering đã trở thành một biểu tượng của sự thay đổi và cách tiếp cận hiện đại trong quản lý và triển khai ứng dụng.Với tốc độ chóng mặt của sự phát triển công nghệ và nhu cầu ngày càng tăng về ứng dụng và dịch vụ trực tuyến, việc phản ánh và thích nghi nhanh chóng đã trở thành một yếu tố quyết định sự thành công trong lĩnh vực này Trong bối cảnh này, End-User Software Engineering đã xuất hiện như một kết hợp đầy sáng tạo của quy trình, công cụ, và tri thức, nhằm tạo ra môi trường làm việc tối ưu giữa các nhóm phát triển và quản
lý hệ thống, từ đó giúp tự động hóa và tối ưu hóa các công việc liên quan đến triển khai và vận hành phần mềm
Báo cáo này sẽ cung cấp một giới thiệu toàn diện về End-User Software Engineering, bao gồm nguồn gốc, lịch sử phát triển, và các khía cạnh quan trọng của nó Chúng tôi sẽ thảo luận về những lợi ích và giải quyết những thách thức
mà End-User Software Engineering mang lại cho tổ chức và quá trình phát triển phần mềm Hơn nữa, chúng tôi sẽ xem xét các nguyên tắc cốt lõi của EUSE và cách chúng hoạt động để tạo ra một môi trường làm việc hiệu quả và đáp ứng nhanh chóng các yêu cầu của người dùng
Trang 5LỜI CẢM ƠN
Để đề tài này đạt kết quả tốt đẹp, em đã nhận được sự hỗ trợ, giúp đỡ của thầy cô.Với tình cảm sâu sắc, chân thành, cho phép chúng em được bày tỏ lòng biết ơn sâu sắcđến tất cả quý thầy cô đã tạo điều kiện giúp đỡ trong quá trình học tập, nghiên cứu vàphát triển đề tài
Trước hết chúng em xin gửi tới các thầy cô trường Đại học Công nghệ thông tin
và Truyền thông Việt – Hàn lời chào trân trọng, lời chúc sức khỏe và lời cảm ơn sâusắc Với sự quan tâm, dạy dỗ, chỉ bảo tận tình chu đáo của các giảng viên đã truyền tảicác kĩ năng cần thiết, đến nay chúng em đã có thể hoàn thành đề tài này
Đặc biệt chúng em xin gửi lời cảm ơn chân thành nhất tới giảng viên - TS.HUỲNH NGỌC THỌ đã quan tâm, giúp đỡ tận tình chúng em hoàn thành tốt môn họcnày trong thời gian qua
Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế, đề tài này không thểtránh được những thiếu sót Chúng em rất mong nhận được sự chỉ bảo, đóng góp ýkiến của các thầy cô để em có điều kiện bổ sung, nâng cao ý thức của mình, phục vụtốt hơn công tác thực tế sau này
Chúng em xin chân thành cảm ơn!
Trang 6NHẬN XÉT
(Của Giảng viên hướng dẫn)
Đà Nẵng, ngày … tháng … năm 20… Giảng viên hướng dẫn
TS HUỲNH NGỌC THỌ
Trang 7MỤC LỤC
Chương 1: Giới Thiệu về End-User Software Engineering: 1
1.1 M c đích và ph m vi c a báo cáo: ụ ạ ủ 1
1.2 Gi i thi u vềề End-User Software Engineering và lý do tìm hi u vềề ch đềề này: ớ ệ ể ủ 1
Chương 2: Khái Niệm và Lịch Sử của End-User Software Engineering: .2
2.1 Đ nh nghĩa End-user software engineering: ị 2
2.2 Nguồền gồốc và l ch s phát tri n c a End-User Software Engineering: ị ử ể ủ 2
2.3 Lý do t i sao End-User Software Engineering tr thành m t phầền quan tr ng trong ngành ạ ở ộ ọ cồng nghi p IT: ệ 4
Chương 3: Các Nguyên Tắc và Thực Hành EUSE: 5
3.1 Nguyền tắốc EUSE: 5
3.2 Th c Hành EUSE: ự 6
Chương 4: Mô Tả Các Công Cụ và Phương Pháp Thực Hiện EUSE 6
4.1 Gi i thi u vềề các cồng c ph biềốn th c hi n EUSE: ớ ệ ụ ổ ự ệ 6
a Cồng c No-Code/Low-Code Development: ụ 6
b Trình So n Th o Giao Di n Ng ạ ả ệ ườ i Dùng (UI Builder Tools): 7
c Trình So n Th o Tr c Quan (Visual Editors): ạ ả ự 7
4.2 Mồ t cách m t sồố cồng c này ho t đ ng và cách chúng đ ả ộ ụ ạ ộ ượ c s d ng trong quy trình ử ụ EUSE: 7
a OutSystems: 7
b Sketch: 7
c Bubble: 7
Chương 5: Lợi Ích của EUSE: 8
Chương 6: Thách Thức và Hạn Chế của EUSE: 9
Chương 7: Thành Công trong EUSE: 10
Chương 8: Các Dự Án và Thành Công Sử Dụng EUSE: 12
Kết Luận: 15 b Sketch: 7
c Bubble: 7
Chương 5: Lợi Ích của EUSE: 8
Chương 6: Thách Thức và Hạn Chế của EUSE: 9
Chương 7: Thành Công trong EUSE: 10
Trang 8Chương 8: Các Dự Án và Thành Công Sử Dụng EUSE: 12 Kết Luận: 15
Trang 9DANH MỤC CÁC TỪ VIẾT TẮT
EUSE End-User Software Engineering
CI Continuous Integration
CD Continuous Deployment
IaC Infrastructure as Code
AWS Amazon Web Services
0
Trang 10Chương 1: Giới Thiệu về End-User Software
Engineering:
1.1 Mục đích và phạm vi của báo cáo:
Báo cáo này nhằm mục đích giới thiệu và khám phá một trong những kháiniệm quan trọng và đầy tiềm năng trong lĩnh vực Công nghệ thông tin (IT) vàEnd-user software engineering Chúng tôi sẽ trình bày một cái nhìn tổng quan vềEnd-user software engineering, từ khái niệm cơ bản đến các nguyên tắc cốt lõi
và cách thức thực hiện nó Báo cáo cũng nhấn mạnh lý do tại sao End-usersoftware engineering đã trở thành một trọng tâm quan trọng trong ngành côngnghiệp IT
1.2 Giới thiệu về End-User Software Engineering và lý do tìm hiểu về chủ
đề này:
End-User Software Engineering (EUSE) là một phương pháp tiếp cận phát triển phần mềm trong đó người dùng cuối đóng vai trò tích cực trong quá trình phát triển Phương pháp này dựa trên quan điểm rằng người dùng cuối là người hiểu rõ nhất về nhu cầu và yêu cầu của họ đối với phần mềm Do đó, họ có thể đóng góp đáng kể vào quá trình thiết kế, phát triển và thử nghiệm phần mềm
Lý do tại sao chúng tôi quyết định nghiên cứu về End-User SoftwareEngineering là vì:
EUSE là một lĩnh vực nghiên cứu đang phát triển nhanh chóng Có nhiều nghiên cứu mới được công bố mỗi năm về các phương pháp và kỹ thuật EUSE mới Nghiên cứu về EUSE có thể giúp chúng ta hiểu rõ hơn về cách thức hoạt động của EUSE và cách cải thiện nó
EUSE có tiềm năng ứng dụng rộng rãi EUSE có thể được sử dụng để phát triển phần mềm cho nhiều mục đích khác nhau, bao gồm phần mềm doanh nghiệp, phần mềm tiêu dùng và phần mềm mã nguồn mở Nghiên cứu về EUSE có thể giúp chúng ta hiểu rõ hơn về cách áp dụng EUSE cho các loại
dự án khác nhau
1
Trang 11EUSE có thể mang lại nhiều lợi ích cho người dùng cuối và các nhà phát triển phần mềm Như đã đề cập ở trên, EUSE có thể giúp cải thiện chất lượng, hiệu quả và sự hài lòng của người dùng đối với phần mềm Nghiên cứu về EUSE có thể giúp chúng ta hiểu rõ hơn về cách EUSE có thể mang lại những lợi ích này.
Chương 2: Khái Niệm và Lịch Sử của End-User Software Engineering:2.1 Định nghĩa End-user software engineering:
End-user software engineering (EUSE) là một phương pháp tiếp cận pháttriển phần mềm trong đó người dùng cuối đóng vai trò tích cực trong quá trình phát triển Phương pháp này dựa trên quan điểm rằng người dùng cuối là người hiểu rõ nhất về nhu cầu và yêu cầu của họ đối với phần mềm Do đó, họ có thể đóng góp đáng kể vào quá trình thiết kế, phát triển và thử nghiệm phần mềm.EUSE có thể được áp dụng cho nhiều loại phần mềm, bao gồm phần mềm doanh nghiệp, phần mềm tiêu dùng và phần mềm mã nguồn mở Phương pháp này có thể mang lại nhiều lợi ích, bao gồm:
Tăng cường tính phù hợp với nhu cầu của người dùng: Khi người dùng cuối tham gia vào quá trình phát triển, phần mềm có nhiều khả năng đáp ứng nhu cầu thực tế của họ
Tăng cường hiệu quả của quá trình phát triển: Người dùng cuối có thể cungcấp phản hồi nhanh chóng và chính xác về các yêu cầu và tính năng của phần mềm Điều này có thể giúp giảm thiểu thời gian và chi phí phát triển
Tăng cường sự hài lòng của người dùng: Khi người dùng cuối cảm thấy họ
có tiếng nói trong quá trình phát triển, họ có nhiều khả năng hài lòng với kết quả cuối cùng
2.2 Nguồn gốc và lịch sử phát triển của End-User Software Engineering:Nguồn gốc của End-User Software Engineering:
2
Trang 12End-user software engineering (EUSE) có nguồn gốc từ những năm
1960, khi phần mềm thường được phát triển bởi các nhóm lập trình viên chuyên nghiệp Tuy nhiên, với sự phát triển của công nghệ, phần mềm trở nên phức tạp hơn và khó sử dụng hơn Điều này đã dẫn đến nhu cầu phát triển các phương pháptiếp cận mới để phát triển phần mềm phù hợp hơn với người dùng cuối
Một trong những phương pháp tiếp cận mới này là EUSE Phương pháp này bắt đầu được phát triển vào những năm 1970 và 1980 Vào thời điểm đó, các công cụ và kỹ thuật mới đã được phát triển để hỗ trợ người dùng cuối tham gia vào quá trình phát triển phần mềm
Một số nhà nghiên cứu và chuyên gia được coi là những người tiên phong trong lĩnh vực EUSE, bao gồm:
Fred Brooks: Brooks là một nhà khoa học máy tính người Mỹ nổi tiếng vớicuốn sách "The Mythical Man-Month" Ông đã ủng hộ việc sử dụng các công cụ và kỹ thuật để hỗ trợ người dùng cuối tham gia vào quá trình phát triển phần mềm
Gerald Weinberg: Weinberg là một nhà khoa học máy tính người Mỹ nổi tiếng với cuốn sách "The Psychology of Computer Programming" Ông đã nghiên cứu về cách người dùng cuối tương tác với phần mềm và cách cải thiện trải nghiệm người dùng
Larry Constantine: Constantine là một nhà khoa học máy tính người Mỹ nổi tiếng với phương pháp phát triển phần mềm "Structured Analysis" Ông đã ủng hộ việc sử dụng các phương pháp tiếp cận có sự tham gia của người dùng để phát triển phần mềm
EUSE tiếp tục phát triển trong những năm 1990 và 2000 Vào thời điểm đó, Internet đã trở nên phổ biến và các công cụ phát triển phần mềm dựa trên web đã được phát triển Điều này đã làm cho EUSE trở nên dễ tiếp cận hơn đối với người dùng cuối
Ngày nay, EUSE là một phương pháp tiếp cận phát triển phần mềm được chấp nhận rộng rãi Phương pháp này được sử dụng để phát triển phần mềm cho nhiều mục đích khác nhau, bao gồm phần mềm doanh nghiệp, phần mềm tiêu dùng và phần mềm mã nguồn mở
Lịch sử phát triển của End-User Software Engineering:
EUSE có lịch sử lâu đời, bắt nguồn từ những năm 1960 Vào thời điểm đó, phần mềm thường được phát triển bởi các nhóm lập trình viên chuyên nghiệp Tuy nhiên, với sự phát triển của công nghệ, phần mềm trở nên phức tạp hơn và khó sử dụng hơn Điều này đã dẫn đến nhu cầu phát triển các phương pháp tiếp cận mới để phát triển phần mềm phù hợp hơn với người dùng cuối
3
Trang 13Một trong những phương pháp tiếp cận mới này là EUSE Phương pháp này bắt đầu được phát triển vào những năm 1970 và 1980 Vào thời điểm đó, các công cụ và kỹ thuật mới đã được phát triển để hỗ trợ người dùng cuối tham gia vào quá trình phát triển phần mềm.
EUSE tiếp tục phát triển trong những năm 1990 và 2000 Vào thời điểm
đó, Internet đã trở nên phổ biến và các công cụ phát triển phần mềm dựa trên web
đã được phát triển Điều này đã làm cho EUSE trở nên dễ tiếp cận hơn đối với người dùng cuối
Ngày nay, EUSE là một phương pháp tiếp cận phát triển phần mềm được chấp nhận rộng rãi Phương pháp này được sử dụng để phát triển phần mềm cho nhiều mục đích khác nhau, bao gồm phần mềm doanh nghiệp, phần mềm tiêu dùng và phần mềm mã nguồn mở
Các phương pháp và kỹ thuật EUSE
Có nhiều phương pháp và kỹ thuật EUSE khác nhau Một số phương pháp phổ biến bao gồm:
Phát triển phần mềm dựa trên mẫu: Phương pháp này sử dụng các mẫu phần mềm đã được chứng minh để phát triển phần mềm nhanh chóng và hiệu quả
Phát triển phần mềm theo yêu cầu: Phương pháp này dựa trên sự tương tác giữa người dùng cuối và nhà phát triển phần mềm để phát triển phần mềm đáp ứng nhu cầu thực tế của người dùng
Phát triển phần mềm cộng tác: Phương pháp này sử dụng các công cụ và
kỹ thuật cộng tác để cho phép người dùng cuối tham gia vào quá trình phát triển phần mềm từ xa
2.3 Lý do tại sao End-User Software Engineering trở thành một phần quan trọng trong ngành công nghiệp IT:
End-User Software Engineering đã trở thành một phần quan trọng và không thể thiếu trong ngành công nghiệp vì nó cung cấp nhiều lợi ích và giải ITquyết nhiều thách thức mà các tổ chức phải đối mặt trong quá trình tiếp cận phát triển phần mềm trong đó người dùng cuối đóng vai trò tích cực trong quá trình phát triển Dưới đây là một số lý do chi tiết tại sao End-User Software
Engineering quan trọng:
Sự phức tạp ngày càng tăng của phần mềm: Phần mềm ngày nay ngày càng trởnên phức tạp và khó sử dụng hơn Điều này làm cho việc thu thập yêu cầu từ người dùng cuối trở nên khó khăn hơn EUSE giúp giải quyết vấn đề này bằng cách cho phép người dùng cuối tham gia vào quá trình phát triển từ đầu
4
Trang 14Sự phát triển của công nghệ: Sự phát triển của công nghệ đã làm cho EUSE trởnên dễ tiếp cận hơn đối với người dùng cuối Các công cụ và kỹ thuật mới đã được phát triển để hỗ trợ người dùng cuối tham gia vào quá trình phát triển phần mềm.
Sự thay đổi về văn hóa: Văn hóa IT đang thay đổi theo hướng tập trung hơn vào người dùng cuối Các nhà phát triển phần mềm ngày càng coi trọng việc phát triển phần mềm đáp ứng nhu cầu của người dùng cuối
Chương 3: Các Nguyên Tắc và Thực Hành EUSE:
Các nguyên tắc cốt lõi của EUSE định hình cách làm việc và quy trình pháttriển phần mềm để đảm bảo tích hợp, triển khai, và quản lý hệ thống hiệu quả.Dưới đây là một số nguyên tắc cốt lõi của EUSE và cách chúng hoạt động:
3.1 Nguyên tắc EUSE:
Tạo Giao diện Thân thiện với Người Dùng (User-Friendly Interfaces): Đảm bảo rằng giao diện người dùng của phần mềm dễ sử dụng, có thiết kế tốt và tương tác một cách tự nhiên
Tự Động Hóa (Automation): Sử dụng công cụ và kỹ thuật để tự động hóa quy trình phát triển và triển khai phần mềm
Tích Hợp Kiến Thức Người Dùng (End-User Programming): Cho phép người dùng cuối tham gia vào quá trình phát triển bằng cách cung cấp khả năng tùy chỉnh và viết mã một cách dễ dàng
Thay Đổi Linh Hoạt (Flexibility): Thiết kế phần mềm sao cho người dùng cuối có thể thay đổi và tùy chỉnh nó mà không cần kiến thức chuyên sâu vềlập trình
Hỗ Trợ Quản Lý Dữ Liệu (Data Management): Cung cấp cơ chế quản lý vàlưu trữ dữ liệu hiệu quả cho người dùng cuối
5
Trang 153.2 Thực Hành EUSE:
Phát triển Giao diện Người Dùng Đáp Ứng (Responsive UI Development):Tạo giao diện người dùng có thể thích nghi với nhiều thiết bị và kích thướcmàn hình khác nhau
Sử Dụng Công Cụ Tự Động Hóa (Automation Tools): Sử dụng công cụ tự động hóa quy trình phát triển, kiểm thử và triển khai để giảm thiểu công việc thủ công và lỗi nhân sự
Cung Cấp Hỗ Trợ Cho End-User Programming (End-User Programming Support): Tạo các hướng dẫn, tài liệu học tập, và môi trường lập trình đơn giản để người dùng cuối có thể tùy chỉnh phần mềm theo nhu cầu của họ
Dự Trù Các Cơ Chế Tùy Chỉnh (Provision for Customization): Thiết kế kiến trúc của phần mềm để hỗ trợ tính năng tùy chỉnh và cấu hình dễ dàng.Tạo Cơ Sở Dữ Liệu Hiệu Quả (Efficient Database Design): Xây dựng và quản lý cơ sở dữ liệu sao cho hiệu suất và tính ổn định được đảm bảo
Chương 4: Mô Tả Các Công Cụ và Phương Pháp Thực Hiện EUSE
4.1 Giới thiệu về các công cụ phổ biến thực hiện EUSE:
Có nhiều công cụ phổ biến được sử dụng trong End-User Software Engineering (EUSE) để tạo, tùy chỉnh và phát triển ứng dụng mà không yêu cầu kiến thức lập trình chuyên sâu Dưới đây là một số công cụ EUSE phổ biến:
a Công cụ No-Code/Low-Code Development:
OutSystems: OutSystems là một nền tảng phát triển ứng dụng no-code/low-code cho phép người dùng tạo ứng dụng di động và web một cách nhanh chóng và dễ dàng
Mendix: Mendix cung cấp môi trường phát triển ứng dụng low-code để tạo và triển khai các ứng dụng doanh nghiệp phức tạp
Bubble: Bubble là một nền tảng no-code cho phép người dùng tạo ứng dụng web
mà không cần viết mã lập trình
b Trình Soạn Thảo Giao Diện Người Dùng (UI Builder Tools):
Framer: Framer là một công cụ mạnh mẽ để thiết kế giao diện người dùng với khảnăng tạo ra các giao diện tương tác phức tạp
Sketch: Sketch là một công cụ thiết kế giao diện người dùng dành cho các thiết kế
đồ họa chuyên nghiệp
6