Yêu cầu thực tiễn và tầm quan trọng của quản lý vật tư Yêu cầu thực tiễn và tầm quan trọng của quản lý vật tư 3 3 1.Từ yêu cầu thực tiễn đến việc chọn đề tài
Tầm quan trọng của việc quản lý vật tư
Quản lý vật tư là cả một quá trình tổ chức lưu trữ hợp nhất xử lý, tính toán tất cả các thông tin cần thiết của từng vật tư nhằm phục vụ cho việc truy tìm, sắp xếp hay thống kê các báo biểu một cách nhanh chóng nhất theo từng yêu cầu cụ thể
Các hoạt động nhập xuất hay tính toán lập các báo biểu thủ công bằng tay ghi chép lên giấy sẽ không còn phù hợp trong thời đại ngày nay vì nó không thoả mãn yêu cầu đòi hỏi của con người như độ chính xác và khả năng đáp ứng thông tin nhanh chóng nữa Vì vậy, ứng dụng tin học vào việc quản lý vật tư là rất quan trọng và cần thiết
Hơn thế nữa, việc tin học hoá trong các bài toán quản lý vật tư sẽ đem lại một điều bất ngờ nếu phần mềm quản lý đó được ứng dụng trên mạng cục bộ hay diện rộng, đó là tại một vị trí khác có thể truy tìm thông tin hay cập nhật thông tin về vật tư tại một vị trí khác Điều này trước đây khó có thể làm được nếu không có sự phát triển vượt bậc của kỹ thuật mạng viễn thông.
Vậy, ta đã giải đáp được tại sao mang lại hiệu quả công việc rất lớn và đem lại thời gian rãnh rỗi cho con người nhiều hơn khi ứng dụng tin học vào các vấn đề thực tế, là quản lý vật tư
Khoa Công nghệ Thông tin - Điện tử Viễn thông SV: Nguyễn Bá Quang
Mục tiêu và phạm vi đề tài Mục tiêu và phạm vi đề tài 3 3 1.Mục tiêu đề tài
Nền tảng thiết kế phần mềm Nền tảng thiết kế phần mềm 5 5 I I Thiết kế và kĩ nghệ phần mềm Thiết kế và kĩ nghệ phần mềm 5 5 II II Tiến trình thiết kế -Tiến trình thiết kế - 6 6 II.1 Thiết kế và chất lượng phần mềm
Sự tiến hoá của thiết kê phần mềm
Tiến hoá của thiết kế phần mềm là một tiến trình liên tục đã trải qua hơn ba thập kỷ Công trình thiết kế ban đầu tập trung vào các tiêu chuẩn để phát triển các mô đun và các phương pháp làm mịn kiến trúc phần mềm theo cách thức từ trên xuống Các thủ tục của của định nghĩa thiết kế đã tiến hoá thành một triết lý mà ta gọi là lập trình có cấu trúc Về sau thì có các giải pháp để chuyển từ luồng dữ liệu hay cấu trúc dữ liệu thành một định nghĩa thiết kế, một tiếp cận mới hơn đã được đề ghị là tiếp cận hướng đối tượng tới việc dẫn ra thiết kế Song trong các phương pháp này có chung các đặc trưng sau: một cơ chế để chuyển biểu diễn từ miền thông tin sang biểu diễn thiết kế, một kí pháp để biểu diễn các thành phần chức năng và giao diện của chúng, cách trực cảm để làm mịn và phân hoạch, các hướng dẫn về đánh giá chất lượng.
Khoa Công nghệ Thông tin - Điện tử Viễn thông SV: Nguyễn Bá Quang
Dù cho phương pháp luận thiết kế phần mềm nào được dùng thì người kĩ sư phần mềm cũng phải áp dụng một tập hợp các khái niệm nền tảng cho thiết kế dữ liệu, kiến trúc và thủ tục.
Nền tảng thiết kế Nền tảng thiết kế 7 7 1.Trừu tượng 7 2.Làm mịn
Mỗi khái niệm đều cung cấp cho người thiết kế phần mềm một nền tảng để từ đó người ta có thể áp dụng nhiều phương pháp thiết kế phức tạp.
Khi phân tích xem xét một giải pháp mô đun cho bất kì vấn đề nào đó thì có thể đặt ra nhiều mức độ trừu tượng Mỗi bước trong tiến trình kĩ nghệ phần mềm đều là sự làm mịn cho một mức độ trừu tượng của giải pháp phần mềm Khi chúng ta chuyển từ thiết kế sơ bộ sang thiết kế chi tiết thì mức độ trừu tượng được rút lại. Cuối cùng đi tới mức độ trừu tượng thấp nhất khi sinh ra chương trình gốc Khi chúng ta chuyển qua các mức độ trừu tượng khác nhau, chúng ta làm việc để tạo ra các trừu tượng thủ tục và dữ liệu.
Trừu tượng thủ tục là một dãy các lệnh có tên, có một chức năng xác định và có giới hạn Ví dụ về trừu tượng thủ tục là từ "tìm" tên vật tư trong danh mục Từ này kéo theo một dãy các bước thủ tục (như nhập tên vật tư, chọn tên danh mục, mở danh mục, dò từ trên xuống, đối chiếu so sánh các tên vật tư có trong danh mục, đóng danh mục lại và báo cáo kết quả đã tìm được)
Trừu tượng dữ liệu là một tập hợp các dữ liệu có tên mô tả cho một đối tượng dữ liệu Ví dụ về trừu tượng dữ liệu là "phiếu nhập vật tư" Đối tượng dữ liệu này thực chất là một tập hợp nhiều mẫu thông tin khác nhau (như tên người ký nhận, tên loại vật tư, số lượng, kho nhập vào, ngày nhập, ) Vậy chúng ta có thể tham chiếu đến mọi đối tượng dữ liệu bằng cách nói tên của trừu tượng dữ liệu.
Trừu tượng điều khiển là dạng thứ ba của trừu tượng hoá được dùng trong thiết kế phần mềm Giống như trừu tượng dữ liệu và thủ tục, trừu tượng điều khiển áp dụng cho cơ chế điều khiển chương trình mà không xác định các chi tiết bên trong.
Ví dụ về trừu tượng điều khiển là cơ chế đồng bộ hoá dùng để điều hoà trong các hoạt động của hệ điều hành.
Làm mịn từng bước là một chiến lượt thiết kế từ trên xuống từ thuở ban đầu do Niklaus Wirth đề nghị Kiến trúc của chương trình được phát triển bằng các mức làm mịn liên tiếp các chi tiết thủ tục Một cấp bậc được xây dựng bằng cách phân tách một phát biểu vĩ mô về chức năng (trừu tượng thủ tục) theo kiểu từng bước cho tới khi đạt được phát biểu đến ngôn ngữ lập trình Theo Niklaus Wirth thì khái niệm này được tổng quan như sau:
Trong mỗi bước (làm mịn), một hay nhiều lệnh của chương trình đã cho được phân rã thành những lệnh chi tiết hơn Việc phân rã hay làm mịn liên tiếp các đặc tả này kết thúc khi tất cả các lệnh đã được diễn đạt dưới dạng ngôn ngữ lập trình hay ngôn ngữ máy tính nền tảng nào Khi các nhiệm vụ được làm mịn thì dữ liệu cũng
Khoa Công nghệ Thông tin - Điện tử Viễn thông SV: Nguyễn Bá Quang phải được làm mịn, được phân rã hay được cấu trúc lại, và điều tự nhiên là song song theo đó làm mịn các đặc tả chương trình và dữ liệu Mọi bước làm mịn đều kéo theo những quyết định thiết kế nào đó Điều quan trọng là người lập trình cần nhận biết về các tiêu chuẩn nền tảng ( cho quyết định thiết kế ) và về sự tồn tại của các giải pháp khác Làm mịn thực chất là quá trình khởi thảo.
III.3 Tính mô đunTính mô đun
Kiến trúc phần mềm cụ thể hoá cho tính mô đun này; tức là phần mềm được chia thành các thành phần riêng biệt và định địa chỉ, gọi là các mô đun, được tích hợp để thoả mãn các yêu cầu của vấn đề.
Ta không thể hiểu thấu một phần mềm lớn nguyên khối Số các đường dẫn, phạm vi tham khảo, số các biến và độ phức tạp tổng thể sẽ làm cho việc hiểu thấu đáo sẽ không thực hiện được Ta hãy xét lập luận sau:
Gọi C(x) là hàm xác định độ phức tạp cảm nhận được của vấn đề x và E(x) là hàm xác định nỗ lực (theo thời gian) cần giải quyết vấn đề x Với hai vấn đề p1 và p2 , nếu:
Thì ta suy ra rằng
E(p1) > E(p2) (2) Điều này hiển nhiên, nhưng một điều quan tâm khác được lộ ra trong qua trình giải quyết vấn đề của con người Đó là:
Biểu thức này cho ta thấy được độ phức tạp cảm nhận được của vấn đề có tổ hợp p1 và p2 có độ phức tạp lớn hơn độ phức tạp khi từng vấn đề được xem xét tách biệt Từ (3) và (1),(2) ta suy ra:
E(p1 + p2) > E(p1) + C(p2) (4) Điều này dẫn đến kết luận sẽ dễ giải quyết vấn đề phức tạp hơn khi ta biết cách chia nhỏ ra từng phần Kết quả (4) là một luận cứ cho tính mô đun trong thực tế.
Nhưng không có nghĩa là sẽ kết luận càng phân chia phần mềm một cách không xác định thì nỗ lực phát triển nó trở nên nhỏ đến mức có thể bỏ đi được Điều này không được may mắn vì nỗ lực (chi phí) để phát triển một mô đun phần mềm riêng lẻ không giảm đi khi tổng số các mô đun tăng lên, có thể xem hình 2.2 sau.
Khoa Công nghệ Thông tin - Điện tử Viễn thông SV: Nguyễn Bá Quang
Mi n chi phí t i thi uề báo cáo hay ý kiến đóng góp lên cấp trên ối thiểu ểm y tế
T ng chi phí ph n m mổng hợp ần mềm ề báo cáo hay ý kiến đóng góp lên cấp trên Chi phí cho giao di nệc chỉ đạo hay hướng dẫn công việc một cách trực tiếp
Hình 2.2: Tính mô un v chi phí ph n m m đ à chi phí phần mềm ần ềm
Chi phí hay n ỗ l cực tiếp
III.4 Kiến trúc phần mềmKiến trúc phần mềm
Thiết kế mô đun hiệu quả - Thiết kế mô đun hiệu quả - 12 12 1 Kiểu mô đun
Thiết kế mô đun là giảm độ phức tạp, làm thuận tiện cho thay đổi và cho kết quả trong cài đặt sớm bằng cách cổ vũ sự phát triển song song của các phần khác của hệ thống.
IV.1 Kiểu mô đunKiểu mô đun Đặc trưng bởi lịch sử thời gian của cái hợp thành, cơ chế kích hoạt và hình mẫu điều khiển Lịch sử thời gian là nói đến thời gian mà mô đun được đưa vào bên trong mô tả ngôn ngữ gốc của phần mềm (như macro chẳng hạn) Hai cơ chế kích hoạt hay gặp là tham chiếu (ví dụ câu lệnh call ) và ngắt Hình mẫu điều khiển của một mô đun mô tả cho cách nó thực hiện bên trong Các mô đun qui ước có một lối vào/ra và được thực hiện tuần tự như một phần của nhiệm vụ người dùng Thiết kế mô đun là làm sao cho nó không thay đổi bản thân hay thay đổi địa chỉ cục bộ mà nó tham chiếu theo bất kỳ cách nào Trong một chương trình mô đun có thể được phân loại:
- Mô đun tuần tự, được tham chiếu và thực hiện không bị ứng dụng phần mềm ngắt Đặc trưng bởi các macro khi dịch và các chương trình con qui ước - hàm hay thủ tục.
Khoa Công nghệ Thông tin - Điện tử Viễn thông SV: Nguyễn Bá Quang
- Mô đun tăng trưởng (đồng trình), có thể bị ngắt trước khi hoàn tất bởi phần mềm ứng dụng và sau đó quay lại thực hiện tại điểm ngắt đó bằng cách duy trì một con trỏ.
- Mô đun song song (trình tương tranh - conroutine) thực hiện đồng thời với các mô đun khác trong môi trường đa xử lý tương tranh.
IV.2 Độc lập chức năngĐộc lập chức năng Độc lập chức năng là khái niệm phát triển trực tiếp của tính mô đun và các khái niệm che giấu thông tin và trừu tượng hoá Chúng ta muốn thiết kế phần mềm để sao cho từng mô đun được đề cập đến chức năng con xác định của yêu cầu và có một giao diện đơn giản khi được xét từ các phần tử khác của cấu trúc chương trình. Nhưng tại sao độc lập lại quan trọng Phần mềm với mô đun được hiệu quả, tức là các mô đun độc lập, thì dễ dàng cho sự phát triển bởi vì các chức năng được tham biến hoá và giao diện được đơn giản hoá Sự độc lập được đo bằng hai tiêu chuẩn định tính: tính cố kết và gắn nối sẽ được trình bày trong phần sau.
IV.3 Tính cố kếtTính cố kết
Tính cố kết là việc đo sức mạnh chức năng tương đối của mô đun Tính cố kết được biểu thị như một phổ (spectrum) ở hình 2.7 Mục đích của mô đun cố kết là một mô đun nên thực hiện một công việc Ta luôn cố gắng tạo mô đun có tính cố kết cao mặc dầu một nửa phạm vi của phổ đã được chấp nhận Tỉ lệ cho tính kết cố là không tuyến tính Tức là tính cố kết về phía đầu thấp thì "xấu" hơn rất nhiều đoạn giữa, chỗ này gần tốt như tính cố kết về phía đầu cao Thực tế trong khi thiết kế ta không quan tâm đến phân loại cố kết của mô đun thay vì nên tránh các mức thấp của cố kết
Một mô đun thực hiện một tập hợp các nhiệm vụ có liên qua lẫn nhau một cách lỏng lẻo thì gọi là cố kết trùng khớp Một mô đun thực hiện các nhiệm vụ có liên quan với nhau về mặt lôgic thì gọi là cố kết lôgic Một mô đun chứa các nhiệm vụ có liên quan tới sự kiện là tất cả chúng phải thực hiện trong cùng khoảng thời gian thì biểu lộ tính cố kết tạm thời Khi các phần tử xử lý của một mô đun có quan hệ và phải được thực hiện theo một thứ tự đặc biệt thì tồn tại tính cố kết thủ tục Khi tất cả các phần tử xử lý đều tập trung vào một lĩnh vực thì có tính cố kết truyền thông.
Khoa Công nghệ Thông tin - Điện tử Viễn thông SV: Nguyễn Bá Quang
Th t c ủ quĩ ục vô hướng
T m ạo hay hướng dẫn công việc một cách trực tiếp th iời
Truy n thôngề báo cáo hay ý kiến đóng góp lên cấp trên Ch c n ng ứ trong trang tài liệu tham khảo ăng
Tu n tần mềm ực tiếp o s c m nh ch c n ng t ng i c a m t mô un Đ ứ trong trang tài liệu tham khảo ạo hay hướng dẫn công việc một cách trực tiếp ứ trong trang tài liệu tham khảo ăng ươ tuần tự đối thiểu ủ quĩ ột cách trực tiếp đ
Ph c k tổng hợp ối thiểu ế
"Tâm trí th ng nh t"ối thiểu ấp trên
Vậy, ta không cần phải xác định mức độ cố kết chính xác Thay vì thế điều quan trọng là cố gẵng có cố kết cao và thừa nhận cố kết thấp làm sao cho phần mềm có thể được sửa đổi để đạt tới độc lập chức năng hơn.
IV.4 Tính gắn nối Tính gắn nối
Tính gắn nối là việc đo sự độc lập tương đối ( mối tương tác lẫn nhau ) giữa các mô đun trong một cấu trúc phần mềm
Phương pháp gắn nối phụ thuộc mức độ phức tạp giao diện giữa các mô đun, nơi mà lối vào hay tham chiếu được tiến hành cho một mô đun và dữ liệu nào được đi qua giao diện.
Trong thiết kế chúng ta cố gắn làm cho việc gắn nối được thấp nhất Tính gắn nối trong mô đun đơn giản làm nảy sinh trong phần mềm điều dễ hiểu hơn và ít sinh lỗi hơn cho "hiệu quả gợn sóng", tức là sự xuất hiện lỗi tại một vị trí nào đó rồi lan truyền trong toàn hệ thống
Hình 2.9 đưa ra thí dụ về mô đun có một cấu trúc gắn nối thấp.
Khoa Công nghệ Thông tin - Điện tử Viễn thông SV: Nguyễn Bá Quang
G n n i ắn nối ối thiểu d li uữ liệu ệc chỉ đạo hay hướng dẫn công việc một cách trực tiếp
Không g n n i ắn nối ối thiểu tr c ti pực tiếp ế
G n n i i u ắn nối ối thiểu đ ề báo cáo hay ý kiến đóng góp lên cấp trên khi nểm y tế
G n n i nhãn ắn nối ối thiểu hi uệc chỉ đạo hay hướng dẫn công việc một cách trực tiếp Ngo i
G n n i ắn nối ối thiểu n i dungột cách trực tiếp
G n n i ắn nối ối thiểu thông thườing o tính c l p gi a các mô un ph n m m Đ đột cách trực tiếp ật tư ữ liệu đ ần mềm ề báo cáo hay ý kiến đóng góp lên cấp trên
Hình 2.8: Tính g n n i ắn nối ố kết
Ph c k tổng hợp ối thiểu ế
D li u ữ liệu ệc chỉ đạo hay hướng dẫn công việc một cách trực tiếp đượp c truy n qua danh ề báo cáo hay ý kiến đóng góp lên cấp trên sách đối thiểu i (g n n i ắn nối ối thiểu tr c ti p) ực tiếp ế
C u trúc d li u ấp trên ữ liệu ệc chỉ đạo hay hướng dẫn công việc một cách trực tiếp đượp c truy n qua danh sách ề báo cáo hay ý kiến đóng góp lên cấp trên i (g n n i nhãn đối thiểu ắn nối ối thiểu hi u) ệc chỉ đạo hay hướng dẫn công việc một cách trực tiếp
Không có g n n i ắn nối ối thiểu tr c ti p ực tiếp ế
Hình 2.9: G n n i th p ắn nối ố kết ấu trúc
Khi nào danh sách đối qui ước để truyền dữ liệu còn hiện diện ( dữ liệu đơn được truyền qua; tương ứng một - một giữa các khoản mục tồn tại ), thì gắn nối thấp ( gắn nối dữ liệu trên phổ ) được thể hiện trong phần này của cấu trúc Gắn nối nhãn hiệu có được khi một phần cấu trúc dữ liệu được truyền qua giao diện mô đun.