1. Trang chủ
  2. » Công Nghệ Thông Tin

Công nghệ phần mềm

283 1,2K 4
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 283
Dung lượng 779,44 KB

Nội dung

Công nghệ phần mềm

Trang 1

Trường Đại Học Bách Khoa Tp Hồ Chí Minh

Khoa Công Nghệ Thông Tin

Môn học

CÔNG NGHỆ PHẦN MỀM

Trang 2

GIỚI THIỆU MÔN HỌC

 Đặc điểm

 Môn học trước: Toán Tin Học (501302)

 Tóm tắt nội dung

 Các khái niệm cơ bản của Công Nghệ Phần Mềm: các mô hình phát triển phần mềm, phân tích yêu cầu, thiết kế, kiểm tra…

 2 trường phái chính: có cấu trúc (cổ điển) & hướng đối tượng

 Chuẩn UML và việc áp dụng nó trong phương pháp hướng đối tượng

Trang 3

GIỚI THIỆU MÔN HỌC (t.t)

 Tài liệu tham khảo

 [1] Software Engineering - A practitioner’s approach, R.S

Pressman, McGraw-Hill, 1997

 [2] OMG Unified Modeling Language Specification, version 1.3, Object Management Group (www.omg.org), 1999

 [3]UML Toolkit, Hans-Erik Eriksson & Magnus Penker, 1998

 [4] Object-Oriented Software Engineering, A Use-Case Driven Approach, I Jacobson, ACM Press/Addison-Wesley, 1992

 [5] Object-Oriented Analysis and Design with Applications, G Booch, The Benjamin Cummings Publishing Company, 1994

Trang 4

GIỚI THIỆU MÔN HỌC (t.t)

Trang 5

ĐỀ CƯƠNG

Chương 1: Giới thiệu về Công Nghệ Phần Mềm

Chương 2: Phân tích yêu cầu theo phương pháp cổ điển

Chương 3: Các khái niệm cơ bản của mô hình hướng đối tượng

Chương 4: Mô hình nghiệp vụ và thu thập yêu cầu

Chương 5: Phân tích yêu cầu hướng đối tượng

Chương 6: Cơ sở của thiết kế phần mềm và phương pháp thiết kế cổ điển Chương 7: Thiết kế hướng đối tượng

Chương 8: Hiện thực và triển khai hệ thống

Chương 9: Kỹ thuật kiểm tra phần mềm

Chương 10: Chiến thuật kiểm tra phần mềm

Trang 6

Trường Đại Học Bách Khoa Tp Hồ Chí Minh

Khoa Công Nghệ Thông Tin

Chương 1

GIỚI THIỆU VỀ CÔNG NGHỆ PHẦN MỀM

Trang 7

NỘI DUNG

1.1 Một số khái niệm

1.1.1 Khủng hoảng phần mềm

1.1.2 Định nghĩa

1.1.3 Chu trình (process), phương pháp (method), công cụ (tool)

1.1.4 Một cách nhìn tổng quan về công nghệ phần mềm

1.1.5 Mô hình CMM

1.2 Các mô hình phát triển phần mềm

1.2.1 Mô hình tuần tự tuyến tính

1.2.2 Mô hình prototype

1.2.3 Mô hình xoắn ốc

1.2.4 Mô hình tăng dần

1.2.3 Mô hình RAD

Trang 8

KHỦNG HOẢNG PHẦN MỀM

 Phần mềm được viết ngay từ khi xuất hiện các hệ máy tính và ngôn ngữ lậïp trình đầu tiên

 Trên thực tế sản xuất phần mềm không đáp ứng kịp yêu cầu của

người sử dụng

Trang 9

KHỦNG HOẢNG PHẦN MỀM (t.t)

Các dữ liệu quan sát được

 Cứ 6 đề án triển khai thì có 2 bị huỷ bỏ

 Trung bình thời gian thực hiện thực tế bị kéo dài 50 % (cá biệt

200-300%)

 Các đề án lớn dễ thất bại

 3/4 các hệ thống lớn có lỗi khi thực thi

 Quá trình phân tích yêu cầu (5 % công sức): để lại 55 % lỗi, có 18 %

phát hiện được

 Quá trình thiết kế (25 % công sức): để lại 30 % lỗi, có 10 % phát hiện được

 Quá trình mã hoá, kiểm tra và bảo trì: để lại 15 % lỗi, có 72 % phát hiện được

Trang 10

KHỦNG HOẢNG PHẦN MỀM (t.t)

Nguyên nhân

 Phát triển phần mềm giống như một nghệ thuật, chưa được xem như một ngành khoa học

 Quá trình phát triển phần mềm chưa được thống nhất

 Phải viết lại s/w mỗi khi có sự thay đổi về ngôn ngữ, h/w hoặc o/s

 Chưa đạt được 1 chuẩn cho việc đo lường hiệu suất và sản phẩm

 Độ phức tạp của phần mềm quá cao đối với 1 “kiến trúc sư”

 Kỹ thuật đặc tả để lại sự nhập nhằng trong các yêu cầu phần mềm

Trang 11

KHỦNG HOẢNG PHẦN MỀM (t.t)

Hướng tới công nghệ sản xuất phần mềm chuyên nghiệp

Trang 12

ĐỊNH NGHĨA

Định nghĩa cổ điển (của Fritz Bauer)

Công Nghệ Phần Mềm là sự thiết lập và sử dụng các nguyên tắc khoa học nhằm mục đích tạo ra các phần mềm một cách kinh tế mà các phần mềm đó hoạt động hiệu quả và tin cậy trên các máy tính

Trang 13

ĐỊNH NGHĨA (t.t)

Định nghĩa khác: Công Nghệ Phần Mềm

 Là các quy trình đúng kỷ luật và có định lượng được áp dụng cho sự phát triển, thực thi và bảo trì các hệ thống thiên về phần mềm

 Tập trung vào quy trình, sự đo lường, sản phẩm, tính đúng thời gian và chất lượng

Trang 14

CHU TRÌNH

Chu trình (process) định nghĩa một bộ khung các tiêu

chuẩn phải được thiết lập để triển khai công nghệ phần mềm.

Trang 16

CÔNG CỤ

 Công cụ (tool) cung cấp các hỗ trợ tự

động hay bán tự động đối với chu trình và phương pháp

 Các công cụ được tích hợp tạo thành

CASE (Computer Aided Software

Engineering)

Trang 17

MỘT CÁCH NHÌN TỔNG QUAN VỀ CNPM

Gồm 3 giai đoạn lớn

 Giai đoạn định nghĩa: Phân tích hệ thống (system engineering), Hoạch định đề tài (software project management), Phân tích yêu cầu (requirement

Trang 18

MOÂ HÌNH CMM

Initial

(Level 1)

Repeatable (Level 2)

Defined (Level 3)

Managed (Level 4)

Optimized (Level 5) Risk

Competitiveness

Trang 19

CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM

 Mô hình tuần tự tuyến tính: cổ điển

 Mô hình prototyping: prototype

 Mô hình xoắn ốc: đánh giá rủi ro

 Mô hình tăng dần: các bước lặp

 Mô hình RAD: thời gian phát triển ngắn

Trang 20

MÔ HÌNH TUẦN TỰ TUYẾN TÍNH

 Mô hình phát triển phần mềm đầu tiên

 Các công việc tiếp nối nhau một cách tuần tự

 Đặt nền móng cho các phương pháp phân tích, thiết kế, kiểm

tra…

System Engineering Requirement

Analysis

Software Design Coding Test Maintenance

Trang 21

Bộc lộ một số khuyết điểm

 Bản chất của phát triển phần mềm là quá trình lặp đi lặp lại chứ không phải tuần tự

 Bắt buộc khách hàng đặc tả tất cả yêu cầu một cách chính xác và đầy đủ ngay từ ban đầu

 Khách hàng thường phải chờ đợi rất lâu để thấy được phiên bản đầu tiên của sản phẩm

 Tồn tại “delay” trong nhóm làm việc

MÔ HÌNH TUẦN TỰ TUYẾN TÍNH (t.t)

Trang 22

MÔ HÌNH PROTOTYPING

 Prototype như là một cơ chế để

nhận diện chính xác yêu cầu của khách hàng

 Prototype có thể bị “throw-away”

 Một số khuyết điểm

 Khách hàng hối thúc nhà phát triển hoàn thành sản phẩm

một khi thấy được các prototype

đầu tiên

 Các prototype thường không

Thảo luận với

khách hàng

Xây dựng prototype

Đánh giá của khách hàng

Trang 23

MÔ HÌNH XOẮN ỐC

 Được thực hiện theo một chuỗi lặp kiểu xoắn ốc, mỗi lần lặp cải thiện sản phẩm

 Có phương pháp đánh giá rủi ro

 Có thể áp dụng prototype

 Mỗi lần lặp được cải thiện cho thích nghi với bản chất của đề án

Đánh giá rủi ro

Phát triển sản phẩm

ở lần lặp tiếp theo

Hoạch định đề tài

Định nghĩa quy trình

R

R

R

Trang 24

MÔ HÌNH TĂNG DẦN

Phân tích yêu cầu

1

2

3

Kiểm tra hệ thống

Thiết kế kiến trúc Phát triển module Tích hợp

4

Trang 25

MÔ HÌNH TĂNG DẦN (t.t)

 Các bước (iteration) đầu tập trung vào yêu cầu của phần mềm và

thiết lập một kiến trúc ổn định cho hệ thống (ít phải thay đổi sau này)

 Các bước sau tập trung vào việc xây dựng sản phẩm để cuối

cùng chuyển sang giai đoạn kiểm tra hệ thống

 Mỗi bước hiện thực một phần cụ thể trong toàn bộ yêu cầu của hệ thống

 Quá trình xây dựng và chiến thuật kiểm tra theo kiểu tăng dần và dựa trên phương pháp kiểm tra hồi quy

Trang 26

MÔ HÌNH RAD

 Rapid Application Development là mô hình tuần tự tuyến tính có thời gian phát triển rất ngắn

 Sử dụng các thành phần có sẵn càng nhiều càng tốt

 Sử dụng công cụ lập trình ở dạng tự động sinh mã chứ không

phải các ngôn ngữ truyền thống

Business modeling Data modeling Process modeling Application

generation Testing & Turnover

Trang 27

Trường Đại Học Bách Khoa Tp Hồ Chí Minh

Khoa Công Nghệ Thông Tin

Chương 2

PHÂN TÍCH YÊU CẦU THEO

PHƯƠNG PHÁP CỔ ĐIỂN

Trang 28

GIỚI THIỆU

 Khách hàng và nhà phát triển gặp nhau để thảo luận về yêu cầu của hệ thống phần mềm cần xây dựng

 Nhà phát triển kiểm chứng lại (validate) yêu cầu

và biểu diễn nó bằng mô hình phân tích

 Mô hình phân tích (WHAT?): các chức năng, dữ

liệu input & output, các trạng thái khác nhau

Trang 29

NỘI DUNG

2.1 Các yếu tố căn bản của mô hình phân tích

2.2 Mô hình chức năng và dòng thông tin

2.2.1 Lược đồ dòng chảy dữ liệu với các ký hiệu cơ bản

2.2.2 Mở rộng của Ward và Mellor

2.2.3 Mở rộng của Hatley & Pirbhai

2.3 Mô hình hành vi phần mềm

2.4 Kỹ thuật phân tích yêu cầu

2.4.1 Xây dựng DFD

2.4.2 Viết PSPEC

2.5 Từ điển dữ liệu

Trang 30

CÁC YẾU TỐ CĂN BẢN CỦA MÔ HÌNH PHÂN TÍCH

 Mô hình chức năng và dòng thông tin: DFD, PSPEC

 Mô hình dữ liệu: ERD, đặc tả đối tượng dữ liệu

 Mô hình hành vi: STD, CSPEC

Từ điển dữ liệu

Lưu đồ dòng chảy dữ liệu

Lưu đồ quan hệ thực thể

Lưu đồ dịch chuyển trạng thái

Process Specification (PSPEC)

Trang 31

MÔ HÌNH CHỨC NĂNG VÀ DÒNG THÔNG TIN

 Mô tả dòng thông tin di chuyển (flow) xuyên qua các hệ thống

thiên về phần mềm

 Thông tin input cũng như output có thể ở nhiều dạng khác nhau:

file, bàn phím, trên mạng, từ thiết bị, kết xuất ra màn hình và máy in…

 Các giải thuật xử lý cũng rất đa dạng

Trang 32

MÔ HÌNH CHỨC NĂNG VÀ DÒNG THÔNG TIN (t.t)

 Lưu đồ dòng chảy dữ liệu DFD (Data Flow Diagram) cung cấp 4

ký hiệu cơ bản để mô hình sự di chuyển của dòng thông tin

 DFD được mở rộng để mô hình các hệ thống thời gian thực

 Mở rộng của Ward và Mellor (tự đọc: [1], trang 312)

 Mở rộng của Hatley & Pirbhai (tự đọc: [1], trang 315)

Trang 33

LƯỢC ĐỒ DÒNG CHẢY DỮ LIỆU (DFD)

 4 phần tử chính

 Thực thể: tạo ra hoặc tiêu thụ thông tin, nằm bên ngoài biên giới của

phạm vi thông tin hệ thống

 Chức năng xử lý: thực hiện chức năng nào đó, tiêu thụ và tạo ra thông tin, nằm bên trong phạm vi thông tin hệ thống

 Thông tin hay dữ liệu

 Kho dữ liệu: lưu trữ dữ liệu mà được sử dụng bởi nhiều chức năng xử lý

Thực thể Chức năng

xử lý Dữ liệu

Kho dữ liệu

Trang 34

LƯỢC ĐỒ DÒNG CHẢY DỮ LIỆU (t.t)

 DFD được xây dựng qua nhiều mức khác nhau: mức 0, 1, 2…

 DFD mức sau chi tiết hơn mức trước

 Process Specification (PSPEC) bổ sung cho DFD

 Tính liên tục của dòng dữ liệu

Trang 35

MÔ HÌNH HÀNH VI PHẦN MỀM

 Lược đồ dịch chuyển trạng thái (STD) thể hiện

 Các trạng thái khác nhau của hệ thống

 Sự dịch chuyển giữa các trạng thái đó

 Ví dụ: miêu tả hoạt động của máy photocopy

Yêu cầu xử lý lỗi

Hết kẹt giấy

Yêu cầu đọc lệnh

Đầy giấy và sẵn sàng

Trang 36

KỸ THUẬT PHÂN TÍCH YÊU CẦU

 Thiết lập đoạn văn miêu tả chức năng (processing narrative) cho

hệ thống cần xây dựng

 Xây dựng DFD ở các mức khác nhau

 Thiết lập sơ đồ ngữ cảnh (DFD mức 0)

 Phân hoạch DFD vào các mức cao hơn

 Sử dụng phương pháp duyệt văn phạm

 Luôn luôn tuân theo tính liên tục của dòng dữ liệu

 Viết PSPEC cho các chức năng của DFD mức cao nhất

Trang 37

XÂY DỰNG DFD

 Phần mềm SafeHome: Thiết lập đoạn văn miêu tả xử lý

 DFD mức ngữ cảnh: nhận diện các thực thể và dữ liệu input, output

SafeHome Bảng điều khiển

Bộ cảm ứng

Màn hình

Chuông

Đường điện thoại

Lệnh và dữ liệu

Trạng thái cảm ứng

Thông tin hiển thị

Kiểu báo động

Tần số của số điện thoại

Trang 38

XÂY DỰNG DFD (t.t)

 DFD mức 1: hình thành

một số chức năng chính

Tương tác với user Bảng điều khiển

Màn hình

Chuông

Lệnh và dữ liệu

Trạng thái cảm ứng Kiểu báo động

Tần số của số điện thoại

Cấu hình hệ thống

Yêu cầu cấu hìnhh

Mật mã

Theo dõi cảm ứng

Hiển thị

Thông báo a/d

Xác nhận mật mã

Thông tin cảm ứng

Thông tin hiển thị

Trang 39

XÂY DỰNG DFD (t.t)

 DFD mức 2: tinh chế chức năng “Theo dõi cảm ứng”

Bộ cảm ứng

Chuông

Đường điện thoại

Trạng thái cảm ứng

Kiểu báo động

Tần số của số điện thoại

Thiết lập điều kiện báo động

Dữ liệu cấu hình

Thông số cấu hình

Định dạng hiển thị

Id, type Số điện thoại

Trang 40

VIẾT PSPEC

 Có thể viết PSPEC bằng một trong 2 cách

 Ngôn ngữ tự nhiên (tương tự processing narrative)

 Ngôn ngữ PDL - là ngôn ngữ giả giúp thể hiện kiến trúc và giao tiếp của chức năng xử lý

Trang 41

 Từ điển dữ liệu thường được hiện thực như là một phần của công cụ CASE

 Mỗi phần tử bao gồm những thông tin: tên, bí danh, được dùng ở đâu/như thế nào, đặc tả nội dung và thông tin phụ trợ

Trang 42

TỪ ĐIỂN DỮ LIỆU (t.t)

Ví dụ phần tử dữ liệu số điện thoại

 Tên: Số điện thoại

 Bí danh: Không

 Được dùng ở đâu/như thế nào: output của Thiết lập điều kiện báo động

input của Quay số

 Đặc tả nội dung:

số điện thoại = [ mở rộng địa phương | số bên ngoài ] mở rộng địa phương = [ 2001 | 2002 … | 2009 ]

số bên ngoài = 9 + [ số địa phương | số đường dài ] số địa phương = tiền tố + <chuỗi 4 ký số>

số đường dài = (1) + mã vùng + số địa phương tiền tố = [ 795 | 799 | 874 | 877 ]

Trang 43

TỔNG KẾT

 Phân tích yêu cầu theo pp cổ điển bao gồm: mô hình chức năng và dòng thông tin (DFD), mô hình dữ liệu (ERD) và mô hình hành vi (STD)

 Lược đồ DFD cơ bản có 4 ký hiệu và nó được mở rộng để biểu diễn được các hệ thống thời gian thực

 Xây dựng DFD mức 0 rồi đến các mức cao hơn;

chú ý bảo toàn tính liên tục của dòng dữ liệu

 Từ điển dữ liệu giúp quản lý và tra cứu các phần tửdữ liệu

Trang 44

Trường Đại Học Bách Khoa Tp Hồ Chí Minh

Khoa Công Nghệ Thông Tin

Chương 3

CÁC KHÁI NIỆM CƠ BẢN CỦA MÔ HÌNH HƯỚNG ĐỐI TƯỢNG

Trang 47

ĐỐI TƯỢNG và LỚP

 Mô hình hướng đối tượng quan niệm thế giới bao gồm các đối

tượng (object) sinh sống và tương tác với nhau

 Đối tượng bao gồm

 dữ liệu: mang một giá trị nhất định

 tác vụ: thực hiện một công việc nào đó

Trang 48

ĐỐI TƯỢNG và LỚP (t.t)

 Lớp (class) định nghĩa một tập hợp các tác vụ và thuộc tính mà

đặc tả đầy đủ cấu trúc và hành vi của các đối tượng

 Đối tượng (còn gọi là minh dụ (instance) ) được cụ thể hoá từ lớp

 Các ngôn ngữ lập trình hướng đối tượng

 Khai báo lớp: tương tự như khai báo một kiểu do người dùng định nghĩa

 Khai báo đối tượng: biến của kiểu lớp

Trang 49

ĐÓNG BAO

 Đóng bao: việc gộp thuộc tính và tác vụ trong một đối tượng đồng thời giới hạn cách truy xuất các thuộc tính đó (thường phải thông qua các tác vụ get/set)

x = 3.2

y = 1.7

Trang 50

THUỘC TÍNH

 Thuộc tiùnh (attribute) là một vùng có thể chứa dữ liệu (đơn hoặc

tổ hợp) của lớp

 Dữ liệu mà thuộc tính thể hiện nằm trong một khoảng giá trị nào đó được xác định bởi kiểu

 Giá trị của tất cả thuộc tính xác định trạng thái của đối tượng

 Ví dụ: một đối tượng của Circle có (Radius, x, y) = (1.2, 3.4, 5.3)

Trang 51

THUỘC TÍNH (t.t)

 Thuộc tính có thể bị che dấu hoặc truy xuất được từ bên ngoài

 Một số ngôn ngữ lập trình (và UML): public, protected, private

 Có 2 loại tầm vực

 Tầm vực lớp: thuộc tính chung cho tất cả các đối tượng của một lớp

 Tầm vực đối tượng: thuộc tính của từng đối tượng (có thể mang giá trị khác nhau)

 Bậc của thuộc tính chỉ ra số lượng dữ liệu mà bản thân thuộc tính có thể nắm giữ: 0 1, 1, *, 5 8

Trang 52

TÁC VỤ

 Tác vụ (operation) là một dịch vụ có thể yêu cầu từ phía đối

tượng để thực hiện hành vi

 Dấu hiệu nhận dạng của tác vụ (signature) xác định các thông số

có thể truyền cũng như kết quả trả về

 Phương thức (method) là phần hiện thực của tác vụ

Trang 53

TÁC VỤ (t.t)

 Tác vụ có thể bị che dấu hoặc truy xuất được từ bên ngoài

 Một số ngôn ngữ lập trình (và UML): public, protected, private

 Tác vụ có thể được override trong các lớp con thừa kế

 Trừu tượng (abstract): không có hiện thực

 Một số ngôn ngữ lập trình cho phép định nghĩa

 Tác vụ khởi tạo (constructor): được gọi khi đối tượng mới tạo ra

 Tác vụ hủy (destructor): được gọi khi đối tượng sắp bị huỷ bỏ

Trang 54

VÍ DỤ về LỚP/ĐỐI TƯỢNG - JAVA

class abstract HTMLObject {

protected static final int LEFT = 0;

protected static final int MIDDLE = 1;

protected static final int RIGHT = 2;

private int alignment = LEFT;

protected Vector objects = null;

Trang 55

 Dấu hiệu nhận dạng của tác vụ muốn gọi

 Danh sách thông số gọi

Trang 56

THÔNG ĐIỆP (t.t)

 Đối với các ngôn ngữ lập trình

 Đối tượng đích: biến đối tượng hoặc bản thân đối tượng muốn gửi thông

điệp (self, this)

 Dấu hiệu nhận dạng của tác vụ muốn gọi: tên tác vụ trùng nhau    xem các thông số gọi

 Danh sách thông số gọi: như phép gọi hàm bình thường, chú ý kiểu khi

truyền và gán kết quả trả về

Trang 57

BAO GỘP

 Bao gộp (aggregation) là quan hệ giữa hai đối tượng

 Một đối tượng bao lấy đối tượng kia

 Quan hệ này thường xảy ra trong thế giới thực, ví dụ

 Xe hơi bao gồm: bánh xe, động cơ, khung xe

 Trang HTML bao gồm: text, hình ảnh, tiêu đề, các liên kết

 Checkbox, ComboBox, Slider… nằm trong một hộp thoại

Ngày đăng: 16/08/2012, 14:22

TỪ KHÓA LIÊN QUAN

w