Với mục tiêu cung cấp cho các bạn sinh viên có thêm tư liệu tham khảo hỗ trợ cho học tập, Tailieu.vn giới thiệu đến các bạn Bài giảng Công nghệ phần mềm ứng dụng - Bài 4: Thiết kế và lập trình nhằm nắm được phương pháp thiết kế hệ thống; kỹ thuật thiết kế chương trình (dựa vào BLD và BPC); kỹ thuật lập trình.
GIỚI THIỆU MÔN HỌC CÔNG NGHỆ PHẦN MỀM ỨNG DỤNG Giảng viên: ThS Thạc Bình Cường v1.0015112208 BÀI THIẾT KẾ VÀ LẬP TRÌNH Giảng viên: ThS Thạc Bình Cường v1.0015112208 MỤC TIÊU BÀI HỌC • Phân tích phần tử phần mềm: Chức liệu vai trị nhà phân tích • Nắm vững ký pháp xây dựng biểu đồ phân tích cấu trúc sử dụng cơng cụ thiết kế phần mềm cụ thể • Ứng dụng sơ đồ kiến trúc chương trình tạo module chương trình đóng gói chương trình • Viết tài liệu hướng dẫn chương trình v1.0015112208 CÁC KIẾN THỨC CẦN CĨ • Tin học đại cương; • Ngơn ngữ lập trình; • Phân tích thiết kế hệ thống thơng tin v1.0015112208 HƯỚNG DẪN HỌC • Mơ hình hóa hệ thống; • Đọc hiểu tài liệu ký pháp thiết kế hệ thống; • Lập trình ngôn ngữ cấu trúc: C, C#, Java v1.0015112208 CẤU TRÚC NỘI DUNG 4.1 v1.0015112208 Phương pháp thiết kế hệ thống 4.2 Kỹ thuật thiết kế chương trình (dựa vào BLD BPC) 4.3 Kỹ thuật lập trình 4.1 PHƯƠNG PHÁP THIẾT KẾ HỆ THỐNG 4.1.1 Khái niệm thiết kế hệ thống 4.1.2 Phương pháp thiết kế hệ thống v1.0015112208 4.1.1 KHÁI NIỆM THIẾT KẾ HỆ THỐNG • Là thiết kế cấu hình phần cứng cấu trúc phần mềm (gồm chức liệu) để có hệ thống thỏa mãn yêu cầu đề • Có thể xem thiết kế cấu trúc (WHAT), thiết kế logic (HOW) • Quy trình thiết kế hệ thống: Phân chia mơ hình phân tích hệ con; Tìm tương tranh (concurrency) hệ thống; Phân bố hệ cho xử lý nhiệm vụ (tasks); Phát triển thiết kế giao diện; Chọn chiến lược cài đặt quản trị liệu; Tìm nguồn tài nguyên chung chế điều khiển truy cập chúng; Thiết kế chế điều khiển thích hợp cho hệ thống, kể quản lý nhiệm vụ; Xem xét điều kiện biên xử lý nào; Xét duyệt xem xét thỏa hiệp (trade-offs) v1.0015112208 4.1.1 KHÁI NIỆM THIẾT KẾ HỆ THỐNG • Các điểm lưu ý thiết kế hệ thống: Có thể trích luồng liệu từ hệ thống: Đó phần nội dung đặc tả yêu cầu giao diện Xem xét tối ưu tài nguyên kiến trúc lên hệ thống định kiến trúc Theo trình biến đổi liệu, xem chức kiến trúc nào? Từ kiến trúc chức năng, xem xét chỉnh lại, từ chuyển sang kiến trúc chương trình thiết kế chi tiết Quyết định đơn vị chương trình theo chức hệ phần mềm có dựa theo luồng liệu phân chia thành phần Khi cấu trúc chương trình lớn quá, phải phân chia nhỏ thành module Xem xét liệu vào-ra tệp dùng chung chương trình Truy cập tệp tối ưu Hãy nghĩ xem để có thiết kế nên dùng phương pháp luận kỹ thuật gì? • Thiết kế hệ thống: Thiết kế hệ thống phần cứng; Thiết kế hệ thống phần mềm: Thiết kế tập thiết kế chứng hệ thống v1.0015112208 4.1.1 KHÁI NIỆM THIẾT KẾ HỆ THỐNG (tiếp theo) Module: • Dãy lệnh nhằm thực chức • Có thể biên dịch độc lập • Module dịch module khác gọi tới • Giao diện module thông qua biến tham số (arguments) Lưu đồ bong bóng cấu trúc phân cấp: • Lưu đồ bong bóng: Biểu thị luồng xử lý liệu; Ký pháp • Cấu trúc phân cấp: Là phân cấp biểu thị quan hệ phụ thuộc module giao diện (interface) chúng Tên liệu v1.0015112208 Tên chức Tên liệu 10 4.2.1 KHÁI NIỆM THIẾT KẾ CHƯƠNG TRÌNH • Thiết kế chương trình thiết kế chi tiết cấu trúc bên phần mềm: Thiết kế tính module giao diện tương ứng • Cấu trúc ngồi phần mềm: Thiết kế hệ thống • Trình tự xử lý bên trong: Thuật toán (giải thuật, Algorithm); Logic v1.0015112208 20 4.2.2 PHƯƠNG PHÁP THIẾT KẾ CHƯƠNG TRÌNH • Khơng có trạng thái mờ (fuzzy), để đảm bảo thiết kế cấu trúc đắn • Ngơn ngữ lập trình phù hợp • Triển khai đắn đặc tả chức module chương trình nhờ phương pháp luận thiết kế chi tiết • Dùng quy trình thiết kế dễ chuẩn hóa bước • Kỹ thuật thiết kế chương trình • Kỹ thuật thiết kế mơ hình hệ phần mềm: Hướng tiến trình (process) : Kỹ thuật thiết kế cấu trúc điều khiển; Hướng cấu trúc liệu (data): Kỹ thuật thiết kế cấu trúc liệu; Hướng vật/đối tượng (object): Kỹ thuật thiết kế hướng đối tượng v1.0015112208 21 4.2.2 PHƯƠNG PHÁP THIẾT KẾ CHƯƠNG TRÌNH a Lập trình cấu trúc hóa • Khái niệm bản: tuần tự, nhánh (chọn), lặp; cấu trúc mở rộng, tiền xử lý, hậu xử lý • Những điểm lợi thiết kế thuật tốn : Tính độc lập module: Chỉ quan tâm vào-ra; Làm cho chương trình dễ hiểu; Dễ theo dõi chương trình thực hiện; Hệ phức tạp dễ hiểu nhờ tiếp cận phân cấp • Loại bỏ GOTO: GOTO dùng để làm gì: Cho phép thực bước nhảy đến nhãn định Tại cần loại bỏ GOTO: Phá vỡ tính cấu trúc lập trình cấu trúc hóa Phương pháp loại bỏ GOTO Có thể loại bỏ GOTO trường hợp? Thế “kỹ lập trình cấu trúc” • Lưu ý thiết kế chương trình: Phụ thuộc vào kỹ kinh nghiệm người thiết kế Cần chuẩn hóa tài liệu đặc tả thiết kế chi tiết Khi thiết kế cấu trúc điều khiển giải thuật, theo quy ước cấu trúc hóa nên đơi tính sáng tạo người thiết kế bị hạn chế, bó buộc theo khn mẫu có 22 v1.0015112208 4.2.2 PHƯƠNG PHÁP THIẾT KẾ CHƯƠNG TRÌNH (tiếp theo) b Lưu đồ cấu trúc hóa • Tác dụng lưu đồ (flow chart) • Quy phạm (discipline) • Trừu tượng hóa thủ tục • Lưu đồ cấu trúc hóa: Cấu trúc điều khiển bản; Chi tiết hóa bước giải thuật; Thể trình tự điều khiển thực v1.0015112208 23 4.2.2 PHƯƠNG PHÁP THIẾT KẾ CHƯƠNG TRÌNH (tiếp theo) • Lưu đồ Nassi-Shneiderman (NS chart by IBM): Nối (concatination) Chọn (selection) Đa nhánh (CASE) Lặp (repetition) Xử lý Xử lý TT1 Xử lý v1.0015112208 ĐIều kiện TT2 TT3 Xử Xử lý lý Y ĐIều kiện Xử lý DO WHILE (điều kiện) Xử lý N Xử lý Xử lý REPEAT UNTIL (điều kiện) 24 4.2.2 PHƯƠNG PHÁP THIẾT KẾ CHƯƠNG TRÌNH (tiếp theo) • Lưu đồ phân tích tốn Nối (Concatination) Trục k i ệ n v1.0015112208 Xử lý Xử lý Điều kiện Xử lý Đa nhánh (Case) Đ I ề u Chọn (Selection) TT1 Xử lý Lặp (Repetition) Xử lý TT2 Xử lý TT3 Xử lý TT4 Xử lý WHILE Điều kiện Xử lý UNTIL Điệu kiện Xử lý 25 4.2.3 PHƯƠNG PHÁP JACKSON • JSP - Jackson Structured Programming • Các ký pháp: Cơ sở (elementary); Tuần tự (sequence); Lặp; Personnel Record System Rẽ nhánh Login Transaction Add employee record Change employee record Display employee record Logout Delete employee record JSD biểu diễn chức hệ thống nhân v1.0015112208 26 4.3 KỸ THUẬT LẬP TRÌNH 4.3.1 Lịch sử phát triển ngơn ngữ lập trình 4.3.2 Cấu trúc chương trình 4.3.3 Các cơng cụ lập trình v1.0015112208 27 4.3.1 LỊCH SỬ PHÁT TRIỂN CỦA NGƠN NGỮ LẬP TRÌNH • Các ngôn ngữ hệ thứ nhất: Ngôn ngữ lập trình mã máy (machine code); Ngơn ngữ lập trình assembly • Các ngơn ngữ thế thứ hai: FOTRAN, COBOL, ALGOL, BASIC; Phát triển 1950-1970 • Các ngôn ngữ hệ thứ ba: Ngôn ngữ lập trình cấp cao vạn (cấu trúc); Lập trình hướng đối tượng; Lập trình hướng suy diễn – logic • Các ngơn ngữ hệ thứ tư (4 GL): Truy vấn; Các ngôn ngữ hỗ trợ định v1.0015112208 28 4.3.2 CẤU TRÚC LẬP TRÌNH a Cấu trúc liệu dễ hiểu • Nên xác định tất cấu trúc liệu thao tác cần thực cấu trúc liệu • Việc biểu diễn/khai báo cấu trúc liệu nên thực module sử dụng trực tiếp liệu • Nên thiết lập sử dụng từ điển liệu thiết kế liệu v1.0015112208 29 4.3.2 CẤU TRÚC LẬP TRÌNH b Cấu trúc thuật tốn dễ hiểu • Algorithm; • Structured coding điểm lưu ý: Tuân theo quy cách lập trình; Một đầu vào, đầu ra; Tránh GOTO, trừ phải khỏi lặp dừng • Dùng comments hợp lý: Dùng tên biến có nghĩa, gợi nhớ; Cấu trúc lồng rõ ràng; Tránh dùng CASE/switch nhiều lồng nhau; Mã nguồn chương trình/module nên viết trang; Tránh viết nhiều lệnh dòng v1.0015112208 30 4.3.2 CẤU TRÚC LẬP TRÌNH (tiếp theo) Ngơn ngữ Pascal If then/if then else Ngôn ngữ C if điều kiện then if (điều kiện) begin { công việc 1} công việc else end; {công việc 2} else begin công việc end Case/ switch CASE OF switch () giá trị1: ; { giá trị2: ; case : ;[break;] case : ; [break;] giá trịN: ; case : ; [break;] ELSE [default : ; [break;] ] ; } END; v1.0015112208 31 4.3.2 CẤU TRÚC LẬP TRÌNH (tiếp theo) Ngơn ngữ Pascal Ngơn ngữ C FOR biếnđiềukiện := GTđầu TO for ( [biểuthức1] ; [biểuthứcĐK]; [biểuthức2] ) GTCuối DO Forto/ downto Do while { ; } begin Đặc biệt: có lệnh break; continue; end; exit While BiểuthứcBoolean DO while () begin { ; } end; Repeat Repeat until until Biểu_thức_Boolean; v1.0015112208 { ; } while (); 32 4.3.3 CÁC CƠNG CỤ LẬP TRÌNH • Environments: DOS, WINDOWS, UNIX/LINUX • Editors, Compilers, Linkers, Debuggers • TURBO C, PASCAL • MS C, Visual Basic, Visual C++, ASP • UNIX/LINUX: C/C++, GCC (Gnu C Compiler) • JAVA, CGI, perl • C#, NET v1.0015112208 33 TĨM LƯỢC CUỐI BÀI Trong tìm hiểu nội dung sau: v1.0015112208 • Phân tích thiết kế hệ thống; • Kỹ thuật thiết kế chương trình (dựa vào BLD BPC); • Kỹ thuật lập trình 34 ...BÀI THIẾT KẾ VÀ LẬP TRÌNH Giảng viên: ThS Thạc Bình Cường v1.0015112208 MỤC TIÊU BÀI HỌC • Phân tích phần tử phần mềm: Chức liệu vai trò nhà phân tích •... 4. 1.1 Khái niệm thiết kế hệ thống 4. 1.2 Phương pháp thiết kế hệ thống v1.0015112208 4. 1.1 KHÁI NIỆM THIẾT KẾ HỆ THỐNG • Là thiết kế cấu hình phần cứng cấu trúc phần mềm (gồm chức liệu) để có hệ thống... thuật gì? • Thiết kế hệ thống: Thiết kế hệ thống phần cứng; Thiết kế hệ thống phần mềm: Thiết kế tập thiết kế chứng hệ thống v1.0015112208 4. 1.1 KHÁI NIỆM THIẾT KẾ HỆ THỐNG (tiếp theo) Module: