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

Tài liệu Chương 1: Tổng Quan về công nghệ phần mềm docx

20 517 1
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 đề Tổng quan về công nghệ phần mềm
Chuyên ngành Công nghệ phần mềm
Thể loại Tài liệu
Năm xuất bản 2009
Định dạng
Số trang 20
Dung lượng 6,79 MB

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

Nội dung

—Efficiency: Sử dụng hiệu quả tài nguyên của hệ thống cho công việc —Usability: giao diện và phương thức phải phù hợp với người dùng đồng thời đáp ứng đúng yêu cầu của người dùng Phần mề

Trang 1

Chương 1 Tổng quan về công nghệ phần mềm

Nội dung

I Các khái niệm

II Quy trình xây dựng phần mềm

III Nghề nghiệp kỹ sư phần mềm

I Các khái niệm

1 Khoa học, kỹ thuật, công nghệ

2 Phần mềm

a Phần mềm tốt

b Phần mềm đủ hay thiếu và nguyên

nhân

c Tiến hóa của phần mềm

d Các loại phần mềm

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

Các khái niệm

Khoa học (science)

Kỹ thuật (technology)

Công nghệ (engineering)

Phần mềm (software)

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

Trang 2

Phần mềm

—Software = Computer Program +

associated documentation

—Loại sản phẩm phần mềm

bán rộng rãi trên thị trường

triển theo yêu cầu đặc thù của từng khách

hàng

Đặc tính của sản phẩm phần mềm tốt

—Maintainability: phần mềm có thể thay đổi thuận tiện theo yêu cầu của người dùng

—Dependability: tính ổn định, bảo mật và an toàn của phần mềm Không gây tổn hại về vật chất hay kinh tế cho hệ thống

—Efficiency: Sử dụng hiệu quả tài nguyên của

hệ thống cho công việc

—Usability: giao diện và phương thức phải phù hợp với người dùng đồng thời đáp ứng đúng yêu cầu của người dùng

Phần mềm-đủ hay thiếu

tính programable đầu tiên

—Được quan tâm và phát triền từ rất sớm

—Có rất nhiều phần mềm đã được viết

—Thực tế việc 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:

— Không đủ về số lượng

Nguyên nhân khách quan

—Số lượng phần mềm phải được hiểu là số đầu/loại phần mềm được sử dụng cho từng mục tiêu ứng dụng

— Nhu cầu sử dụng phần mềm là rất lớn

— Nhiều ngành nghề cần dùng phần mềm máy tính

—Mỗi ngành nghề cần nhiều loại phần mềm khác nhau

Trang 3

Nguyên nhân khách quan

—Chất lượng phần mềm cũng chưa đáp ứng tốt

hoàn toàn người sử dụng:

— Tính customize rất cao của sản phẩm phần mềm.

— Trình độ sử dụng khác nhau và điều kiện hạ tầng

ứng dụng khác nhau

—Nhu cầu phần mềm thường rất cấp bách

— Tầm nhìn và chiến lược chưa đầu đủ của người sử

dụng

— Không có kế hoạch lâu dài

— Phải thay đổi theo từng đối tượng người dùng

Nguyên nhân chủ quan

—Tính chuyên nghiệp trong sản xuất phần mềm chưa cao: Các dữ liệu quan sát được (1979)

—Theo kiểm toán Mỹ

— 50% vượt ngân sách

— 60% trễ

— 40% không đúng yêu cầu trong đó 22% phải thiết kế lại toàn bộ và 29% thất bại hoàn toàn

—Theo thống kê của Tom de Marco (1979)

— 25% hệ phần mềm lớn thất bại

Nguyên nhân chủ quan

—Theo thống kê của Copets Jones (1991)

—Trung bình các hệ thông tin quản lý trể 1 năm

—Vượt ngân sách 100%

Nguyên nhân chủ quan

—Lý do của những hệ quả trê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

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

—Phải viết lại phần mềm mỗi khi có sự thay đổi

về ngôn ngữ, phần cứng hoặc hệ điều hành

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

Trang 4

Nguyên nhân chủ quan

—Độ 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

—Làm việc nhóm không đúng kỷ luật gây ra các lỗi

→Cần phải có một/nhiều chuẩn quy trình trong

sản xuất phần mềm để nâng cao tính chuyên

nghiệp của nền sản xuất đặc biệt nầy: Cần công

nghệ cho công nghiệp phần mềm

Tiến hóa của phần mềm

—Phần mềm vốn dĩ là phức tạp

—Yêu cầu sử dụng phần mềm không ngừng thay đổi

—Sự tiến bộ nhanh của hạ tầng – phần cứng

→Sự tiến hóa phần mềm là tất yếu

—Xu hướng chung:

— Phần mềm ngày càng phức tạp

— Chi phí phần mềm ngày càng cao

— Phần mềm trở thành ngành công nghiệp khổng lồ

— Năng suất lập trình thấp, giá thành cao

Tiến hóa của phần mềm

—Giai đoạn thứ nhất: (1955 - khoảng 1965-1970)

—Tính toán và quản lý rời rạc

—Đặc tả bằng ngôn ngữ thường

—Xử lý theo lô

—Môi trường lập trình có tính cá nhân

—Sản xuất đơn chiếc

Tiến hóa của phần mềm

—Giai đoạn 2: (từ khoảng 1970 - 1985)

— Hệ thống thời gian thực

— Mạng cục bộ nối các CSDL

—Đặc tả chú trọng đến input/output và luồng chuyển

dữ liệu

—Thiết kế chú trọng đến cấu hình hệ thống

—Giải thuật và dữ liệu có cấu trúc

Trang 5

Tiến hóa của phần mềm

—Giai đoạn 3: (Khoảng 1985 - 2000)

— PC phát triển mạnh

—Mạng diện rộng, Internet

—Đặc tả hướng đối tượng, các CASE phát triển

— Thiết kế chú trọng đến tính mô-đun, hướng đối

tượng, giao thức (protocol) và giao diện

(interface)

—Ngôn ngữ: Ngôn ngữ bậc cao, hướng đối tượng

—Phát triển HT: có phương pháp, công cụ tự động

Tiến hóa của phần mềm Yêu cầu Tính toán quản lý nhỏ

Thời gian thực,

đa nhiệm, nối mạng cục bộ, CSDL

PC, nối mạng diện rộng, Internet

Đặc tả Ngôn ngữ

thường

Đầu vào + đầu ra; dòng chuyển dữ liệu

Hướng đối tượng, vòng đời PM, CASE

Thiết kế Giải thuật Cấu hình hệ thống, cấu

trúc GT và DL

Tinh môđun, đối tượng, giao thức, giao diện

Cài đặt Ct đơn giản;

xữ lý Batch

HĐH, hệ thống CSDL thường trực

Dùng lại PM đóng gói, ngôn ngữ hướng đối tượng

55 60 65 70 75 80 85 90 95 2000

Các loại phần mềm

—Phần mềm hệ thống

—Các chương trình viết để phục vụ cho chương

trình khác

—Xử lý thông tin phức tạp nhưng xác định (như

hệ điều hành, trình biên dịch…)

—Đặc trưng bởi tương tác chủ yếu với phần

cứng máy tính

—Phục vụ nhiều người dùng

—Cấu trúc dữ liệu phức tạp, nhiều giao diện

ngoài

—Phần mềm ứng dụng

Các ứng dụng

các chương trình thực hiện tự động hóa một

số các nhiệm vụ nghiệp vụ

một số đặc điểm riêng Các đặc điểm chung thường là:

—Đặc tính (Characteristics)

—Tính hồi tiếp (Responsiveness)

—Kiểu của (loại) ứng dụng (Type)

Trang 6

Đặc tính của ứng dụng

— Dữ liệu

Đầu vào Đầu ra Lưu trữ và tìm kiếm

— Xử lý

— Ràng buộc

Thứ tự trước, thứ tự sau, thời gian, cấu trúc,

điểu khiển, suy diễn

— Giao diện

Người sử dụng, thủ công, tự động

Ràng buộc về thời gian

Thời gian xử lý Thời gian phân chia cho một quá trình xử lý Thời gian yêu cầu với các quy trình xử lý bên ngoài

Thời gian xử lý đồng bộ Thời gian trả lời cho quá trình xử lý với giao diện bên ngoài

Ràng buộc về suy diễn

—Ràng buộc về suy diễn có thể xẩy ra với các

ứng dụng

—Ràng buộc về suy diễn liên quan đến tri thức

hệ thống và giới hạn trên loại tri thức nầy

—Ràng buộc về suy diễn liên quan đến công cụ

ngôn ngữ nào đã xây dựng nên hệ thống

Khả năng hồi đáp

Là thời gian sử dụng và đáp ứng yêu cầu từ người dùng của ứng dụng Chia làm 3 loại:

—Xử lý theo lô (batch oriented)

—Xử lý trực tuyến (on-line)

—Xử lý thời gian thực (realtime)

Trang 7

So sánh 3 mô hình xử lý

Mục so sánh Theo lô Trực tuyến Thời gian thực

Tổng số dữ liệu Lớn Nhỏ-lớn Trung bình

Giám sát dữ liệu Không Có Có

Tỷ lệ cập nhật dữ

liệu lưu trữ

Hỏi Theo lô Trực tuyến Trực tuyến

Báo cáo Dài, hình thức Ngắn, không hình

thức

Ngắn, không hình thức

Dự phòng/khôi

phục

Lưu file ra dĩa Sử dụng 1 trong

các cách sau: lưu file ra dĩa, ghi nhật ký giao dịch, tạo bảng ghi trạng thái trước và sau, tạo file ảnh

Sử dụng 1 trong các cách sau: lưu file ra dĩa, ghi nhật ký giao dịch, tạo bảng ghi trạng thái trước và sau, tạo file ảnh

So sánh 3 mô hình xử lý

Mục so sánh Theo lô Trực tuyến Thời gian thực

Chi phí xây dựng Thấp Trung bình Cao Chi phí hoạt động Thấp Trung bình khá Cao Tận dụng Tài nguyên máy Thời gian Thời gian

Độ phức tạp xây dựng Đơn giản Vừa Phức tạp Tốc độ xử lý các giao dịch Nhanh Chậm Trung bình Tốc độ xử lý 1 giao dịch Chậm Trung bình Nhanh

Sử dụng hệ thống quản lý CSDL và giao tiếp dữ liệu

Có thể hay không Có khả năng Có Đồng bộ hoạt động Chậm Trung bình nhanh

Kiểu của ứng dụng

Ứng dụng hướng giao dịch(Transaction

Processing Systems-TPS)

Hệ thông tin quản lý(Management

Information System-MIS)

Hệ hỗ trợ ra quyết định(Decision Supports

System-DSS)

—Hệ thông tin thi hành (Executive Information

system-EIS)

—Hệ hỗ trợ quyết định theo nhóm (Group DSS)

Hệ chuyên gia(Expert System –ES)

Các hệ thống nhúng (Embedded systems)

Hệ TPS

Trang 8

Cấu trúc TPS trực tuyến Cấu trúc TPS theo lô

Trang 9

Hệ DSS Cấu trúc DSS

Trang 10

Hệ ES Công nghệ phần mềm – định nghĩa

Bauer[1969]: SE là việc thiết lập và sử dụng các nguyên lý công nghệ đúng đắn để thu được phần mềm 1 cách kinh tế vừa tin cậy vừa làm việc hiệu quả trên các máy thực

Parnas [1987]: SE là việc xây dựng phần

mềm nhiều phiên bản bởi nhiều người

Sommerville [1995]: SE là một nguyên lý kỹ nghệ liên quan đến tất cả các mặt (lý thuyết, phương pháp và công cụ) của sản phần mềm

Công nghệ phần mềm – định nghĩa

IEEE [1993]:

1. Việc áp dụng phương pháp tiếp cận có hệ

thống, bài bản và được lượng hóa trong

phát triển, vận hành và bảo trì phần mềm;

2. Nghiên cứu các phương pháp tiếp cận được

dùng trong (1)

Pressman[1995]: SE là bộ môn tích hợp cả

Công nghệ phần mềm – định nghĩa

— Là một quá trình kỹ nghệ gồm ba mặt:

—Nhằm tạo ra phần mềm hiệu quả,với các giới hạn cho trước

Trang 11

Khái niệm

Thủ tục

và cách thức thực hiện

phẩm bàn giao

Khái niệm

Phương pháp

phương pháp riêng

—Phương pháp phân tích

—Phương pháp thiết kế

—Phương pháp lập trình

—Phương pháp kiểm thử

Khái niệm

Công cụ

—Cung cấp sự trợ giúp tự động / bán tự động cho

từng phương pháp

–CASE-các công cụ phần mềm được chuẩn hóa để trợ

giúp các công đoạn khác nhau trong quá trình

phát triển

—Compiler, debugger

—Hỗ trợ phân tích, thiết kế (Rwin,Modeler,

Oracle Designer, Rational Rose, )

Cụ thể

—Efficiency: Phần mềm được sản xuất trong thời gian và điều kiện vừa phải Phần mềm vận hành đúng mức độ yêu cầu về công việc và thời gian

—Reliablity: Phần mềm vận hành ổn định và tương tác được với các hệ thống ứng dụng

—Usability: Phần mềm có thể dùng được bởi người sử dụng và với môi trường mà người sử dụng đang có Chú ý tới giao diện, điều kiện hệ thống,…

Trang 12

Cụ thể

—Modifiability: Phần mềm có thể được thay đổi

dể dàng, nhanh chóng khi yêu cầu của người sử

dụng thay đổi

—Portability: Phần mềm có thể chuyển đổi dễ

dàng sang các hệ thống khác mà không cần phải

điều chỉnh lớn Chỉ cần recompile nều cần thiết

là tốt nhất

—Testability: Phần mềm có thể được kiểm tra dễ

dàng Tốt nhất là được modul hóa

Cụ thể

—Reusability: Phần mềm hay một phần có thể được tái sử dụng cho các ứng dụng khác Các modul có thiết kế tốt, độc lập và giao tiến đơn giản, cả về tình tương thích công nghệ phát triển

—Maintainability: thiết kế của phần mềm có thể được hiểu dễ dàng cũng như chuyển giao thuận tiện cho người khác trong quá trình điều chỉnh, nâng cấp hay thay đổi theo yêu cầu

Cụ thể

—Interoperability: Phần mềm vận hành ổn định và

đúng như mong đợi Trên hệ thống nhiều người

dùng (multi users) phần mềm vẫn hoạt động

được với các vận hành khác của hệ thống

—Correctness: Phần mềm phải tính toán đúng và

tạo ra kết quả đúng và đúng với mục tiêu ứng

dụng của người dùng

Lịch sử phát triển

—Đề xướng, hình thành (70s) Các phương pháp lập trình và cấu trúc dữ liệu

—Khái niệm về tính môđun

—Khái niệm thiết kế,lập trình top-down, chi tiết hóa từng bước (N With)

—Lập trình có cấu trúc (Dijkstra)

—Phương pháp luận về qui trình thiết kế;phương

Trang 13

Lịch sử phát triển

—Tăng trưởng (nửa đầu 80s)

—Xuất hiện các phương pháp phát triển hệ thống

— Công nghệ CSDL (mô hình quan hệ)

— Phân tích, thiết kế hướng cấu trúc

—Các bộ công cụ phát triển

— Công cụ trợ giúp phân tích thiết kế

— Bộ khởi tạo chương trình (biên dịch)

— Các ngôn ngữ bậc cao (FoxPro, SQL )

Lịch sử phát triển

— Phát triển (từ giữa 80s) Hoàn thiện công nghệ cấu trúc, ra đời công nghệ đối tượng

— Nhiều mô hình hướng cấu trúc được chuẩn hóa

— CASE hoàn thiện, đạt mức tự động hóa cao

— Công nghệ hướng đối tượng bắt đầu phát triển:

— Quy trình RUP

— Ngôn ngữ mô hình hóa thống nhất(UML)

— Các công cụ phần mềm đầy đủ (ROSE, JBULDER, )

— Sử dụng lại chiếm vị trí quan trọng trong phát triển

Lịch sử phát triển

—Chuẩn quản lý được công nhận (CMM,

SO9000-03)

—Nhiều mô hình tổ chức làm phần mềm được

đề xuất

—Nhiều công cụ trợ giúp quản lý dự án hoàn

thiện

II Quy trình phát triển phần mềm

1 Cách giải quyết vấn đề

2 Một số mô hình

3 Các công đoạn chính

4 Các tiêu chuẩn

Trang 14

Quy trình phát triển phần mềm

Quy trình phát triển phần mềm (còn gọi tắt

là quy trình phần mềm) là một tập hợp các

hành động phải được thực hiện trong quá

trình xây dựng một hệ thống phần mềm

Cách giải quyết vấn đề

—Từ lập trình đi lên

—Các tri thức liên quan đến lập trình

—Tri thức về cách hoạt động của công cụ

xử lý thông tin (tư duy giải thuật)

—Tri thức về cách triển khai, giải quyết vấn đề bằng máy tính (tư duy hệ thống)

Cách giải quyết vấn đề

—Các giai đoạn của lập trình

1. Nhận yêu cầu tính toán

2. Tìm hiểu bài toán đặt ra

3. Phát triển giải thuật giải quyết bài toán

4. Chuyển thuật toán thành chương trình máy

tính

5. Chạy chương trình để kiểm tra và sửa chữa

Cách giải quyết vấn đề

—Vấn đề, giải pháp và giải quyết vấn đề

toán

Giải pháp

Trang 15

Cách giải quyết vấn đề

—Để giải quyết vấn đề, giữa khách hàng và

người cung cấp phải có các văn bản pháp lý

ràng buộc, dưới dạng các dự án và hợp đồng

Dự án là nổ lực giải quyết vấn đề

Phương pháp xác định ra cách tiến hành các

nổ lực giải quyết vấn đề

Tiến trìnhlà việc thực hiện của phương

pháp

Cách giải quyết vấn đề

Góc nhìn chung về giải quyết vấn đề

Cách giải quyết vấn đề

Góc nhìn chi tiết về giải quyết vấn đề

Các nhân tố

Trang 16

Một số mô hình phát triển phần mềm

—Mô hình thác nước

—Mô hình xây dựng tiến triển

—Công nghệ phần mềm dựa thành phần

—Mô hình phát triển lặp lại, tăng thêm

—Mô hình xoắn ốc

Mô hình thác nước

Trang 17

Mô hình phát triển lặp lại, tăng thêm Mô hình xoắn ốc

Các công đoạn chính tổng quát

Giai đoạn đặc tả: xác định các tính năng và điều kiện

hoạt động của hệ thống (thu thập yêu cầu và phân

tích)

Giai đoạn phát triển: Thiết kế phần mềm (software

design), viết code (code generation)

Giai đoạn đánh giá: kiểm tra phần mềm (software

testing), kiểm tra tính hợp lý của phần mềm.

Giai đoạn bảo trì, cải tiến: Sửa lỗi (correction), thay

đổi môi trường thực thi (adaptation), tăng cường

(enhancement)

Đặc tả

Trang 18

Phát triển

— Thiết kế

— Viết code

Đánh giá phần mềm

— Kiểm tra

— Xem xét lại

— Kiểm thử hệ thống

— The capability Maturity Model (CMM) của Software Engineering Institue (SEI) - Đại học Carnegie Mellon: Chú trọng đến tính hệ thống

và khả năng quản trị của các công ty phần mềm hơn là một quy trình (process) cụ thể

— The process Improvement Paradigm (PIP) của Software Engineering Laboratory (SEL) –

Trang 19

Các tiêu chuẩn trong CNPM

—Các chuẩn khác của Department of Defense

MIL – STD 2167A ; STD 1574A ;

MIL-STD 882C

—The electronic Industries Association (EIA)

chuẩn SEB-6-A

—The European ESPRIT project

—International Standards Organisation - ISO

9001

—United Kingdom MOD 0055

Chuẩn CMM

Initial (Level 1)

Repeatable (Level 2)

Defined (Level 3)

Managed (Level 4)

Optimized (Level 5)

•Largely Ad-hoc

•Phụ thuộc vào cá nhân

•Bắt đầu có khả năng quản lý

•Quản lý dựa vào kinh nghiệm tương tự

•Xác lập các tiêu chuẩn quản lý

•Các vấn đề documentation đã xác lập

•Có khả năng dự đoán (Predictability)

•Các quy trình quản lý và tiêu chuẩn

được chi tiết hóa

•Continuous Improvement

•Các hệ thống quality control và qualify đã

được sử dụng hiệu quả

III Nghề nghiệp kỹ sư phần mềm

1 Mục tiêu và những kỹ năng

2 Loại hình công việc

Mục tiêu & những kỹ năng

Mục tiêu:

— Sản xuất ra các sản phẩm phần mềm có chất lượng cao

và phù hợp với quy trình phát triển chuẩn mực

Những kỹ năng cần có:

— Đinh danh, đánh giá, cài đặt, lựa chọn một phương pháp luận thích hợp và các công cụ CASE

— Biết lựa chọn ngôn ngữ, phần cứng, phần mềm

— Quản lý, lập sơ đồ và kiểm soát việc phát triển tiến trình

— Biết cách kiểm tra chương trình sẽ áp dụng

— Lựa chọn và sử dụng kỹ thuật bảo trì phần mềm

— Đánh giá và quyết định khi nào loại bỏ hay nâng cấp

Ngày đăng: 20/01/2014, 09:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w