Công nghệ học 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 chất lượng mong muốn.
Lịch sử phát triển của công nghệ phần mềm
1. Giai đoạn 1 (1950 – giữa 1960):
- Xử lý theo lô, xử lý tập trung, ít xử lý phân tán, ít sửa đổi phần mềm.
2. Giai đoạn 2 (từ giữa 1960 đến giữa 1970) :
- Hệ thống đa chương trình và đa nguời dùng.
- Bắt đầu cuộc “khủng hoảng” phần mềm.
3. Giai đoạn 3 (từ giữa 1970 đến giữa 1980)
- Sự phát triển và sử dụng rộng rãi máy tính cá nhân
- Sự phát triển của các công ty phần mềm
4. Giai đoạn 4 (từ giữa 1980 đến nay)
- Phần cứng ngày càng phát triển
- Hệ thống phần mềm ngày càng đa dạng, phong phú, xử lý ngày càng phức
tạp, công nghệ ngày càng phát triển
30 trang |
Chia sẻ: tieuaka001 | Lượt xem: 558 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Đề tài Tìm hiểu quy trình phát triển phần mềm hướng đối tượng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ương pháp Coad and Yourdon
• Phương pháp Jacobson: Quy trình phát triển so Jacobson đề nghị:
− Xem xét sự thích nghi để mô hình phân tích lí tưởng phù hợp với môi
trường thế giới thực.
− Tạo ra các khối như các đối tượng thiết kế cơ bản.
− Tạo ra một biểu đồ tương tác cho biết cách các kích thích được chuyển đổi
giữa các khối.
− Tổ chức các khối trong hệ thống con.
− Xem xét lại công việc thiết kế.
• Phương pháp Rambaugh: Quy trình phát triển so Jacobson đề nghị:
− Thực hiện thiết kế hệ thống.
− Thiết kế đối tượng quản lí.
− Thực hiện các kĩ thuật điều khiển đã xác định trong thiết kế hệ thống.
− Điều chỉnh các cấu trúc lớp để tăng sức mạnh kế thừa.
− Thiết kế thông điệp để thực hiện các mối quan hệ đối tượng.
− Đóng gói các lớp và các liên kết trong một module.
20
• Phương pháp Wirfs – Brock: Quy trình phát triển do Wirfs – Brock đề xuất:
− Xây dựng giao thức cho mỗi lớp.
− Tạo ra đặc tả thiết kế cho mỗi hệ thống con.
− Mô tả mỗi hệ thống con theo cách mà nó thực hiện.
− Thiết kế đối tượng.
− Thiết kế thông điệp.
3. Quy trình thiết kế hướng đối tượng
• Thiết kế hệ thống
+ Đặt tên cho các hệ thống con và các thành phần cơ bản
+ Định danh các hệ thống con cho bộ xử lí.
+ Lựa chọn chiến lược quản trị cơ sử dữ liệu.
+ Xác định chuẩn cho phát triển.
+ Xác định các yêu cầu cài đặt.
• Xác định đối tượng
− Một mô tả của đối tượng có thể là một trong 2 dạng sau:
+ Mô tả giao thức: Thiết lập giao diện của đối tượng bằng cách xác định
mỗi thông điệp mà đối tượng có thể nhận và các phương thức liên quan
đối tượng thực hiện khi nhận được thông điệp.
+ Mô tả thực hiện: Chỉ ra chi tiết thực hiện cho mỗi phương thức bằng
cách chuyển thông điệp giữa các đối tượng. Chi tiết thực hiện bao gồm
thông tin về các phần riêng của đối tượng.
− Giao thức mô tả là một tập các thông điệp và các chú thích tương ứng với
mỗi thông điệp.
− Một mô tả thực hiện của một đối tượng cung cấp các chi tiết bên trong
được yêu cầu để thực hiện nhưng không cần thiết cho viện dẫn. Người
thiết kế đối tượng phải cung cấp mô tả thực hiện và do đó phải tạo ra chi
tiết bên trong của đối tượng.
• Thiết kế thuật toán và cấu trúc dữ liệu
Một thuật toán được tạo ra để thực hiện một đặc tả cho mỗi phương thức.
Trong nhiều trường hợp, thuật toán chỉ là tính toán đơn giản hoặc dãy các thủ
tục được thực hiện như một module phần mềm tự chứa.
− Cấu trúc dữ liệu được thiết kế đồng thời với thuật toán. Do các phương
thức thao tác các thuộc tính của lớp, thiết kế cấu trúc dữ liệu phản ánh
tốt nhất thuộc tính sinh ra trong thiết kế thuật toán của các phương thức
tương ứng.
21
− Các kiểu phương thức chia làm 3 loại chính:
+ Phương thức thao tác dữ liệu.
+ Phương thức thực hiện tính toán.
+ Phương thức điều khiển đối tượng cho sự kiện điều khiển.
− Để tối ưu hóa thiết kế hướng đối tượng. Rambaugh đã đưa ra các gợi ý
sau:
+ Xem lại mô hình đối tượng – quan hệ để đảm bảo rằng các thiết kế
được thực hiện sử dụng tài nguyên hiệu quả và nới lỏng các ràng buộc
thực hiện thêm vào các dư thừa nếu thấy cần thiết.
+ Xem lại thuộc tính cấu trúc dữ liệu và các thuật toán tương ứng để tăng
cường hiệu quả xử lí.
+ Tạo ra thuộc tính mới để giữ thông tin thừa kế, do đó tránh được việc
tính toán lại.
• Thiết kế lớp đối tượng
+ Quá trình thiết kế lớp bao gồm các công đoạn sau: Xác định tên lớp đối
tượng, xác định các quan hệ, xác định các thuộc tính, xác định các
phương thức, xác định lớp cha của nó ( nếu có ).
+ Tên lớp tuân theo một số quy tắc:
- Tên lớp phải là danh từ.
- Tên lớp phải có chu trình sống của mình, phải có thời điểm sinh ra,
chết đi của đối tượng đó.
- Nó độc lập tương đối với các đối tượng khác (tức là nó sẽ độc lập
hơn đối tượng khác một cách tương đối, về các mặt khác nó có thể phụ
thuộc lẫn nhau giữa các đối tượng, nhưng nó là một thể thức ngoài đời
có.).
+ Phần xác định các quan hệ . Việc xác định các quan hệ giữa các lớp là
việc phải lập ra một từ điển quan hệ giữa các lớp ví như: lớp A là con
lớp B chẳng hạn. Nó cũng có một số qui tắc sau để qui ước là: tên quan
hệ phải là động từ,... Nó nói lên sự phụ thuộc lẫn nhau của các đối
tượng.
+ Việc xác định các thuộc tính nó có một số qui định như sau: tên thuộc
tính phải là danh từ, nó phải có sự lệ thuộc duy nhất vào đối tựng đang
xét. Trong khi xác định thuộc tính cần chú ý: nếu thuộc tính đó phụ
thuộc một đối tượng thì thuộc tính đó là thuộc tính của đối tượng,
thuộc tính phụ thuộc vào nhiều đối tượng thì thuộc tính đó là thuộc
tính quan hệ.
+ Việc xác định phương thức thực chất đó là các hành động, công việc,
của các phương thức đó, nên tên phương thức có nhiều loại phương
thức trong xây dựng một lớp đối tượng:
- Các phương thức thuộc nhóm khởi tạo: gồm phương thức khởi tạo
mặc định, phương thức khởi tạo khi biêt một số thuộc tính của nó,
phương thức phá hủy.
- Phương thức thuộc nhóm cung cấp (phương thức get)
- Các phương thức thuộc nhóm thiết lập (phương thức set)
22
- Các phương thức xử lý tính toán: các phương thức này sẽ đóng vai
trò là nơi thực thi các tính toán của từng class tương ứng trước khi
thêm, hay làm gì đó với hệ thống dữ liệu.
- Các phương thức thuôc nhóm kiểm tra. Đây là nơi kiểm tra các ràng
buộc về dữ liệu cho class tương ứng của bạn.
• Một số quy ước để thiết kế một class.
+ Để thiết kế một class trước tiên bạn phải đưa ra tên của nó là gì.
+ Xác định các phương thức, thuộc tính cho class đó như đã nói ở trên
+ Nếu các thuộc tính có cấu trúc phức tạp hoặc có các thuộc tính liên hệ
với nhau và nó có ngữ nghĩa cụ thể (ngoài đời có nó) thì nên tách nó ra
thành một lớp độc lập với nhau.
+ Khi 2 hay nhiều lớp có các thuộc tính chung thì nên tách thành một lớp
cha của các lớp đó và các lớp đó được kế thừa từ lớp cha của nó.
+ Khi gặp các thuộc tính có khả năng phân loại trong một số trường hợp
thì ta tách các thuôc tính con của nó thành thuộc tính con tương ứng.
• Thiết kế một mô hình class.
+ B1: Thiết kế các class như các cách ở trên đã nêu.
+ B2: Xác định quan hệ giữa các class.
+ B3: Xác định các quan hệ và bảng số của nó.
Bảng số của 2 lớp là phần mô tả dữ liệu giữa 2 lớp đó. Có các quan hệ
giữa các bảng số như sau:
I- Một nhiều
1 A thì tương ứng với nhiều B
1B tương ứng với 1A
II- Một - Một 1A thì tương ứng với 1B
1B tưng ứng với 1A.
1A tương ứng với 1B
III - nhiều nhiều.
1 A tương ứng với nhiều B.
1B tương ứng với nhiều A
• Thiết kế thành phần chương trình và giao diện
− Đây là khía cạnh quan trọng của chất lượng thiết kế phần mềm.
23
− Cách tiếp cận hướng đối tượng xác định đối tượng như một thành phần
chương trình, bản thân nó liên kết với các thành phần khác. Chúng ta
phải xác định được giao diện tồn tại giữa các đối tượng và toàn bộ cấu
trúc của đối tượng.
− Giao diện yêu cầu phải dễ sử dụng.
III.4: Cài đặt
Thực hiện các việc xây dựng chương trình bằng ngôn ngữ lập trình. Mục đích của luồng công
việc này là:
- Xác định cách thức viết mã cài đặt
- Cài đặt các lớp và đối tượng như là các thành phần
- Tích hợp vào trong một hệ thống có thể thực thi được
24
a) Vai trò của cài đặt trong vòng đời phần mềm
Cài đặt là trọng tâm của các bước lặp trong giai đoạn Xây dựng. Nó cũng được tiến
hành trong giai đoạn Chi tiết để tạo ra khung kiến trúc khả thi. Cài đặt cũng được tiến
hành trong giai đoạn chuyển giao để xử lí các lỗi được tìm thấy khi phát hành phiên
bản beta.
b) Quy trình cài đặt
• Cài đặt kiến trúc.
− Xác định các thành phần quan trọng về mặt kiến trúc, chẳng hạn như
các thành phần có thể thi hành được.
− Kiến trúc sư bảo trì, tinh chế và cập nhật mô tả kiến trúc và các khung
nhìn kiến trúc của mô hình cài đặt và triển khai.
• Xác định các thành phần quan trọng về mặt kiến trúc.
• Xác định các thành phần chạy được và ánh xạ chúng lên các nút.
• Tích hợp hệ thống.
Mục tiêu:
25
− Tạo ra một kế hoạch tích hợp sản phẩm mô tả các sản phẩm được yêu
cầu trong một bước lặp và các yêu cầu đối với mỗi sản phẩm.
− Tính hợp mỗi sản phẩm trước khi kiểm thử tích hợp.
• Lên kế hoạch sản phẩm tiếp theo.
• Tích hợp một sản phẩm
− Thu thập các phiên bản đúng của các hệ thống con cài đặt, biên dịch
chúng và kết nối chúng vào trong một sản phẩm.
• Cài đặt một hệ thống con
− Cài đặt một hệ thống con để đảm bảo rằng một hệ thống con hoàn
thành vai trò của nó trong mỗi sản phẩm.
• Bảo trì nội dung hệ thống con.
III.5: Kiểm thử
• Sau khi một phần mềm được hoàn tất. Công việc cuối cùng là kiểm thử nhằm phát
hiện lỗi bằng việc xem xét lại đặc tả, thiết kế và mã hoá.
• Là khâu mấu chốt đảm bảo chất lượng phần mềm.
• Nguyên tắc kiểm thử:
− Mọi hoạt động kiểm thử phải tuân theo yêu cầu của khách hàng.
− Kiểm thử phải được lập kế hoạch trước khi được tiến hành.
− Kiểm thử ban đầu ít, sau đó quá trình lớn dần.
− Không thể kiểm thử mọi khía cạnh.
− Để kiểm thử đạt kết quả cao nhất, quá trình kiểm thử phải có sự tham gia của
bên thứ 3.
• Mục đích của kiểm thử là để đảm bảo chất lượng. Luồng công việc này liên quan đến:
− Xét duyệt sự tương tác giữa các thành phần trong hệ thống
− Xét duyệt sự tích hợp đúng đắn các thành phần
− Xét duyệt tất cả các yêu cầu đã được cài đặt
− Đảm bảo rằng phát hiện các lỗi trước khi triển khai hệ thống
• Các bước kiểm thử:
26
− Kiểm thử đơn vị
− Kiểm thử tích hợp
− Kiểm thử hệ thống
− Kiểm thử sự chấp nhận
27
28
Kết luận
Ngày nay các công ty đang phải đương đầu với việc co hẹp ngân sách. Điều này có nghĩa là
quy mô đầu tư vào các dự án phần mềm bị cắt giảm rất lớn. Nó làm phát sinh nhu cầu về thời
gian phát triển ngắn hơn và chi phí nhân lực thấp hơn.
Với việc tăng khuynh hướng nghiêng về các hệ phân bố, một tập hợp các công cụ trực quan
mới hiện đã có sẵn trên thị trường. Những công cụ này đem cùng chúng cách tiếp cận mới tới
việc phát triển hệ thống.
Các phương pháp luận truyền thống gây cản trở rất nhiều cho việc đáp ứng những thánh thức
nói trên. Do đó có việc nổi lên của phương pháp luận hướng đối tượng.
Phát triển các phần mềm theo hướng đối tượng đang là sự chọn lựa hàng đầu của các công ty
hiện nay khi họ muốn phát triển một sản phẩm nào đó.
29
Tài liệu tham khảo.
1. Thạc Đình Cường. Nhập môn công nghệ phần mềm, NXB Giáo dục,10/2008.
2. TS.Lương Mạnh Bá (chủ biên) – Lương Thanh Bình – Cao Tuấn Dũng – Nguyễn Thị
Thu trang – Lê đức Trung, NXB Giáo dục, 2010.
3. Lê Đức Trung. Công nghệ phần mềm, NXB Khoa học và Kĩ thuật, 4/2002.
4. Ngô Trung Việt – Nguyễn Kim Ánh, Nhập môn kĩ nghệ phần mềm, NXB Khoa Học
và Kĩ thuật, 2/2003.
5. Roger S.Pressman (Ngô Trung Việt dịch), Kĩ nghệ phần mềm, NXB Giáo dục, 1997.
6. Slide của trường Đại Học Bách Khoa Hà Nội và một số slide của một số trường Đại
học khác.
7. Nguyễn Tuấn Huy ( biên dịch ), Quá trình phát triển phần mềm, NXB Thống kê,2003
30
Các file đính kèm theo tài liệu này:
- tieu_luan_cntt_tim_hieu_quy_trinh_phat_trien_phan_mem_huong_doi_tuong_9683.pdf