Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

Abstract

Software is widely used, and society increasingly depends on its reliability. However, software has become so complex and it evolves so quickly that we fail to keep it under control. Therefore, we propose intents: fundamental laws that capture a software systems’ intended behavior (resilient, secure, safe, sustainable, etc.). The realization of this idea requires novel theories, algorithms, tools, and techniques to discover, express, verify, and evolve software intents. Thus, future software systems will be able to verify themselves that they meet their intents. Moreover, they will be able to respond to deviations from intents through self-correction. In this article we propose a research agenda, outlining which novel theories, algorithms and tools are required.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.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
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • 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

References

  1. Aarts, F., Kuppens, H., Tretmans, J., Vaandrager, F.W., Verwer, S.: Improving active Mealy machine learning for protocol conformance testing. Mach. Learn. 96(1–2), 189–224 (2014)

    Article  MathSciNet  MATH  Google Scholar 

  2. Abreu, R., Zoeteweij, P., Van Gemund, A.J.C.: A new Bayesian approach to multiple intermittent fault diagnosis. In: International Joint Conference on Artificial Intelligence, IJCAI 2009, pp. 653–658 (2009)

    Google Scholar 

  3. Abrial, J.: Modeling in Event-B - System and Software Engineering. Cambridge University Press, Cambridge (2010)

    Book  MATH  Google Scholar 

  4. Ahrendt, W., Beckert, B., Hähnle, R., Rümmer, P., Schmitt, P.H.: Verifying object-oriented programs with KeY: a tutorial. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2006. LNCS, vol. 4709, pp. 70–101. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  5. Ali, R., Dalpiaz, F., Giorgini, P.: Reasoning with contextual requirements: detecting inconsistency and conflicts. Inf. Softw. Technol. 55(1), 35–57 (2013)

    Article  Google Scholar 

  6. Amighi, A., Haack, C., Huisman, M., Hurlin, C.: Permission-based separation logic for multithreaded Java programs. Logical Methods Comput. Sci. 11(1:2), 1–66 (2015) paper 2

    Google Scholar 

  7. Andriesse, D., Bos, H., Slowinska, A.: Parallax: implicit code integrity verification using return-oriented programming. In: IEEE/IFIP IC on Dependable Systems and Networks, DSN 2015, pp. 125–135. IEEE Computer Society (2015)

    Google Scholar 

  8. Baier, C., Katoen, J.-P.: Principles of Model Checking. The MIT Press, Cambridge (2008)

    MATH  Google Scholar 

  9. Barthe, G., Grégoire, B., Kunz, C., Rezk, T.: Certificate translation for optimizing compilers. ACM Trans. Program. Lang. Syst. 31(5), 18 (2009)

    Article  MATH  Google Scholar 

  10. Bauer, A., Leucker, M., Schallhart, C.: Runtime verification for LTL and TLTL. ACM Trans. Softw. Eng. Methodol. 20(4), 14 (2011)

    Article  Google Scholar 

  11. Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development - Coq’Art: The Calculus of Inductive Constructions. Texts in Theoretical Computer Science. An EATCS Series. Springer, Heidelberg (2004)

    Book  MATH  Google Scholar 

  12. Biere, A., Cimatti, A., Clarke, E.M., Strichman, O., Zhu, Y.: Bounded model checking. Adv. Comput. 58, 117–148 (2003)

    Article  Google Scholar 

  13. Blom, S., Huisman, M.: The VerCors tool for verification of concurrent programs. In: Jones, C., Pihlajasaari, P., Sun, J. (eds.) FM 2014. LNCS, vol. 8442, pp. 127–131. Springer, Heidelberg (2014)

    Chapter  Google Scholar 

  14. Bradley, A.R.: IC3 and beyond: incremental, inductive verification. In: Madhusudan, P., Seshia, S.A. (eds.) CAV 2012. LNCS, vol. 7358, p. 4. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  15. Breaux, T.D., Vail, M.W., Antón, A.I.: Towards regulatory compliance: extracting rights and obligations to align requirements with regulations. In: IEEE International Requirements Engineering Conference, pp. 46–55 (2006)

    Google Scholar 

  16. Brun, Y., Di Marzo Serugendo, G., Gacek, C., Giese, H., Kienle, H., Litoiu, M., Müller, H., Pezzè, M., Shaw, M.: Engineering self-adaptive systems through feedback loops. In: Cheng, B.H.C., Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Software Engineering for Self-Adaptive Systems. LNCS, vol. 5525, pp. 48–70. Springer, Heidelberg (2009). doi:10.1007/978-3-642-02161-9_3

    Chapter  Google Scholar 

  17. Bryant, R.E.: Symbolic manipulation of Boolean functions using a graphical representation. In: Ofek, H., O’Neill, L.A. (eds.) 22nd ACM/IEEE Conference on Design Automation, (DAC 1985), pp. 688–694. ACM (1985)

    Google Scholar 

  18. Cachin, C., Guerraoui, R., Rodrigues, L.E.T.: Introduction to Reliable and Secure Distributed Programming, 2nd edn. Springer, Heidelberg (2011)

    Book  MATH  Google Scholar 

  19. Cassel, S., Howar, F., Jonsson, B., Steffen, B.: Active learning for extended finite state machines. Formal Aspects Comput. 28(2), 233–263 (2016)

    Article  MathSciNet  MATH  Google Scholar 

  20. Chen, T.-H., Nagappan, M., Shihab, E., Hassan, A.E.: An empirical study of dormant bugs. In: 11th Working Conference on Mining Software Repositories, MSR 2014, pp. 82–91. ACM (2014)

    Google Scholar 

  21. Cimatti, A., Griggio, A., Schaafsma, B.J., Sebastiani, R.: The MathSAT5 SMT solver. In: Piterman, N., Smolka, S.A. (eds.) TACAS 2013 (ETAPS 2013). LNCS, vol. 7795, pp. 93–107. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  22. Clarke, E.M., Gupta, A., Strichman, O.: SAT-based counterexample-guided abstraction refinement. IEEE Trans. CAD Integr. Circ. Syst. 23(7), 1113–1123 (2004)

    Article  Google Scholar 

  23. Cok, D.R.: OpenJML: software verification for Java 7 using JML, OpenJDK, and Eclipse. In: Dubois, C., Giannakopoulou, D., Méry, D. (eds.) 1st Workshop on Formal Integrated Development Environment, (F-IDE 2014). EPTCS, vol. 149, pp. 79–92 (2014)

    Google Scholar 

  24. Dalpiaz, F., Paja, E., Giorgini, P.: Security Requirements Engineering: Designing Secure Socio-Technical Systems, 1st edn. MIT Press, Cambridge (2016)

    Google Scholar 

  25. Davis, M., Logemann, G., Loveland, D.W.: A machine program for theorem-proving. Commun. ACM 5(7), 394–397 (1962)

    Article  MathSciNet  MATH  Google Scholar 

  26. de Bruijn, N.: A survey of the project AUTOMATH. In: To H.B. Curry: Essays in Combinatory Logic, Lambda Calculus and Formalism, pp. 579–606. Academic Press (1980)

    Google Scholar 

  27. de Gouw, S., Rot, J., de Boer, F.S., Bubel, R., Hähnle, R.: OpenJDK’s Java.utils.Collection.sort() is broken: the good, the bad and the worst case. In: Kroening, D., Păsăreanu, C.S. (eds.) CAV 2015. LNCS, vol. 9206, pp. 273–289. Springer, Heidelberg (2015)

    Chapter  Google Scholar 

  28. de Lemos, R., et al.: Software engineering processes for self-adaptive systems. In: Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.) Software Engineering for Self-Adaptive Systems II. LNCS, vol. 7475, pp. 51–75. Springer, Heidelberg (2013). doi:10.1007/978-3-642-35813-5_3

    Chapter  Google Scholar 

  29. de Moura, L., Bjørner, N.S.: Z3: an efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  30. van Deursen, A.: Testing web applications with state objects. Commun. ACM 58(8), 36–43 (2015)

    Article  Google Scholar 

  31. Diekert, V., Leucker, M.: Topology, monitorable properties and runtime verification. Theor. Comput. Sci. 537, 29–41 (2014)

    Article  MathSciNet  MATH  Google Scholar 

  32. Distefano, D., O’Hearn, P.W., Yang, H.: A local shape analysis based on separation logic. In: Hermanns, H., Palsberg, J. (eds.) TACAS 2006. LNCS, vol. 3920, pp. 287–302. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  33. Eén, N., Sörensson, N.: An extensible SAT-solver. In: Giunchiglia, E., Tacchella, A. (eds.) SAT 2003. LNCS, vol. 2919, pp. 502–518. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  34. Ellison, C., Rosu, G.: An executable formal semantics of C with applications. In: 39th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2012), pp. 533–544. ACM (2012)

    Google Scholar 

  35. Erdweg, S., et al.: Evaluating and comparing language workbenches: existing results and benchmarks for the future. Comput. Lang. Syst. Struct. 44, 24–47 (2015)

    Google Scholar 

  36. Finkelstein, A., Gabbay, D., Hunter, A., Kramer, J., Nuseibeh, B.: Inconsistency handling in multiperspective specifications. IEEE TSE 20(8), 569–578 (1994)

    Google Scholar 

  37. Finkelstein, A., Kramer, J., Nuseibeh, B., Finkelstein, L., Goedicke, M.: Viewpoints: a framework for integrating multiple perspectives in system development. Int. J. Softw. Eng. Knowl. Eng. 2(1), 31–57 (1992)

    Article  Google Scholar 

  38. Fitzgerald, J., Larsen, P.G.: Modelling Systems: Practical Tools and Techniques for Software Development, 2nd edn. Cambridge University Press, Cambridge (2009)

    Book  MATH  Google Scholar 

  39. Fowler, M.: Language workbenches: The killer-app. for domain specific languages? (2005). http://www.martinfowler.com/articles/languageWorkbench.html

  40. Fowler, M.: Domain-Specific Languages. Addison Wesley, Boston (2010)

    Google Scholar 

  41. Ganapathi, A., Patterson, D.A.: Crash data collection: a windows case study. In: DSN, pp. 280–285. IEEE Computer Society (2005)

    Google Scholar 

  42. Gartner Inc. Smart cities will include 10 billion things by 2020 (2015). https://www.gartner.com/doc/3004417/smart-cities-include-billion

  43. Ghardallou, W., Diallo, N., Mili, A.: Program derivation by correctness enhancements. In: Refinement (2015)

    Google Scholar 

  44. Giuffrida, C., Cavallaro, L., Tanenbaum, A.S.: Practical automated vulnerability monitoring using program state invariants. In: DSN, October 2013

    Google Scholar 

  45. Giuffrida, C., Iorgulescu, C., Kuijsten, A., Tanenbaum, A.S.: Back to the future: fault-tolerant live update with time-traveling state transfer. In: LISA, October 2013

    Google Scholar 

  46. Gratte, I.: Starting with COMAL. Prentice-Hall, Englewood Cliffs (1985)

    Google Scholar 

  47. Groote, J., Koorn, J., van Vlijmen, S.: The safety guaranteeing system at station Hoorn-Kersenboogerd (extended abstract). In: 10th Annual Conference on Computer Assurance (COMPASS 1995), pp. 57–68 (1995)

    Google Scholar 

  48. Groote, J., Mousavi, M.: Modeling and Analysis of Communicating Systems. The MIT Press, Cambridge (2014)

    MATH  Google Scholar 

  49. Groote, J.F., Warners, J.P.: The propositional formula checker HeerHugo. J. Autom. Reasoning 24(1/2), 101–125 (2000)

    Article  MathSciNet  MATH  Google Scholar 

  50. Hendrickson, E.: Explore It!: Reduce Risk and Increase Confidence with Exploratory Testing. The Pragmatic Bookshelf, Raleigh (2013)

    Google Scholar 

  51. Hoare, C.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)

    Article  MATH  Google Scholar 

  52. Huisman, M.: Reasoning about Java Programs in Higher Order Logic with PVS and Isabelle. Ph.D. thesis, University of Nijmegen (2001)

    Google Scholar 

  53. Hwong, Y., Keiren, J., Kusters, V., Leemans, S., Willemse, T.: Formalising and analysing the control software of the compact muon solenoid experiment at the large hadron collider. Sci. Comput. Program. 78, 2435–2452 (2013)

    Article  Google Scholar 

  54. Ingolfo, S., Siena, A., Mylopoulos, J.: Establishing regulatory compliance for software requirements. In: Jeusfeld, M., Delcambre, L., Ling, T.-W. (eds.) ER 2011. LNCS, vol. 6998, pp. 47–61. Springer, Heidelberg (2011). doi:10.1007/978-3-642-24606-7_5

    Chapter  Google Scholar 

  55. Kant, G., Laarman, A., Meijer, J., van de Pol, J., Blom, S., van Dijk, T.: LTSmin: high-performance language-independent model checking. In: Baier, C., Tinelli, C. (eds.) TACAS 2015. LNCS, vol. 9035, pp. 692–707. Springer, Heidelberg (2015)

    Google Scholar 

  56. Kemme, B., Jiménez, R., Patiño-Martinínez, M.: Database Replication. Synthesis Lectures on Data Management. Morgan & Claypool Publishers, San Rafael (2010)

    MATH  Google Scholar 

  57. Lago, P., Koçak, S.A., Crnkovic, I., Penzenstadler, B.: Framing sustainability as a property of software quality. Commun. ACM 58(10), 70–78 (2015)

    Article  Google Scholar 

  58. Le Goues, C., Nguyen, T., Forrest, S., Weimer, W.: GenProg: a generic method for automatic software repair. IEEE Trans. Softw. Eng. 38(1), 54–72 (2012)

    Article  Google Scholar 

  59. Leavens, G., Poll, E., Clifton, C., Cheon, Y., Ruby, C., Cok, D.R., Müller, P., Kiniry, J., Chalin, P.: JML Reference Manual, Dept. of Computer Science, Iowa State University, February 2007. http://www.jmlspecs.org

  60. Leroy, X.: Formal verification of a realistic compiler. Commun. ACM 52, 107–115 (2009)

    Article  Google Scholar 

  61. Lewis, G.A., Lago, P., Avgeriou, P.: A decision model for cyber-foraging systems. In: Proceedings of the 13th Working IEEE/IFIP Conference on Software Architecture (WICSA 2016), pp. 51–60. IEEE (2016)

    Google Scholar 

  62. Matias, R., Prince, M., Borges, L., Sousa, C., Henrique, L.: An empirical exploratory study on operating system reliability. In: 29th Annual ACM Symposium on Applied Computing, SAC 2014, pp. 1523–1528. ACM (2014)

    Google Scholar 

  63. Mesbah, A., van Deursen, A., Lenselink, S.: Crawling Ajax-based web applications through dynamic analysis of user interface state changes. ACM Trans. Web 6(1), 3 (2012)

    Article  Google Scholar 

  64. Mesbah, A., van Deursen, A., Roest, D.: Invariant-based automated testing of modern web applications. IEEE Trans. Softw. Eng. 38(1), 35–53 (2012)

    Article  Google Scholar 

  65. Meyer, B.: Touch of Class: Learning to Program Well with Objects and Contracts. Springer, Heidelberg (2009)

    Book  MATH  Google Scholar 

  66. Milner, R.: Calculus of Communicating Systems. Lectures in Computer Science, vol. 92. Springer, Heidelberg (1980)

    Book  MATH  Google Scholar 

  67. Necula, G.C.: Proof-carrying code. In: Principles of Programming Languages (1997)

    Google Scholar 

  68. Neron, P., Tolmach, A., Visser, E., Wachsmuth, G.: A theory of name resolution. In: Vitek, J. (ed.) ESOP 2015. LNCS, vol. 9032, pp. 205–231. Springer, Heidelberg (2015)

    Chapter  Google Scholar 

  69. Osaiweran, A., Schuts, M., Hooman, J., Groote, J., van Rijnsoever, B.: Evaluating the effect a lightweight formal technique in industry. Int. J. Softw. Tools Technol. Transf. 18, 93–108 (2016)

    Article  Google Scholar 

  70. Ostrand, T.J., Weyuker, E.J.: The distribution of faults in a large industrial software system. In: 2002 ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2002, pp. 55–64. ACM (2002)

    Google Scholar 

  71. Ostrand, T.J., Weyuker, E.J., Bell, R.M.: Where the bugs are. In: 2004 ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2004, pp. 86–96. ACM (2004)

    Google Scholar 

  72. Patikirikorala, T., Colman, A., Han, J., Wang, L.: A systematic survey on the design of self-adaptive software systems using control engineering approaches. In: Proceedings of the 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, pp. 33–42. IEEE Press (2012)

    Google Scholar 

  73. Pei, Y., Furia, C.A., Nordio, M., Wei, Y., Meyer, B., Zeller, A.: Automated fixing of programs with contracts. IEEE Trans. Softw. Eng. 40(5), 427–449 (2014)

    Article  Google Scholar 

  74. Perez, A., Abreu, R., van Deursen, A.: A unifying metric for test adequacy and diagnosability. In: Automated Software Engineering (2016, Submitted)

    Google Scholar 

  75. Procaccianti, G., Fernández, H., Lago, P.: Empirical evaluation of two best practices for energy-efficient software development. J. Syst. Softw. 117, 185–198 (2016)

    Article  Google Scholar 

  76. Procaccianti, G., Lago, P., Lewis, G.A.: A catalogue of green architectural tactics for the cloud. In: Maintenance and Evolution of Service-Oriented and Cloud-Based Systems (MESOCA 2014), pp. 29–36. IEEE (2014)

    Google Scholar 

  77. Procaccianti, G., Lago, P., Vetro, A., Fernández, D.M., Wieringa, R.: The green lab: experimentation in software energy efficiency. In: Proceedings of the 37th International Conference on Software Engineering-Volume 2 (2015)

    Google Scholar 

  78. Rozanski, N., Woods, E.: Software Systems Architecture: Working with Stakeholders using Viewpoints and Perspectives. Addison-Wesley, Boston (2012)

    Google Scholar 

  79. Salvesen, K., Galeotti, J.P., Gross, F., Fraser, G., Zeller, A.: Using dynamic symbolic execution to generate inputs in search-based GUI testing. In: Gay, G., Antoniol, G. (eds.) 8th IEEE/ACM International Workshop on Search-Based Software Testing, SBST 2015, pp. 32–35. IEEE (2015)

    Google Scholar 

  80. Sheeran, M., Stålmarck, G.: A tutorial on Stålmarck’s proof procedure for propositional logic. Formal Methods Syst. Des. 16(1), 23–58 (2000)

    Article  Google Scholar 

  81. Slowinska, A., Stancescu, T., Bos, H.: Body armor for binaries: preventing buffer overflows without recompilation. In: Proceedings of USENIX Annual Technical Conference, Boston, MA, June 2012

    Google Scholar 

  82. Tretmans, J.: Model based testing with labelled transition systems. In: Hierons, R.M., Bowen, J.P., Harman, M. (eds.) FORTEST. LNCS, vol. 4949, pp. 1–38. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  83. van der Veen, V., Goktas, E., Contag, M., Pawlowski, A., Chen, X., Rawat, S., Bos, H., Holz, T., Athanasopoulos, E., Giuffrida, C.: A tough call: mitigating advanced code-reuse attacks at the binary level. In: Proceedings of the 37th IEEE Symposium on Security and Privacy (Oakland), San Jose, CA, USA, IEEE, May 2016

    Google Scholar 

  84. van Deursen, A., Klint, P.: Little languages: little maintenance? J. Softw. Maintenance 10(2), 75–92 (1998)

    Article  Google Scholar 

  85. van Deursen, A., Klint, P., Tip, F.: Origin tracking. J. Symbolic Comput. 15(5/6), 523–545 (1993)

    Article  MATH  Google Scholar 

  86. van Deursen, A., Klint, P., Visser, J.: Domain-specific languages: an annotated bibliography. SIGPLAN Not. 35(6), 26–36 (2000)

    Article  Google Scholar 

  87. van Genuchten, M., Hatton, L.: Metrics with impact. IEEE Softw. 30, 99–101 (2013)

    Article  Google Scholar 

  88. van Genuchten, M., Hatton, L.: When software crosses a line. IEEE Softw. 33, 29–31 (2016)

    Google Scholar 

  89. van Lamsweerde, A.: Requirements engineering in the year 00: a research perspective. In: Proceedings of the IEEE International Symposium on Requirements Engineering, pp. 5–19 (2000)

    Google Scholar 

  90. van Lamsweerde, A.: Requirements Engineering: From System Goals to UML Models to Software Specifications. Wiley, Hoboken (2009)

    Google Scholar 

  91. von Hagen, W., Filesystems, U.: UNIX Filesystems: Evolution, Design, and Implementation. SAMS, Indianapolis (2002)

    Google Scholar 

  92. Weyns, D., Iftikhar, M.U., de la Iglesia, D.G., Ahmad, T.: A survey of formal methods in self-adaptive systems. In: Proceedings of the IC on Computer Science and Software Engineering, pp. 67–79. ACM (2012)

    Google Scholar 

  93. Whittaker, J.A.: Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design. Addison-Wesley, Boston (2009)

    Google Scholar 

  94. Witze, A.: Software error doomed Japanese Hitomi spacecraft. Nature 533, 18–19 (2016)

    Article  Google Scholar 

  95. Wurster, G., van Oorschot, P.C., Somayaji, A.: A generic attack on checksumming-based software tamper resistance. In: 2005 IEEE Symposium on Security and Privacy (S&P 2005), pp. 127–138. IEEE Computer Society (2005)

    Google Scholar 

  96. Yamada, S.: Software Reliability Modeling. Springer, Heidelberg (2014)

    Book  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Marieke Huisman .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing AG

About this paper

Cite this paper

Huisman, M. et al. (2016). Software that Meets Its Intent. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification and Validation: Discussion, Dissemination, Applications. ISoLA 2016. Lecture Notes in Computer Science(), vol 9953. Springer, Cham. https://doi.org/10.1007/978-3-319-47169-3_47

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-47169-3_47

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-47168-6

  • Online ISBN: 978-3-319-47169-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics