Principles to Support Modular Software Construction

The construction of large software systems is always achieved through assembly of independently written components -- program modules. For these software components to work together, they must share a common set of data types and principles for representing structured data such as arrays of values a...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Journal of computer science and technology 2017, Vol.32 (1), p.3-10
1. Verfasser: Dennis, Jack B.
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 10
container_issue 1
container_start_page 3
container_title Journal of computer science and technology
container_volume 32
creator Dennis, Jack B.
description The construction of large software systems is always achieved through assembly of independently written components -- program modules. For these software components to work together, they must share a common set of data types and principles for representing structured data such as arrays of values and files. This common set of tools for creating and operating on data objects is provided by the infrastructure of the computer system: the hardware, operating system and runtime code. Because the nature and properties of these tools are crucial for correct operation of software components and their inter-operation, it is essential to have a precise specification that may be used for verifying correctness of application software on one hand, and to verify correctness of system behavior on the other. We call such a specification a program execution model (PXM). It is evident that the properties of the PXM implemented by a computer system can have serious impact on the ability of application programmers to practice modular software construction. This paper discusses the concept of program execution models and presents a set of principles that a PXM must satisfy to provide a sound basis for modular software construction. Because parallel program execution on computer systems with many processing units is an essential part of contemporary computing environments, the expression of parallelism and modular software construction using components involving parallel operations is included in this treatment. The conclusion is that it is possible to build computer systems that implement a PXM within which any parallel program may be used, unmodified, as a component for building more substantial parallel programs.
doi_str_mv 10.1007/s11390-017-1702-6
format Article
fullrecord <record><control><sourceid>wanfang_jour_proqu</sourceid><recordid>TN_cdi_wanfang_journals_jsjkxjsxb_e201701002</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><cqvip_id>671282235</cqvip_id><wanfj_id>jsjkxjsxb_e201701002</wanfj_id><sourcerecordid>jsjkxjsxb_e201701002</sourcerecordid><originalsourceid>FETCH-LOGICAL-c413t-35c9677252acdc121e309ac79d176e08f311f26ffb0776d6edfeced6736e4653</originalsourceid><addsrcrecordid>eNp9kEtLxTAQhYso-PwB7opuXFidSdqkWcrFFygKug8xTa6tNalJi_rvzaUi4sLNZBbfOSdzsmwf4QQB-GlEpAIKQF4gB1KwtWwLawZFyUuxnnYAKEQam9l2jB0A5VCWWxm9D63T7dCbmI8-f5iGwYcxv_XN1KuQP3g7vqtg8oV3cQyTHlvvdrMNq_po9r7fnezx4vxxcVXc3F1eL85uCl0iHQtaacE4JxVRutFI0FAQSnPRIGcGaksRLWHWPgHnrGGmsUabhnHKTMkqupMdz7bvylnllrLzU3ApUHaxe_no4seTNCRdDOk4kvCjGR-Cf5tMHOVrG7Xpe-WMn6LEmgtR1xwhoYd_0B9rrCuGQMpSJApnSgcfYzBWDqF9VeFTIshV6XIuXaYvyFXpkiUNmTUxsW5pwi_nf0QH30HP3i3fku4niXEkNSG0ol9xf448</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>1856102449</pqid></control><display><type>article</type><title>Principles to Support Modular Software Construction</title><source>SpringerLink (Online service)</source><creator>Dennis, Jack B.</creator><creatorcontrib>Dennis, Jack B.</creatorcontrib><description>The construction of large software systems is always achieved through assembly of independently written components -- program modules. For these software components to work together, they must share a common set of data types and principles for representing structured data such as arrays of values and files. This common set of tools for creating and operating on data objects is provided by the infrastructure of the computer system: the hardware, operating system and runtime code. Because the nature and properties of these tools are crucial for correct operation of software components and their inter-operation, it is essential to have a precise specification that may be used for verifying correctness of application software on one hand, and to verify correctness of system behavior on the other. We call such a specification a program execution model (PXM). It is evident that the properties of the PXM implemented by a computer system can have serious impact on the ability of application programmers to practice modular software construction. This paper discusses the concept of program execution models and presents a set of principles that a PXM must satisfy to provide a sound basis for modular software construction. Because parallel program execution on computer systems with many processing units is an essential part of contemporary computing environments, the expression of parallelism and modular software construction using components involving parallel operations is included in this treatment. The conclusion is that it is possible to build computer systems that implement a PXM within which any parallel program may be used, unmodified, as a component for building more substantial parallel programs.</description><identifier>ISSN: 1000-9000</identifier><identifier>EISSN: 1860-4749</identifier><identifier>DOI: 10.1007/s11390-017-1702-6</identifier><language>eng</language><publisher>New York: Springer US</publisher><subject>Artificial Intelligence ; Computer architecture ; Computer engineering ; Computer peripherals ; Computer programs ; Computer Science ; Computer simulation ; Computers ; Construction ; Data Structures and Information Theory ; Information Systems Applications (incl.Internet) ; Infrastructure ; Interfaces ; Magnetic tape ; Mathematical models ; Modular construction ; Operating systems ; Parallel operation ; Parallel programming ; Principles ; Programming languages ; Semantics ; Software ; Software Engineering ; Specifications ; Structured data ; Studies ; Survey ; Theory of Computation ; 工程实践能力 ; 并行程序 ; 操作系统 ; 模块化软件 ; 程序模块 ; 计算机系统 ; 软件建设 ; 软件组件</subject><ispartof>Journal of computer science and technology, 2017, Vol.32 (1), p.3-10</ispartof><rights>Springer Science+Business Media New York 2017</rights><rights>Springer Science+Business Media New York 2017.</rights><rights>Copyright © Wanfang Data Co. Ltd. All Rights Reserved.</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c413t-35c9677252acdc121e309ac79d176e08f311f26ffb0776d6edfeced6736e4653</citedby><cites>FETCH-LOGICAL-c413t-35c9677252acdc121e309ac79d176e08f311f26ffb0776d6edfeced6736e4653</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Uhttp://image.cqvip.com/vip1000/qk/85226X/85226X.jpg</thumbnail><linktopdf>$$Uhttps://link.springer.com/content/pdf/10.1007/s11390-017-1702-6$$EPDF$$P50$$Gspringer$$H</linktopdf><linktohtml>$$Uhttps://link.springer.com/10.1007/s11390-017-1702-6$$EHTML$$P50$$Gspringer$$H</linktohtml><link.rule.ids>314,780,784,4024,27923,27924,27925,41488,42557,51319</link.rule.ids></links><search><creatorcontrib>Dennis, Jack B.</creatorcontrib><title>Principles to Support Modular Software Construction</title><title>Journal of computer science and technology</title><addtitle>J. Comput. Sci. Technol</addtitle><addtitle>Journal of Computer Science and Technology</addtitle><description>The construction of large software systems is always achieved through assembly of independently written components -- program modules. For these software components to work together, they must share a common set of data types and principles for representing structured data such as arrays of values and files. This common set of tools for creating and operating on data objects is provided by the infrastructure of the computer system: the hardware, operating system and runtime code. Because the nature and properties of these tools are crucial for correct operation of software components and their inter-operation, it is essential to have a precise specification that may be used for verifying correctness of application software on one hand, and to verify correctness of system behavior on the other. We call such a specification a program execution model (PXM). It is evident that the properties of the PXM implemented by a computer system can have serious impact on the ability of application programmers to practice modular software construction. This paper discusses the concept of program execution models and presents a set of principles that a PXM must satisfy to provide a sound basis for modular software construction. Because parallel program execution on computer systems with many processing units is an essential part of contemporary computing environments, the expression of parallelism and modular software construction using components involving parallel operations is included in this treatment. The conclusion is that it is possible to build computer systems that implement a PXM within which any parallel program may be used, unmodified, as a component for building more substantial parallel programs.</description><subject>Artificial Intelligence</subject><subject>Computer architecture</subject><subject>Computer engineering</subject><subject>Computer peripherals</subject><subject>Computer programs</subject><subject>Computer Science</subject><subject>Computer simulation</subject><subject>Computers</subject><subject>Construction</subject><subject>Data Structures and Information Theory</subject><subject>Information Systems Applications (incl.Internet)</subject><subject>Infrastructure</subject><subject>Interfaces</subject><subject>Magnetic tape</subject><subject>Mathematical models</subject><subject>Modular construction</subject><subject>Operating systems</subject><subject>Parallel operation</subject><subject>Parallel programming</subject><subject>Principles</subject><subject>Programming languages</subject><subject>Semantics</subject><subject>Software</subject><subject>Software Engineering</subject><subject>Specifications</subject><subject>Structured data</subject><subject>Studies</subject><subject>Survey</subject><subject>Theory of Computation</subject><subject>工程实践能力</subject><subject>并行程序</subject><subject>操作系统</subject><subject>模块化软件</subject><subject>程序模块</subject><subject>计算机系统</subject><subject>软件建设</subject><subject>软件组件</subject><issn>1000-9000</issn><issn>1860-4749</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2017</creationdate><recordtype>article</recordtype><sourceid>ABUWG</sourceid><sourceid>AFKRA</sourceid><sourceid>AZQEC</sourceid><sourceid>BENPR</sourceid><sourceid>CCPQU</sourceid><sourceid>DWQXO</sourceid><sourceid>GNUQQ</sourceid><recordid>eNp9kEtLxTAQhYso-PwB7opuXFidSdqkWcrFFygKug8xTa6tNalJi_rvzaUi4sLNZBbfOSdzsmwf4QQB-GlEpAIKQF4gB1KwtWwLawZFyUuxnnYAKEQam9l2jB0A5VCWWxm9D63T7dCbmI8-f5iGwYcxv_XN1KuQP3g7vqtg8oV3cQyTHlvvdrMNq_po9r7fnezx4vxxcVXc3F1eL85uCl0iHQtaacE4JxVRutFI0FAQSnPRIGcGaksRLWHWPgHnrGGmsUabhnHKTMkqupMdz7bvylnllrLzU3ApUHaxe_no4seTNCRdDOk4kvCjGR-Cf5tMHOVrG7Xpe-WMn6LEmgtR1xwhoYd_0B9rrCuGQMpSJApnSgcfYzBWDqF9VeFTIshV6XIuXaYvyFXpkiUNmTUxsW5pwi_nf0QH30HP3i3fku4niXEkNSG0ol9xf448</recordid><startdate>2017</startdate><enddate>2017</enddate><creator>Dennis, Jack B.</creator><general>Springer US</general><general>Springer Nature B.V</general><general>Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, Cambridge MA 02139, U.S.A</general><scope>2RA</scope><scope>92L</scope><scope>CQIGP</scope><scope>W92</scope><scope>~WA</scope><scope>AAYXX</scope><scope>CITATION</scope><scope>3V.</scope><scope>7SC</scope><scope>7WY</scope><scope>7WZ</scope><scope>7XB</scope><scope>87Z</scope><scope>8AL</scope><scope>8FD</scope><scope>8FE</scope><scope>8FG</scope><scope>8FK</scope><scope>8FL</scope><scope>ABJCF</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>ARAPS</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BEZIV</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>FRNLG</scope><scope>F~G</scope><scope>GNUQQ</scope><scope>HCIFZ</scope><scope>JQ2</scope><scope>K60</scope><scope>K6~</scope><scope>K7-</scope><scope>L.-</scope><scope>L6V</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope><scope>M0C</scope><scope>M0N</scope><scope>M7S</scope><scope>P5Z</scope><scope>P62</scope><scope>PQBIZ</scope><scope>PQBZA</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PTHSS</scope><scope>Q9U</scope><scope>2B.</scope><scope>4A8</scope><scope>92I</scope><scope>93N</scope><scope>PSX</scope><scope>TCJ</scope></search><sort><creationdate>2017</creationdate><title>Principles to Support Modular Software Construction</title><author>Dennis, Jack B.</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c413t-35c9677252acdc121e309ac79d176e08f311f26ffb0776d6edfeced6736e4653</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2017</creationdate><topic>Artificial Intelligence</topic><topic>Computer architecture</topic><topic>Computer engineering</topic><topic>Computer peripherals</topic><topic>Computer programs</topic><topic>Computer Science</topic><topic>Computer simulation</topic><topic>Computers</topic><topic>Construction</topic><topic>Data Structures and Information Theory</topic><topic>Information Systems Applications (incl.Internet)</topic><topic>Infrastructure</topic><topic>Interfaces</topic><topic>Magnetic tape</topic><topic>Mathematical models</topic><topic>Modular construction</topic><topic>Operating systems</topic><topic>Parallel operation</topic><topic>Parallel programming</topic><topic>Principles</topic><topic>Programming languages</topic><topic>Semantics</topic><topic>Software</topic><topic>Software Engineering</topic><topic>Specifications</topic><topic>Structured data</topic><topic>Studies</topic><topic>Survey</topic><topic>Theory of Computation</topic><topic>工程实践能力</topic><topic>并行程序</topic><topic>操作系统</topic><topic>模块化软件</topic><topic>程序模块</topic><topic>计算机系统</topic><topic>软件建设</topic><topic>软件组件</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Dennis, Jack B.</creatorcontrib><collection>维普_期刊</collection><collection>中文科技期刊数据库-CALIS站点</collection><collection>维普中文期刊数据库</collection><collection>中文科技期刊数据库-工程技术</collection><collection>中文科技期刊数据库- 镜像站点</collection><collection>CrossRef</collection><collection>ProQuest Central (Corporate)</collection><collection>Computer and Information Systems Abstracts</collection><collection>ABI/INFORM Collection</collection><collection>ABI/INFORM Global (PDF only)</collection><collection>ProQuest Central (purchase pre-March 2016)</collection><collection>ABI/INFORM Collection</collection><collection>Computing Database (Alumni Edition)</collection><collection>Technology Research Database</collection><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>ProQuest Central (Alumni) (purchase pre-March 2016)</collection><collection>ABI/INFORM Collection (Alumni Edition)</collection><collection>Materials Science &amp; Engineering Collection</collection><collection>ProQuest Central (Alumni)</collection><collection>ProQuest Central</collection><collection>Advanced Technologies &amp; Aerospace Collection</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>ProQuest Business Premium Collection</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central</collection><collection>Business Premium Collection (Alumni)</collection><collection>ABI/INFORM Global (Corporate)</collection><collection>ProQuest Central Student</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Computer Science Collection</collection><collection>ProQuest Business Collection (Alumni Edition)</collection><collection>ProQuest Business Collection</collection><collection>Computer science database</collection><collection>ABI/INFORM Professional Advanced</collection><collection>ProQuest Engineering Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><collection>ABI/INFORM global</collection><collection>Computing Database</collection><collection>Engineering Database</collection><collection>ProQuest advanced technologies &amp; aerospace journals</collection><collection>ProQuest Advanced Technologies &amp; Aerospace Collection</collection><collection>ProQuest One Business</collection><collection>ProQuest One Business (Alumni)</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>Engineering collection</collection><collection>ProQuest Central Basic</collection><collection>Wanfang Data Journals - Hong Kong</collection><collection>WANFANG Data Centre</collection><collection>Wanfang Data Journals</collection><collection>万方数据期刊 - 香港版</collection><collection>China Online Journals (COJ)</collection><collection>China Online Journals (COJ)</collection><jtitle>Journal of computer science and technology</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Dennis, Jack B.</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Principles to Support Modular Software Construction</atitle><jtitle>Journal of computer science and technology</jtitle><stitle>J. Comput. Sci. Technol</stitle><addtitle>Journal of Computer Science and Technology</addtitle><date>2017</date><risdate>2017</risdate><volume>32</volume><issue>1</issue><spage>3</spage><epage>10</epage><pages>3-10</pages><issn>1000-9000</issn><eissn>1860-4749</eissn><abstract>The construction of large software systems is always achieved through assembly of independently written components -- program modules. For these software components to work together, they must share a common set of data types and principles for representing structured data such as arrays of values and files. This common set of tools for creating and operating on data objects is provided by the infrastructure of the computer system: the hardware, operating system and runtime code. Because the nature and properties of these tools are crucial for correct operation of software components and their inter-operation, it is essential to have a precise specification that may be used for verifying correctness of application software on one hand, and to verify correctness of system behavior on the other. We call such a specification a program execution model (PXM). It is evident that the properties of the PXM implemented by a computer system can have serious impact on the ability of application programmers to practice modular software construction. This paper discusses the concept of program execution models and presents a set of principles that a PXM must satisfy to provide a sound basis for modular software construction. Because parallel program execution on computer systems with many processing units is an essential part of contemporary computing environments, the expression of parallelism and modular software construction using components involving parallel operations is included in this treatment. The conclusion is that it is possible to build computer systems that implement a PXM within which any parallel program may be used, unmodified, as a component for building more substantial parallel programs.</abstract><cop>New York</cop><pub>Springer US</pub><doi>10.1007/s11390-017-1702-6</doi><tpages>8</tpages></addata></record>
fulltext fulltext
identifier ISSN: 1000-9000
ispartof Journal of computer science and technology, 2017, Vol.32 (1), p.3-10
issn 1000-9000
1860-4749
language eng
recordid cdi_wanfang_journals_jsjkxjsxb_e201701002
source SpringerLink (Online service)
subjects Artificial Intelligence
Computer architecture
Computer engineering
Computer peripherals
Computer programs
Computer Science
Computer simulation
Computers
Construction
Data Structures and Information Theory
Information Systems Applications (incl.Internet)
Infrastructure
Interfaces
Magnetic tape
Mathematical models
Modular construction
Operating systems
Parallel operation
Parallel programming
Principles
Programming languages
Semantics
Software
Software Engineering
Specifications
Structured data
Studies
Survey
Theory of Computation
工程实践能力
并行程序
操作系统
模块化软件
程序模块
计算机系统
软件建设
软件组件
title Principles to Support Modular Software Construction
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-01T09%3A10%3A05IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-wanfang_jour_proqu&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Principles%20to%20Support%20Modular%20Software%20Construction&rft.jtitle=Journal%20of%20computer%20science%20and%20technology&rft.au=Dennis,%20Jack%20B.&rft.date=2017&rft.volume=32&rft.issue=1&rft.spage=3&rft.epage=10&rft.pages=3-10&rft.issn=1000-9000&rft.eissn=1860-4749&rft_id=info:doi/10.1007/s11390-017-1702-6&rft_dat=%3Cwanfang_jour_proqu%3Ejsjkxjsxb_e201701002%3C/wanfang_jour_proqu%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=1856102449&rft_id=info:pmid/&rft_cqvip_id=671282235&rft_wanfj_id=jsjkxjsxb_e201701002&rfr_iscdi=true