NHẬP MÔN CÔNG NGHỆ PHẦN MỀM Giảng viên Đỗ Thị Thanh Tuyền Email dothithanhtuyen@gmail com 2 Nhập môn Công nghệ Phần mềm January 15 Nội dung môn học n Tổng quan về Công nghệ phần mềm n Xác định và mô[.]
Trang 1NHẬP MÔN CÔNG NGHỆ PHẦN MỀM
Giảng viên: Đỗ Thị Thanh Tuyền
Email: dothithanhtuyen@gmail.com
Trang 2
Nội dung môn học
Trang 3Một số khái niệm cơ bản
n Phần mềm: là một tập hợp những câu lệnh được viết bằng
nhằm tự động thực hiện một số chức năng hoặc giải quyết một bài toán nào đó Phần mềm được thực thi trên máy, thường là máy tính
n Công nghệ (engineering): là cách sử dụng các công cụ, các
kỹ thuật trong cách giải quyết một vấn đề nào đó
n Công nghệ Phần mềm (Software Engineering): là việc áp
dụng các công cụ, các kỹ thuật một cách có hệ thống trong
việc phát triển các ứng dụng dựa trên máy tính
Trang 4Một số khái niệm cơ bản (tt)
Ø Qui trình phát triển phần mềm: hệ thống các giai đoạn mà
quá trình phát triển phần mềm phải trải qua
Ø Phương pháp phát triển phần mềm: phương pháp thực hiện
Trang 5Một số khái niệm cơ bản (tt)
Ø Công cụ và môi trường phát triển phần mềm: các phương
tiện hỗ trợ tự động hay bán tự động cho một giai đoạn nào đó trong quá trình xây dựng phần mềm
Trang 6Phân loại phần mềm
n Phân loại theo phương thức hoạt động:
Ø Phần mềm hệ thống: hệ điều hành, thư viện liên kết
động, bộ điều vận (driver)
Ø Phần mềm ứng dụng: phần mềm văn phòng, phần mềm
doanh nghiệp, phần mềm giáo dục, phần mềm giải trí
Ø Phần mềm chuyển dịch mã: bao gồm trình biên dịch và
trình thông dịch
n Phân loại theo khả năng ứng dụng:
hàng cụ thể: phần mềm hỗ trợ bán hàng, phần mềm điều khiển thiết bị
- Ưu điểm: có tính uyển chuyển, tùy biến cao để đáp ứng
Trang 7Phân loại phần mềm (tt)
n Phân loại theo khả năng ứng dụng (tt):
- Khuyết điểm: ứng dụng trong chuyên ngành hẹp.
thể, nó có thể được bán cho bất kỳ khách hàng nào
- Ưu điểm: có khả năng ứng dụng rộng rãi cho nhiều
nhóm người sử dụng
- Khuyết điểm: thiếu tính uyển chuyển, tùy biến
Trang 10Qui trình phát triển phần mềm
u Mô hình thác nước
u Mô hình mẫu
u Mô hình xoắn ốc
=> Mô hình thác nước cải tiến
Trang 11Mô hình thác nước cổ điển
Xác định yêu cầu
Phân tích
Thiết kế
Cài đặt
Trang 12Mô hình mẫu
Trang 13Mô hình xoắn ốc
Phân tích rủi ro
Trang 14Mô hình thác nước cải tiến
Trang 15Phương pháp phát triển phần mềm
n Phương pháp hướng chức năng:
thống cần thực hiện
nguyên lý “chia để trị”
Ø Hạn chế: có khả năng các chức năng trong hệ thống
không tương thích với nhau khi thực hiện thay đổi các thông tin trong hệ thống
Trang 16Phương pháp phát triển phần mềm (tt)
n Phương pháp hướng dữ liệu:
và mối liên hệ giữa các thực thể
Ø Hạn chế: phần mềm chỉ có chức năng chính là lưu trữ
và thao tác trên các đối tượng dữ liệu, không quan tâm đến các chức năng khác của hệ thống nên hệ thống thu được sau khi thiết kế có thể thiếu một số chức năng cần thiết
Trang 17Phương pháp phát triển phần mềm (tt)
n Phương pháp hướng đối tượng:
thống
năng tương tác với nhau
trên dữ liệu của đối tượng
Trang 18Phần mềm hướng đối tượng
n Phần mềm phải tuân thủ ba tính chất hướng đối tượng:
n Mục đích của việc xây dựng phần mềm hướng đối tượng:
Trang 19Phần mềm hướng đối tượng (tt)
n Làm sao để xây dựng phần mềm hướng đối tượng?
Dựa trên nguyên lý hướng đối tượng
Trang 20Công cụ và môi trường phát triển PM
n CASE (Computer Aided Software Engineering) tools
n CASE tools hỗ trợ phát sinh kết quả chuyển giao cho giai đoạn kế tiếp
n CASE tools hỗ trợ việc lưu trữ, cập nhật trên kết quả chuyển giao.
Trang 21Công cụ và môi trường phát triển PM (tt)
Trang 22Công cụ và môi trường phát triển PM (tt)
Trang 23Quá trình phát triển
n Thập niên 1940: Các chương trình cho máy tính được viết bằng
tay
n Thập niên 1950: Các công cụ đầu tiên xuất hiện như phần mềm
biên dịch Macro Assembler và phần mềm thông dịch đã được tạo
ra và sử dụng rộng rãi để nâng cao năng suất và chất lượng Các trình dịch được tối ưư hóa lần đầu tiên ra đời
n Thập niên 1960: Các công cụ của thế hệ thứ hai như các trình
dịch tối ưu hoá và công việc kiểm tra mẫu đã được dùng để nâng cao sản phẩm và chất lượng Khái niệm công nghệ phần mềm đã được bàn thảo rộng rãi
n Thập niên 1970: Các công cụ phần mềm, chẳng hạn trong UNIX
các vùng chứa mã, lệnh make được kết hợp với nhau Số lượng
Trang 24Quá trình phát triển (tt)
n Thập niên 1980: Các PC và máy trạm ra đời Cùng lúc có sự xuất
hiện của mô hình dự toán khả năng Lượng phần mềm tiêu thụ tăng mạnh
n Thập niên 1990: Phương pháp lập trình hướng đối tượng ra đời
Các quá trình nhanh như là lập trình cực hạn được chấp nhận rộng rãi Trong thập niên này, WWW và các thiết bị máy tính cầm tay phổ biến rộng rãi
n Hiện nay: Các phần mềm biên dịch và ngôn ngữ lập trình cấp cao
như NET, PHP và Java làm cho việc viết phần mềm trở nên dễ dàng hơn nhiều
Trang 25Quá trình phát triển (tt)
n Hướng tương lai của công nghệ phần mềm:
Ø Lập trình định dạng (aspect-oriented programming) sẽ giúp người lập
trình ứng xử với các yêu cầu không liên quan đến các chức năng thực
tế của phần mềm bằng cách cung ứng các công cụ để thêm hay bớt các khối mã ít bị thay đổi trong nhiều vùng của mã nguồn
Lập trình định dạng mô tả các đối tượng và hàm nên ứng xử như thế nào trong một tình huống cụ thể
Ví dụ: Lập trình định dạng có thêm vào các cơ cấu kiểm soát hiệu
chỉnh lỗi, biên bản và khoá cho tất cả các đối tượng của một số kiểu Các nhà nghiên cứu đang tìm cách ứng dụng lập trình định dạng để thiết kế mã cho mục tiêu thông thường
Trang 26Q & A
Trang 27NHẬP MÔN CÔNG NGHỆ PHẦN MỀM
Giảng viên: Đỗ Thị Thanh Tuyền
Email: dothithanhtuyen@gmail.com
Trang 28
Nội dung môn học
Trang 29Yêu cầu phần mềm
n Khái niệm: Yêu cầu phần mềm là các công việc, các nghiệp
vụ được hỗ trợ thực hiện trên máy tính với phần mềm
n Ví dụ: Các yêu cầu của Phần mềm Quản lý cửa hàng:
Trang 30Phân loại yêu cầu Phần mềm
n Yêu cầu nghiệp vụ:
Trang 31Phân loại yêu cầu Phần mềm (tt)
n Yêu cầu chất lượng:
Trang 32Xác định yêu cầu và mô hình hóa yêu cầu
n Mục tiêu: Xác định các yêu cầu phần mềm và cách thức thực
hiện chúng trong thế giới thực
n Kết quả:
- Danh sách các yêu cầu phần mềm;
- Sơ đồ luồng dữ liệu cho từng yêu cầu phần mềm
Trang 33Các bước thực hiện
Khảo sát hiện trạng
Lập danh sách các yêu cầu phần mềm
Lập sơ đồ luồng dữ liệu
Trang 34Khảo sát hiện trạng
Mục tiêu của Khảo sát hiện trạng là tìm hiểu về thế giới thực liên quan đến phần mềm.
Phần mềm Thế giới thực
Trang 35Các hiện trạng cần khảo sát
ð Hiện trạng nghiệp vụ
ð Hiện trạng tổ chức
ð Hiện trạng tin học
Trang 37Hiện trạng nghiệp vụ
n Lập danh sách các nghiệp vụ của từng bộ phận
n Mô tả nghiệp vụ:
- Tên công việc;
- Biểu mẫu liên quan;
- Qui định liên quan;
- Người thực hiện;
- Tần suất thực hiện;
- Thời điểm thực hiện;
Trang 38Hiện trạng tổ chức
n Sơ đồ tổ chức của các phòng ban, bộ phận
n Chú trọng các bộ phận có giao tiếp đối tác bên ngoài
Trang 39Hiện trạng tin học
n Hệ thống phần cứng;
n Hệ thống phần mềm;
n Con người.
Trang 40Lập danh sách các yêu cầu phần mềm
Yêu cầu Nghiệp vụ
Yêu cầu Chất lượng
Yêu cầu
Hệ thống
Trang 41Lập Sơ đồ luồng dữ liệu
n Khái niệm: Sơ đồ luồng dữ liệu (DFD-Data Flow Diagram) là
sơ đồ biểu thị các thông tin liên quan đến việc thực hiện các nghiệp vụ trong thế giới thực bên trong máy tính
n Mục tiêu: Mô hình hóa thế giới thực với các yêu cầu đã xác
định
n Kết quả:
Trang 42Danh sách các ký hiệu
Tên Tên Tên
Tên
Tên Tên
Tên Tên
Người dùng/Thiết bị Khối xử lý
Luồng dữ liệu
Bộ nhớ phụ
Trang 43Sơ đồ luồng dữ liệu tổng quát
Trang 44n D1: Thông tin xuất phát từ người dùng
n D2: Thông tin xuất phát từ thiết bị nhập khác chuẩn
n D3: Thông tin xuất phát từ bộ nhớ phụ
n D4: Thông tin ghi xuống bộ nhớ phụ
n D5: Thông tin đưa ra thiết bị xuất khác chuẩn
n D6: Thông tin trả về cho người dùng
***D (Data): là thông tin, không phải hành động
Sơ đồ luồng dữ liệu tổng quát (tt)
Trang 45Sơ đồ luồng dữ liệu cho yêu cầu Lập thẻ Độc giả trong đề tài
Quản lý Thư viện:
Trang 46Biểu mẫu và qui định liên quan:
Trang 47n D1: Thông tin về Thẻ độc giả (Họ tên, Loại độc giả,
Ngày sinh, Địa chỉ, Email, Ngày lập thẻ)
n D2: Không có
n D3: Danh sách các Loại độc giả, thời hạn thẻ, tuổi tối
đa, tuổi tối thiểu
n D4: D1 + Ngày hết hạn
n D5: D4
Trang 49n B7: Nếu không thỏa qui định -> B11
Trang 50Q & A
Trang 51NHẬP MÔN CÔNG NGHỆ PHẦN MỀM
Giảng viên: Đỗ Thị Thanh Tuyền
Email: dothithanhtuyen@gmail.com
Trang 52
Nội dung môn học
Trang 54Thiết kế Hệ thống
n Kiến trúc hệ thống
n Các mô hình kiến trúc
Trang 55Kiến trúc hệ thống
n Khái niệm:
Hệ thống được cấu tạo bởi các thành phần nào và mối liên hệ
giữa các thành phần đó
n Tầm quan trọng của kiến trúc:
Ø Ảnh hưởng hiệu quả hoạt động và an toàn hệ thống:
Trang 59Các mô hình kiến trúc (tt)
n Mô hình Client-Server:
Ø Đặc điểm:
- Phân làm hai phân hệ Client và Server
- Server cung cấp dịch vụ, Client sử dụng dịch vụ
- Client gửi các yêu cầu đến Server
Ø Ưu điểm:
- Chia sẻ dữ liệu và đồng bộ
- Dễ bảo trì, nâng cấp
Ø Khuyết điểm:
Trang 61Ví dụ Mô hình Client-Server
Trang 62- Business layer:
+ Thư viện xử lý + Application server
- Presentation layer:
Trang 63Các mô hình kiến trúc (tt)
n Mô hình 3-Tiers (tt)
Ø Đặc điểm (tt)
- Tương tác theo quy tắc “Thang máy”: không tương tác vượt tầng
Ø Ưu khuyết điểm: tương tự mô hình Client-Server
*** Xử lý được chia nhỏ và dùng chung.
n Mô hình đa tầng:
Trang 64Ví dụ Mô hình 3-Tiers
Trang 65Các mô hình kiến trúc (tt)
n Mô hình Peer-to-Peer:
Ø Đặc điểm:
- Là mô hình phân tán, triển khai trên nhiều máy (nút)
- Các nút tương tác được với nhau, mỗi nút đóng vai Client – Server
- Chia sẻ dữ liệu và xử lý
Ø Ưu điểm:
- Dễ triển khai, không cần server trung tâm
- Không gian lưu trữ và khả năng xử lý dàn trải
Ø Khuyết điểm:
Trang 66Thiết kế Đối tượng
n Đối tượng
n Phân loại đối tượng
n Các bước thiết kế đối tượng
Trang 68Phân loại đối tượng
n Đối tượng nghiệp vụ: business/domain object
Dữ liệu + xử lý nghiệp vụ
n Đối tượng hệ thống: system object
Dữ liệu + xử lý hỗ trợ
n Đối tượng giao diện người dùng: UI object
Dữ liệu + xử lý tương tác người dùng
Trang 69Các bước thiết kế đối tượng
n Xây dựng kịch bản tương tác ban đầu
n Xác định đối tượng dựa trên các tương tác của kịch bản ban đầu
n Chi tiết hoá kịch bản ban đầu có sự tham gia của các đối tượng đã xác định:
Ø Phân tích các tương tác thành các xử lý
Ø Đối tượng nhận xử lý sẽ chứa các phương thức tương ứng với các xử lý này
Trang 70Ví dụ
Trang 71Ví dụ (tt)
Trang 72Ví dụ (tt)
Trang 73Q & A
Trang 74NHẬP MÔN CÔNG NGHỆ PHẦN MỀM
Giảng viên: Đỗ Thị Thanh Tuyền
Email: dothithanhtuyen@gmail.com
Trang 75
Nội dung môn học
n Thiết kế phần mềm: - Thiết kế DỮ LIỆU
Trang 76Thiết kế dữ liệu
n Mục tiêu của việc thiết kế dữ liệu là nhằm mô tả cách thức
tổ chức lưu trữ dữ liệu của phần mềm bên trong máy tính
n Kết quả của quá trình thiết kế dữ liệu là xây dựng được sơ
đồ Logic
n Khi thiết kế dữ liệu, ta quan tâm đến ba vấn đề sau:
Ø Thiết kế dữ liệu với tính đúng đắn
Ø Thiết kế dữ liệu với tính tiến hóa
Ø Thiết kế dữ liệu với yêu cầu hiệu quả về mặt truy suất và
Trang 78A
Sơ đồ Logic (tt)
n Các ký hiệu (tt):
ð Một phần tử của bảng A xác định duy nhất một phần tử của bảng B
ð Ngược lại, một phần tử của bảng B có thể tương
ð Bảng A chứa thuộc tính khóa của bảng B (là khóa ngoại của bảng A và là khóa chính của bảng B)
B
Trang 79Sơ đồ Logic (tt)
ð Nếu quan hệ giữa A và B là quan hệ 1-1 thì có thể gộp hai table A và B lại thành 1 table duy nhất chứa tất cả thuộc tính của A và B
Quan hệ 1-n không làm được việc này
ð Nếu quan hệ giữa A và B là quan hệ n-n:
Tách quan hệ này thành 2 quan hệ 1-n bằng cách thêm vào 1 table trung gian chứa khóa chính của
Trang 81DANGKY
MaSV MaMonHoc
HocKy NamHoc DiemTB
Trang 82Xác định Khoá chính
n 3 Tính chất của Khoá chính:
ü Tối thiểu;
ü Không trùng lắp (bao gồm NOT NULL);
ü Không thay đổi theo thời gian
n Thuộc tính trừu tượng:
Là thuộc tính không xuất hiện trong thế giới thực, chỉ có
trong phần mềm
Sử dụng thuộc tính trừu tượng để làm khoá chính cho table
Trang 83Xác định Khoá chính (tt)
n Khi nào cần sử dụng thuộc tính trừu tượng?
không chọn được thuộc tính (hoặc tổ hợp thuộc tính) nào thoả các tính chất của khóa chính
trở lên
Trong trường hợp này vẫn phải kiểm tra dữ liệu trùng trên bộ thuộc tính có thể tham gia làm khoá
Trang 84Xác định Khoá chính (tt)
DAILY
MaDaiLy
MaLoaiDaiLy TenDaiLy DiaChi DienThoai
Trang 85Xác định Khoá chính (tt)
n Xác định kiểu dữ liệu cho thuộc tính khóa:
xét khả năng mở rộng
n Khi tạo giá trị cho khoá chính, không nên dùng lại một
mã đã sử dụng cho dù đối tượng có mã đó đã bị xóa
Trang 86Các kiểu mã hóa
Ø Mã hóa liên tiếp: 1,2,3…
Ø Mã hóa theo lát: dùng từng lát cho từng nhóm đối
tượng, trong mỗi lát thường dùng kiểu mã hóa liên tiếp
Ø Mã hóa phân đoạn: mã được phân thành nhiều đoạn,
mỗi đoạn mang một ý nghĩa riêng
Ø Mã hóa phân cấp: là mã hóa phân đoạn, mỗi đoạn trỏ
đến một tập hợp các đối tượng và các đối tượng này được phân cấp theo thứ tự từ trái qua phải
Ø Mã hóa diễn nghĩa: gán một tên ngắn gọn nhưng hiểu
được cho từng đối tượng
Trang 87Bảng THAMSO
n Chức năng: dùng để lưu các giá trị trong các qui định mà các
n Các giá trị này dùng trong các biểu thức tính toán hoặc
kiểm tra
n Trên table THAMSO chỉ có các thao tác select và update ,
không có insert và delete sau khi đã hoàn tất việc thiết kế
Trang 88Bảng THAMSO (tt)
n Cấu trúc của bảng THAMSO:
C1: THAMSO(TenThamSo,GiaTri)
- Các tham số là các record của table THAMSO
- Qui đổi giá trị của tham số có kiểu Boolean về kiểu số:
True ó 1; False ó 0
- Đặt tên các tham số theo qui định về cách đặt tên của thuộc tính
C2: THAMSO(ThamSo1,ThamSo2,…,ThamSox)
- Các tham số là các thuộc tính của table THAMSO
- Mỗi thuộc tính có kiểu dữ liệu riêng, vì vậy không phải qui đổi giá trị của tham số có kiểu Boolean về kiểu số
Trang 89Lưu ý
n Tên Table: viết bằng chữ IN HOA, không dấu, không
có khoảng cách giữa các từ
Ví dụ: NHANVIEN, KHACHHANG…
n Tên thuộc tính: viết hoa các ký tự đầu của mỗi từ,
không dấu, không có khoảng cách giữa các từ
Ví dụ: HoTen, NgaySinh, DiaChi…
n Đặt tên table, tên thuộc tính của table súc tích, cô
đọng và nhất quán trong toàn bộ CSDL
Trang 90Thuật toán thiết kế dữ liệu
n Thiết kế dữ liệu dựa vào sơ đồ luồng dữ liệu của yêu
cầu phần mềm đang xét
n Các bước thực hiện:
v Bước 1: Xét yêu cầu phần mềm thứ I
Ø Thiết kế dữ liệu với tính đúng đắn
Ø Thiết kế dữ liệu với tính tiến hóa
v Bước 2: Xét yêu cầu phần mềm thứ II
…
Trang 91Thuật toán thiết kế dữ liệu (tt)
Ø Thiết kế dữ liệu với tính đúng đắn:
- Biểu mẫu liên quan: BMx
- Sơ đồ luồng dữ liệu: SĐx
- Các thuộc tính mới:
bảng đã có, trong trường hợp không bố trí được thì phải tạo bảng mới để chứa các thuộc tính mới này
- Các thuộc tính trừu tượng:
Trang 92Thuật toán thiết kế dữ liệu (tt)
Ø Thiết kế dữ liệu với tính tiến hóa:
- Qui định liên quan: QĐx
- Các thuộc tính mới:
- Các tham số mới:
bảng đã có, trong trường hợp không bố trí được thì phải tạo bảng mới để chứa các thuộc tính mới này
- Các thuộc tính trừu tượng:
Trang 93Thiết kế dữ liệu với yêu cầu hiệu quả về
mặt truy suất và lưu trữ
- Hiệu quả về mặt truy suất:
+ Lưu ý: giá trị này phải được tự động cập nhật khi có những thay đổi liên quan
- Hiệu quả về mặt lưu trữ:
+ Tách bảng có các giá trị cố định được lặp lại nhiều lần thành 2
tin chi tiết
+ Thêm đối tượng mới và sử dụng mã của đối tượng thay cho