Aspects of abstraction in software development

被引:7
|
作者
Jackson, Michael [1 ]
机构
[1] Open Univ, Milton Keynes MK7 6AA, Bucks, England
来源
SOFTWARE AND SYSTEMS MODELING | 2012年 / 11卷 / 04期
关键词
Abstraction; Analogic model; Bottom-up design; Grounded abstraction; Free abstraction; Horizontal abstraction; Monsters; Refinement; Theory; Top-down design; Vertical abstraction;
D O I
10.1007/s10270-012-0259-7
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
- Abstraction is a fundamental tool of human thought in every context. This essay briefly reviews some manifestations of abstraction in everyday life, in engineering and mathematics, and in software and system development. Vertical and horizontal abstraction are distinguished and characterised. The use of vertical abstraction in top-down and bottom-up program development is discussed, and also, the use of horizontal abstraction in one very different approach to program design. The ubiquitous use of analogical models in software is explained in terms of analytical abstractions. Some aspects of the practical use of abstraction in the development of computer-based systems are explored. The necessity of multiple abstractions is argued from the essential nature of abstraction, which by definition focuses on some concerns at the expense of discarding others. Finally, some general recommendations are offered for a consciously thoughtful use of abstraction in software development.
引用
收藏
页码:495 / 511
页数:17
相关论文
共 50 条
  • [1] Aspects of abstraction in software development
    Michael Jackson
    [J]. Software & Systems Modeling, 2012, 11 : 495 - 511
  • [2] Models, domains and abstraction in software development
    Jacobsen, EE
    Kristensen, BB
    Nowack, P
    [J]. TOOLS 27: TECHNOLOGY OF OBJECT-ORIENTED LANGUAGES, PROCEEDINGS, 1998, : 28 - 42
  • [3] ABSTRACTION-BASED SOFTWARE-DEVELOPMENT
    HAGER, J
    [J]. COMMUNICATIONS OF THE ACM, 1986, 29 (11) : 1027 - 1027
  • [4] ABSTRACTION-BASED SOFTWARE-DEVELOPMENT
    BERZINS, V
    GRAY, M
    NAUMANN, D
    [J]. COMMUNICATIONS OF THE ACM, 1986, 29 (05) : 402 - 415
  • [5] Reflection and abstraction in learning software engineering's human aspects
    Hazzan, O
    Tomayko, JE
    [J]. COMPUTER, 2005, 38 (06) : 39 - +
  • [6] An incrementally modular abstraction hierarchy for linear software development methodology
    Ohmori, Kenji
    Kunii, Tosiyasu L.
    [J]. 2006 INTERNATIONAL CONFERENCE ON CYBERWORLDS, PROCEEDINGS, 2006, : 216 - +
  • [7] Human Aspects and Security in Software Development
    Staron, Miroslaw
    Abrahao, Silvia
    Penzenstaler, Birgit
    Serebrenik, Alexander
    [J]. IEEE SOFTWARE, 2024, 41 (04) : 171 - 174
  • [8] Implementation aspects of software development projects
    Kakkar, Sandhya
    [J]. 2006 ANNUAL IEEE INDIA CONFERENCE, 2006, : 12 - 17
  • [9] Legal aspects of software development with reuse
    Carr, NL
    Zand, M
    [J]. COMPUTERS AND THEIR APPLICATIONS: PROCEEDINGS OF THE ISCA 12TH INTERNATIONAL CONFERENCE, 1997, : 96 - 99
  • [10] Information Modeling Aspects of Software Development
    Timothy R. Colburn
    [J]. Minds and Machines, 1998, 8 : 375 - 393