Share to: share facebook share twitter share wa share telegram print page

Kiến trúc phần mềm

Một phần của loạt bài về
Phát triển phần mềm

Kiến trúc phần mềm của một chương trình máy tính hay một hệ thống tính toán là cấu trúc của các thành phần trong hệ thống đó. Kiến trúc phần mềm bao gồm các phần tử phần mềm, các thuộc tính và mối quan hệ giữa chúng. Ngoài ra, thuật ngữ "kiến trúc phần mềm" cũng đề cập đến các tài liệu kiến trúc phần mềm của một hệ thống, thuận tiện cho việc trao đổi thông tin giữa các thành viên trong một dự án. Kiến trúc phần mềm giúp việc quyết định ở mức cao trong thiết kế phần mềm dễ dàng hơn và cho phép tái sử dụng các thành phần và mẫu thiết kế của các dự án.[1]

Tổng quan

Lĩnh vực khoa học máy tính trải qua sự kết hợp các vấn đề cùng với sự phức tạp của cấu trúc[2]. Lúc đầu, sự phức tạp được giải quyết bởi người phát triển bằng cách lựa chọn các cấu trúc dữ liệu đúng đắn, phát triển các thuật toán và áp dụng các thuật toán để chia nhỏ các vấn đề. Thuật ngữ kiến trúc phần mềm liên quan đến sự mới mẻ của ngành công nghiệp này, nhưng nguyên tắc cơ bản của nó đã được áp dụng bởi các chuyên gia tiên phong trong ngành công nghệ phần mềm từ những năm 1980. Các cố gắng ban đầu để nắm bắt và giải thích kiến trúc phần mềm của một hệ thống thường không chính xác và chưa được tổ chức rõ ràng. Nó được mô tả bởi các lược đồ "box and line" gồm một tập hợp các hộp và các đường kẻ[3]. Trong những năm 1990, đã có một số nỗ lực tập trung để xác định và hệ thống hoá các khía cạnh cơ bản của môn học. Nhiều khái niệm của mẫu thiết kế (Design Pattern), kiểu dáng (styles), các ngôn ngữ đặc tả và luận lý hình thức (formal logic) đã được phát triển trong thời gian này.

Khái niệm "Kiến trúc phần mềm" tập trung vào việc giảm tải các phức tạp bằng cách trừu tượng hóa vấn đề và phân chia rõ trách nhiệm công việc. Tuy vậy, đến ngày nay vẫn chưa có một khái niệm thật chính xác và rõ ràng cho thuật ngữ "Kiến trúc phần mềm"[4].

Như vậy mặc dù khái niệm "Kiến trúc phần mềm" đã xuất hiện trong các giảng đường đại học và được đưa vào sử dụng trong ngành công nghệ phần mềm, nhưng việc nó vẫn chưa có các quy tắc, luật lệ chung và chưa rõ ràng nên thiết kế kiến trúc phần mềm vẫn là một sự pha tạp giữa "khoa học" và "nghệ thuật". Vẻ "nghệ thuật" của kiến trúc phần mềm được lý giải là do có sự xuất hiện của các yêu cầu phi chức năng của hệ thống mà phần mềm phải đáp ứng được các yêu cầu này, chẳng hạn như các yêu cầu về các thuộc tính chất lượng [5]. Ngoài ra, phần mềm còn phải thỏa mãn các yêu cầu khác như: khả năng chịu lỗi, tính tương thích với các phiên bản cũ của các phần mềm khác (backward compatibility [6]), khả năng mở rộng, tính tin cậy, khả năng bảo trì, tính hiện hữu, tính bảo mật, tính dễ dùng, và một số các yêu cầu khác nữa [5].

Để chuyển các quan điểm, yêu cầu của người sử dụng sang kiến trúc phần mềm, cần phải tiến hành một số bước tìm hiểu, tham khảo các yêu cầu riêng và các sở thích riêng của từng loại người dùng phần mềm. Ngoài ra còn phải tìm hiểu, tham khảo các ý kiến của đội phát triển phần mềm, đội bảo trì phần mềm, đội kiểm thử, đội triển khai phần mềm. Vì lẽ đó, kiến trúc phần mềm phải là nơi thỏa mãn được các quan điểm, các yêu cầu của những nguồn khác nhau. Và điều đó cũng đặt ra yêu cầu cho việc phải đảm bảo ngay từ giai đoạn xây dựng kiến trúc phần mềm, đã phải thỏa mãn các quan điểm, yêu cầu của những nguồn khác nhau; trước khi giai đoạn phát triển phần mềm được thực hiện.

Lịch sử

Nguồn gốc của kiến trúc phần mềm như một ý tưởng được giới thiệu đầu tiên trong nghiên cứu của Edsger Dijkstra năm 1968 và David Parnas đầu những năm 1970. Các nhà khoa học nhấn mạnh rằng cấu trúc của một hệ thống phần mềm rất quan trọng và đạt được cấu trúc đúng đắn là một yếu tố quyết định. Các nghiên cứu về lĩnh vực này ngày càng nhiều và trở nên phổ biến từ đầu những năm 1990 cùng với các nghiên cứu tập trung vào các mẫu thiết kế (pattern), ngôn ngữ đặc tả kiến trúc (Architecture Description Languages), tài liệu kiến trúc và các phương pháp chính thức. Các viện nghiên cứu đóng vai trò quan trọng trong nghiên cứu môn học kiến trúc phần mềm. Mary Shaw và David Garlan của viện nghiên cứu Carnegie Mellon đã viết cuốn sách "Software Architecture: Perspectives on an Emerging Discipline" vào năm 1996, mang đến các khái niệm tiến bộ trong kiến trúc phần mềm như thành phần (component), kết nối (connector), kiểu (style) và nhiều thứ nữa. Trường đại học tổng hợp California, viện nghiên cứu phần mềm Irvine cũng có nhiều nỗ lực trong nghiên cứu kiến trúc phần mềm, chủ yếu hướng vào các kiểu kiến trúc, ngôn ngữ đặc tả kiến trúc và các kiến trúc động. Một trong những chuẩn đầu tiên trong kiến trúc phần mềm là chuẩn ANSI/IEEE 1471-2000 được ISO chấp nhận như ISO/IEC DIS 25961.

Lý giải sự quan trọng của kiến trúc phần mềm

Có ba lý do chính [1] để giải thích tầm quan trọng của kiến trúc phần mềm:

Hỗ trợ việc giao tiếp

Hỗ trợ việc giao tiếp với các thành viên trong dự án. Kiến trúc phần mềm tái hiện một vẻ bề ngoài trừu tượng của hệ thống. Với sự trừu tượng hóa hệ thống với các khái niệm dễ hiểu, những thành viên trong dự án sẽ chỉ cần vận dụng các kiến thức cơ bản của mình về hệ thống trong việc tìm hiểu, dàn xếp, phối hợp làm việc, và bàn bạc trao đổi với nhau.

Giúp ra quyết định sớm hơn

Việc ra quyết định được thực hiện sớm hơn. Kiến trúc phần mềm biểu thị các quyết định thiết kế dành cho hệ thống. Như vậy các đội tham gia phát triển, triển khai, kiểm thử và bảo trì phần mềm cũng như các nhóm người dùng và các cấp quản lý sẽ có cái nhìn tổng quan hơn cũng như sớm hơn về hệ thống ngay từ khi nó còn sơ khai. Mỗi đội đó sẽ có các đóng góp ý kiến của mình, các đề xuất cũng như các phản bác của mình khi mọi chuyện chưa quá muộn. Nếu không có quyết định sớm, thì khi phần mềm đã được xây dựng hoàn chỉnh hoặc khá hoàn chỉnh mà đột ngột xuất hiện các yêu cầu thay đổi từ phía nhóm này hoặc nhóm khác, ngoài việc gây trì trệ cho tiến độ công việc mà còn có thể gây ra tâm lý căng thẳng, mâu thuẫn giữa các đội tham gia trong dự án.

Tính khả chuyển cho hệ thống

Kiến trúc phần mềm không phụ thuộc vào một ngôn ngữ cụ thể nào cả mà chỉ tuân theo một số chuẩn của các ngôn ngữ đặc tả nó. Ngoài ra, kiến trúc phần mềm khi được xây dựng cho một hệ thống, nó tạo thành một mô hình có sự gắn kết tương đối với hệ thống. Kiến trúc phần mềm còn chỉ ra cách thức mà phần mềm làm việc với hệ thống. Do vậy, khi ta muốn chuyển phần mềm sang làm việc ở các hệ thống khác có những điểm tương đồng nhất định với hệ thống cũ thì phần mềm này cũng sẽ có các thuộc tính chất lượng và các yêu cầu chức năng được đảm bảo là không quá khác so với khi tồn tại ở hệ thống cũ.

Mô tả kiến trúc phần mềm

Ngôn ngữ đặc tả kiến trúc

Ngôn ngữ đặc tả kiến trúc ADL (Architecture Description Languages) được sử dụng để mô tả một kiến trúc phần mềm. Có nhiều ngôn ngữ ADL khác nhau được phát triển bởi các tổ chức như Wrigh (được phát triển bởi Carnegie Mellon), ACME (Carnegie Mellon), xADL (UCI), Darwin (Imperial College London), DAOP-ADL (Trường đại học Málaga - Tây Ban Nha). Các thành phần cơ bản của một ngôn ngữ ADL là thành phần, kết nối và cấu hình hệ thống.

Các khung nhìn

Một số khung nhìn phổ biến là:

  • Khung nhìn theo các chức năng/view logic (Functional/logic view)
  • Khung nhìn theo mã nguồn (Code view)
  • Khung nhìn theo tư tưởng phát triển/ cấu trúc (Development/structural view)
  • Khung nhìn về xử lý đồng thời /tiến trình / thread (Concurrency/process/thread view)
  • Khung nhìn vật lý /view triển khai / (Physical/deployment view)
  • Khung nhìn theo hành động người sử dụng (User action/feedback view)

Chú thích

  1. ^ a b Len Bass, Paul Clements, Rick Kazman: Software Architecture in Practice, Second Edition. Addison Wesley, Reading 5/9/2003. [1]
  2. ^ University of Waterloo (2006). A Very Brief History of Computer Science [2]
  3. ^ IEEE Transactions on Software Engineering (2006). Introduction to the Special Issue on Software Architecture [3]
  4. ^ SEI (2006). How do you define Software Architecture?
  5. ^ a b SoftwareArchitectures.com (2006). Intro to Software Quality Attributes [4] Lưu trữ 2006-06-03 tại Wayback Machine
  6. ^ Định nghĩa của backward compatibility

Xem thêm

Liên kết ngoài


Read other articles:

Konflik TigrayBagian dari Konflik di Tanduk AfrikaKontrol wilayah Tigray per Agustus 2021Tanggal3 November 2020 – 3 November 2022(2 tahun)LokasiRegion Tigray, EtiopiaRegion Amhara, EtiopiaRegion Maekel, EritreaHasil Pemerintah dan TPLF secara resmi menyetujui penghentian permusuhan dan pelucutan senjata yang sistematis dan dapat diverifikasi (2 November 2022)[1][2] Kesepakatan kedua untuk pelaksanaan kesepakatan damai yang ditandatangani kedua belah pihak (12 November 2022…

Solarstation ist ein Science-Fiction-Thriller und das zweite Werk Andreas Eschbachs. Den auffallend starken Unterschied zu seinem Erstling Die Haarteppichknüpfer erklärt der Autor selbst mit der Frustration durch die zahlreichen Ablehnungen seines Debüts durch deutsche Verlage und den Versuch, einen Roman mit viel „Action“ zu schreiben[1]. Inhaltsverzeichnis 1 Inhalt 2 Deutsche Ausgaben 3 Übersetzungen 4 Preise 5 Einzelnachweise Inhalt Im Jahr 2015 haben sich die politischen Mach…

Oldest attested stage of the Japanese language Old Japanese上代日本語Rubbing of Bussokuseki-kahi poems carved c. 752, recording Old Japanese using Chinese charactersRegionJapanEra8th centuryLanguage familyJaponic Old JapaneseEarly formProto-Japonic Writing systemMan'yōganaLanguage codesISO 639-3ojpLinguist Listojp [a]Glottologoldj1239This article contains IPA phonetic symbols. Without proper rendering support, you may see question marks, boxes, or other symbols instead of Unicode c…

Een pijptomahawk. Een tomahawk is een strijdbijl zoals die gebruikt werd door de oorspronkelijke bewoners van Noord-Amerika, de indianen. Geschiedenis Aanvankelijk was de inlandse bijlkop van steen of hoorn. Het kon een bijl of knots zijn. Het waren de Europese kolonisten, met name de Fransen en Engelsen, die metalen gereedschappen, en dus ook bijlen binnenbrachten. Deze ijzeren bijlen waren een begeerd object voor de inheemse bevolking en al snel ontstond er een grote ruilhandel. De zogenaamde …

Artikel ini hampir seluruhnya merupakan ringkasan alur. Artikel ini harus diperluas untuk menyediakan cakupan konteks dunia nyata yang lebih seimbang. Please edit the article to focus on discussing the work rather than merely reiterating the plot. (Pelajari cara dan kapan saatnya untuk menghapus pesan templat ini) Pocong vs KuntilanakSutradara David Poernomo Produser Zainal Susanto Ditulis oleh David Poernomo Pemeran Ahmad Zaki Allya Rossa Aldi Taher Ikhsan Samiaji Diana Puspita Amanda Faried Di…

Turkish-American online news show host (born 1970) Cenk UygurUygur in 2016BornCenk Kadir Uygur (1970-03-21) March 21, 1970 (age 53)Istanbul, TurkeyEducationUniversity of Pennsylvania (BS)Columbia University (JD)OccupationsPolitical commentatormedia hostpoliticianPolitical partyDemocratic (since 2007)Other politicalaffiliationsIndependent (2000–2007)Republican (until 2000)[1]SpouseWendy LangChildren2RelativesHasan Piker (nephew) Uygur's voice On the intersection of mainstream media…

This article contains too many or overly lengthy quotations. Please help summarize the quotations. Consider transferring direct quotations to Wikiquote or excerpts to Wikisource. (May 2020) 1937 economic paper by John Hicks John Hicks's 1937 paper Mr. Keynes and the Classics; a suggested interpretation is the most influential study of the views presented by J. M. Keynes in his General Theory of Employment, Interest, and Money of February 1936. It gives a potted version of the central argument of…

联合国安全理事会第1970号决议2011年利比亞起義中在大城班加西的反格達費群眾日期2011年2月26日会议6491编号S/RES/1970(文件)主题非洲和平与安全——利比亚投票15票赞成0票反对0票弃权结果通过安全理事会理事国常任理事国 中国 法國 俄羅斯 英国 美國非常任理事国 波黑 巴西 哥伦比亚 德國 加彭 印度 黎巴嫩 奈及利亞 葡萄…

Rijssen-Holten, adalah sebuah gemeente Belanda yang terletak di provinsi Overijssel. Pada tahun 2006 daerah ini memiliki penduduk sebesar 36.432 jiwa. Lihat pula Daftar Kota Belanda lbsMunisipalitas di provinsi Overijssel Almelo Borne Dalfsen Deventer Dinkelland Enschede Haaksbergen Hardenberg Hellendoorn Hengelo Hof van Twente Kampen Losser Oldenzaal Olst-Wijhe Ommen Raalte Rijssen-Holten Staphorst Steenwijkerland Tubbergen Twenterand Wierden Zwartewaterland Zwolle Artikel bertopik geografi ata…

Вадим Мілько Вадим Мілько Особисті дані Повне ім'я Вадим Іванович Мілько Народження 22 серпня 1986(1986-08-22) (37 років)   Первомайськ, СРСР Зріст 182 см Вага 76 кг Громадянство  Україна Позиція центральний півзахисник Інформація про клуб Поточний клуб «Колос» Номер 14 Профе…

2001 compilation album by AmericaThe Definitive AmericaCompilation album by AmericaReleasedJuly 17, 2001Recorded1971-83StudioAbbey Road Studios, Sunset Sound RecordersGenre Pop rock soft rock Length76:47LabelWarner Bros., RhinoProducerGeorge Martin, America, Bill Inglot, David McLees, Stuart BatsfordAmerica chronology Highway(2000) The Definitive America(2001) The Complete Greatest Hits(2001) Professional ratingsReview scoresSourceRatingAllMusic[1] The Definitive America is a com…

Process by which nuclear WMDs are designed and produced The first nuclear explosive devices, cumbersome and inefficient, provided the basic design building blocks of all future weapons. Pictured is the Gadget device being prepared for the first nuclear test, Trinity. Nuclear weapon designs are physical, chemical, and engineering arrangements that cause the physics package[1] of a nuclear weapon to detonate. There are three existing basic design types: pure fission weapons, the simplest, …

Cet article est une ébauche concernant l’Espagne et un couvent. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Couvent de Santo DomingoPrésentationType Couvent, monumentPartie de Cultural heritage in AlicanteFondation Années 1550Style RenaissancePatrimonialité Bien d'intérêt culturel (1931)LocalisationLocalisation Orihuela EspagneCoordonnées 38° 05′ 22″ N, 0° 56′ …

Coordenadas: 43° 58' 54 N 4° 03' 11 E Canaules-et-Argentières   Comuna francesa    Localização Canaules-et-ArgentièresLocalização de Canaules-et-Argentières na França Coordenadas 43° 58' 54 N 4° 03' 11 E País  França Região Occitânia Departamento Gard Características geográficas Área total 10,06 km² População total (2018) [1] 456 hab. Densidade 45,3 hab./km² Código Postal 30350 Código INSEE 30065 Can…

Arrest of Dominic Hall and Louis Louaillier by Andrew Jackson Andrew Jackson before Judge Hall in Louisiana for questioning regarding his actions instituting martial law in New Orleans Dominic A. Hall and Louis Louaillier were American political figures who were ordered detained during the War of 1812 under the order of Major General Andrew Jackson in 1815. Hall later put Jackson under investigation and oversaw the trial that led to Jackson being fined. Background Upon entering New Orleans in De…

A chain of nightclubs best known for their NYC location in a former Episcopal Church This article is about the chain of nightclubs. For the light, see limelight. For other uses, see limelight (disambiguation). The Limelight building in Manhattan, New York City, in 2007 The Limelight was a chain of nightclubs owned and operated by Peter Gatien. It had locations in New York City, Chicago, Atlanta, London and Hallandale, Florida. History Florida and Atlanta locations Peter Gatien opened the first L…

Para el entrenador de baloncesto, véase Xavier Pascual Vives. Xavier Pascual Fuertes Información personalApodo Pasqui Nacimiento 8 de marzo de 1968 (55 años)Barcelona (España) Nacionalidad EspañolaInformación profesionalOcupación Balonmanista, entrenador y entrenador de balonmano Carrera deportivaDeporte Balonmano Perfil de jugadorPosición guardameta Equipos Fútbol Club Barcelona, Club Handbol Palautordera, Fútbol Club Barcelona, Sociedad Deportiva Teucro, Club Balonmano Ademar León, …

SchoolIslamabad Japanese Schoolイスラマバード日本人学校AddressRoad No.20, Diplomatic Enclave, Islamabad, PakistanInformationWebsitewww.zenkaiken.jp/islamabad/index.html The Islamabad Japanese School attached to the Embassy of Japan in Pakistan (IJS) (在パキスタン日本国大使館附属イスラマバード日本人学校, Zai Pakisutan Nihon-koku Taishikan fuzoku Isuramabādo Nihonjin Gakkō) is a Japanese international school in the Diplomatic Enclave in Islamabad.[1]…

Ancient Greek goddess of love Cypris redirects here. For other uses, see Aphrodite (disambiguation) and Cypris (disambiguation). AphroditeGoddess of love, lust, passion, pleasure, beauty, and sexualityMember of the Twelve OlympiansThe Ludovisi Cnidian Aphrodite, Roman marble copy (torso and thighs) with restored head, arms, legs and drapery supportAbodeMount OlympusPlanetVenusAnimalsdolphin, sparrow, dove, swan, hare, goose, bee, fish, butterflySymbolrose, seashell, pearl, mirror, girdle, anemon…

Bulgarian footballer In this Bulgarian name, the patronymic is Georgiev and the family name is Panov. Pavel Panov Personal informationFull name Pavel Georgiev PanovDate of birth (1950-09-16)16 September 1950Place of birth Sofia, PR BulgariaDate of death 18 February 2018(2018-02-18) (aged 67)Place of death Sofia, BulgariaPosition(s) StrikerSenior career*Years Team Apps (Gls)1963–1968 Septemvri Sofia 1968 Spartak Sofia 8 (5)1969–1981 Levski Sofia 301 (131)1981–1982 Aris 25 (0)Intern…

Kembali kehalaman sebelumnya