Đặ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

Empirical Software Engineering - Tập 16 Số 5 - Trang 667-702 - 2011
Li, Zude1,2, Madhavji, Nazim H.2, Murtaza, Syed Shariyar2, Gittens, Mechelle2, Miranskyy, Andriy V.3, Godwin, David3, Cialini, Enzo3
1School of Information Science and Engineering, Central South University, Changsha, People’s Republic of China
2Computer Science Department, University of Western Ontario, London, Canada
3IBM Canada Ltd., Toronto, Canada

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