1. Trang chủ
  2. » Cao đẳng - Đại học

công nghệ phần mêm nâng cao

43 993 3
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

Tiêu đề Công Nghệ Phần Mềm Nâng Cao
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Phần Mềm
Thể loại Môn Học
Thành phố Hà Nội
Định dạng
Số trang 43
Dung lượng 214,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mục đích, yêu cầu môn học• 30 tiết + 1 tiểu luận môn học • Cần những kiến thức căn bản về CNTT • Cung cấp các kiến thức tổng quan về Công nghệ phần mềm CNPM • Cung cấp kiến thức chuyên

Trang 1

CÔNG NGHỆ PHẦN MỀM NÂNG CAO

(Advance to Software Engineering)

Trang 2

Mục đích, yêu cầu môn học

• 30 tiết + 1 tiểu luận môn học

• Cần những kiến thức căn bản về CNTT

• Cung cấp các kiến thức tổng quan về

Công nghệ phần mềm (CNPM)

• Cung cấp kiến thức chuyên sâu về chất

lượng, đảm bảo chất lượng phần mềm,

kỹ thuật kiểm thử

Trang 3

Tài liệu tham khảo

• R Pressman, Software Engineering: A Practioner’s

Approach 5th Ed., McGraw-Hill, 2001

Trang 4

Giới thiệu tổng quan về CNPM

Phần mềm là gì ?

Nhóm các

Kỹ thuật, Phương pháp

luận

Nhóm các chương trình

Nhóm các

tư liệu

Kinh nghiệm kỹ sư,

know-how

Trang 5

Thế nào là phần mềm tốt ?

Hiệu suất xử lý

Các chỉ tiêu cơ bản Tính dễ hiểu

Thời gian (Phần cứng phát triển)

Yếu

tố khái niệm phần mềm tốt

Đặc trưng gần đây

Trang 6

Các chỉ tiêu cơ bản của phần mềm

• Phản ánh đúng yêu cầu người dùng (tính

hiệu quả - effectiveness)

• Chứa ít lỗi tiềm tàng

• Giá thành không vượt quá giá ước lượng

ban đầu

• Dễ vận hành, sử dụng

• Tính an toàn và độ tin cậy cao

Trang 7

Hiệu suất xử lý cao

• Hiệu suất thời gian tốt (efficiency):

– Độ phức tạp tính toán thấp (Time complexity) – Thời gian quay vòng ngắn (Turn Around Time:

TAT)

– Thời gian hồi đáp nhanh (Response time)

• Sử dụng tài nguyên hữu hiệu: CPU, RAM,

HDD, Internet resources,

Trang 8

Tính dễ hiểu

• Kiến trúc và cấu trúc thiết kế dễ hiểu

• Dễ kiểm tra, kiểm thử, kiểm chứng

• Dễ bảo trì

• Có tài liệu (mô tả yêu cầu, điều kiện kiểm

thử, vận hành, bảo trì, FAQ, ) với chất lượng cao

Tính dễ hiểu: chỉ tiêu ngày càng quan trọng

Trang 9

• Phần mềm máy cá nhân (Personal computer SW)

• Phần mềm trên Web (Web-based SW)

• Phần mềm trí tuệ nhân tạo (AI SW)

Trang 10

So sánh chi phí cho Phần cứng và Phần mềm

+ 2000

+ 1985

Phần cứng

Phát triển

Bảo trì

Phần mềm

Trang 11

So sánh chi phí cho các pha

Trang 12

Backlog tại Nhật Bản năm 1985

Trang 13

Tổng hợp, hệ thống hóa cho từng loại công cụ

(Máy tính hóa toàn bộ quy trình sản xuất phần mềm)

Hướng tới sản xuất phần mềm tự động

Trang 14

Định nghĩa CNPM

• Pressman [1995]: CNPM là bộ môn tích hợp cả quy trình, các phương pháp, các công cụ để phát triển phần mềm máy tính

• Sommerville [1995]: CNPM là lĩnh vực liên quan đến lý thuyết, phương pháp và công cụ dùng cho phát triển phần mềm

Trang 15

Định nghĩa CNPM (tiếp)

Công nghệ phần mềm là lĩnh vực khoa học

về các phương pháp luận, kỹ thuật và công

cụ tích hợp trong quy trình sản xuất và vận hành phần mềm nhằm tạo ra phần mềm với

Engineering is a scientific field to deal with

methodologies, techniques and tools integrated in software production-maintenance process to

Trang 16

Công nghệ trong CNPM ?

(1) Như các ngành công nghệ khác, CNPM cũng lấy

các phương pháp khoa học làm cơ sở

(2) Các kỹ thuật về thiết kế, chế tạo, kiểm thử và bảo

trì phần mềm đã được hệ thống hóa hóa thành

phương pháp luận và hình thành nên CNPM

(3) Toàn bộ quy trình quản lý phát triển phần mềm

gắn với khái niệm vòng đời phần mềm, được mô hình hóa với những kỹ thuật và phương pháp luận trở thành các chủ đề khác nhau trong CNPM

Trang 17

Công nghệ trong CNPM ? (tiếp )

(4) Trong vòng đời phần mềm không chỉ có chế tạo

mà bao gồm cả thiết kế, vận hành và bảo dưỡng (tính quan trọng của thiết kế và bảo dưỡng)

(5) Trong khái niệm phần mềm, không chỉ có chương

trình mà cả tư liệu về phần mềm

(6) Cách tiếp cận công nghệ học (khái niệm công

nghiệp hóa) thể hiện ở chỗ nhằm nâng cao năng suất (tính năng suất) và độ tin cậy của phần mềm, đồng thời giảm chi phí giá thành

Trang 18

Vòng đời phần mềm (Software life-cycle)

• Vòng đời phần mềm là giai đoạn tính từ khi

phần mềm được sinh (tạo) ra cho đến khi chết

đi (từ lúc hình thành đáp ứng yêu cầu, vận hành, bảo dưỡng cho đến khi loại bỏ không đâu dùng)

• Quy trình phần mềm (vòng đời phần mềm)

được phân chia thành các pha chính: phân tích, thiết kế, chế tạo, kiểm thử, bảo trì Biểu diễn các pha có khác nhau theo từng người

Trang 19

Mô hình vòng đời phần mềm của Boehm

Xác định yêu

cầu hệ thống

Kiểm chứng

Xác định yêu cầu phần mềm

Kiểm chứng

Thiết kế căn bản

Kiểm chứng

Thiết kế chi tiết

Kiểm chứng lại

Trang 20

Barry Boehm

TRW Professor of Software Engineering, Computer Science Department Director, USC Center for Software Engineering (University of Southern California)

• His current research interests focus on value-based software

engineering, including a method for integrating a software system's process models, product models, property models, and success models called Model-Based (System) Architecting and Software Engineering (MBASE) His contributions to the field include the Constructive Cost Model (COCOMO), the Spiral Model of the software process, the Theory W (win-win) approach

to software management and requirements determination, the foundations for the areas of software risk management and software quality factor analysis, and two advanced software engineering environments: the TRW Software Productivity System and Quantum Leap Environment

Trang 21

Suy nghĩ mới về vòng đời phần mềm

(1) Pha xác định yêu cầu và thiết kế có vai trò

quyết định đến chất lượng phần mềm, chiếm phần lớn công sức so với lập trình, kiểm thử

và chuyển giao phần mềm

(2) Pha cụ thể hóa cấu trúc phần mềm phụ thuộc

nhiều vào suy nghĩ trên xuống (top-down) và trừu tượng hóa, cũng như chi tiết hóa

(3) Pha thiết kế, chế tạo thì theo trên xuống, pha

kiểm thử thì dưới lên (bottom-up)

Trang 22

Suy nghĩ mới về vòng đời phần mềm

(4) Trước khi chuyển sang pha kế tiếp phải đảm bảo

pha hiện nay đã được kiểm thử không còn lỗi

(5) Cần có cơ chế kiểm tra chất lượng, xét duyệt giữa

các pha nhằm đảm bảo không gây lỗi cho pha sau (6) Tư liệu của mỗi pha không chỉ dùng cho pha sau,

mà chính là đối tượng quan trọng cho kiểm tra

và đảm bảo chất lượng của từng quy trình và của chính phần mềm

Trang 23

Suy nghĩ mới về vòng đời phần mềm

(7) Cần chuẩn hóa mẫu biểu, cách ghi chép tạo tư

liệu cho từng pha, nhằm đảm bảo chất lượng phần mềm

(8) Thao tác bảo trì phần mềm là việc xử lý quay

vòng trở lại các pha trong vòng đời phần mềm nhằm biến đổi, sửa chữa, nâng cấp phần mềm

Trang 24

Cỏc phương phỏp luận và

kỹ thuật cho từng pha

Tên pha Nội dung nghiệp vụ Ph ơng pháp, kỹ

thuật Xác định

yêu cầu

Đặc tả yêu cầu ng ời dùng Xác định yêu cầu phần mềm

Phân tích cấu trúc hóa

Thiết kế

hệ thống

Thiết kế cơ bản phần mềm Thiết kế cấu trúc ngoài của phần mềm

Thiết kế cấu trúc hóa

môđun)

Lập trình cấu trúc

Ph ơng pháp Jackson

Ph ơng pháp Warnier

Lập trình Mã hóa bởi ngôn ngữ lập trình Mã hóa cấu trúc

Trang 25

Capability Maturity Model (CMM) by SEI

(Software Engineering Institut Carnegie Mellon University)

Mô hình trưởng thành khả năng

Thành công phụ thuộc vào công sức riêng lẻ

Lặp lại các thành công trước đó trên các dự án với những ứng dụng tương tự

và đã ứng dụng của quá trình của tổ chức để phát triển và hỗ trợ phần mềm

Level 1: Initial (Khởi đầu) Few processes are defined Success depends on individual effort

Level 2: Repeatable (Lặp lại) Basic project management processes Repeat earlier succeses on projects with similar applications

Level 3: Defined (Xác định) Use a documented and approved version of the organization’s process for developing and supporting software

Trang 26

Capability Maturity Model CMM

Mức 4 : Quản trị Cả quá trình sx và sản phẩm phần mềm được hiểu rõ định lượng và sử dụng

có kiểm soát một cách cân nhắc chi tiết.

Mức 5 : Tối ưu hóa Quá trình cải tiến liên tục được cho phép bởi sự phản hồi định lượng từ quá trình phản hồi và từ việc kiểm tra những ý tưởng và những công nghệ có tính chất đổi mới

Level 4: Managed (Quản trị) Both SW process and products are quantitatively understood and controlled using detailed measures

Level 5: Optimizing (Tối ưu). Continuous process improvement is enabled by quantitative

feedback from the process and from testing innovative ideas and technologies

Trang 27

18 key process areas (KPAs) for CMM

9 SW product engineering

10 Integrated SW management (hoà nhập)

11 Training program

12 Organization process definition

13 Organization process focus

LEVEL 3: Defined

14

SW quality Management (chất lượng)

15

Quantitative process management (định lượng)

LEVEL 4: Managed

LEVEL 5: Optimizing

16.

Process change management

17

Technology change management 18.

Defect prevention (ngăn ngừa lối)

Trang 29

MÔ HÌNH THÁC NƯỚC

Xác định yêu cầu

Thiết kế phần mềm và hệ thống

Thực hiện và thử nghiệm đơn vị

Tích hợp và thử nghiệm hệ

Vận hành và bảo trì

Trang 30

Mô hình chế thử (Prototyping model)

Nghe Khách trình bày

Tạo / sửa bản mẫu

Khách kiểm tra bản mẫu

Trang 31

Mô hình phát triển ứng dụng nhanh (Rapid Application Development: RAD)

• Là quy trình phát triển phần mềm gia tăng, tăng dần

từng bước (Incrimental software development) với mỗi chu trình phát triển rất ngắn (60-90 ngày)

• Xây dựng dựa trên hướng thành phần

(Component-based construction) với khả năng tái sử dụng (reuse)

• Gồm một số nhóm (teams), mỗi nhóm làm 1 RAD theo

các pha: Mô hình nghiệp vụ, Mô hình dữ liệu, Mô hình

xử lý, Tạo ứng dụng, Kiểm thử và đánh giá (Business, Data, Process, Appl Generation, Test)

Trang 32

Data Modeling

Data Modeling

Process Modeling

Process Modeling

Application Generation

Application Generation

Business Modeling

Data Modeling

Data Modeling

Process Modeling

Process Modeling

Application Generation

Application Generation

Testing & Turnover

Testing & Turnover

Business Modeling

Business Modeling

Data Modeling

Data Modeling

Process Modeling

Process Modeling

Application Generation

Application Generation

Testing & Turnover

Testing & Turnover

Team #1

Team #2

Team #3

Trang 33

Các mô hình tiến hóa:

gia tăng, xoắn ốc, xoắn WINWIN,

• Phần lớn các hệ phần mềm phức tạp đều tiến hóa

theo thời gian: môi trường thay đổi, yêu cầu phát sinh thêm, hoàn thiện thêm chức năng, tính năng

• Các mô hình tiến hóa (evolutionary models) có tính

lặp lại Kỹ sư phần mềm tạo ra các phiên bản

(versions) ngày càng hoàn thiện hơn, phức tạp hơn

• Các mô hình: incremental, spiral, WINWIN spiral,

concurrent development model

Trang 34

Mô hình gia tăng (The incremental model)

• Kết hợp mô hình tuần tự và ý tưởng lặp

lại của chế bản mẫu

• Sản phẩm lõi với những yêu cầu cơ bản

nhất của hệ thống được phát triển

• Các chức năng với những yêu cầu khác

được phát triển thêm sau (gia tăng)

• Lặp lại quy trình để hoàn thiện dần

Trang 35

Mô hình gia tăng

Xuất xưởng 3

XX 4

Trang 36

Mô hình xoắn ốc (spiral)

Giao tiếp khách hàng

Bảo trì

Nâng cấp

Làm mới

Khái niệm

Trang 37

Mô hình xoắn ốc WIN-WIN

1 Xác định mức

tiếp của cổ đông

2 Xác định điều kiện thắng của cổ đông

3a Hòa hợp điều kiện thắng 3b Thiết lập mục tiêu mức tiếp

và các ràng buộc, dự kiến

4 Đánh giá tiến trình và

dự kiến sản phẩm, giải quyết rủi ro

5 Xác định mức tiếp của sản phâm và quy trình,

kể cả phân chia nhỏ

7 Xét duyệt và đánh giá

6 Kiểm định sản phẩm

và quy trình

Trang 38

Mô hình phát triển đồng thời

(The concurrent development model)

• Xác định mạng lưới những hoạt động đồng thời

(Network of concurrent activities)

• Các sự kiện (events) xuất hiện theo điều kiện vận

động trạng thái trong từng hoạt động

• Dùng cho mọi loại ứng dụng và cho hình ảnh khá

chính xác về trạng thái hiện trạng của dự án

• Thường dùng trong phát triển các ứng dụng

khách/chủ (client/server applications): system and componets are developed concurrently

Trang 39

Mô hình theo thành phần (Component-based model)

• Gắn với những công nghệ hướng đối tượng

(Object-oriented technologies) qua việc tạo các lớp (classes)

có chứa cả dữ liệu và giải thuật xử lý dữ liệu

• Có nhiều tương đồng với mô hình xoắn ốc

• Với ưu điểm tái sử dụng các thành phần qua Thư

viện / kho các lớp: tiết kiệm 70% thời gian, 80% giá thành, chỉ số sản xuất 26.2/16.9

• Với UML như chuẩn công nghiệp đang triển khai

Trang 40

Xuất xưởng

Khách hàng

đánh giá

Xác định thành phần ứng viên

Tìm thành phần

từ thư viện

Lấy thành phần nếu có

Xây dựng thành phần nếu kh.có

Đặt thành phần vào thư viện

Xây dựng bước lặp thứ n của hệ thống

Trang 41

Mô hình hình thức (Formal model)

• Còn gọi là CNPM phòng sạch (Cleanroom SE)

• Thường dùng trong phát triển SW cần độ an

toàn rất cao (y tế, hàng không, )

Trang 42

Mô hình hình thức: Điểm yếu ?

• Cần nhiều thời gian và công sức để phát

Trang 43

• Các công cụ 4GT điển hình: ngôn ngữ phi

thủ tục cho truy vấn CSDL; tạo báo cáo; xử

lý dữ liệu; tương tác màn hình; tạo mã

nguồn; khả năng đồ họa bậc cao; khả năng bảng tính; khả năng giao diện Web; vv

Ngày đăng: 23/05/2014, 02:19

HÌNH ẢNH LIÊN QUAN

Hình thái sản xuất Phần mềm - công nghệ phần mêm nâng cao
Hình th ái sản xuất Phần mềm (Trang 13)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w