CHƯƠNG 1: CƠ SỞ LÝ LUẬN VỀ PHÂN TÍCH VÀ THIẾT KẾ PHẦN MỀM 1. Một số khái niệm cơ bản 1.Phần mềm Phần mềm máy tính (Computer Software) được hiểu là các loại chương trình đa dạng được sử dụng để vận hành, điều khiển máy tính và các thiết bị liên quan khác. Dưới góc độ quản lý, vai trò của phần mềm máy tính điện tử được thể hiện ở những điểm sau đây: Thứ nhất, việc có được phần mềm phù hợp là điều kiện trước tiên để phần cứng có thể làm được một điều gì đó. Thứ hai, chi phí cho phần mềm của phần lớn các tổ chức lớn gấp nhiều lần chi cho phần cứng với thời gian thì tỷ lệ chi cho phần mềm so với chi cho phần cứng ngày càng lớn.
Thứ ba, phần lớn người sử dụng làm việc với các phần mềm tăng năng suất như phần mềm bảng tính điện tử, phần mềm soạn thảo văn bản và các trình duyệt Web. Trong khi đó, yếu tố phần cứng duy nhất người sử dụng giao tiếp và sử dụng lại chỉ là một máy tính cá nhân. Không phụ thuộc vào vị trí công việc trong tổ chức, người sử dụng máy tính có thể được yêu cầu tham gia ở một mức độ phù hợp vào nhóm dự án phát triển hay mua sắm phần mềm (hoặc với tư cách nhà quản lý hoặc với tư cách người sử dụng cuối cùng), ví dụ xây dựng hệ thống báo cáo bán hàng mới hay xây dựng hệ thống báo cáo tồn kho mới. Chính vậy nên, việc hiểu rõ các loại phần mềm máy tính khác nhau và cách thức các phần mềm này được sử dụng và khai thác trong tổ chức là điều hết sức quan trọng.Trần Thị Song Minh, Giáo trình Hệ thống thông tin quản lý, 2015, NXB Đại học Kinh tế Quốc dân, trang 82) 1.Quản lý dự án Quản lý dự án là ngành khoa học nghiên cứu về việc lập kế hoạch, tổ chức và quản lý, giám sát quá trình phát triển của dự án nhằm đảm bảo cho dự án hoàn thành đúng thời gian, trong phạm vi ngân sách đã được duyệt, đảm bảo chất lượng, đạt được mục tiêu cụ thể của dự án và các mục đích đề ra.
Mục tiêu cơ bản của việc quản lý dự án thể hiện ở chỗ các công việc phải được hoàn thành theo yêu cầu và bảo đảm chất lượng, trong phạm vi chi phí được duyệt, đúng thời gian và giữ cho phạm vi dự án không thay đổi.Phân tích thiết kế phần mềm Phân tích thiết kế phần mềm là một quá trình giải quyết vấn đề và lập kế hoạch cho một giải pháp phần mềm.Sau khi các mục đích và đặc điểm kĩ thuật của phần mềm được quyết định, lập trình viên sẽ thiết kế hoặc thuê người thiết kế để phát triển một kế hoạch cho giải pháp phần mềm. Nó bao gồm các thành phần cấp thấp, các vấn 5 đề thuật toán cũng như một khung nhìn kiến trúc.Bước Phân tích yêu cầu trong quy trình phát triển phần mềm. Một số lý thuyết cơ bản về phân tích, thiết kế 1.Phân tích thiết kế phần mềm Mục tiêu thiết kế là để tạo ra một mô hình biểu diễn của một thực thể mà sau này sẽ được xây dựng. Có nhiều chiến lược hỗ trợ cho quá trình thiết kế qua các phương pháp tiếp cận khác nhau.
Hai chiến lược thiết kế đang được dùng rộng rãi và cho thấy hiệu quả tích cực là thiết kế hướng chức năng và thiết kế hướng đối tượng. Mỗi chiến lược đều có những ưu, nhược điểm riêng phụ thuộc vào ứng dụng phát triển và nhóm phát triển phần mềm. Hai cách tiếp cận này là bổ sung và hỗ trợ cho nhau chứ không đối kháng nhau.Thiết kế hướng chức năng Thiết kế hướng chức năng là một cách tiếp cận thiết kế phần mềm trong đó bản thiết kế được phân giải thành một bộ các mô-đun được tác động lẫn nhau, mà mỗi mô-đun có một chức năng được xác định rõ ràng. Người ta dùng các biểu đồ dòng dữ liệu mô tả việc xử lý dữ liệu logic, các lược đồ cấu trúc để chỉ ra cấu trúc của phần mềm và mối quan hệ giữa các thành phần.
Trong thiết kế hướng chức năng, người ta dùng các biểu đồ luồng dữ liệu (mô tả việc xử lý dữ liệu), các lược đồ cấu trúc (nó chỉ ra cấu trúc của phần mềm) và các mô tả thiết kế chi tiết. - Ưu điểm: Tư duy phân tích thiết kế rõ ràng. Chương trình sáng sủa dễ hiểu. Phân tích được các chức năng của hệ thống.
Dễ theo dõi luồng dữ liệu. - Nhược điểm: Không hỗ trợ việc sử dụng lại. Các chương trình hướng cấu trúc phụ thuộc chặt chẽ vào cấu trúc dữ liệu và bài toán cụ thể, do đó không thể dùng lại modul nào đó trong phần mềm này cho phần mềm khác với các yêu cầu về dữ liệu khác. Không phù hợp cho phát triển các phần mềm lớn.
Khó quản lý mối quan hệ giữa các modul và dễ gây ra lỗi trong phân tích cũng như khó kiểm thử và bảo trì. Thiết kế hướng đối tượng Hệ thống được nhìn nhận như một bộ các đối tượng, phân tán, mỗi đối tượng có những thông tin trạng thái riêng của nó. Thiết kế hướng đối tượng là dựa trên việc che dấu thông tin do dữ liệu dùng chung bị loại bỏ. Các đối tượng liên lạc với nhau bằng cách trao đổi thông báo.
6 Các đối tượng là các thực thể độc lập, sẵn sàng thay đổi mà không ảnh hưởng tới các đối tượng khác. Các đối tượng có thể phân tán và hành động tuần tự hoặc song song. - Ưu điểm Dễ bảo trì và các đối tượng là độc lập. Có thể dùng lại một số thành phần của đối tượng đã được thiết kế trước đó.
Thiết kế dễ hiểu: nhìn rõ được mối quan hệ giữa các thực thể - Nhược điểm Cách nhìn tự nhiên nhiều hệ thống là cách nhìn chức năng nên việc thích nghi với cách nhìn đối tượng đôi khi là khó khăn. Làm sao để tìm ra các đối tượng thích hợp trong một hệ thống cũng là một vấn đề khó khăn. Với bài khóa luận này, em sử dụng phân tích thiết kế hướng đối tượng, sau đây em xin được đưa ra một số lý thuyết về phân tích thiết kế hướng đối tượng. Hướng đối tượng: - Là lấy đối tượng làm trung tâm - Đối tượng = Chức năng + Dữ liệu - Hệ thống = Tập hợp các đối tượng + Quan hệ giữa các đối tượng - Cách tiếp cận hướng đối tượng là một lối tư duy theo cách ánh xạ các thành phần trong bài toán vào các đối tượng ngoài đời thực.
Với cách tiếp cận này, một hệ thống được chia tương ứng thành các thành phần nhỏ gọi là các đối tượng, mỗi đối tượng bao gồm đầy đủ các dữ liệu và hành động liên quan đến đối tượng đó. Đối tượng (object): là bộ các “thuộc tính” xác định trạng thái của đối tượng đó và các phép toán thực hiện trên các thuộc tính đó. Mỗi đối tượng là một thể hiện cụ thể của một lớp mà lớp được xác định bởi các thuộc tính và các phép toán của nó. Lớp đối tượng được thừa kế từ một vài lớp đối tượng có mức trừu tượng cao hơn, sao cho định nghĩa nó chỉ cần nêu đủ sự khác biệt giữa nó và các lớp cao hơn nó.
Các đối tượng liên lạc với nhau chỉ bằng cách trao đổi các thông báo: thực tế hầu hết các liên lạc giữa các đối tượng thực hiện bằng cách một đối tượng này gọi một thủ tục, mà thủ tục này kết hợp với một đối tượng khác. Trong phương pháp hướng đối tượng thì lớp là mô tả một hay nhiều đối tượng, mô tả tập thống nhất các thuộc tính và phương thức. Nó còn có thể mô tả cách tạo đối tượng mới trong lớp như thế nào. Trừu tượng (abstract): là nguyên lý bỏ qua những khía cạnh của chủ thể (subject) không liên quan đến mục đích hiện tại để tập trung đầy đủ hơn vào các khía cạnh còn lại.
Như vậy có thể nói rằng trừu tượng là đơn giản hóa thế giới thực một cách 7 thông minh. Trừu tượng cho khả năng tổng quát hóa và ý tưởng hóa vấn đề đang xem xét. Chúng loại bỏ đi các chi tiết dư thừa mà chỉ tập chung và các điểm chính, cơ bản. Phương pháp hay phương thức (method): là cách thức cấu trúc các suy nghĩ và hành động của con người.
Nó cho biết chúng ta phải làm cái gì, làm như thế nào, làm khi nào và tại sao phải làm như vậy để hình thành hệ thông phần mềm. Mô hình (model): là kế hoạch chi tiết của hệ thống, là bức tranh hay mô tả của vấn đề đang được cố gắng giải quyết hay biểu diễn. Mô hình còn có thể là mô tả chính giải pháp, có thể dùng biểu tượng thay cho đối tượng thực. Thiết kế: là tập tài liệu kỹ thuật toàn bộ, gồm có bản tính toán, bản vẽ… để có thể theo đó mà xây dựng công trình, sản xuất thiết bị, làm sản phẩm… Khái niệm phân tích trong tiếp cận hướng đối tượng là thực hiện đặc tả các hành vi bên ngoài, bổ sung chi tiết nếu cần thiết để cài đặt hệ thống trên máy tính, bao gồm tương tác người - máy, quản lý nhiệm vụ, quản lý dữ liệu.
Thiết kế hướng đối tượng tập trung vào xác định đối tượng phần mềm logic sẽ được cài đặt bằng ngôn ngữ hướng đối tượng. Xây dựng (lập trình) hướng đối tượng: là thiết kết các modun sẽ được cài đặt. Lĩnh vực vấn đề (domain problem): là không gian (vùng) của các hoạt động hoặc ảnh hưởng. Nó là vùng tác nghiệp hay kinh nghiệm của con người trong đó phần mềm được sử dụng.
Vậy, lĩnh vực vấn đề là vùng mà ta đang cố gắng xem xét. Thí dụ của lĩnh vực vấn đề có thể là tài chính, giáo dục,… Phân tích: là tách, chia nhỏ tổng thể thành các phần để tìm ra đặc tính, chức năng, quan hệ… của chúng (từ điển Webster’s). Khái niệm phân tích trong tiếp cận hướng đối tượng là thực hiện nghiên cứu lĩnh vực vấn đề, dẫn tới đặc tả hành vi quan sát từ ngoài và các thông báo nhất quán, hoàn chỉnh, khả thi của những cái cần [COAD91]. Phân tích hướng đối tượng tập trung vào tìm kiếm, mô tả các đối tượng (khái niệm) trong lĩnh vực vấn đề.
Thí dụ hệ thống thư viện có khái niệm Sách, Thư viện … Phương pháp luận (methodology): mô tả cách thức suy nghĩ về phần mềm và phát triển phần mềm. Nó bao gồm ngôn ngữ mô hình hóa metamodel (mô hình của mô hình) và tiến trình. Phương pháp luận khác với phương pháp. Phương pháp luận là nghiên cứu phương pháp.