Một sốvấnđềphươngphápluận cơ bảnvềquytrìnhthiết kế, xây dựng và triển khai một phần mềm ứng dụng I. Khái niệm về phần mềm và công nghệ phần mềm, phân loại phần mềm 1.1. Khái niệm về phần mềm và công nghệ phần mềm. 1.1.1. Khái niệm về phần mềm. * Hiện nay, có rất nhiều cách khác nhau để định nghĩa về phần mềm.Sau đây là mộtsố cách định nghĩa về phần mềm: + Phần mềm là tập hợp tất cả các câu lệnh do các lập trình viên viết ra để hướng máy tính làm mộtsố công việc cụ thể nào đó. + Theo giáo trình tin học đại cương của khoa tin học ĐH kinh tế quốc dân thì: “Phần mềm máy tính là các chương trình, cấu trúc dữ liệu làm cho chương trình xử lý được những thông tin thích hợp và các tài liệu mô tả phương thức sử dụng các chương trình ấy. Phần mềm luôn được bổ sung và sửa đổi một cách thường xuyên” * Đểcó được phần mềm, các nhà lập trình phải sử dụng các ngôn ngữ lập trìnhđể viết, ngôn ngữ lập trình là ngôn ngữ trung gian giữa ngôn ngữ giao tiếp của con người với ngôn ngữ máy, ngôn ngữ càng gần với ngôn ngữ con người thì gọi là ngôn ngữ cấp cao, càng gần ngôn ngữ máy thì gọi là ngôn ngữ cấp thấp. * với các chương trình ứng dụng khác nhau và các trình điều khiển thiết 1.1.2. Khái niệm về công nghệ phần mềm * Công nghệ phần mềm là một lĩnh vực nghiên cứu mới của tin học, được triển khai trong giai đoạn phát triển rất cao của tin học và viễn thông khi phần mềm đã trở thành một ngành công nghiệp. Chương trình dịch Ngôn ngữ lập trình bậc cao Ngôn ngữ của con người Ngôn ngữ lập trình bậc thấp Ngôn ngữ máy Chương trình dịch * Công nghệ phần mềm là môn khoa học nghiên cứu các phương pháp, các thủ tục và các công cụ đi từ phân tích thiếtkế đến quản lý một dự án phần mềm nhằm đạt được các mục tiêu của dự án. * Công nghệ phần mềm bao gồm một tập hợp với 3 yếu tố chủ chốt: Công cụ và thủ tục, giúp cho người quả lý có thể kiểm soát được quá trình phát triển phần mềm va cung cấp cho kỹ sư phần mềm một nền tảng để xây dựng một phần mềm chất lượng cao. 1.2. Phân loại phần mềm. ` * Có nhiều cách khác nhau để phân loại phần mềm. Sau đây là mộtsố cách phân loại thường thấy: 1.2.1. Phần mềm ứng dụng 1.2.1.1. Phần mềm cho những ứng dụng tổng quát: - Là những phần mềm đáp ứng được những công việc mang tính phổ thông thường ngày của hầu hết người sử dụng. Ví dụ: + Chương trình duyệt Web cho phép người sử dụng có thể khai thác kho dữ liệu khổng lồ trên Internet để phục vụ cho công việc của mình: Internet Explorer, Opera… + Phần mềm nhận và gửi thư điện tử giúp chúng ta giữ lien hệ với mọi đối tác cho dù họ ở bất kỳ đâu trên thế giới thông qua mạng Internet: Outlook Express… + Hệ soạn thảo điều khiển máy tính hoạt động như một máy chữ để giúp người dùng biên soạn các tài liệu như công văn, thư từ… Hệ soạn thảo vănbản được sử dụng nhiều nhất là MS Word. + Hệ quản trị cơsở dữ liệu giúp lưu chữ, tổ chức, sắp sếp, cập nhật thông tin và tìm kiểm thông tin khi cần thiết. Ở Việt Nam hệ quản trị CSDL được dung nhiều nhất là hệ quản trị: Foxpro và MS Access. 1.2.1.2 Phần mềm cho những mục đích cụ thể. +Phần mềm kinh doanh: Gồm các chương trình giúp các doanh nghiệp hoàn thành những nhiệm vụ xử lý thông tin có tính chất thủ tục lặp đi lặp lại hàng ngày, hang tháng, hang quý hay hang năm. Phần mềm kinh doanh khác phần mềm sản suất ở chỗ nó nhấn mạnh vào những nhiệm vụ trên phạm vi toàn cơ quan như phần mềm kế toán, quản lý nhân sự…Các phần mềm được dung nhiều nhất hiện nay là Fast và Effect. + Phần mềm giải trí bao gồm các trò chơi và các chương trìnhđể giúp tiêu khiển, giải trí. Hiện nay, khi mức của con người càng cao thì các phần mềm thuộc loại nay đang lên ngôi. + phần mềm giáo dục và tham khảo giúp cung cấp kiến thức, kỹ năng vềmột chủ thể, lĩnh vực nào đó, cung cấp các bộ cơsở dữ liệu cho phép tra cứu thông tin theo yêu cầu: Phần mềm tra cứu từ điển… 1.2.2. Phần mềm hệ thống. * Phần mềm hệ thống bao gồm các chương trình quản lý, hỗ trợ các tài nguyên và điều hành các hoạt động của hệ thống máy tính. 1.2.2.1 Phần mềm quản lý hệ thống + Hệ điều hành: Là một bộ trương trình phục vụ cho việc quản lý chặt chẽ hệ thống tính toán và tổ chức khai thác chúng một cách tối ưu. + Các chương trình tiện ích: Được xây dựng với mục đích bổ xung them các dịch vụ cần cho người mà hệ điều hành chưa đáp ứng được hay là đã có nhưng chọn vẹn: Winzar, Foxit reader… + Các chương trình điều khiển thiết bị giúp máy tính điều khiển mộtthiết bị nào đó mà không có trong danh sách những thiết bị phần cứng được hệ điều hành hỗ trợ: Các loại Card màn hình 1.1.2.2. Phần mềm phát triển hệ thống: + Các chương trình dịch có nhiệm vụ dịch các chương trình viết bằng ngôn ngữ thuật toán sang ngôn ngữ máy tính đểcó thể hiểu và xử lý được. + Ngôn ngữ lập trình là công cụ để diễn tả thuật toán thành chương trình cho máy tính thực hiện. Cho đến nay đã có 5 thế hệ ngôn ngữ lập trình: Java của sun, dot net của Microsoft… II- Chu kỳ sống của một phần mềm: *Một số cách phân chia quá trìnhthiếtkế ứng dụng. 2.1. Chu kỳ sống của dự án tuần tự 2.1.1.Giai đoạn khởi tạo. Khởi tạo dự án là một giai đoạn xác định nhu cầu của ứng dụng và xác định đầy đủ vấnđềđể tập hợp đội ngũ đánh giá vấnđề đó. Bổ nhiệm các cá nhân và các đối tác liên quan, bổ nhiệm các bên tham gia của mỗi tổ chức vào nhóm xây dựng phân mềm. Đầu ra của giai đoạn này là mộtbản ghi hoặc một tài liệu chính thức chỉ ra các nguồn tài trợ, xác định vấnđề các bên tham gia. 2.1.2 Giai đoạn nghiên cứu tính khả thi Tính khả thi có được từ kết quả phân tích các rủi do, chi phí và lợi nhuận liên quan đến các vấnđề kinh tế, kỹ thuật và tổ chức của người sử dụng. các vấnđề đặt ra phải được xem xét chi tiết để đảm bảo rằng mọi khía cạnh của tính khả thi đã được xem xét đến. Báo các tổng quát về tính khả thi bao gồm: + Vấnđề đặt ra. + Tính khả thi về mặt kinh tế, kỹ thuật và tổ chức. + Những rủi ro và bất ngờ liên quan đến ứng dụng. + Ý tưởng thích hợp nhất về sản phẩm phần mềm và giải thích tại sao nó tốt hơn các sản phẩm khác cùng loại. + Các cầu huấn luyện và lịch trình dự định. + Dự đoán nhân sự cho dự án tính theo từng giai đoạn và mức độ yêu cầu. 2.1.3. Giai đoạn phân tích. * Yêu cầu về chức năng hệ thống được thiếtkếđể làm gì? Khuân dạng các định nghĩa này vào phươngphápluận sử dụng trong giai đoạn phân tích. + Yêu cầu về cấu hình – các thiết bị cuối, các thông điệp, thời gian trả lời của mạng, dung lượng vào/ ra, yêu cầu thời gian sử lý. + Yêu cầu về giao diện - dữ liệu trao đổi với các ứng dụng và đơn vị khác là gì? định nghĩa bao gồm cả tính thời gian, khuôn dạng của dữ liệu trao đổi. + Các chuẩn xây dựng phần mềm - dạng cấu trúc, tính thời gian, nội dung cơbản của tại liệu cần đưa ra trong quá trình xây dựng phần mềm. định dạng thông tin bao gồm nội dung của dữ liệu từ điển hay kho lưu trữ đối với việc thiếtkế đối tượng, nội dung báo cáo dự án, các yêu cầu cần thiết khác được giám sát bởi nhóm tham gia dự án. 2.1.4. Giai đoạn thiếtkế ở mức quan niệm. Các cách giọi khác bao gồm thiếtkếsơ bộ, thiếtkế logic, thiếtkế bên ngoài hay định danh các yêu cầu của phần mềm. Hoạt động chính của thiếtkế quan niệm là định nghĩa chức năng chi tiết của tất cả các nhân tố bên ngoài của một chương trình ứng dụng, nó bao gồm màn hình hiển thị, báo cáo, đơn vị dữ liệu hội thoại, và các khuân mẫu. Cả nội dung và cách trình bày ở mức này. Hơn nữa, mô hình dữ liệu logic được chuyển sang sơ đồ cơsở dữ liệu logic, hoặc các khung nhìn của người sử dụng. 2.1.5. Giai đoạn thiết kế. * Những thuật ngữ khác dung để miêu tả các hoạt động thiếtkế bao gồm thiếtkế chi tiết, thiếtkế vật lý, thiếtkế bên trong và thiếtkế sản phẩm. Trong suốt giai đoạn thiết kế, kỹ sư phần mềm phải tạo, sưu tập tài liệu và kiểm tra. + Kiến trúc phần mềm: Định danh và định nghĩa chương trình, các khối độc lập, các chức năng, các luật, các đối tượng và các mối quan hệ giữa chúng. + Các thành phần và các khối của phần mềm: định nghĩa một cách chi tiết nội dung và các chức năng của thàng phần, bao gồm đầu vào\ra, sự hiển thị, báo cáo, dữ liệu, các file, các kết nôi và các tiến trình. + Giao diện: Nội dung chi tiết, tính toán thời gian, với trách nhiệm cụ thể, và thiếtkế dữ liệu được trao đổi với những ứng dụng hay tổ chức khác. + Kiểm tra: Xác định chiến lược, nhiệm vụ, và tính toán thời gian cho mọi loại hình khiểm tra cần được tiến hành. + Dữ liệu: Là việc xác định cách thể hiện vật lý của dữ liệu trên các thiết bị, và các yếu tố yêu cầu, tính toán thời gian, nhiệm vụ phân giã, sao chép các bản sao dữ liệu. 2.1.6.G iai đoạn thiếtkế hệ thống. + Cấu trúc điều khiển trình ứng dụng: Xác định bằng cách nào một trương trình hay một khối độc lập được kích hoạt và nó sẽ về đâu khi kết thúc. + Cấu trúc dữ liệu và sơ đồ cài đặt vật lý: Trong môi trường Cơsở dữ liệu, hoạt động này bao gồm việc sác định một thư viện dữ liệu tập trung, các đường hộp thoại, và vùng đệm cho việc sử dụng hệ quản trị dữ liệu. + Định kích thước: Xác định bất kỳ một trương trình và vùng đệm mà nó dự tính như là một bộ nhớ trú ngụ đối vói chế độ trực tiếp hay các tiến trình theo thời gian thực. + Thuật toán chính: Chỉ ra các vấnđề toán học cho phép kiểm tra một cách độc lập tính đúng đắn của công thức. + Thuật toán chính: Chỉ ra các vấnđề toán học cho phép kiểm tra một cách độc lập tính đúng đăn của công thức. + Các thành phần của chương trình: Định danh, tên, và tính chất sử dụng. Về mặt thể hiện tính chất bao gồm các thủ tục dữ liệu, các thủ tục, khối khác có thể bị gọi trong quá trình sử lý của khối này, kích thước hang đợi, vùng đệm và các yêu cầu của tiến trình. 2.1.7. Giai đoạn triển khai: Việc thực hiện triển khai còn được gọi là cài đặt và cho phép sử dụng. Triển khai là quá trìnhmột sản phẩm phần mềm được tích hợp vào môi trường làm việc và cho phép sử dụng. Thực hiện triển khai bao gồm sự hoàn chỉnh của chuyển đổi dữ liệu, cài đặt và đào tạo sử dụng. Vào thời điểm này của chu trìnhmột dự án quá trình phát triển phần mềm kết thúc, và giai đoạn bảo hành, bảo trì bắt đầu. Việc bảo trì tiếp tục cho đến khi dự án kết thúc. 2.1.8. Giai đoạn vận hành và bảo trì. Vận hành và bảo trì là một giai đoạn trong quá trình sản xuất phầm mềm ở đó sản phẩm phần mềm được sử dụng trong môi trường làm việc, giám sát đối với hiệu quả thống kê, và sửa đổi nếu cần thiết. 2.1.9. Giai đoạn loại bỏ. Đây là giai đoạn trong quá trình sản xuất phần mềm mà tại đó việc cung cấp sản phẩm phần mềm kết thúc. Thông thường, các chức năng của sản phẩm phần mềm được chuyển tới một hệ thống kế tiếp. 2.1.10. Các hoạt động thường xuyên. Có hai hoạt động phổ biến trong mỗi giai đoạn là: Kiểm kê, phê chuẩn và quản lý cấu hình. Tổng kết mỗi giai đoạn là sự kiểm tra phê chuẩn. Đó chính là mục tiêu của sản phẩm. Việc kiêm tra đưa ra khuân mẫu đúng đắn tương ứng giữa sản phẩm phần mềm và đặc tính của nó. Sự phê chuẩn đưa ra chuẩn mực về sự phù hợp hay chất lượng của sản phẩn phần mềm đối với mục đích của quá trình sử dụng. Một người quản lý dự án được chỉ định nắm giữ phiên bản chính của mỗi sản phẩm. 2.2. Mô hình phát triển tiến hoá của phần mềm Mô hình phát triển tiến hoá của phần mềm Dàn ý mô tả Đặc tả Phát triển Đánh giá Phiên bản khởi động Phiên bản cuối Các phiên bản trung gian Các thao tác song song Mô hình phát triển phần mềm theo kiểu tiến hoá 2.2.1. Phân loại sự phát triển tiến hóa + Lập trình thăm dò: đối tượng của quá trình bằng cách làm việc với khách hàng để thăm dò các yêu cầu và phân phối phần mềm dứt diểm. Sự phát triển nên bắt đầu với những phần nào đã được hiểu rõ. Phần mềm sẽ được thêm vào các chức năng mới khi mà nó được đề nghị cho khách hàng (và nhận về các thông tin). + Mẫu thăm dò: đối tượng của phát triển tiến hoá này là nhằm hiểu các yêu cầu của khách hàng và do đó phát triển các định nghĩa yêu cầu tốt hơn cho phần mềm. Các mẫu tập trung trên các thí nghiệm với những phần đòi hỏi nào của khách hàng mà có thể gây sự khó hiểu hay ngộ nhận. 2.2.2 Phân tích mô hình: * Mô hình phát triển tiến hóa này hiệu quả hơn mô hình thác nước. Tuy nhiên, nó vẫn còn các khuyết điểm: + Quá trình thì không nhìn thấy rõ được: Các nhà quản lý cần phân phối thường xuyên để đo lường sự tiến bộ. Nó không kinh tế trong việc làm ra các hồ sơ cho phần mềm. + Phần mềm thường dược cấu trúc nghèo nàn: Sự thay đổi liên tục dễ làm đổ vỡ cấu trúc của phần mềm, tạo ra sự khó khăn và tốn phí. + Thường đòi hỏi những kỹ năng đặc biệt: Hầu hết các hệ thống khả dĩ theo cách này được tiến hành bởi các nhóm nhỏ có kỹ năng cao cũng như các cá nhân phải năng động. 2.2.3 Mô hình này thích hợp với: + Phát triển các loại phần mềm tương đối nhỏ + Phát triển các loại phần mềm có đời sống tương đối ngắn + Tiến hành trong các hệ thống lớn hơn ở những chỗ mà không thể biểu thị được các đặc tả chi tiết trong lúc tiến hành. Thí dụ của trường hợp này là các hệ thống thông minh nhân tạo (AI) và các giao diện cho người dùng. 2.3 Các công việc G1 thực hiện và các sản phẩm chuyển giao: Công việc Sản phẩm bàn giao 1 - Xây dựng và quản lý HĐ phần mềm - Đề xuất tham gia HĐPM - Lập giải pháp kĩ thuật, hồ sơ PM - Xây dựng HĐPM - Theo dõi thực hiện HĐPM - Thanh toán, thanh lý - Báo cáo tổng kết - Vănbản hợp đồng xây dựng PM - Giải pháp thực hiên 2 - Xác định yêu cầu - Lập kế hoạch xác định yêu cầu - Khảo sát - Phân tích nghiệp vụ - Phân tích yêu cầu người sử dụng - Mô tả hoạt động của nhà thuốc Trúc Tâm - Báo cáo tổng kết - Hồ sơ xác định yêu cầu khách hàng : + Tài liệu phân tích nghiệp vụ + Tài liệu mô tả hoạt động + Tài liệu phân tích yêu cầu người sử dụng 3 - Phân tích, thiếtkế Công việc Sản phẩm bàn giao - Lập kế hoạch thiếtkế - Thiếtkế kiến trúc - Thiếtkế dữ liệu - Thiếtkế thủ tục - Thiếtkế chương trình - Thiếtkế giao diện - Báo cáo tổng kết - Hồ sơ kiến trúc phần mềm - Hồ sơthiếtkế kỹ thuật 4 - Lập trình - Lập kế hoạch lập trình - Lập trình thư viện chung - Thiếtkế các module - Tích hợp - Test - Báo cáo tổng kết quytrình - Sản phẩm phần mềm - Bộ công cụ cài đặt 5- Test - Lập kế hoạch Test - Kịch bản Test - Test hệ thống - Test nghiệm thu - Hồ sơ Test - Biên bản ghi nhận quytrình Test - PM đã được test đúng hạn 6- Triển Khai - Lập giải pháp kĩ thuật - Kế hoạch triển khai - Cài đặt máy chủ - Cài đặt máy mạng - Vận hành PM - Đào tạo sử dụng - Biên bản triển khai - Biên bản cài đặt . Một số vấn đề phương pháp luận cơ bản về quy trình thiết kế, xây dựng và triển khai một phần mềm ứng dụng I. Khái niệm về phần mềm và công. tích, thiết kế Công việc Sản phẩm bàn giao - Lập kế hoạch thiết kế - Thiết kế kiến trúc - Thiết kế dữ liệu - Thiết kế thủ tục - Thiết kế chương trình - Thiết