Design by contract for python']python

被引:9
|
作者
Plosch, R [1 ]
机构
[1] Johannes Kepler Univ, Ch Doppler Lab Software Engn, A-4040 Linz, Austria
关键词
D O I
10.1109/APSEC.1997.640178
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The idea of design by contract (DEC), realized in the statically typed object-oriented programming language Eiffel, can be viewed as a systematic approach to specifying and implementing object-oriented software systems. We believe that a statically typed programming language is not suitable in the analysis and design phase of a prototyping-oriented software life cycle. For this purpose, dynamically typed interpreted programming languages art: better suited. Unfortunately, dynamically typed programming languages usually do not support the concept of DBC. Therefore we integrated DEC into the programming language Python by using a metaprogramming approach, i.e., without changing the language or the run-time system. We adopted the DEC concept by adding mechanisms for dynamic type checking for method parameters and instance variables. The proposed combination of a more formal approach with a slim programming language provides a good basis for elicitation and documentation tasks in the analysis and design phase, especially in cases of a prototyping-oriented software development approach. Although the approach presented provides basic tool support for the analysis and design phase, further tool support, especially for browsing assertions, is desirable.
引用
收藏
页码:213 / 219
页数:7
相关论文
共 50 条
  • [1] Python']Python-by-Contract Dataset
    Zhang, Jiyang
    Ristin, Marko
    Schanely, Phillip
    Van de Venn, Hans Wernher
    Gligoric, Milos
    PROCEEDINGS OF THE 30TH ACM JOINT MEETING EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, ESEC/FSE 2022, 2022, : 1652 - 1656
  • [2] A Python']Python-Based Design-by-Contract Evolutionary Algorithm Framework with Augmented Diagnostic Capabilities
    Panchapakesan, Ashwin
    Abielmona, Rami
    Petriu, Emil
    2013 IEEE CONGRESS ON EVOLUTIONARY COMPUTATION (CEC), 2013, : 2517 - 2524
  • [3] Design and Evaluation of Gradual Typing for Python']Python
    Vitousek, Michael M.
    Kent, Andrew M.
    Siek, Jeremy G.
    Baker, Jim
    ACM SIGPLAN NOTICES, 2015, 50 (02) : 45 - 56
  • [4] A Debugger-Cooperative Higher-Order Contract System in Python']Python
    Arai, Ryoya
    Sato, Shigeyuki
    Iwasaki, Hideya
    PROGRAMMING LANGUAGES AND SYSTEMS, APLAS 2016, 2016, 10017 : 148 - 168
  • [5] Hemodynamic effects of python']python neuropeptide γ in the anesthetized python']python, Python']Python regius
    Skovgaard, N
    Galli, G
    Taylor, EW
    Conlon, JM
    Wang, TB
    REGULATORY PEPTIDES, 2005, 128 (01) : 15 - 26
  • [6] ADOpy: a python']python package for adaptive design optimization
    Yang, Jaeyeong
    Pitt, Mark A.
    Ahn, Woo-Young
    Myung, Jay I.
    BEHAVIOR RESEARCH METHODS, 2021, 53 (02) : 874 - 897
  • [7] pymetamodels: A Python']Python package for metamodeling and design automation
    Escribano, Nicolas
    Bielsa, Jose Manuel
    Lahuerta, Francisco
    SOFTWAREX, 2024, 26
  • [8] Hemodynamic effects of python']python neuropeptide γ in the anaesthetized python']python, Python']Python regius
    Skovgarrd, N
    Galli, GLJ
    Taylor, EW
    Conlon, JM
    Wang, T
    COMPARATIVE BIOCHEMISTRY AND PHYSIOLOGY B-BIOCHEMISTRY & MOLECULAR BIOLOGY, 2004, 139 (01): : 148 - 149
  • [9] Image Forming Design and Analysis Using Python']Python
    Hayford, Michael J.
    INTERNATIONAL OPTICAL DESIGN CONFERENCE 2021, 2021, 12078
  • [10] Logic Design as an Enabler to Python']Python Programming Language Teaching
    Velaora, Chrysoula
    Kakarountas, Athanasios
    2019 PANHELLENIC CONFERENCE ON ELECTRONICS AND TELECOMMUNICATIONS (PACET2019), 2019, : 71 - 76