Nội dung được dịch bởi AI, chỉ mang tính chất tham khảo
Suy diễn mô hình cho bảng tính
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 tinTà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)