Bài tập Nhập môn công nghệ phần mềm - Tuần 8: Thiết kế phần mềm (Thiết kế kiến trúc và thiết kế chi tiết)

Introduction to Software Engineering - Nhập môn Công nghệ phn mm  
Bài tập tun 08  
Thiết kế phn mm  
(Thiết kế kiến trúc & thiết kế chi tiết)  
Mục tiêu  
- Thc hiện các bài tập (câu hỏi) về các khái niệm và nguyên tc thiết kế cơ bn  
trong Thiết kế phn mm  
- Nắm được phân loại thiết kế kiến trúc, các khái niệm gn kết (cohesion) và ghép  
ni (coupling)  
- Xây dựng kiến trúc cho phần mm của bài toán casestudy trong môn học:  
o Sdng package tchức các class trong mã nguồn phn mm  
o Thiết kế cơ sở dliu  
o Xây dựng các lớp model và các lớp truy xut dliu trong Database  
Đánh giá  
- Hoàn thành các bài tập về các khái niệm và nguyên tắc thiết kế cơ bản trong  
Thiết kế phn mm  
- Hoàn thành import project do giảng viên cung cấp để tchức các class trong mã  
ngun phn mm  
- Thiết kế CSDL trên hệ qun trMySQL  
- Hoàn thành xây dựng các lớp model và các lớp truy xut dliu trong Database  
Phần I:  
Bài 1.1  
a) Kiu kiến trúc ống dn blc (pipes and filters) là mt dạng đc bit ca kiu  
client-server?  
1. Đúng  
2. Sai  
b) Yếu tố nào có ảnh hưởng đến việc thiết kế kiến trúc phần mềm?  
1. Công nghệ sdng  
2. Yêu cầu vthuộc tính chất lượng  
3. Chiến lược trin khai hthng  
4. Tt cả các phương án trên  
c) Chn nhng yếu tquan trng tạo nên kiến trúc phần mm (chn nhiu)?  
Software Engineering Department - SoICT/HUST  
Trang 1 / 10  
Introduction to Software Engineering - Nhập môn Công nghphn mm  
1. Phn tphn mm  
2. Mi quan hgiữa các phần tử  
3. Thuộc tính của mi quan hệ  
4. Thuộc tính của môi trường hoạt động  
5. Thuộc tính của phn tử  
d) Mu thiết kế chỉ áp dụng được cho lập trình hưng đối tượng?  
1. Đúng  
2. Sai  
e) Mt slớp có được trong giai đoạn phân tích có thể được lược btrong giai  
đoạn thiết kế?  
1. Đúng  
2. Sai  
f) Trong thiết kế theo phương pháp cấu trúc, tương tác giữa các chương trình con  
(subprogram) được thhiện trong ?  
1. Biểu đồ cấu trúc  
2. Biu đồ dòng dữ liu vật lý (physical DFD)  
3. Biểu đồ dòng dữ liu logic (logical DFD)  
4. Tt cả các phương án trên đều sai  
Bài 1.2  
a) Trình bày ba loi biểu đồ thường được dùng trong phương pháp phân tích và  
thiết kế cấu trúc?  
b) Cho ba ví dvba loi biểu đồ UML khác nhau thường được sdng trong  
phương pháp thiết kế hướng đối tưng?  
c) Trình bày mi quan hgiữa các giai đoạn phân tích - thiết kế - thc hin - kim  
th- bảo trì. Hãy liệt kê các công việc cần đưc thc hin ở giai đoạn thiết kế  
phn mềm. Vì sao nói “Trên thực tế phân tích và thiết kế không có sự tách biệt  
nhau mà hai giai đoạn này được tiến hành song song và bổ sung cho nhau”?  
Bài 1.3  
a) Trình bày khái niệm mô đun. Thông qua hình dưới, hãy phân tích và giải thích vì  
sao phải phân chia mô đun một cách tối ưu (số lượng mô đun nhiều quá hoặc ít  
quá thì không tốt, các yếu tố ảnh hưởng: giá PM, đphc tạp, công sức thc  
hin,..)?  
Software Engineering Department - SoICT/HUST  
Trang 2 / 10  
Introduction to Software Engineering - Nhập môn Công nghệ phn mm  
b) Khi thiết kế phn mm, vic che giấu thông tin và phân chia mô đun có quan hệ  
như thế nào? Vì sao trong thiết kế phn mm cn thc hin vic che giấu thông  
tin? Hãy liệt kê các lợi ích của vic che giấu thông tin.  
c) Trình bày đặc điểm của tính ghép nối và kết dính trong phân chia mô đun. Yếu tố  
ghép nối và kết dính giữa các mô đun có ý nghĩa gì trong thiết kế? Vì sao khi phân  
chia mô đun phải tăng độ kết dính và gim sự liên kết?  
Phần II: Thiết kế cho bài toán (case study)  
1. Thiết kế cơ sở dliu  
Từ mô hình dữ liệu ERD đã xây dựng trong bài thực hành trước, hãy tạo cơ sở  
dliệu và các bảng dliệu tương ứng trong hqun trMySQL.  
Mô hình dliệu ERD cho nhóm chức năng số 1:  
Software Engineering Department - SoICT/HUST  
Trang 3 / 10  
Introduction to Software Engineering - Nhập môn Công nghphn mm  
Xây dựng các bảng dliu, xác đnh quan hgiữa các bảng thiết kế chi tiết  
cho mỗi trưng (ct) trong bng.  
Mt số lưu ý khi thiết kế các trường dliu: Field là đơn vị nhnht ca dliu  
Field tương ứng vi 1 thuộc tính (attribute) trong mô hình dữ liu logic.  
Quyết định cần làm khi thiết kế là phải chn kiu dliu cho field, kiểm soát  
tính toàn vẹn dliu Hqun trdliu squản lý các giá trị bthiếu cho  
field như thế nào?  
Loại đặc tả  
Tên trưng (field name)  
Mô tả ni dung  
Theo quy định về cách đặt tên hoặc quy ước  
viết code của nhóm  
Kiểu trưng (data type)  
Kiu dliệu phù hợp với các giá trị cần lưu trữ  
trong các trưng  
Kích cỡ (size)  
Kích thước / Khoảng giá trị tối đa và tối thiu  
Mã hoá các thông tin lưu trữ / Khuôn dng ca  
dliu  
Mã hóa (Coding)  
Các quy tắc toàn vẹn dliu (data integrity Đặc tvề các hạn chế đặt lên giá trị ca  
rules) trường: NULL / NOT NULL/ KHOÁ CHÍNH,…  
Các kiểm soát bảo trì (maintenance controls) Chra những giá trị nào được phép thay đổi  
Công thức (Formular)  
Mô tả công thức tính toán giá trị vi nhng  
trường cần tính toán.  
Toàn vẹn tham chiếu (references integrity)  
Shu (Ownership)  
Đặc tả giá trị của trường có liên quan đến giá  
trcủa trường khác, ví dụ: KHOÁ NGOI,…  
Ai có quyền đối vi dliu.  
Xây dựng sơ đồ quan hgiữa các bng dliu  
Đặc tthiết kế dliu cho tng bng theo mu sau:  
Tên bng:  
Ràng buộc  
toàn vẹn  
Tên trường  
Kiu dliu  
Kích thước  
Khuôn dạng  
Ghi chú  
Bài tập: Xây dựng cơ sở dliệu và đặc tthiết kế các bảng dliu  
cho bài toán với nhóm chức năng đã chọn.  
Software Engineering Department - SoICT/HUST  
Trang 4 / 10  
Introduction to Software Engineering - Nhập môn Công nghệ phn mm  
Ví dụ: Thiết kế cơ sở dliệu cho nhóm chức năng số 1  
Sơ đồ quan hgiữa các bng:  
Đặc tthiết kế dliu cho tng bng:  
Bng HoKHau:  
Ràng buộc  
Tên trường  
Kiu dliu  
Kích thước  
Khuôn dạng  
Ghi chú  
toàn vẹn  
ID  
Int  
Khoá chính  
Số nguyên dương  
Văn bản  
Varchar(100)  
Int  
100 ký tự  
maHoKhau  
idChuHo  
Khoá tham  
chiếu từ  
bng  
Số nguyên dương  
NhanKhau  
maKhuVuc  
diaChi  
Varchar(100)  
Varchar(100)  
Date  
100 ký tự  
100 ký tự  
Văn bản  
Văn bn  
Ngày tháng năm  
Ngày tháng năm  
Văn bản  
ngayLap  
ngayChuyenDi Date  
Text  
Văn bản dài  
lyDoChuyen  
Mã tài khoản  
thêm thông  
tin  
nguoiThucHien Int  
Số nguyên dương  
Các bảng còn lại đặc tả tương t.  
Software Engineering Department - SoICT/HUST  
Trang 5 / 10  
Introduction to Software Engineering - Nhập môn Công nghphn mm  
Import cơ sở dliu mẫu vào hệ qun trị cơ sở dliu  
Bước 1: Mở công cphpMyAdmin  
Bước 2: To mt CSDL mới có tên là quan_ly_nhan_khau, chọn CSDL này để  
import các bảng và dữ liu mu  
Bước 3: Chn chức năng Import trên thanh công cụ  
Bước 4: Nhấn vào nút Choose File và chọn tp quan_ly_nhan_khau.sql (ging  
viên cung cấp)  
Bước 5: Hoàn thành việc import cơ sở dliu  
Các nhóm có thể sdụng Cơ sở dliệu này và thiết kế thêm các bảng  
cn thiết cho nhóm chức năng của phn mm hoc thiết kế mt  
Database mi. Trong cả hai cách tiếp cận đều phải đặc tthiết kế chi  
tiết cho dliệu như đã hưng dn phn trên.  
Software Engineering Department - SoICT/HUST  
Trang 6 / 10  
Introduction to Software Engineering - Nhập môn Công nghệ phn mm  
2. Kiến trúc của phn mm và thiết kế chi tiết các lớp  
Import Project mu  
Bước 1: Chn tp QuanLyNhanKhau.zip (ging viên cung cấp) giải nén  
Bước 2: Mở công cụ NetBeans IDE  
Bước 3: Chn menu File Open Project và mở project trong thư mục đã giải  
nén ở trên  
Project chia thành các gói (package) như sau:  
o package views: chứa các lớp kế tha từ javax.swing.* định nghĩa các  
màn hình giao diện người dùng cho ứng dng  
o package controllers: chứa các lớp điu khin, xử lý nghip vụ chính  
o package models: định nghĩa các cấu trúc dữ liu sdng trong phn  
mm  
o package services: chứa các lớp tác động đến dliệu trong cơ sở dữ  
liu (cung cấp các phương thức thc hin truy vn SELECT, INSERT,  
UPDATE, DELETE trên các bảng dliu)  
o package Bean: chứa các lớp Bean đóng gói các thực thdliu  
o package utility: chứa các lớp tiện ích  
Software Engineering Department - SoICT/HUST  
Trang 7 / 10  
Introduction to Software Engineering - Nhập môn Công nghphn mm  
Bài tp: Xây dựng sơ đồ gói (pakage diagram) mô tkiến trúc logic ca  
ng dng.  
Gợi ý:  
Xây dựng sơ đồ gói có dạng như sau, đặt các lớp theo tchc của Project vào các package  
phù hợp trên sơ đồ  
Bài tp: Xây dựng (viết code và đc tthiết kế) các lớp trong package  
model tương ứng với các thực thdliệu mà nhóm đã thiết kế trong  
Database cho nhóm chức năng đã chọn trong bài toán.  
Gợi ý:  
Các class dạng này sẽ bao gồm khai báo các thuộc tính và các phương thức get / set trên  
các thuộc tính này (đảm bảo đóng gói và che giấu thông tin)  
Class HoKhauModel như sau:  
Software Engineering Department - SoICT/HUST  
Trang 8 / 10  
Introduction to Software Engineering - Nhập môn Công nghệ phn mm  
Xây dựng mô tả chi tiết cho class theo mu: CRC Card Layout”  
Ví dụ:  
Class HoKhauModel  
Chứa các thông tin về shkhu:  
private int ID;  
Class HoKhauController  
private String maHoKhau;  
private int idChuHo;  
Software Engineering Department - SoICT/HUST  
Trang 9 / 10  
Introduction to Software Engineering - Nhập môn Công nghphn mm  
private String maKhuVuc;  
private String diaChi;  
private Date ngayLap;  
private Date ngayChuyDi;  
private String lyDoChuyen;  
private int nguoiThucHien;  
Nội dung bài tập tự làm  
Hoàn thành Thiết kế cho bài toán (casestudy) với các nội dung: thiết  
kế và đặc tả cơ sở dliệu, sơ đồ package mô tả kiến trúc logic của  
ng dng, thiết kế các lớp model tương ứng với các bảng trong  
CSDL đã xây dng.  
Phn nội dung này các nhóm làm vào trong file .docx (báo cáo)  
Các nhóm chun bị thêm mt slide powerpoint vni dung Thiết kế  
ở trên, buổi hc tiếp theo sẽ trình bày.  
HT  
Software Engineering Department - SoICT/HUST  
Trang 10 / 10  
pdf 10 trang Thùy Anh 27/04/2022 5840
Bạn đang xem tài liệu "Bài tập Nhập môn công nghệ phần mềm - Tuần 8: Thiết kế phần mềm (Thiết kế kiến trúc và thiết kế chi tiết)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_tap_nhap_mon_cong_nghe_phan_mem_tuan_8_thiet_ke_phan_mem.pdf
  • sqlquan_ly_nhan_khau.sql
  • zipQuanLyNhanKhau.zip
  • pdfSlide Bai tap tuan 08.pdf