[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to main content

Analysing Microsoft Access Projects: Building a Model in a Partially Observable Domain

  • Conference paper
  • First Online:
Reuse in Emerging Software Engineering Practices (ICSR 2020)

Abstract

Due to the technology evolution, every IT Company migrates their software systems at least once. Reengineering tools build system models which are used for running software analysis. These models are traditionally built from source code analysis and information accessible by data extractors (that we call such information observable). In this article we present the case of Microsoft Access projects and how this kind of project is partially observable due to proprietary storing formats. We propose a novel approach for building models that allows us to overcome this problem by reverse engineering the development environment runtime through the usage of Microsoft COM interface. We validate our approach and implementation by fully replicating 10 projects, 8 of them industrial, based only on our model information. We measure the replication performance by measuring the errors during the process and completeness of the product. We measure the replication error, by tracking replication operations. We used the scope and completeness measure to enact this error. Completeness is measured by the instrumentation of a simple and scoped diff based on a third source of information. We present extensive results and interpretations. We discuss the threats to validity, the possibility of other approaches and the technological restrictions of our solution.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
£29.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
GBP 19.95
Price includes VAT (United Kingdom)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
GBP 35.99
Price includes VAT (United Kingdom)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
GBP 44.99
Price includes VAT (United Kingdom)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    For space reasons, we do not consider tools performing analyses of system runtime. Such approaches instrument applications and produce various traces [4].

  2. 2.

    https://developer.android.com/reference/android/R.

  3. 3.

    https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/partial-classes-and-methods.

  4. 4.

    https://dev2dev.de/index.php?lang=en.

  5. 5.

    https://ivercy.com/.

  6. 6.

    https://archive.codeplex.com/?p=accesssvn.

  7. 7.

    https://docs.microsoft.com/en-us/office/vba/api/overview/access.

  8. 8.

    https://github.com/Access-projects/Access-examples.

  9. 9.

    https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/northwind-install.

  10. 10.

    http://www.eclipse.org/modeling/emf/.

  11. 11.

    https://en.wikipedia.org/wiki/Adobe_Wallaby.

  12. 12.

    https://blogs.oracle.com/apex/forms-to-apex-converting-fmbs-to-xml.

  13. 13.

    https://github.com/NicolasAnquetil/VerveineJ.

  14. 14.

    https://github.com/uwol/proleap-vb6-parser.

  15. 15.

    https://refactory.com/smacc/.

  16. 16.

    https://www.antlr.org/.

References

  1. Bragagnolo, S., Marra, M., Polito, G., Boix, E.G.: Towards scalable blockchain analysis. In: 2019 IEEE/ACM 2nd International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB), pp. 1–7 (2019)

    Google Scholar 

  2. Bragagnolo, S., Rocha, H., Denker, M., Ducasse, S.: SmartInspect: solidity smart contract inspector. In: 2018 International Workshop on Blockchain Oriented Software Engineering (IWBOSE), pp. 9–18 (March 2018). Electronic ISBN: 978-1-5386-5986-1

    Google Scholar 

  3. Brant, J., Roberts, D., Plendl, B., Prince, J.: Extreme maintenance: transforming Delphi into C#. In: 2010 IEEE International Conference on Software Maintenance (ICSM), pp. 1–8 (2010)

    Google Scholar 

  4. De Pauw, W., Jensen, E., Mitchell, N., Sevitsky, G., Vlissides, J., Yang, J.: Visualizing the execution of Java programs. In: Diehl, S. (ed.) Software Visualization. LNCS, vol. 2269, pp. 151–162. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45875-1_12

    Chapter  Google Scholar 

  5. Ducasse, S., Anquetil, N., Bhatti, U., Cavalcante Hora, A., Laval, J., Girba, T.: MSE and FAMIX 3.0: an interexchange format and source code model family. Tech. rep., RMod - INRIA Lille-Nord Europe (2011)

    Google Scholar 

  6. Fleurey, F., Breton, E., Baudry, B., Nicolas, A., Jézéquel, J.-M.: Model-driven engineering for software migration in a large industrial context. In: Engels, G., Opdyke, B., Schmidt, D.C., Weil, F. (eds.) MODELS 2007. LNCS, vol. 4735, pp. 482–497. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-75209-7_33

    Chapter  Google Scholar 

  7. Francesca, A.F., Fabrizio, P., Claudia, R., Stefano, R.: Behavioural design pattern detection through dynamic analysis. In: Proceedings of 4th PCODA at the 15th Working Conference on Reverse Engineering (WCRE 2008), pp. 11–16 (2008)

    Google Scholar 

  8. Garcés, K., et al.: White-box modernization of legacy applications: the Oracle forms case study. Comput. Stand. Interfaces 57, 110–122 (2017)

    Article  Google Scholar 

  9. Govin, B., Anquetil, N., Etien, A., Ducasse, S., Monegier Du Sorbier, A.: Managing an industrial software rearchitecting project with source code labelling. In: Complex Systems Design & Management conference (CSD&M), Paris, France (December 2017)

    Google Scholar 

  10. Govin, B., Anquetil, N., Etien, A., Monegier Du Sorbier, A., Ducasse, S.: How can we help software rearchitecting efforts? Study of an industrial case. In: Proceedings of the International Conference on Software Maintenance and Evolution, (Industrial Track), Raleigh, USA (October 2016)

    Google Scholar 

  11. Hayakawa, T., Hasegawa, S., Yoshika, S., Hikita, T.: Maintaining web applications by translating among different RIA technologies. GSTF J. Comput. 2, 250–256 (2012)

    Google Scholar 

  12. Kienle, H.M., Müller, H.A.: The tools perspective on software reverse engineering: requirements, construction, and evaluation. In: Advanced in Computers, vol. 79, pp. 189–290. Elsevier (2010)

    Google Scholar 

  13. Newcomb, P.: Architecture-driven modernization (ADM). In: 12th Working Conference on Reverse Engineering (WCRE 2005), p. 237 (2005)

    Google Scholar 

  14. Object Management Group: Abstract syntax tree metamodel (ASTM) version 1.0. Tech. rep., Object Management Group (2011)

    Google Scholar 

  15. Richner, T., Ducasse, S.: Recovering high-level views of object-oriented applications from static and dynamic information. In: Yang, H., White, L. (eds.) Proceedings of 15th IEEE International Conference on Software Maintenance (ICSM 1999), pp. 13–22. IEEE Computer Society Press, Los Alamitos (September 1999)

    Google Scholar 

  16. Sánchez Ramán, O., Sánchez Cuadrado, J., García Molina, J.: Model-driven reverse engineering of legacy graphical user interfaces. In: Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, ASE 2010, pp. 147–150. ACM (2010)

    Google Scholar 

  17. Shah, E., Tilevich, E.: Reverse-engineering user interfaces to facilitate porting to and across mobile devices and platforms. In: Proceedings of the Compilation of the Co-located Workshops on DSM 2011, TMC 2011, AGERE! 2011, AOOPES 2011, NEAT 2011, & VMIL 2011, pp. 255–260. ACM (2011)

    Google Scholar 

  18. Silva, C.E., Campos, J.C.: Combining static and dynamic analysis for the reverse engineering of web applications. In: Proceedings of the 5th ACM SIGCHI Symposium on Engineering Interactive Computing Systems, p. 107. ACM Press (2013)

    Google Scholar 

  19. Stroulia, E., Systä, T.: Dynamic analysis for reverse engineering and program understanding. SIGAPP Appl. Comput. Rev. 10(1), 8–17 (2002)

    Article  Google Scholar 

  20. Terekhov, A.A., Verhoef, C.: The realities of language conversions. IEEE Softw. 17(6), 111–124 (2000)

    Article  Google Scholar 

  21. Ulrich, W.M., Newcomb, P.: Information Systems Transformation: Architecture-Driven Modernization Case Studies. Morgan Kaufmann, Burlington (2010)

    Google Scholar 

  22. Verhaeghe, B., et al.: GUI migration using MDE from GWT to Angular 6: an industrial case. In: 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER), Hangzhou, China (2019)

    Google Scholar 

  23. Wegner, P.: Dimensions of object-based language design. In: Proceedings OOPSLA 1987, ACM SIGPLAN Notices, vol. 22, pp. 168–182 (December 1987)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Santiago Bragagnolo .

Editor information

Editors and Affiliations

Appendices

A Annex 1: Error Tracking and Weighting

Error Tracking. COM is not intensively used to create projects programmatically. Many standard procedures, after running, make Access unstable and easy to fail in any next attempt of modification. Failures that may imply from non created widgets to missing properties. During the whole process we track down all the errors happened during this process, for being able to plot alongside with the results on the comparisons. This error is tracked down at the level of replication operation and typified. (1) ChildCreatedSuccessfully (2) FailureToCreateChild (3) FailureToWriteProperty (4) PropertyWrittenSuccesfully. The tree of error tracking composition responds to the same composition as the proposed model.

Error Weighting. We measure the failure of a replication process, by the weighting and summarization of the tree of operations.

Let o be the result of an operation of replication. Let \(c_o\) be the children creation operation under the scope of the operation o. Let \(p_o\) be the properties creation operation under the scope of the operation o.

(1)

This recursive function calculates the proportion of error in terms of errors in terms of composed errors. For our work those elements that are composed of elements (by example, the controls inside a form) are specially represented by their children. This is why one formula branch uses coefficients: 10% based on the component properties, and 90% on the children completeness.

B Annex 2: File X File Diff & Weighting

File Diff. For being able to diff each pair of files we used different techniques Modules, Macros, and Queries are loaded as nodes with name and plain text content. Tables are loaded as XML trees including name, indexes and fields with their name and type. Forms, Reports are loaded with a simple parser that produces a tree of report/form with their controls and properties.

Each of these entities are loaded from original and replica. For each pair we calculate the differential tree expressing all the needed operations for transforming the original graph into the replica graph. We define the following operations: (1) Add (2) Remove (3) Same (4) ModifyChild (5) ModifyProperty.

Diff Weighting. We measure the completeness of each of the elements on the differential graph. Let u be the result of comparing an element from the original project with its equivalent of the replica.

(2)

Magnitude M(u) is the weighting of the difference in between two elements. Let \(u_o\) and \(u_r\) being respectively original and replica side of u. Let \(c_u\) be the set of children that belong to the u. Let \(p_u\) be the set of properties that belong to the u.

(3)

This recursive function calculates the magnitude of the difference in terms of the composed differences. The coefficients used in this formula respond to the same explanation as those used on the error weighting formula explained above.

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Bragagnolo, S., Anquetil, N., Ducasse, S., Abderrahmane, S., Derras, M. (2020). Analysing Microsoft Access Projects: Building a Model in a Partially Observable Domain. In: Ben Sassi, S., Ducasse, S., Mili, H. (eds) Reuse in Emerging Software Engineering Practices. ICSR 2020. Lecture Notes in Computer Science(), vol 12541. Springer, Cham. https://doi.org/10.1007/978-3-030-64694-3_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-64694-3_10

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-64693-6

  • Online ISBN: 978-3-030-64694-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics