Pha kiến trúc phần mềm

GS John Vu21/09/2023 10:00
Pha kiến trúc phần mềm

Một sinh viên hỏi: “Khác biệt gì giữa pha kiến trúc và pha thiết kế? Em bị lẫn lộn vì vòng đời phần mềm chỉ nhắc tới yêu cầu, thiết kế, viết mã và kiểm thử. Cái gì xảy ra trong pha thiết kế? Kiến trúc làm gì trong pha này? Xin thầy giải thích.”

Đáp: Về căn bản, pha kiến trúc là mức trừu tượng cao nhất của hệ thống phần mềm và pha thiết kế là mức thấp hơn hội tụ vào các chi tiết như mô đun và cấu phần. Kiến trúc là việc phân bổ các yêu cầu hệ thống (phần cứng, phần mềm, giao diện, v.v.) cho các cấu phần hệ thống cũng như giao diện giữa các cấu phần này. Thiết kế thường giải quyết với việc lập chức năng cho từng cấu phần một cách chi tiết hơn. Chẳng hạn, khi bạn xây ngôi nhà bạn cần kiến trúc sư để thiết kế mọi cấu phần của ngôi nhà như nền móng, trụ nhà, mái và tường nhưng bạn không cần kiến trúc sư để thiết kế bếp chi tiết hay phòng ngủ trong nhà. Những chi tiết này thường được trao cho công nhân xây dựng và người trang trí nội thất.

Khi bạn xây dựng một hệ thống phần mềm lớn và phức tạp, bạn cần phân chia hệ thống thành các cấu phần nhỏ hơn để dễ thực hiện hơn. Pha kiến trúc là bước bản chất để chắc các cấu phần được xác định và tương tác giữa chúng được nhận diện rõ ràng. Đôi khi mọi người coi pha kiến trúc là pha “thiết kế mức cao” và thiết kế là pha “thiết kế chi tiết”. Vòng đời thác đổ coi cả hai pha này đều là “thiết kế” để giữ cho nó đơn giản và dễ dàng hơn cho sinh viên học.

Vì phần lớn các dự án trong trường đều nhỏ và đơn giản nơi phần cứng và tương tác với phần mềm đã được biết, sinh viên không quan tâm tới phần cứng có thể bắt đầu từ pha thiết kế phần mềm. Tuy nhiên trong công nghiệp, phần lớn dự án phần mềm đều lớn và phức tạp và bạn cần biết mọi cấu phần của toàn thể hệ thống (cả phần cứng và phần mềm) cho nên bạn phải học về kiến trúc phần mềm cho tốt để xây dựng hệ thống có chất lượng.

Trong pha kiến trúc, bạn phải nhận diện hoàn cảnh và phạm vi của dự án bằng việc thiết lập biên giới dựa trên yêu cầu của khách hàng. Bạn cần xác định cả cách nhìn chức năng cũng như phi chức năng và mọi ràng buộc. Bạn cần nhận diện mọi cấu phần như cách nhìn qui trình, cách nhìn logic, cách nhìn vật lí, cách nhìn giao diện, cách nhìn kết cấu nền, cách nhìn vận hành và cách nhìn an ninh cho hệ thống phần mềm đầy đủ.

Phần lớn những người phát triển phần mềm thường chú ý tới các chức năng của hệ thống nhưng không chú ý tới cách nhìn phi chức năng (thuộc tính chất lượng). Bởi vì phần lớn các cách nhìn phi chức năng không được xác định rõ, dự án thường lâm vào vấn đề về sau vì đây là những điều khách hàng mong đợi nhưng hiếm khi nhắc tới trong các yêu cầu. Đây là chỗ những người phát triển có kinh nghiệm đang làm tốt hơn những người không có kinh nghiệm vì họ học nhiều năm làm việc bằng việc biết cái gì để hỏi khách hàng. Khách hàng có thể nói: “Hệ thống phải chạy nhanh “, đó là yêu cầu phi chức năng nhưng điều đó là quá mông lung.

Người phát triển có kinh nghiệm biết cách hỏi khách hàng về những chi tiết đặc biệt hơn để chắc yêu cầu này là đo được và kiểm thử được. (Ông muốn nhanh như thế nào? Ông ngụ ý gì bởi nhanh? Bao nhiêu giây? v.v.) Họ biết rằng để đạt tới sự thoả mãn của khách hàng họ cần chắc rằng tất cả các cách nhìn phi chức năng đều được xác định. Những điều này bao gồm các đặc trưng khi chạy như hiệu năng, tính đổi qui mô, tính sẵn có và tính an ninh v.v. Đó là lí do tại sao các kĩ sư yêu cầu là quan trọng thế trong hệ thống lớn hơn và phức tạp để xác định các yêu cầu phi chức năng này.

Bởi vì phần lớn các yêu cầu phi chức năng đều là vấn đề hệ thống, pha kiến trúc phải nhận diện chúng cũng như xác định tương tác giữa chúng kiểu như khi xây nhà kiến trúc sư phải tính toán sức mạnh của móng và tất cả các cột giữ cho ngôi nhà đứng tại chỗ. Chẳng hạn, nhà lớn hơn yêu cầu nền móng tốt hơn và nhiều cột để đỡ trọng lượng của ngôi nhà. Bởi lí do này pha kiến trúc là quan trọng trong các hệ thống lớn. Khi mọi yêu cầu chức năng và phi chức năng được xác định, bước tiếp là hội tụ vào cách từng cấu phần được thực hiện. Trong pha này, kiến trúc sư phần mềm quyết định về công nghệ nào được dùng, cấu phần nào được xây dựng trong nhà, cấu phần nào được mua từ nhà cung cấp, cấu phần nào có thể được khoán ngoài.

Họ phải ra quyết định dựa trên các yếu tố như chi phí, cấp phép, quan hệ với nhà cung cấp, tính tương hợp, tính liên tác, sự hỗ trợ và môi trường người dùng v.v. Những quyết định này là sống còn cho thành công của dự án bởi vì chúng là rủi ro mà phải giải quyết. Kiến trúc sư phần mềm phải giảm rủi ro chỗ có độ phức tạp hay bất định cao bằng việc tiến hành phân tích bù trừ để quản lí rủi ro và phải chắc dự án có thể được thực hiện bên trong chi phí và lịch biểu. Mọi quyết định đều phải được kiểm điểm và đánh giá bởi kiến trúc sư, người lãnh đạo tổ, người quản lí dự án và khách hàng.

Vấn đề chính với hệ thống phần mềm lớn và phức tạp là ở chỗ khó cho mọi người hiểu làm sao những cấu phần này làm việc cùng nhau. Đó là lí do tại sao kiến trúc sư phần mềm phải dùng công cụ như các biểu đồ theo ngôn ngữ mô hình hoá thống nhất – Unified Modeling Language (UML) để truyền đạt kiến trúc cho người khác. Kiểm điểm của kiến trúc sư là chỗ mà tổ dự án, tổ hỗ trợ (đảm bảo chất lượng phần mềm SQA và quản lí cấu hình phần mềm SCM, chuyên gia cơ sở dữ liệu, chuyên gia an ninh v.v.) cũng như cấp quản lí và khách hàng phải tham gia vào để hiểu cách toàn thể hệ thống sẽ làm việc.

Kiến trúc sư phần mềm phải chắc rằng kiến trúc được xác định là được hiểu bởi mọi người tham gia. Tất nhiên, tổ phát triển phải hiểu chúng vì họ sẽ phải thiết kế và thực hiện từng cấu phần nhưng tổ hỗ trợ cũng phải biết rõ kiến trúc. Người quản lí cấu hình phải đặt tuyến cơ sở để đảm bảo rằng mọi thay đổi đều trong kiểm soát. Đảm bảo chất lượng phải kiểm điểm mọi cấu phần kiến trúc và phải chắc rằng chúng tuân thủ theo chuẩn và thủ tục. Chuyên gia an ninh phải chắc rằng kiến trúc đã lấy các bước cần thiết để đảm bảo tính toàn vẹn của hệ thống v.v.

Nếu kiến trúc được chấp thuận, bước tiếp là phân công các thành viên tổ bắt đầu qui trình thiết kế cho từng cấu phần. Mặc dầu kiến trúc sư không tham gia vào trong thiết kế và viết mã cho các nhiệm vụ, nhưng người đó phải tích cực giúp các thành viên tổ để chắc rằng họ đang làm nó đúng bên trong kiến trúc đã xác định. Về căn bản pha kiến trúc là quan trọng nhất trong dự án phần mềm lớn. Nếu nó được làm tốt, sẽ có ít vấn đề về sau nhưng nếu nó không được xác định tốt, cơ hội để dự án thất bại có thể rất cao.

Một kiến trúc được xác định kém sẽ dẫn tới thiết kế dở và thiết kế dở sẽ dẫn tới dự án thất bại và đó là lí do tại sao nhiều dự án phần mềm thất bại. Chúng không bao giờ thất bại vì việc viết mã nhưng bởi vì thiết kế dở và kiến trúc được xác định nghèo nàn. Đó là lí do tại sao tôi nghĩ kĩ nghệ phần mềm bao quát mọi pha của phát triển phần mềm là được cần cho mọi sinh viên phần mềm.


Gửi bình luận
(0) Bình luận
1

CMMI-8

Hỏi: Chúng tôi đã đọc nhiều sách về cải tiến và chúng đều là sách rất hay nhưng khi chúng tôi bắt đầu thực hiện cải tiến trong tổ chức của mình, mọi sự cứ rời ra. Thầy có gợi ý gì không?
2

CMMI-6

Hỏi: Là một tổ chức phần mềm, chúng tôi biết cách phát triển phần mềm và tin rằng chúng tôi ở mức cao trên thang CMMI, nhưng chính người dùng của chúng tôi mới cần giúp đỡ. Họ không biết điều mình cần và cứ thay đổi yêu cầu của mình mọi lúc.
3

CMMI

Vì công ti bạn xác định qui trình chuẩn dựa trên khuôn khổ CMMI để cải tiến, sau đây là một số gợi ý:
4

CMMI-7

Hỏi: Theo CMMI, để đạt tới mức trưởng thành 3 tổ chức phải có Qui trình phần mềm chuẩn của tổ chức đã được làm tài liệu – Organizational Standard Software Process (OSSP). Thầy làm tài liệu cho qui trình phần mềm thế nào? Nó trông giống cái gì?
5

CMMI-5

Hỏi: Tại sao một số tổ chức rất thành công trong cải tiến phần mềm và số khác lại không thành công? Chúng ta có thể học cái gì từ những bài học này?

Dự báo cho năm 2014 - Vẫn còn nguyên giá trị

Chúng ta đang sống trong thế giới thay đổi nhanh chóng nơi công nghệ chi phối mọi thứ. Khi công nghệ thay đổi, nó tạo ra nhiều thách thức cho cả công ti và công nhân.

Vòng đời kiểm thử phần mềm

Một sinh viên viết cho tôi: “Trường em đang dạy vòng đời phát triển phần mềm nhưng bạn em nhắc rằng có vòng đời kiểm thử phần mềm mà em không thể tìm được nó trong sách giáo khoa. Nó là gì? Thầy có thể giúp em được không?”

Thư cho sinh viên đại học: Cần được chuẩn bị

Là sinh viên đại học, các bạn cần biết rằng vào đại học chỉ mới là bắt đầu; tốt nghiệp được là một thành tựu, nhưng bằng cấp không tương đương với thành công nếu bạn không thể tìm được việc làm liên quan tới điều bạn đã học.

Học về khoa học dữ liệu

“Em mê mải bài báo của thầy về dữ liệu lớn và muốn học thêm về nó. Là một sinh viên năm thứ nhất trong quản lí hệ thông tin, em không biết đây có phải là lĩnh vực đúng để học hay em phải chuyển sang khoa học máy tính?"

Phụ nữ trong công nghệ thông tin

"Em hiện đang học Quản lí hệ thông tin (ISM) nơi phần lớn các sinh viên đều là nam và họ bảo em rằng việc quản lí CNTT khó cho phụ nữ. Thầy nghĩ gì? Xin thầy lời khuyên.”

Big Data trong doanh nghiệp bán lẻ

Trong nhiều năm, những người chủ cửa hàng bao giờ cũng hỏi: “Trong số hàng nghìn người vào cửa hàng của tôi, ai là khách hàng tốt. Và họ sẵn lòng trả bao nhiêu tiền?”

Big data trong xét tuyển vào đại học

Tôi mới đọc một bài báo thú vị rằng một số đại học đang dùng công nghệ Big Data trong việc xét tuyển vào trường của họ.

Muốn học lấy bằng thạc sĩ

Một người mẹ viết cho tôi: “Câu hỏi của tôi là: Để hoàn thành chương trình thạc sĩ phải mất bao lâu? Kiểu việc làm nào nó có thể có được với bằng thạc sĩ? Nó có thể kiếm được bao nhiêu, nếu nó làm việc ở Mĩ?”

Vẻ đẹp của sự từ bỏ

Có nên tiếp tục một ngành học, một mối quan hệ, một lựa chọn kinh doanh… đang không thể hiện nhiều triển vọng? Từ bỏ hay tiếp tục, lựa chọn nào “lời” hơn? Làm cách nào để đong đếm giá trị tương lai của từng quyết định?

CMMI

Blog GS John VU - GS John Vu - 12/05/2024 12:00
Vì công ti bạn xác định qui trình chuẩn dựa trên khuôn khổ CMMI để cải tiến, sau đây là một số gợi ý:

Công cụ giúp trải nghiệm miễn phí các chatbot AI thông minh nhất hiện nay

Kỹ năng - Quang Huy - 12/05/2024 11:00
Bài viết dưới đây sẽ hướng dẫn bạn cách thức để trải nghiệm những chatbot tích hợp trí tuệ nhân tạo (AI) thông minh nhất hiện nay, bao gồm ChatGPT, Gemini, Claude, Llama…

20 điều "thô nhưng thật" cần hiểu sớm để đường đời bớt chông gai

Suy ngẫm - Trung Hạ - 12/05/2024 10:00
Trưởng thành thật sự là khi hiểu được 20 điều dưới đây. Bạn thấm nhuần được bao nhiêu?

Vẻ đẹp của sự từ bỏ

Từ sách - Phim - Thảo Thảo - 12/05/2024 09:00
Có nên tiếp tục một ngành học, một mối quan hệ, một lựa chọn kinh doanh… đang không thể hiện nhiều triển vọng? Từ bỏ hay tiếp tục, lựa chọn nào “lời” hơn? Làm cách nào để đong đếm giá trị tương lai của từng quyết định?

Những đứa trẻ nhớ được tiền kiếp - Thực hư câu chuyện tiền kiếp

Từ sách - Phim - Đoàn Huy - 12/05/2024 08:00
Tiền kiếp có thật hay không luôn là câu chuyện gây tranh cãi suốt bao nhiêu năm nay. Người thì bảo chuyện không thấy, không thể chứng thực. Kẻ lại ngần ngừ nửa tin nửa ngờ. Dù đặt bản thân ở bờ kết quả nào thì câu chuyện tranh cãi ấy mãi sẽ không ngã ngũ.

CMMI 1 tới 3

Blog GS John VU - GS John Vu - 11/05/2024 12:00
Hỏi: Công ti chúng tôi là công ti CMMI mức 1 nhưng cấp quản lí đã quyết định mua qui trình phần mềm từ một tổ chức đã được thẩm định ở mức 3 và huấn luyện cho tất cả mọi người tuân theo qui trình đó.

5 app chỉnh ảnh hot nhất năm 2024, rất cần cho mùa du lịch

Kỹ năng - Diệp Anh - 11/05/2024 11:00
Muốn có những bức ảnh "nghìn like" trên mạng xã hội, đừng bỏ qua những app chỉnh ảnh cực đẹp này nhé.

Tỷ phú Vương Quân Kim Chủ tịch công ty xây dựng giả làm thợ xây đến công trường xếp gạch

Phong cách sống - Thu Lê - 11/05/2024 10:00
Ông trùm kinh doanh đã có một trải nghiệm vô cùng thú vị và đáng nhớ trong 3 ngày làm thợ xây và sống như người nghèo.

Từ bỏ - Ngừng theo đuổi những điều không còn xứng đáng để kinh doanh hiệu quả hơn

Từ sách - Phim - Minh Tú - 11/05/2024 09:00
Mỗi cá nhân hay doanh nghiệp đều cần có căn tính của mình vì nó giúp củng cố bản sắc và tạo nên sự khác biệt. Tuy nhiên, nếu cứ mắc kẹt hoặc bảo vệ căn tính một cách cực đoan thì sẽ dẫn đến thất bại.

Tuyển tập Những câu chuyện hay nhất của Aesop - 58 truyện ngụ ngôn bất hủ

Từ sách - Phim - Ngọc Bích - 11/05/2024 08:00
Nói đến truyện ngụ ngôn thì không thể không nhắc đến Aesop, người viết truyện ngụ ngôn nổi tiếng của Hy Lạp cổ đại. Ông đã để lại cho nhân loại một kho tàng truyện ngụ ngôn đồ sộ cả về số lượng lẫn giá trị.

CMMI-9

Blog GS John VU - GS John Vu - 10/05/2024 12:00
Hỏi: Tại sao chúng tôi cần tập trung vào cải tiến phần mềm, điều là chức năng “hỗ trợ” khi doanh nghiệp của chúng tôi là chế tạo?

Vợ chồng son - Nữ giám đốc tài giỏi nên duyên với cậu bạn học từng không thích

Truyền hình - Lam Phương - 10/05/2024 11:00
Ngay khi nhìn thấy chồng, Neylan Ngoan cảm thấy cậu bạn này khác xa với gu của mình.

Trào lưu sống 'không cảm xúc' ngày càng lan rộng ở giới trẻ Trung Quốc

Phong cách sống - Bằng Lăng - 10/05/2024 10:00
Ngày càng nhiều người trẻ Trung Quốc lựa chọn cách sống thờ ơ với những thăng trầm trong cuộc sống, một xu hướng mới đang rất phổ biến tại nước này.

Khám phá ngôn ngữ tư duy - Chìa khóa khai mở tiềm năng bản thân

Từ sách - Phim - T.N.L - 10/05/2024 09:00
Cuốn sách "Khám phá ngôn ngữ tư duy" hướng dẫn chi tiết về lập trình ngôn ngữ tư duy, một công cụ giúp chúng ta thay đổi cách suy nghĩ và hành động, từ đó đạt được mục tiêu và thành công trong cuộc sống.

Viết nhật ký, bước đầu tiên giúp bạn nắm vững Bí quyết đơn giản hóa cuộc sống

Từ sách - Phim - Quìn - 10/05/2024 08:00
Những bí mật để thực hiện việc viết nhật ký, giúp bạn đơn giản hóa cuộc sống một cách hiệu quả
HẠT GIỐNG TÂM HỒN
  • Địa chỉ: 11H Nguyễn Thị Minh Khai - P. Bến Nghé - Quận 1 - TP. Hồ Chí Minh
  • Điện thoại: (+8428) 38233860 - Email: triviet@firstnews.com.vn
  • Giấy phép số 496/GP-BTTTT Bộ Thông tin và Truyền thông cấp ngày 17/10/2022
  • Chịu trách nhiệm chính: Nguyễn Văn Phước
  • Công ty TNHH văn hóa sáng tạo Trí Việt
  • Fax: (+8428) 38224560
  • Thỏa thuận cung cấp dịch vụ mạng xã hội Hạt giống tâm hồn
2019 Bản quyền thuộc về hatgiongtamhon.com.vn. Phát triển bởi ONECMS
Thứ 2, 13/05/2024