Suy diễn mô hình cho bảng tính

Automated Software Engineering - Tập 23 - Trang 361-392 - 2014
Jorge Mendes1, Martin Erwig2, João Saraiva1, Jácome Cunha3
1Department of Informatics, HASLab/INESC Tec & Universidade do Minho, Braga, Portugal
2School of EECS, Oregon State University, Corvallis, USA
3Department of Informatics, HASLab/INESC Tec & Universidade Nova de Lisboa, Lisbon, Portugal

Tóm tắt

Nhiều lỗi trong công thức của bảng tính có thể được tránh nếu bảng tính được tạo tự động từ các mô hình cấp cao hơn có thể mã hóa và thi hành các ràng buộc nhất quán trong các bảng tính đã được tạo. Việc áp dụng chiến lược này cho các bảng tính cũ (legacy) là rất khó khăn, vì mô hình phải được phân tích ngược từ một bảng tính hiện có và dữ liệu hiện có phải được chuyển vào bảng tính mới được tạo dựa trên mô hình. Chúng tôi đã phát triển và triển khai một kỹ thuật tự động suy diễn các lược đồ quan hệ từ bảng tính. Kỹ thuật này tận dụng những đặc điểm từ lĩnh vực bảng tính để tạo ra các lược đồ tốt hơn. Chúng tôi đã đánh giá kỹ thuật này theo hai cách: trước tiên, chúng tôi đã chứng minh tính khả thi của nó bằng cách áp dụng nó vào một tập hợp các bảng tính trong thế giới thực. Thứ hai, chúng tôi đã thực hiện một nghiên cứu thực nghiệm với người dùng. Nghiên cứu đã chỉ ra rằng các kết quả được tạo ra bởi kỹ thuật của chúng tôi có thể so sánh với những kết quả do các chuyên gia phát triển từ cùng một dữ liệu bảng tính (legacy). Mặc dù các lược đồ quan hệ rất hữu ích để mô hình hóa dữ liệu, nhưng chúng không phù hợp tốt với bảng tính, vì chúng không cho phép biểu đạt bố cục. Do đó, chúng tôi cũng đã giới thiệu một phép ánh xạ giữa các lược đồ quan hệ và ClassSheets. Một ClassSheet kiểm soát các thay đổi tiếp theo đối với bảng tính và bảo vệ nó chống lại một lớp lớn các lỗi công thức. Công cụ phát triển được xem như một đóng góp cho kỹ thuật (phân tích ngược) bảng tính, vì nó lấp đầy một khoảng trống quan trọng và cho phép một phương pháp thiết kế tiềm năng (ClassSheets) được áp dụng cho một bộ sưu tập lớn các bảng tính cũ với nỗ lực tối thiểu.

Từ khóa

#lược đồ quan hệ #bảng tính #kỹ thuật phân tích ngược #ClassSheets #hệ thống thông tin

Tài liệu tham khảo

Abraham, R., Erwig, M.: Inferring templates from spreadsheets. In: ICSE ’06 Proceedings of the 28th International Conference on Software Engineering, pp. 182–191. ACM, New York, NY, USA (2006) Abraham, R., Erwig, M., Kollmansberger, S., Seifert, E.: Visual specifications of correct spreadsheets. In: Proceedings of the 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VLHCC ’05), IEEE Computer Society, pp. 189–196 (2005) Alhajj, R.: Extracting the extended entity-relationship model from a legacy relational database. Inf. Syst. 28(6), 597–618 (2003) Cheng, T., Rival, X.: An abstract domain to infer types over zones in spreadsheets. In: Miné, A., Schmidt, D. (eds.) Static Analysis. Lecture Notes in Computer Science, vol. 7460, pp. 94–110. Springer, Berlin (2012) Codd, E.F.: A relational model of data for large shared data banks. Commun ACM 13(6), 377–387 (1970) Connolly, T., Begg, C.: Database Systems, A Practical Approach to Design, Implementation, and Management, 3rd edn. Addison-Wesley, Harlow (2002) Cunha, J.: Model-based spreadsheet engineering. PhD thesis, Universidade do Minho (2011) Cunha, J., Saraiva, J., Visser, J.: Discovery-based edit assistance for spreadsheets. In: 2009 IEEE Symposium on Visual Languages and Human-Centric Computing, IEEE, pp. 233–237 (2009a) Cunha, J., Saraiva, J., Visser, J.: From spreadsheets to relational databases and back. In: PEPM ’09 Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation. ACM, New York, NY, USA, pp. 179–188 (2009b) Cunha, J., Erwig, M., Saraiva, J. Automatically inferring ClassSheet models from spreadsheets. In: Proceedings of the 2010 IEEE Symposium on Visual Languages and Human-Centric Computing, IEEE Computer Society, VLHCC ’10, pp. 93–100 (2010) Cunha J, Mendes, J., Fernandes, J.P., Saraiva, J.: Embedding and evolution of spreadsheet models in spreadsheet systems. In: IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC’11), IEEE Computer Society, pp. 186–201 (2011a) Cunha, J., Visser, J., Alves, T., Saraiva, J.: Type-safe evolution of spreadsheets. In: Giannakopoulou, D., Orejas, F. (eds.) Fundamental Approaches to Software Engineering. Lecture Notes in Computer Science, vol. 6603, pp. 186–201. Springer, Berlin (2011b) Cunha, J., Fernandes, J.P., Mendes, J., Pacheco, H., Saraiva, J.: Bidirectional transformation of model-driven spreadsheets. In: Hu, Z., de Lara, J. (eds.) Theory and Practice of Model Transformations. Lecture Notes in Computer Science, vol. 7307, pp. 105–120. Springer, Berlin (2012a) Cunha, J., Fernandes, J.P., Mendes, J., Saraiva, J.: MDSheet: a framework for model-driven Spreadsheet Engineering. In: Proceedings of the 34rd ACM International Conference on Software Engineering (ICSE’12), pp. 1412–1415 (2012b) Cunha, J., Fernandes, J.P., Mendes, J., Saraiva, J.: Towards an evaluation of bidirectional model-driven spreadsheets. User evaluation for Software Engineering Researchers, ACM Digital Library, USER’ 12, 25–28 (2012c) Cunha, J., Fernandes, J.P., Saraiva, J.: From Relational ClassSheets to UML+OCL. The Software Engineering Track at the 27th Annual ACM Symposium On Applied Computing (SAC 2012), Riva del Garda (Trento), pp. 1151–1158. ACM, Italy (2012d) Cunha, J., Mendes, J., Saraiva, J., Visser, J.: Model-based programming environments for spreadsheets. Sci. Comput. Program. (2014a). doi:10.1016/j.scico.2014.02.002 Cunha, J., Fernandes, J.P., Mendes, J., Saraiva, J.: Embedding, evolution, and validation of spreadsheet models in spreadsheet systems. Tech. Rep. TR-HASLab:01:2014. HASLab—High-Assurance Software Laboratory & Universidade do Minho (2014b). http://alfa.di.uminho.pt/~jacome/down/tr_embedding.pdf Engels, G., Erwig, M.: ClassSheets: automatic generation of spreadsheet applications from object-oriented specifications. In: Redmiles, D., Ellman, T., Zisman, A. (eds.) 20th IEEE/ACM International Conference on Automated Software Engineering, Long Beach, USA, pp. 124–133. ACM (2005) Erwig, M.: Software engineering for spreadsheets. IEEE Softw. 29(5), 25–30 (2009) EuSpRIG. European Spreadsheet Risks Interest Group (2010) http://www.eusprig.org/ Hermans, F., Pinzger, M., van Deursen, A.: Automatically extracting class diagrams from spreadsheets. In: Proceedings of the 24th European conference on Object-oriented programming, Springer-Verlag, Berlin, Heidelberg, ECOOP’10, pp. 52–75 (2010) Höst, M., Regnell, B., Wohlin, C.: Using students as subjects–a comparative study of students and professionals in lead-time impact assessment. Empir. Softw. Eng. 5(3), 201–214 (2000). doi:10.1023/A:1026586415054 Isakowitz, T., Schocken, S., Lucas Jr, H.C.: Toward a logical/physical theory of spreadsheet modeling. ACM Trans. Inf. Syst. 13(1), 1–37 (1995) Lämmel, R., Visser, J. : A Strafunski application letter. In: Dahl, V., Wadler, P. (eds) Proceedings of Practical Aspects of Declarative Programming (PADL’03), LNCS, vol. 2562, pp. 357–375. Springer (2003) Maier, D.: The Theory of Relational Databases. Computer Science Press, Rockville (1983) Novelli, N., Cicchetti, R.: Fun: an efficient algorithm for mining functional and embedded dependencies. In: ICDT ’01: Proceedings of the 8th International Conference on Database Theory, pp. 189–203. Springer-Verlag, London, UK (2001) Panko, R.: Spreadsheet errors: what we know. what we think we can do. In: Proceedings of the European Spreadsheet Risks Interest Group Annual Conference (EuSpRIG), pp. 7–17 (2000) Perry, D.E., Porter, A.A., Votta, L.G.: Empirical studies of software engineering: a roadmap. In: ICSE ’00 Proceedings of the Conference on The Future of Software Engineering, pp. 345–355. ACM, New York, NY, USA (2000) Powell, S.G., Baker, K.R.: The Art of Modeling with Spreadsheets. Wiley, New York (2003) Rajalingham, K., Chadwick, D., Knight, B.: Classification of spreadsheet errors. In: Proceedings of the European Spreadsheet Risks Interest Group Annual Conference (EuSpRIG), pp. 23–34 (2001) Ullman, J.D., Widom, J.: A First Course in Database Systems. Prentice Hall, Upper Saddle River (1997) Visser, E.: A survey of strategies in rule-based program transformation systems. J. Symb. Comput. 40, 831–873 (2005) Visser, J., Saraiva, J.: Tutorial on strategic programming across programming paradigms. In: 8th Brazilian Symposium on Programming Languages, Niteroi, Brazil (2004)