18
03/05/2018 1 Chương 1. SPHÁT TRIN CA HTHNG THÔNG TIN TS. Vũ Chí Cường - 2018 Các phương pháp phân tích và thiết kế hệ thống hiện đại Ni dung Hệ thống thông tin • Khái niệm • Các đặc trưng • Phân loại Sự phát triển hệ thống • Các mô hình phát triển • Cách tiếp cận phát triển hệ thống • Quy trình phát triển hợp nhất

Ch ươ ng 1. Ự ỂN C ỦA H Ệ TH ỐNGhome.vinhuni.edu.vn/cuongvcc/wp-content/uploads/... · sinh ra các kết quả đầu ra (output) nhờ một quá ... Thu thập và

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

03/05/2018

1

Chương 1. SỰ PHÁT TRIỂN CỦA HỆ THỐNG

THÔNG TIN

TS. Vũ Chí Cường - 2018

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Nội dung

� Hệ thống thông tin• Khái niệm• Các đặc trưng• Phân loại

� Sự phát triển hệ thống• Các mô hình phát triển• Cách tiếp cận phát triển hệ thống• Quy trình phát triển hợp nhất

03/05/2018

2

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Hệ thống thông tin

� Khái niệm– Hệ thống là tập hợp gồm

nhiều phần tử, có các mốiquan hệ ràng buộc lẫnnhau và cùng hoạt độnghướng tới một mục đíchchung

� Các phần tử có thể đadạng, có thể trừu tượng, cóthể là các thực thể phức tạp(hệ thống con),…

� Các quan hệ ràng buộc lẫnnhau có thể là các quan hệổn định lâu dài, có thể làquan hệ bất thường, tạmthời.

� Mục đích của hệ thống thểhiện ở chỗ hệ thống nhậnnhững cái vào để chế biếnthành những cái ra nhấtđịnh.

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Hệ thống thông tin

� Hệ thống thông tin (hệ thống tin học) làhệ thống có mục đích xử lý thông tin và cósự tham gia của máy tính

� Sự tham gia của máy tính ở các mức độ:• Mức thấp: giải quyết một số công việc đơn lẻ

(soạn thảo, tính toán báo cáo,…)• Mức trung bình: cùng với con người cộng tác,

phân công để thực hiện một quy trình quản lýphức tạp (hệ thống quản lý hành chính, dịchvụ công, điều hành tác nghiệp,…)

• Mức cao: đóng vai trò chủ chốt (chương trìnhđiều khiển, trí tuệ nhân tạo,…)

03/05/2018

3

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Hệ thống thông tin

� Hệ thống thông tin (phần mềm) có thể xem• là tổ hợp các phần cứng, phần mềm có quan hệ

qua lại với nhau• cùng hoạt động hướng tới mục tiêu chung thông

qua việc nhận các dữ liệu đầu vào (input) và sảnsinh ra các kết quả đầu ra (output) nhờ một quátrình xử lý biến đổi có tổ chức

� Các thành phần• Hệ thống các câu lệnh• Các cấu trúc dữ liệu• Các tài liệu mô tả các thao tác và cách sử dụng hệ

thống

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Các đặc trưng của hệ thống

� Tính nhất thể hóa� Tính tổ chức, có thứ bậc� Tính cấu trúc� Biến đổi theo thời gian và không gian� Các đặc trưng khác

• Tính tiện dụng• Khả năng bảo hành và duy trì hoạt động• Tính tin cậy• Tính hiệu quả

03/05/2018

4

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Phân loại

� Hệ thống thông tin quản lý (ManagementInformation System - MIS):

� Các hệ thống kỹ thuật (Technical Systems),những hệ thống tự động hoá sản xuất haycòn gọi là các hệ thống điều khiển các quátrình

� Các hệ thống nhúng thời gian thực(Embedded Real_time System).

� Phần mềm hệ thống (System Software).� Các hệ thống tự động hoá văn phòng

(Automated Office Systems).

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Tiến trình phát triển hệ thống

� Khái niệm� Các mô hình phát triển� Các tiếp cận phát triển hệ thống� Quy trình phát triển hợp nhất

03/05/2018

5

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Tiến trình phát triển hệ thống

� Tiến trình (process) là xác định ai (who) làmgì (what) và làm khi nào (when) và làm thếnào (how) để đạt tới mục đích mong muốn.

� Tiến trình phát triển hệ thống phần mềm(Software Development Process – SDP) làtiến trình xây dựng sản phẩm phần mềm haynâng cấp phần mềm đang có

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Tiến trình phát triển hệ thống

� Tiến trình phát triển phần mềm mô tả tậpcác hoạt động cần thiết để chuyển đổi từyêu cầu của người sử dụng sang hệ thốngphần mềm

� Các bước1. Thu thập và phân tích yêu cầu2. Thiết kế hệ thống3. Lập trình và kiểm thử modun4. Tích hợp và kiểm thử hệ thống5. Bảo trì hệ thống

03/05/2018

6

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Thu thập và phân tích yêu cầu

� Yêu cầu người sử dụng xác định mục tiêu phát triểnphần mềm• Khách hàng và kỹ sư tin học xác định các dịch vụ mà hệ thống cần

có (yêu cầu chức năng của hệ thống)

� Yêu cầu chức năng mô tả cái mà hệ thống phải làm(What) không mô tả hệ thống làm như thế nào (How)• Khách hàng cũng có các ràng buộc phi chức năng: thời gian đáp

ứng, chuẩn ngôn ngữ, bảo mật,...

� Thu thập và phân tích yêu cầu là công việc rất khókhăn• Các yêu cầu thường là không hoàn chỉnh• Yêu cầu của khách hàng thường ñược mô tả bằng khái niệm,• Đối tượng và các thuật ngữ khó hiểu với kỹ sư tin học• Các yêu cầu của khách hàng thường thiếu cấu trúc, thiếu chính

xác, dư thừa, phỏng chừng, thiếu nhất quán• Các yêu cầu thiếu tính khả thi

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Thu thập và phân tích yêu cầu

� Mục tiêu• Hình thành tài liệu đặc tả yêu cầu (Requirement Specification)

� Tài liệu đặc tả yêu cầu được sử dụng như• Cam kết giữa khách hàng và tổ chức phát triển hệ thống về cái mà

hệ thống có thể làm (và cái mà hệ thống không thể làm)• Cơ sở để đội ngũ phát triển phát triển hệ thống• Mô hình tương đối đầy đủ về cái hệ thống đòi hỏi• Tiến trình phân tích yêu cầu bao gồm các hoạt động lặp

03/05/2018

7

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Các hoạt động lặp

� Hiểu lĩnh vực vấn đề (understanding)• Phân tích viên trình bày hiểu biết về lĩnh vực vấn đề• Khám phá các quan niệm• Suy ra các yêu cầu khách hàng

� Thu thập yêu cầu (requirement capture)• Phân tích viên cần có cách thu thập nhu cầu khách hàng

sao cho họ có thể cùng tham gia vào dự án• Phân tích viên, khách hàng, chuyên gia lĩnh vực ứng

dụng và người sử dụng hệ thống cùng phát hiện và thuthập yêu cầu

• Kỹ năng trừu tượng là rất quan trọng ñể thu thập nhữngcái chính, bỏ qua cái không cần thiết

� Phân lớp (classification)� Đánh giá (validation)� Nghiên cứu khả thi (feasibility study)

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Các hoạt động lặp

� Hiểu lĩnh vực vấn đề (understanding)� Thu thập yêu cầu (requirement capture)� Phân lớp (classification)

• Đầu vào của hoạt động này là tập hợp phi cấu trúc của cácyêu cầu thu thập được trong pha trước để tổ chức chúngthành các nhóm dính liền nhau

• Gắn mức ưu tiên cho các yêu cầu theo tầm quan trọng củachúng đối với khách hàng và người sử dụng

� Đánh giá (validation)• Kiểm tra xem các yêu cầu có nhất quán và đầy đủ• Giải quyết các mâu thuẫn giữa các yêu cầu

� Nghiên cứu khả thi (feasibility study)• Dự báo khả năng thỏa mãn sử dụng phần cứng, phần mềm

của các yêu cầu đã nhận ra• Quyết định các bước tiếp theo nếu hệ thống đề xuất có hiệu

quả

03/05/2018

8

Các phương pháp phân tích và thiết kế hệ thống hiện đại

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

� Khi nào kết thúc phân tích yêu cầu?• Không có quy luật nhất định

� Để tiến tới bước phát triển phần mềm tiếp theo hãy trả lời cáccâu hỏi sau:• Khách hàng, người sử dụng cuối cùng và người phát triển đã hiểu trọn vẹn

hệ thống?• Mô hình của hệ thống đòi hỏi xây dựng đã được hình thành đầy đủ:

� có đầy đủ các chức năng (dịch vụ)?� có đầy đủ đầu vào - đầu ra?� cần loại dữ liệu nào?

� Đặc tả yêu cầu và mô hình của hệ thống tại mức này cần phảiđược hiệu chỉnh, bổ sung khi cần thiết.

� Đặc tả yêu cầu là thông báo chính thức về các đòi hỏi của hệthống phải được phát triển. Nó không phải là tài liệu thiết kế.

� Cách thức mô tả đặc tả yêu cầu• Ngôn ngữ đặc tả• Ký pháp đồ họa

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Thiết kế hệ thống

� Sau khi có đặc tả yêu cầu, hai tiến trình thiết kế hệthống tiếp theo• Thiết kế kiến trúc (logíc)

� Phân hoạch các yêu cầu thành các thành phần� Tài liệu thiết kế kiến trúc mô tả mỗi thành phần cần làm gì và chúng

tương tác với nhau như thế nào để hình thành các chức năng hệ thống• Thiết kế chi tiết (vật lý)

� Thiết kế từng thành phần� Tài liệu thiết kế chi tiết mô tả mỗi thành phần và cả hệ thống phải làm

cái nó cần làm như thế nào

� Các hoạt động của thiết kế

03/05/2018

9

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Thiết kế hệ thống

� Tài liệu của pha thiết kế kiến trúc là mô hình kiến trúc• Đặc tả thành phần, mô tả cái mà thành phần phải làm bằng

cách chỉ ra giao diện giữa các thành phần• Mô hình hệ thống ở đây chủ yếu mô tả “what”, ít mô tả

“how”� Thiết kế chi tiết thực hiện nhiều bước làm mịn mô

hình kiến trúc� Mô hình thiết kế chi tiết mô tả:

• thiết kế chức năng của mỗi thành phần• thiết kế giao diện của mỗi thành phần

� Mô hình hệ thống tại mức này được xem như hệ thốngcốt lõi• nó là cụ thể• phụ thuộc cài đặt• xác định “How”

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Lập trình và kiểm thử modun

� Mỗi thành phần trong pha thiết kế đượchiện thực thành một modun chương trình

� Kiểm chứng hay kiểm thử mỗi modunchương trình theo đặc tả có từ pha thiếtkế

03/05/2018

10

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Tích hợp và kiểm thử hệ thống

� Tổ hợp các modun chương trình thành hệthống

� Kiểm thử hệ thống chương trình để đảmbảo đáp ứng đầy đủ yêu cầu

� Khi người phát triển thỏa mãn với sảnphẩm• khách hàng kiểm thử hệ thống

� Pha này kết thúc khi khách hàng chấpnhận sản phẩm

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Bảo trì hệ thống

� Pha này bắt đầu khi hệ thống được cài đặt sửdụng thực tế, sau khi đã cấp phát sản phẩm chokhách hàng

� Bảo trì bao gồm mọi thay đổi sản phẩm để kháchhàng đồng ý rằng họ đã thỏa mãn với sản phẩm.

� Bảo trì bao gồm• Sửa phần mềm

� loại bỏ các lỗi mà không phát hiện trong các pha trước đó• Nâng cấp phần mềm

� Hiệu năng: Bổ sung chức năng, tăng tốc độ thực hiện chươngtrình

� Thích nghi: Các thay đổi cho phù hợp với môi trường phầnmềm hoạt động thay đổi, thí dụ yêu cầu mới của chính phủ

� Thời gian trung bình:• sửa lỗi 17,5%, hiệu năng 60%, thích nghi 18%.

03/05/2018

11

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Tiến trình phát triển hệ thống

� Khái niệm� Các mô hình phát triển

• Mô hình thác nước (Waterfall).• Chu trình tăng trưởng• Chu trình xoắn ốc

� Các tiếp cận phát triển hệ thống� Quy trình phát triển hợp nhất

Các phương pháp phân tích và thiết kế hệ thống hiện đại

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

� Do Royce đề xuất năm 1970

03/05/2018

12

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Chu trình tăng trưởng

� Do D.R.Graham đề xuất năm 1989

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Chu trình xoắn ốc

� Do Boehm đề xuất năm 1988

03/05/2018

13

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Các tiếp cận trong phát triển hệ thống

� Cách tiếp cận hướng chức năng(Functional – Oriented)

� Cách tiếp cận hướng đối tượng (Object –Oriented)

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Cách tiếp cận hướng chức năng

� Dựa vào chức năng, nhiệm vụ là chính� Phân rã chức năng và làm mịn dần theo cách từ trên xuống

(top – down)• Bị ảnh hưởng bởi các ngôn ngữ lập trình ALGOL, Pascal, C• Các hàm của hệ thống phần mềm được xem như tiêu chí cơ sở khi

phân rã� Tách chức năng khỏi dữ liệu� Các đơn thể chức năng trao đổi với nhau bằng cách truyền

tham số hay sử dụng dữ liệu chung.

03/05/2018

14

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Cách tiếp cận hướng chức năng

� Tiến trình phát triển tập trung vào thông tin màhệ thống quản lý• Người phát triển hệ thống hỏi người sử dụng cần thông

tin gì• Thiết kế CSDL để lưu trữ thông tin• Xây dựng màn hình nhập liệu• Hiển thị báo cáo

� Chỉ tập trung vào thông tin, ít quan tâm đến cáigì thực hiện với thông tin hay hành vi hệ thống

� Tiệm cận này gọi là tiệm cận hướng dữ liệu• Đã được áp dụng nhiều năm và tạo ra hàng ngàn hệ

thống• Thuận tiện cho thiết kế CSDL• Bất tiện cho xây dựng các hệ thống tác nghiệp

� yêu cầu hệ thống thay đổi theo thời gian

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Cách tiếp cận hướng chức năng

� Các hạn chế của tiếp cận hướng chức năng:• Sản phẩm hình thành từ giải pháp này khó bảo trì

� Mọi chức năng đều chia sẻ khối dữ liệu lớn� Các chức năng phải hiểu rõ dữ liệu được lưu trữ thế nào� Khi thay đổi cấu trúc dữ liệu kéo theo thay đổi mọi hàm

liên quan

• Tiến trình phát triển không ổn định� Thay đổi yêu cầu kéo theo thay đổi các chức năng� Rất khó bảo toàn kiến trúc thiết kế ban đầu khi hệ

thống tiến hóa

• Tiếp cận này không hỗ trợ lập trình bằng ngôn ngữhướng đối tượng như C++, Java, Smalltalk,...

03/05/2018

15

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Cách tiếp cận hướng đối tượng

� Mục tiêu: đưa ra những sản phẩm phầnmềm tin cậy, dễ mở rộng, dễ thíchnghi, phù hợp với các yêu cầu củakhách hàng.

� Các đặc trưng• Đặt trọng tâm vào dữ liệu (thực thể)• Xem hệ thống như là một tập các thực thể, các đối

tượng• Các lớp đối tượng trao đổi với nhau bằng các thông

điệp• Đảm bảo tính mở và thích nghi• Hỗ trợ sử dụng lại và cơ chế kế thừa

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Cách tiếp cận hướng đối tượng

� Các nguyên tắc hướng đối tượng• Tính kế thừa• Tính đa hình• Tính đóng gói• Tính trừu tượng

03/05/2018

16

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Phát triển ngôn ngữ lập trình

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Quy trình phát triển hợp nhất

� Rational Unified Process - RUP• Là Software Engineering process• Là sản phẩm tiến trình (process product) do

Rational Software phát triển và bảo trì (2012)• RUP hỗ trợ các hoạt động giữa các nhóm, phân

chia công việc cho thành viên trong nhóm,trong từng giai đoạn của quá trình phát triểnphần mềm

• RUP sử dụng hệ thống ký hiệu trực quan củaUML

03/05/2018

17

Các phương pháp phân tích và thiết kế hệ thống hiện đại

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

� Các tiến trình (pha)• Khởi đầu• Triển khai• Xây dựng• Chuyển giao

� Các công đoạn• Mô hình hóa nghiệp vụ• Xác định yêu cầu• Phân tích và thiết kế• Cài đặt• Kiểm thử• Triển khai• Quản lý cấu hình và thay

đổi• Quản lý dự án• Quản lý môi trường

Các phương pháp phân tích và thiết kế hệ thống hiện đại

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

� Các tiến trình (pha)• Khởi đầu• Triển khai• Xây dựng• Chuyển giao

� Các công đoạn• Mô hình hóa nghiệp vụ• Xác định yêu cầu• Phân tích và thiết kế• Cài đặt• Kiểm thử• Triển khai• Quản lý cấu hình và thay

đổi• Quản lý dự án• Quản lý môi trường

03/05/2018

18

Các phương pháp phân tích và thiết kế hệ thống hiện đại

Tiến trình 10 bước