0% found this document useful (0 votes)
21 views52 pages

Se07 Implementation

Introduction to Software engineer chapter 07

Uploaded by

hoductrung.dev
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views52 pages

Se07 Implementation

Introduction to Software engineer chapter 07

Uploaded by

hoductrung.dev
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 52

Chủ đề 5: Cài đặt Phần mềm

COMP1026 – Introduction to Software Engneering CH5 - 1 HIENLTH


Textbook

• Pressman, Software Engineering, chapter 16


• Sommerville, Software Engineering, chapter 19

COMP1026 – Introduction to Software Engneering CH5 - 2 HIENLTH


Cảm ơn

Bài giảng này tham khảo từ các nguồn sau:


• Slide bài giảng CNPM, Trần Ngọc Bảo, ĐH
Sư phạm TpHCM
• Slide bài giảng CNPM, Trần Anh Dũng, ĐH
CNTT, ĐHQG TpHCM.

COMP1026 – Introduction to Software Engneering CH5 - 3 HIENLTH


Giai đoạn cài đặt
Khảo sát Nội dung: • Tạo CSDL
• Tạo giao diện
Phân tích • Cài đặt các xử lý

Thiết kế

Kết quả: Cài đặt


• Source code:
Giao diện Kiểm tra
DLL
Triển khai
ActiveX Control
Sample Database
Bảo trì
• Chương trình: EXE, Web App
COMP1026 – Introduction to Software Engneering CH5 - 4 HIENLTH
Cài đặt

• Mục tiêu:
– Biết cách sử dụng môi trường phát triển để
xây dựng chương trình phần mềm
• Nội dung
– Tổng quan
– Phương pháp lập trình
– Một số qui tắc lập trình
– Mô hình 1 lớp, 2 lớp, 3 lớp

COMP1026 – Introduction to Software Engneering CH5 - 5 HIENLTH


Tổng quan

• Cài đặt: Là quá trình chuyển đổi từ thiết kế chi


tiết sang mã lệnh.
• Thế nào là ngôn ngữ lập trình tốt?
– Tập trung vào nhu cầu xác định dự án phát triển của
từng phần mềm riêng.
– Có thể thiết lập được một tập hợp tổng quát những
yêu cầu như sau:
• Dễ dịch thiết kế sang chương trình
• Có trình biên dịch hiệu quả,
• Khả chuyển chương trình gốc
• Có sẵn công cụ phát triển
– Dễ bảo trì
COMP1026 – Introduction to Software Engneering CH5 - 6 HIENLTH
Ngôn ngữ lập trình tốt

• Dễ dịch thiết kế sang chương trình


– Về lý thuyết, việc sinh chương trình gốc từ
một đặc tả chi tiết nên là trực tiếp.
– Tính dễ dịch thiết kế sang chương trình sẽ
cho phép một ngôn ngữ cài đặt trực tiếp cho
các kết cấu có cấu trúc, các cấu trúc dữ liệu
phức tạp, các vào/ra đặc biệt, khả năng thao
tác bit và các đối tượng.
– Làm cho việc dịch từ thiết kế sang chương
trình gốc dễ hơn nhiều.
COMP1026 – Introduction to Software Engneering CH5 - 7 HIENLTH
Ngôn ngữ lập trình tốt

• Có trình biên dịch hiệu quả


– Mặc dầu những tiến bộ nhanh chóng trong
tốc độ xử lý và mật độ nhớ đã bắt đầu làm
giảm nhẹ nhu cầu chương trình siêu hiệu quả,
nhiều ứng dụng vẫn còn đòi hỏi các chương
trình chạy nhanh, gọn (yêu cầu bộ nhớ thấp).
– Các ngôn ngữ với trình biên dịch tối ưu có thể
là hấp dẫn nếu hiệu năng phần mềm là yêu
cầu chủ chốt.

COMP1026 – Introduction to Software Engneering CH5 - 8 HIENLTH


Lựa chọn NNLT

• Phụ thuộc vào cấu hình máy


• Phụ thuộc vào số lượng ngôn ngữ lập trình sẵn

• Phụ thuộc vào thói quen sử dụng ngôn ngữ lập
trình
• Phụ thuộc vào khách hàng
• …
 Cần đánh giá rủi ro khi chọn ngôn ngữ lập trình

COMP1026 – Introduction to Software Engneering CH5 - 9 HIENLTH


Kỹ năng lập trình

• Hiểu rõ ngôn ngữ (language-specific)


• Sử dụng tên biến thích hợp và có nghĩa
– Tên biến phải rõ ràng, tránh nhầm lẫn
• Nên có các chú thích bên trong mô-đun
• Mã lệnh chuẩn
– Thống nhất về cách đặt tên Mô-đun, tên hàm, tên
biến,…
• Khả năng tái sử dụng

COMP1026 – Introduction to Software Engneering CH5 - 10 HIENLTH


Kỹ năng lập trình

• Thông tin tối thiểu của một mô-đun:


– Tên mô-đun
– Mô tả vắn tắt các công việc mô-đun phải thực hiện
– Tên lập trình viên
– Ngày viết
– Ngày chỉnh sửa
– Danh sách các tham số
– Danh sách các biến
– …

COMP1026 – Introduction to Software Engneering CH5 - 11 HIENLTH


Lựa chọn phương pháp lập trình?

• Lập trình tuyến tính (tuần tự)


– Khó sửa, dễ sinh lỗi
• Lập trình có cấu trúc (thủ tục)
– Dễ hiểu hơn, an toàn hơn
• Lập trình hướng chức năng
– Trao đổi dữ liệu bằng tham số
– Loại bỏ hoàn toàn dữ liệu dùng chung
• Lập trình hướng đối tượng
– Tái sử dụng, thuận tiện cho các ứng dụng lớn
• Lập trình Logic
– Mô tả tri thức (Prolog)
COMP1026 – Introduction to Software Engneering CH5 - 12 HIENLTH
Lập trình tuyến tính

• Khi các phần mềm còn rất đơn giản:


– Chương trình được viết tuần tự với các câu
lệnh thực hiện từ đầu đến cuối.
• Tuy nhiên:
– Khoa học máy tính ngày càng phát triển.
– Các phần mềm đòi hỏi ngày càng phức tạp và
lớn hơn rất nhiều.
• Phương pháp lập trình tuyến tính kém
hiệu quả?
COMP1026 – Introduction to Software Engneering CH5 - 13 HIENLTH
Lập trình cấu trúc

• Phương pháp lập trình thủ tục hay lập


trình cấu trúc
– Hệ thống chia các chức năng (hàm) thành các
chức năng nhở hơn.
– Chương trình được tổ chức thành các chương
trình con
– Chương trình = Cấu trúc dữ liệu + giải thuật
• Tổ chức dữ liệu như thế nào?
• Khi thay đổi cấu trúc dữ liệu?
COMP1026 – Introduction to Software Engneering CH5 - 14 HIENLTH
Lập trình Hướng đối tượng

• Lập trình hướng đối tượng – Lập trình


định hướng đối tượng - OOP
– Là phương pháp lập trình lấy đối tượng làm
nền tảng để xây dựng thuật giải, xây dựng
chương trình.
– Dữ liệu + Hành vi của dữ liệu = Đối tượng
• Cách tiếp cận gần gũi và thực tế

COMP1026 – Introduction to Software Engneering CH5 - 15 HIENLTH


CSDL trong ứng dụng quản lý

CT Kế toán CT Nhân sự CT Tiền lương

Kết nối Kết nối Kết nối


CSDL CSDL CSDL

CSDL CSDL CSDL

COMP1026 – Introduction to Software Engneering CH5 - 16 HIENLTH


CSDL trong ứng dụng quản lý

CT Nhân sự
 Thành phần giao diện

Kết nối
CSDL
 Giao tiếp dữ liệu

CSDL  Thành phần dữ liệu

COMP1026 – Introduction to Software Engneering CH5 - 17 HIENLTH


CSDL trong ứng dụng quản lý
 Thành phần giao diện:
CT Nhân sự Visual Basic, Visual C++,
C#, VB.NET, Delphi…

Kết nối  Giao tiếp dữ liệu: ODBC,


CSDL DAO, ADODB, ADO.NET,..

 Thành phần dữ liệu: MS


CSDL
Access, SQL Server,
Oracle,…
COMP1026 – Introduction to Software Engneering CH5 - 18 HIENLTH
Một số nguyên tắc trong lập trình

1. Cố gắng tái sử dụng


2. ENFORCE INTENTIONS

• “If your code is intended to be used in


particular ways only, write it so that the
codecannot be used in any other way”

COMP1026 – Introduction to Software Engneering CH5 - 19 HIENLTH


ENFORCE INTENTIONS

• Nếu một phần tử (lớp, hàm, biến, …) không


được sử dụng bởi các chức năng khác
– Định nghĩa chúng là private hoặc protected, …
• Sử dụng các toán tử như final, abstract, …

COMP1026 – Introduction to Software Engneering CH5 - 20 HIENLTH


ENFORCE INTENTIONS

• Có cái nhìn tổng thể, chương trình là


cục bộ
– Xây dựng các phần tử của chương trình:
• cục bộ nhất có thể
• vô hình nhất có thể
• Các thuộc tính private
– Truy cập chúng bằng nhiều hàm truy cập (nếu yêu cầu)
• Các thuộc tính protected

COMP1026 – Introduction to Software Engneering CH5 - 21 HIENLTH


Phong cách lập trình

• Bao gồm các yếu tố:


– Cách đặt tên hàm, biến
– Cách xây dựng câu lệnh, cấu trúc chương
trình
– Cách viết chú thích
Hướng tới phong cách làm cho mã nguồn:
– Dễ hiểu, dễ sửa đổi
– An toàn (ít lỗi)
Người khác có thể hiểu được, bảo trì được
COMP1026 – Introduction to Software Engneering CH5 - 22 HIENLTH
Tại sao cần dễ hiểu?

• Phần mềm luôn cần sửa đổi và nâng cấp


 kéo dài tuổi thọ, nâng cao hiệu quả kinh tế
• Nếu không dễ hiểu:
– Bảo trì tốn thời gian, chi phí cao
– Phải bảo trì suốt vòng đời phần mềm
– Bản thân tác giả cũng không hiểu

COMP1026 – Introduction to Software Engneering CH5 - 23 HIENLTH


MÔ HÌNH ĐA LỚP (Multi-Layers)

COMP1026 – Introduction to Software Engneering CH5 - 24 HIENLTH


Nội dung

• Mô hình 1 tầng, 2 tầng, 3 tầng


• Phân biệt 3-tier, 3-layer
• Vai trò và nhiệm vụ của mỗi layer
• Quản lý ngoại lệ trong mô hình 3-layer

COMP1026 – Introduction to Software Engneering CH5 - 25 HIENLTH


Mô hình kiến trúc 1 tầng (1 layer)

Người dùng

Màn hình nhiệm vụ f

I/O
Xử lý biến cố
Xử lý chính
Xử lý trên dữ liệu

Dữ liệu của X

COMP1026 – Introduction to Software Engneering CH5 - 26 HIENLTH


Mô hình kiến trúc 1 tầng (1 layer)

Người
Người dùng 1 Người dùng 2 Người dùng 3 sử
dụng

Phần
Màn hình 1 Màn hình 2 Màn hình 3 Màn hình 4 mềm

Bộ nhớ
phụ
Dữ liệu 1 Dữ liệu 2 Dữ liệu 3

COMP1026 – Introduction to Software Engneering CH5 - 27 HIENLTH


Mô hình kiến trúc 1 tầng (1 layer)

• Hệ thống trên bao gồm:


– 3 người sử dụng
– 4 đơn vị xử lý
– 3 đơn vị lưu trữ
• Đặc điểm: Không có sự phân loại các xử lý
• Ưu điểm: Thiết kế và lập trình nhanh
Để khắc phục những
• Khuyết điểm: khuyết điểm
– Mỗi đơn vị xử lý phức tạp
– Khó bảo trì
– Không có tính tái sử dụng
???
COMP1026 – Introduction to Software Engneering CH5 - 28 HIENLTH
Mô hình kiến trúc 2 tầng (2 layer)
Người dùng I/O
Xử lýI/O
biến cố
Màn hình nhiệm vụ f Xử
Xửlýlýbiến cố
chính
Xử lý trên dữ liệu

Dữ liệu của X
COMP1026 – Introduction to Software Engneering CH5 - 29 HIENLTH
Mô hình kiến trúc 2 tầng (2 layer)

Hệ thống Người dùng

Hệ thống đơn vị xử lý thể hiện

Hệ thống đơn vị xử lý nghiệp vụ và lưu trữ

Hệ thống đơn vị lưu trữ

COMP1026 – Introduction to Software Engneering CH5 - 30 HIENLTH


Mô hình kiến trúc 2 tầng (2 layer)

• Đặc điểm: Các đơn vị xử lý được phân


thành 2 loại
– Loại 1: Các đơn vị xử lý chuyên biệt về giao
tiếp người dùng
– Loại 2: Các đơn vị xử lý nghiệp vụ (kiểm tra,
tính toán), lưu trữ (đọc, ghi)
• Ưu điểm, khuyết điểm ?

COMP1026 – Introduction to Software Engneering CH5 - 31 HIENLTH


Mô hình kiến trúc 3 tầng (3 layer)

Người dùng
I/O
Màn hình nhiệm vụ f Xử lý biến cố

Xử lý chính
X Xửlýlýtrên
Xử trêndữ
dữ liệu
liệu

DL_X

Dữ liệu của X
COMP1026 – Introduction to Software Engneering CH5 - 32 HIENLTH
Mô hình kiến trúc 3 tầng (3 layer)

Hệ thống Người dùng

Hệ thống đơn vị xử lý thể hiện

Hệ thống đơn vị xử lý nghiệp vụ

Hệ thống đơn vị xử lý lưu trữ

Hệ thống đơn vị lưu trữ

COMP1026 – Introduction to Software Engneering CH5 - 33 HIENLTH


3-tier vs 3-layer

COMP1026 – Introduction to Software Engneering CH5 - 34 HIENLTH


Vai trò của các layer

• GUI (Presentation) Layer:


– Thu thập và hiển thị thông tin cho người dùng
cuối.
– Không sử dụng trực tiếp các dịch vụ của lớp
Data Acces.
– Sử dụng các dịch vụ do lớp Business Logic
cung cấp.
– Ở lớp này, chúng ta có thể bỏ qua các ràng
buộc, các logic nghiệp vụ của ứng dụng.

COMP1026 – Introduction to Software Engneering CH5 - 35 HIENLTH


Vai trò của các layer

• Business Logic Layer:


– Lớp này thực hiện các nghiệp vụ chính của hệ
thống (Ví dụ: kiểm tra các yêu cầu nghiệp vụ
trước khi cập nhật dữ liệu)
– Sử dụng các dịch vụ do lớp Data Access cung
cấp.
– Cung cấp các dịch vụ cho lớp Presentation

COMP1026 – Introduction to Software Engneering CH5 - 36 HIENLTH


Vai trò của các layer

• Data Access Layer:


– Lớp này thực hiện các công việc liên quan đến
lưu trữ và truy xuất dữ liệu của ứng dụng.
– Cung cấp các dịch vụ cho lớp Business Logic sử
dụng.
– Sử dụng các dịch vụ của các hệ quản trị cơ sở dữ
liệu như MySql, SQL Server, Oracle,… để thực
hiện nhiệm vụ của mình.

COMP1026 – Introduction to Software Engneering CH5 - 37 HIENLTH


Các lưu ý quan trọng

• Phân biệt vai trò Business Layer và khái


niệm “xử lý”
• Mỗi Layer vẫn có xử lý riêng, đặc trưng
của Layer đó
• Đôi khi việc quyết định 1 xử lý nằm ở layer
nào chỉ mang tính chất tương đối

COMP1026 – Introduction to Software Engneering CH5 - 38 HIENLTH


Việc trao đổi liên lạc giữa các layer

Data Transfer Object (DTO)

Các giá trị, dòng, bảng

COMP1026 – Introduction to Software Engneering CH5 - 39 HIENLTH


Sự phụ thuộc giữa các layer

Data Transfer Object


(DTO)

COMP1026 – Introduction to Software Engneering CH5 - 40 HIENLTH


Tính chất của mô hình 3-layer

• Giảm sự kết dính giữa các thực thể phần


mềm (decoupling)
• Tái sử dụng
• Chia sẻ trách nhiệm

COMP1026 – Introduction to Software Engneering CH5 - 41 HIENLTH


Quản lý ngoại lệ

• Ngoại lệ có thể xảy ra ở bất kỳ layer nào


• Khi ngoại lệ xảy ra ở một layer thì:
– Xử lý nội bộ trong layer đó
– “Quăng” ngoại lệ lên layer “cao hơn”
– Không xử lý
• Khi một layer nhận ngoại lệ từ một layer
“thấp hơn”
– Xử lý nội bộ
– “Quăng” ngoại lệ lên layer “cao hơn”
– Không xử lý
COMP1026 – Introduction to Software Engneering CH5 - 42 HIENLTH
Phát triển ứng dụng

COMP1026 – Introduction to Software Engneering CH5 - 43 HIENLTH


Phát triển ứng dụng

Business Logic Layer

Data Access Layer

Data Transfer Object

COMP1026 – Introduction to Software Engneering CH5 - 44 HIENLTH


Phát triển ứng dụng

• Các lớp DTO


– Nội dung mỗi lớp gồm:
• Fields
• Các phương thức khởi tạo.
• Các phương thức set, get
– VD: SanPhamDTO, LoaiSanPhamDTO

COMP1026 – Introduction to Software Engneering CH5 - 45 HIENLTH


Phát triển ứng dụng

• Các lớp DAL


– Ứng với mỗi bảng trong database tạo một class DAL
tương ứng.
– VD: SanPhamDAL, LoaiSanPhamDAL

COMP1026 – Introduction to Software Engneering CH5 - 46 HIENLTH


Phát triển ứng dụng

• Các lớp BLL


– Tạo các class giao tiếp với lớp Presentation
– Sử dụng các dịch vụ ở lớp DAL để xử lý
nghiệp vụ.
– VD: SanPhamBLL, LoaiSanPhamBLL

COMP1026 – Introduction to Software Engneering CH5 - 47 HIENLTH


Phát triển ứng dụng

• Các lớp PL
– Giao tiếp với người dùng.
– Sử dụng các dịch vụ do lớp Business cung
cấp.
– VD: Xuất ra màn hình.

COMP1026 – Introduction to Software Engneering CH5 - 48 HIENLTH


Phát triển ứng dụng

COMP1026 – Introduction to Software Engneering CH5 - 49 HIENLTH


Phát triển ứng dụng

DEMO

COMP1026 – Introduction to Software Engneering CH5 - 50 HIENLTH


Câu hỏi và thảo luận

COMP1026 – Introduction to Software Engneering CH5 - 51 HIENLTH


Thank you!!!

COMP1026 – Introduction to Software Engneering CH5 - 52 HIENLTH

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy