Nội dung được dịch bởi AI, chỉ mang tính chất tham khảo
Đặc điểm của các khuyết tật đa thành phần và các điểm nóng kiến trúc: Nghiên cứu trường hợp của một hệ thống lớn
Tóm tắt
Kiến trúc của một hệ thống phần mềm lớn thường được coi là quan trọng vì các lý do như: cung cấp một mục tiêu chung cho các bên liên quan trong việc hiện thực hóa hệ thống được dự kiến; giúp tổ chức các nhóm phát triển khác nhau; và ghi lại các quyết định thiết kế nền tảng ngay từ đầu trong quá trình phát triển. Các nghiên cứu đã chỉ ra rằng các khuyết tật xuất phát từ kiến trúc hệ thống có thể tiêu tốn gấp đôi nỗ lực sửa chữa so với các khuyết tật khác. Rõ ràng, do đó, các nghiên cứu khoa học về các khuyết tật kiến trúc là quan trọng cho việc cải thiện cách xử lý và phòng ngừa chúng. Nghiên cứu trước đây đã tập trung vào mức độ khuyết tật kiến trúc trong các hệ thống phần mềm. Đối với bài báo này, chúng tôi đã được thúc đẩy để đặt ra hai câu hỏi bổ sung trong một nghiên cứu trường hợp: (i) Các khuyết tật đa thành phần (MCD) - có tầm quan trọng về kiến trúc - khác biệt như thế nào so với các loại khuyết tật khác về (a) độ phức tạp và (b) sự tồn tại qua các giai đoạn phát triển và phát hành? và (ii) Các thành phần tập trung MCD cao (còn được gọi là các điểm nóng kiến trúc) khác biệt như thế nào so với các loại thành phần khác về (a) các mối quan hệ lẫn nhau và (b) sự tồn tại qua các giai đoạn phát triển và phát hành? Kết quả cho thấy rằng MCD rất phức tạp để sửa chữa và tồn tại lâu dài qua các giai đoạn và các phiên bản. So với một MCD không phải MCD, một MCD yêu cầu hơn 20 lần thay đổi để sửa chữa và có khả năng cao gấp 6 đến 8 lần để vượt qua một giai đoạn hoặc một phiên bản. Những phát hiện này có ý nghĩa đối với việc phát hiện và sửa chữa khuyết tật. Kết quả cũng cho thấy rằng 20% các thành phần của hệ thống được nghiên cứu chứa hơn 80% MCD và rằng các thành phần này có khả năng tồn tại gấp 2–3 lần qua nhiều lần phát hành hệ thống so với các thành phần khác trong hệ thống. Các thành phần tập trung MCD như vậy cấu thành nên các "điểm nóng" kiến trúc mà ban quản lý có thể tập trung vào để bảo trì phòng ngừa và cải thiện chất lượng kiến trúc. Những phát hiện được mô tả là từ một nghiên cứu thực nghiệm của một hệ thống phần mềm di sản lớn với kích thước hơn 20 triệu dòng mã và tuổi đời hơn 17 năm.
Từ khóa
#khuyết tật đa thành phần #điểm nóng kiến trúc #hệ thống phần mềm #nghiên cứu trường hợp #phát hiện và sửa chữa khuyết tật #phức tạp #tồn tại.Tài liệu tham khảo
Abdelmoez W, Shereshevsky M, Gunnalan R, Bogazzi BYS, Korkmaz M, Ammar HH (2004) Software architectures change propagation tool (sacpt). In: Proc. of the 20th int’l conf. on software maintenance (ICSM’04). Chicago, USA, pp 517–517
citation_journal_title=IBM Res J; citation_title=Optimizing preventive service of software products; citation_author=EN Adams; citation_volume=28; citation_issue=1; citation_publication_date=1984; citation_pages=2-14; citation_doi=10.1147/rd.281.0002; citation_id=CR2
citation_journal_title=IEEE Trans Softw Eng; citation_title=A replicated quantitative analysis of fault distribution in complex software systems; citation_author=C Andersson, P Runeson; citation_volume=33; citation_issue=5; citation_publication_date=2007; citation_pages=273-286; citation_doi=10.1109/TSE.2007.1005; citation_id=CR3
citation_journal_title=Softw Qual J; citation_title=Quantitative analysis of development defects to guide testing: a case study; citation_author=A Andrews, C Stringfellow; citation_volume=9; citation_publication_date=2001; citation_pages=195-214; citation_doi=10.1023/A:1013353520454; citation_id=CR4
Bachmann F, Bass L, Klein M (2003) Preliminary design of arche: a software architecture design assistant. Technical Report, cmu/sei-2003-tr-021; via:
http://www.sei.cmu.edu/reports/03tr021.pdf
citation_journal_title=Commun ACM; citation_title=Software errors and complexity: an empirical investigation; citation_author=VR Basili, BT Perricone; citation_volume=27; citation_issue=1; citation_publication_date=1984; citation_pages=42-52; citation_doi=10.1145/69605.2085; citation_id=CR6
Basili VR, Shull F (2005) Evolving defect “folklore”: a cross-study analysis of software defect behavior. In: Proc. of the int’l software process workshop (ISPW’05). Beijing, China, pp 1–9
Bass L, Berenbach B (2008) Leadership and management in software architecture (lmsa’08)—a report on an icse workshop. Leipzig, Germany
Bass L, Clements P, Kazman R (2003) Software architecture in practice, 2nd edn. Addison-Wesley Professional
Bertolino A, Inverardi P (1996) Architecture-based software testing. In: Proc. of the SIGSOFT 96 workshop. California, USA, pp 62–64
citation_journal_title=Computer; citation_title=Software defect reduction top 10 list; citation_author=B Boehm, VR Basili; citation_volume=34; citation_issue=1; citation_publication_date=2001; citation_pages=135-137; citation_doi=10.1109/2.962984; citation_id=CR11
citation_journal_title=IEEE Softw; citation_title=The economics of architecture-first; citation_author=G Booch; citation_volume=24; citation_issue=5; citation_publication_date=2007; citation_pages=18-20; citation_doi=10.1109/MS.2007.146; citation_id=CR12
citation_journal_title=IEEE Softw; citation_title=Nine things you can do with old software; citation_author=G Booch; citation_volume=25; citation_issue=5; citation_publication_date=2008; citation_pages=93-94; citation_doi=10.1109/MS.2008.139; citation_id=CR13
citation_journal_title=IEEE Softw; citation_title=Reverse engineering and design recovery: a taxonomy; citation_author=EJ Chikofsky, JH Cross; citation_volume=7; citation_issue=1; citation_publication_date=1990; citation_pages=13-17; citation_doi=10.1109/52.43044; citation_id=CR14
citation_journal_title=IEEE Trans Softw Eng; citation_title=Orthogonal defect classification—a concept for in-process measurements; citation_author=R Chillarege, IS Bhandari, JK Chaar, MJ Halliday, DS Moebus, BK Ray, MY Wong; citation_volume=18; citation_issue=11; citation_publication_date=1992; citation_pages=943-956; citation_doi=10.1109/32.177364; citation_id=CR15
Clements PC, Northrop LM (1996) Software architecture: an executive overview. Technical Report, CMU/SEI-96-TR-003
Clements P, Bachmann F, Bass L, Garlan D, Ivers J, Little R, Nord R, Stafford J (2002) Documenting software architectures: views and beyond. Addison-Wesley Professional
citation_journal_title=J Syst Softw; citation_title=Prediction and control of ada software defects; citation_author=BT Compton, C Withrow; citation_volume=12; citation_issue=3; citation_publication_date=1990; citation_pages=199-207; citation_doi=10.1016/0164-1212(90)90040-S; citation_id=CR18
Creswell JW (2002) Research design: qualitative, quantitative, and mixed methods approaches, 2nd edn. Sage Publications
citation_journal_title=IEEE Trans Softw Eng; citation_title=A survey of software architecture analysis methods; citation_author=L Dobrica, E Niemela; citation_volume=28; citation_issue=7; citation_publication_date=2002; citation_pages=638-653; citation_doi=10.1109/TSE.2002.1019479; citation_id=CR20
citation_journal_title=ACM SIGSOFT Softw Eng Notes; citation_title=Experiences with criticality predictions in software development; citation_author=C Ebert; citation_volume=22; citation_issue=6; citation_publication_date=1997; citation_pages=278-293; citation_doi=10.1145/267896.267916; citation_id=CR21
Ebert C, Dumke R, Bundschuh M, Schimietendorf A (2005) Defect detection and quality improvement. In: “Best practices in software measurement”. Springer, pp 133–156
El-Ramly M (2006) Experience in teaching a software reengineering course. In: Proc. of the 28th int’l conf. on software engineering (ICSE’06). Shanghai, China, pp 699–702
citation_journal_title=ACM SIGPLAN Not; citation_title=An analysis of errors and their causes in system programs; citation_author=A Endres; citation_volume=10; citation_issue=6; citation_publication_date=1975; citation_pages=327-336; citation_doi=10.1145/390016.808455; citation_id=CR24
Fahmy H, Holt RC (2000) Software architecture transformations. In: Proc. of the 16th int’l conf. on software maintenance (ICSM’00). San Jose, California, pp 88–96
citation_journal_title=J Softw Maint, Res & Pract; citation_title=Removing clones from the code; citation_author=R Fanta, V Rajlich; citation_volume=11; citation_issue=4; citation_publication_date=1999; citation_pages=223-243; citation_doi=10.1002/(SICI)1096-908X(199907/08)11:4<223::AID-SMR194>3.0.CO;2-D; citation_id=CR26
citation_journal_title=IEEE Trans Softw Eng; citation_title=Quantitative analysis of faults and failures in a complex software system; citation_author=N Fenton, N Ohlsson; citation_volume=26; citation_issue=8; citation_publication_date=2000; citation_pages=797-814; citation_doi=10.1109/32.879815; citation_id=CR27
citation_journal_title=IEEE Softw; citation_title=Who needs an architect?; citation_author=M Fowler; citation_volume=20; citation_issue=5; citation_publication_date=2003; citation_pages=11-13; citation_doi=10.1109/MS.2003.1231144; citation_id=CR28
Gittens M, Kim Y, Godwin D (2005) The vital few versus the trivial many: Examining the pareto principle for software. In: Proc. of the 29th annual int’l computer software and applications conf. (COMPSAC’05). Edinburgh, Scotland, pp 179–185
Grünbacher P, Egyed A, Medvidovic N (2001) Reconciling software requirements and architectures: the cbsp approach. In: Software and systems modeling. Springer, pp 202–211
citation_journal_title=IEEE Trans Softw Eng; citation_title=Formal specifications and analysis of software architectures using the chemical abstract machine model; citation_author=P Inverardi, AL Wolf; citation_volume=21; citation_issue=4; citation_publication_date=1995; citation_pages=100-114; citation_doi=10.1109/32.385973; citation_id=CR31
Jansen A, Bosch J (2005) Software architecture as a set of architectural design decisions. In: Proc. of the 5th working IEEE/IFIP conf. on software architecture (WICSA’05). Pittsburgh, Pennsylvania, pp 109–120
Kazman R, O’Brien L, Verhoef C (2002) Architecture reconstruction guidelines, 3rd edn. Technical Report, cmu/sei-2002-tr-034
Kulkarni S (2008) Software defect rediscoveries: causes, taxonomy and signficance. M.sc., The University of Western Ontario
Leszak M, Perry DE, Stoll D (2000) A case study in root cause defect analysis. In: Proc. of the 22nd int’l conf. on software engineering (ICSE’00). Limerick, Ireland, pp 428–437
Li Z, Gittens M, Murtaza SS, Madhavji NH, Miranskyy AV, Godwin D, Cialini E (2009) Analysis of pervasive multiple-component defects in a large software system. In: Proc. of the 25th IEEE int’l conf. on software maintenance (ICSM’09). Edmonton, Alberta, pp 265–273
citation_journal_title=J Syst Softw; citation_title=Software architecture-based regression testing; citation_author=H Muccini, M Dias, DJ Richardson; citation_volume=79; citation_issue=10; citation_publication_date=2006; citation_pages=1379-1396; citation_doi=10.1016/j.jss.2006.02.059; citation_id=CR37
Nagappan N, Ball T, Zeller A (2006) Mining metrics to predict component failures. In: Proc. of the 28th int’l conf. on software engineering (ICSE’06). Shanghai, China, pp 452–461
citation_journal_title=IEEE Trans Softw Eng; citation_title=A case history analysis of software error cause-effect relationships; citation_author=T Nakajo, H Kume; citation_volume=17; citation_issue=8; citation_publication_date=1991; citation_pages=830-838; citation_doi=10.1109/32.83917; citation_id=CR39
Nedstam J, Karlsson E-A, Host M (2004) The architectural change process. In: Proc. of the 2004 int’l symposium on empirical software engineering (ISESE’04). Redondo Beach, CA, pp 27–36
citation_journal_title=IEEE Trans Softw Eng; citation_title=Predicting fault-prone software modules in telephone switches; citation_author=N Ohlsson, H Alberg; citation_volume=21; citation_issue=12; citation_publication_date=1996; citation_pages=886-894; citation_doi=10.1109/32.553637; citation_id=CR41
Ohlsson MC, Wohlin C (1998) Identification of green, yellow and red legacy components. In: Proc. of the 14th int’l conf. on software maintenance (ICSM’98). Bethesda, Washington DC, pp 6–15
Ostrand TJ, Weyuker EJ (2002) The distribution of faults in a large industrial software system. In: Proc. of the 2002 ACM SIGSOFT int’l symposium on software testing and analysis (ISSTA’02). Rome, Italy, pp 55–64
citation_journal_title=IEEE Trans Softw Eng; citation_title=Predicting the location and number of faults in large software systems; citation_author=TJ Ostrand, E Weyuker, RM Bell; citation_volume=31; citation_issue=4; citation_publication_date=2005; citation_pages=340-355; citation_doi=10.1109/TSE.2005.49; citation_id=CR44
Pareto V (1969) Manual of political economy (English version). Augustus M Kelley Pubs
Perry DE, Evangelist WM (1987) An empirical study of software interface faults. In: Proc. of the 20th annual Hawaii int’l conf. on systems sciences. Hawaii, pp 113–126
Schroter A, Zimmermann T, Zeller A (2006) Predicting component failures at design time. In: Proc. of the 5th int’l symposium on empirical software engineering (ISESE’06). Rio de Janeiro, Brazil
citation_journal_title=Sci Comput Program; citation_title=Detection of anomalies in software architecture with connectors; citation_author=ME Shin, Y Xu, F Paniagua, JH An; citation_volume=61; citation_publication_date=2006; citation_pages=16-26; citation_doi=10.1016/j.scico.2005.11.002; citation_id=CR48
citation_journal_title=Inf Softw Technol; citation_title=Comparison of software architecture reverse engineering methods; citation_author=C Stringfellow, CD Amory, D Potnuri, A Andrews, M Georg; citation_volume=48; citation_publication_date=2006; citation_pages=484-497; citation_doi=10.1016/j.infsof.2005.05.007; citation_id=CR49
Valenti S (2002) Successful software reengineering. IRM Press
citation_journal_title=J Softw Maint, Res & Pract; citation_title=Deriving fault architectures from defect history; citation_author=A Mayrhauser, MC Ohlsson, C Wohlin; citation_volume=12; citation_issue=5; citation_publication_date=2000; citation_pages=287-304; citation_doi=10.1002/1096-908X(200009/10)12:5<287::AID-SMR214>3.0.CO;2-I; citation_id=CR51
citation_journal_title=J Syst Softw; citation_title=Evaluating software development by error analysis: the data from the architecture research facility; citation_author=DM Weiss; citation_volume=1; citation_publication_date=1979; citation_pages=57-70; citation_doi=10.1016/0164-1212(79)90005-0; citation_id=CR52
citation_journal_title=IEEE Trans Softw Eng; citation_title=Evaluating software development by analysis of changes: some data from the software engineering laboratory; citation_author=DM Weiss, VR Basili; citation_volume=11; citation_issue=2; citation_publication_date=1985; citation_pages=157-168; citation_doi=10.1109/TSE.1985.232190; citation_id=CR53
Wohlin C, Runeson P, Höst M, Ohlsson MC, Regnell B, Wesslén A (2000) Experimentation in software engineering: an introduction. Kluwer Academic Publishers
citation_journal_title=IEEE Trans Softw Eng; citation_title=Predicting source code changes by mining change history; citation_author=ATT Ying, GC Murphy, R Ng, MC Chu-Carroll; citation_volume=30; citation_issue=9; citation_publication_date=2004; citation_pages=574-586; citation_doi=10.1109/TSE.2004.52; citation_id=CR55
citation_journal_title=Bell Labs Tech J; citation_title=A software fault prevention approach in coding and root cause analysis; citation_author=WD Yu; citation_volume=3; citation_issue=2; citation_publication_date=1998; citation_pages=3-21; citation_doi=10.1002/bltj.2101; citation_id=CR56
citation_journal_title=IEEE Trans Softw Eng; citation_title=An analysis of several software defect models; citation_author=T-J Yu, VY Shen, HE Dunsmore; citation_volume=14; citation_issue=9; citation_publication_date=1988; citation_pages=1261-1270; citation_doi=10.1109/32.6170; citation_id=CR57
Zimmermann T, Weibgerber P, Diehl S, Zeller A (2004) Mining version histories to guide software changes. In: Proc. of the 26th int’l conf. on software engineering (ICSE’04). Edinburgh, UK, pp 563–572