Chương 1: Trình bày về quy trình phát triển nhanh phần mềm và các công nghệ phát triển ứng dụng nhanh trên nền Web. Đề xuất công nghệ phù hợp với việc phát triển ứng dụng trong Ngành Công an. Chương 2: Trình bày tổng quan về LightSwitch, các đặc điểm của LightSwitch, đi sâu vào kiến trúc và nền tảng công nghệ của LightSwitch. Chương3: Đánh giá khả năng của LightSwitch thông qua việc áp dụng thử nghiệm công nghệ LightSwitch trong việc xây dựng hệ thống Quản lý Tai nạn giao thông toàn quốc.
Chương 4: Đƣa ra những đánh giá, thảo luận và kết luận cho toàn bộ quá trình nghiên cứu đề tài. 9 z CHƢƠNG I: QUY TRÌNH PHÁT TRIỂN ỨNG DỤNG NHANH VÀ CÁC CÔNG NGHỆ PHÁT TRIỂN ỨNG DỤNG NHANH TRÊN WEB 1.1 Quy trình phát triển ứng dụng nhanh Phát triển ứng dụng nhanh (RAD) là một quy trình phát triển phần mềm sử dụng các phƣơng án mẫu và các kế hoạch ngắn hạn thay vì thiết kế toàn bộ ứng dụng nhƣ mô hình thác nƣớc [8] .Trong quy trình RAD, các kế hoạch phát triển phần mềm nói chung đều liên quan đến việc lập trình hay còn gọi là pha triển khai phần mềm. Quy trình này rất hữu ích bởi vì nó có thể thúc đẩy việc phát triển phần mềm nhanh hơn và tạo ra phần mềm dễ dàng thích nghi với sự thay đổi của môi trƣờng hơn là mô hình thác nƣớc. Thuật ngữ “phát triển phần mềm nhanh” đƣợc đƣa ra lần đầu vào năm 1991 bởi James Martin [7] , ngƣời đã sử dụng nó để đặc tả quá trình phát triển phần mềm trong đó nhấn mạnh đến phƣơng pháp lặp cho tất cả các pha phát triển, sử dụng các phƣơng án mẫu nhƣ là các bƣớc đầu tiên của quá trình triển khai phần mềm.
RAD không phải là một phƣơng pháp phát triển phần mềm riêng lẻ. Nó đại diện cho tập các phƣơng pháp dựa chủ yếu vào vòng lặp và phƣơng án mẫu. RAD có rất nhiều dạng, bao gồm cả các phƣơng pháp phát triển phần mềm Agile nhƣ Scrum, Lập trình XP, phƣơng pháp phát triển phần mềm tinh gọn, hay phƣơng pháp thiết kế phần mềm liên kết (JAD) [8]. Sức mạnh chính của phƣơng pháp RAD là ngƣời phát triển có thể tránh một khối lƣợng lớn việc chỉnh sửa trong các dự án phát triển phần mềm.
Việc chỉnh sửa thông thƣờng xảy ra theo hai trƣờng hợp sau: Ngƣời phát triển triển khai một phần của phần mềm bị sai hoặc có chất lƣợng kém. Trong trƣờng hợp này ngƣời phát triển phải tiêu tốn tài nguyên để sửa chữa. Ngƣời phát triển triển khai một phần của phần mềm nhƣng không đúng kỳ vọng mà ngƣời dùng mong muốn. Khi đó ngƣời phát triển phải xây dựng phần sai đó từ đầu.
Tất nhiên, RAD và các phƣơng pháp phát triển phần mềm Agile khác không đảm bảo rằng ngƣời phát triển sẽ không tạo ra các phần mềm kém chất lƣợng và nhiều lỗi. Tuy nhiên, chúng có thể giúp ngƣời phát triển giảm thiểu rủi ro trong việc xây dựng các phần mềm lỗi. Bằng cách xây dựng các phƣơng án mẫu, ngƣời phát triển có thể xác nhận rằng mình đang xây dựng lên các chức năng theo đúng kỳ vọng của những ngƣời sử dụng mong muốn. Trong trƣờng hợp việc chỉnh sửa ứng dụng là bắt 10 z buộc thì việc chỉnh sửa này cũng sẽ đỡ tốn kém hơn là phải tạo lại từ đầu một module nào đó.
Trong một số trƣờng hợp, khi mà đặc tả yêu cầu đã đƣợc làm quá chi tiết thì phƣơng án mẫu không giúp ích nhiều cho ngƣời phát triển trong quá trình phát triển phần mềm. Nếu nhƣ vậy thì ngƣời phát triển có thể bỏ qua phƣơng án mẫu mà bắt tay ngay vào pha thực thi để cho sản phẩm cuối cùng.2 Một số nền tảng giúp phát triển nhanh ứng dụng Ngày nay, có nhiều môi trƣờng và công cụ phát triển phần mềm hỗ trợ RAD. Chúng đều hƣớng đến mục tiêu cung cấp các chức năng và tiện ích giúp kỹ sƣ phần mềm phát triển ứng dụng theo cách linh hoạt và hiệu quả hơn. Một số công cụ có các chức năng thiết kế trực quan (GUI) để sinh mã chƣơng trình tự động.
Một số công cụ sử dụng thƣ viện viết sẵn phong phú và cho phép mở rộng giúp giảm đáng kể công sức lập trình. Nhiều công cụ sử dụng các hƣớng dẫn từng bƣớc (wizard) để đơn giản hóa các quá trình phức tạp. Cùng với sự phát triển và ra đời của rất nhiều công nghệ, kỹ thuật mới, các nhà phát triển phần mềm hy vọng các công cụ phát triển nhanh ngày càng mạnh mẽ và hỗ trợ hầu hết các công nghệ hiện nay. Một số công cụ phát triển nhanh ứng dụng Web tôi liệt kê sau đây mang tính đại diện là: NetBeans, Delphi, Microsoft Dynamics CRM, Microsoft SharePoint và mới đây nhất là Visual Studio LightSwitch, và một số tiện ích tạo ứng dụng web trực tuyến nhƣ Google Form, Wufoo.1 NetBeans IDE NetBeans IDE [12] là một môi trƣờng phát triển ứng dụng tích hợp mã nguồn mở do Sun Microsystems phát triển và đƣợc xem là một bộ công cụ phát triển ứng dụng đa năng dành cho các nhà phát triển phần mềm.
NetBeans IDE cho phép ngƣời phát triển có thể tạo nhanh chóng các ứng dụng Java trên máy để bàn, trên điện thoại di động và các ứng dụng Web cũng nhƣ các ứng dụng HTML 5. NetBeans cũng cung cấp bộ công cụ khổng lồ cho các nhà phát triển ứng dụng bằng ngôn ngữ PHP và C/C++. Với các trình thiết kế đồ họa GUI cho Java SE, HTML5, Java EE, PHP, C/C++ trong NetBeans, ngƣời phát triển có thể tạo nhanh các ứng dụng chỉ bằng các thao tác kéo thả và định nghĩa đối tƣợng. Với các ứng dụng Java SE, trình thiết kế GUI còn tự động căn chỉnh và sửa lỗi khoảng cách trong quá trình soạn thảo.
NetBeans IDE hỗ trợ nhiều hệ điều hành khác nhau nhƣ Windows, Mac, Linux, và Solaris. NetBeans IDE cung cấp nhiều tính năng mới nhƣ tìm kiếm trong toàn bộ môi trƣờng lập trình gọi là QuickSearch, giao diện thận thiện với ngƣời dùng và tính năng tự động biên dịch khi lƣu. Ngoài việc hỗ trợ Java mọi phiên bản (Java SE,Java EE, Java ME), NetBeans IDE còn là công cụ lý tƣởng cho việc phát triển phần mềm 11 z bằng các ngôn ngữ PHP, C/C++, Groovy and Grails, Ruby and Rails, AJAX và JavaScript. Từ phiên bản 6.5 NetBeans còn tăng cƣờng hỗ trợ cho web framework (Hibernate, Spring, JSF, JPA), trình ứng dụng máy chủ GlassFish và cơ sở dữ liệu.
Với tính năng mạnh mẽ, hỗ trợ các ngôn ngữ lập trình phổ dụng hiện nay, đặc biệt là Java, NetBeans có thể sử dụng để phát triển các ứng dụng cho mọi môi trƣờng, mọi thiết bị. NetBeans IDE là bộ công cụ mã nguồn mở, miễn phí và có cộng đồng ngƣời sử dụng đông đảo trên thế giới.2 Delphi Delphi [8] đƣợc hãng Borland giới thiệu lần đầu tiên vào năm 1995. Tƣơng tự nhƣ Visual Basic 6, Delphi đƣợc thiết kế là một công cụ phát triển nhanh ứng dụng. Delphi sử dụng ngôn ngữ lập trình hƣớng đối tƣợng Object Pascal và là công cụ phát triển nhanh ứng dụng đầu tiên có khả năng xây dựng ứng dụng 32 bit cho Windows.
Với thƣ viện thành phần trực quan khổng lồ của Delphi, ngƣời phát triển dễ dàng thiết kế giao diện của ứng dụng chỉ bằng một vài thao tác nhấp chuột. Ngoài ra Delphi còn cho phép ngƣời phát triển có thể tạo ra các thành phần mở rộng của riêng mình. Qua rất nhiều thay đổi, phiên bản hiện tại của Delphi là Delphi XE5. Delphi XE 5 là công cụ lập trình mạnh mẽ và trực quan, hiện đại.
Delphi XE5 hỗ trợ hầu hết các công nghệ thiết kế giao diện, kết nối và xử lý dữ liệu hiện nay. Với Delphi XE 5, ngƣời phát triển có thể xây dựng nhanh các ứng dụng 32 lẫn 64 bit bao gồm cả ứng dụng để bàn đến ứng dụng web và ứng dụng đám mây; các ứng dụng chạy trên rất nhiều nền tảng hệ điều hành nhƣ Window, Linux, IOS, Android.; các ứng dụng cho các thiết bị khác nhau từ máy để bàn đến các thiết bị di động. Tuy nhiên Delphi chƣa thật sự phổ biến ở Việt Nam và rất khó tiếp cận đối với những ngƣời không chuyên về lập trình.3 Visual Studio LightSwitch Năm 2010 MicroSoft đã đƣa ra công cụ Visual Studio LightSwitch [1] dành riêng cho việc xây dựng nhanh các ứng dụng quản lý dữ liệu. LightSwitch sử dụng nền tảng công nghệ .NET, gói các thành phần .NET trong một lớp trừu tƣợng đã đƣợc tối ƣu hóa cho việc quản lý và bảo dƣỡng dữ liệu.
Bằng các công cụ trực quan của LightSwitch, lập trình viên có thể xây dựng các ứng dụng quản lý dữ liệu một cách nhanh chóng. Các giao diện ngƣời dùng với các tính năng xử lý dữ liệu thông thƣờng đƣợc LigthSwitch sinh ra một cách tự động. Để tạo ra một ứng dụng ngƣời phát triển chỉ cần lập trình các chức năng nghiệp vụ của ứng dụng hay thậm chí không cần lập trình. Không chỉ dành cho các lập trình viên chuyên nghiệp, LightSwitch còn hƣớng tới ngƣời sử dụng là những nhà phân tích kinh doanh hay các chuyên gia tƣ vấn công nghệ, những ngƣời mà không phải lập trình hàng ngày.
LightSwitch có các ƣu điểm sau: 12 z - LightSwitch xây dựng các ứng dụng chạy trên các môi trƣờng hiện đại nhƣ Windows 7, Microsoft Server 2012 hay môi trƣờng đám mây Windows Azure. - Các ứng dụng LightSwitch chạy trên nền tảng .NET nên rất mạnh mẽ. - Ứng dụng LightSwitch vừa có thể đƣợc xây dựng để chạy trên máy tính để bản hoặc trên nền Web mà không cần phải xây dựng lại ứng dụng. - LightSwitch tạo ra các ứng dụng thích nghi với sự thay đổi môi trƣờng chạy, các thay đổi về yêu cầu chức năng, về cơ sở dữ liệu.
LightSwitch có hạn chế đó là chỉ tƣơng thích với các môi trƣờng và công nghệ của Microsoft.4 Google Form Google Form là một tiện ích trên Internet của Google cho phép ngƣời dùng có thể tạo và quản lý thông tin theo form. Ngƣời sử dụng có thể nhanh chóng tạo cho mình form quản lý thông tin trực tuyến trên Internet, sinh tự động các báo cáo, biểu đồ theo các tiêu chí trên form. Ƣu điểm của Google Form là dễ dàng sử dụng, trực tuyến trên Internet và miễn phí. Tuy nhiên Google Form chỉ dùng để quản lý thông tin trên 1 form, giá trị các trƣờng thông tin trên form là cố định.
Nếu muốn thay đổi giá trị các trƣờng thông tin ngƣời sử dụng lại phải thiết lập lại trên form nhập liệu. Cũng cần nói thêm là có nhiều công cụ tƣơng tự Google Form khác nhƣ FormStack, MarchForm, Icebrrg.