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...
Gespeichert in:
Veröffentlicht in: | Journal of computer science and technology 2017, Vol.32 (1), p.3-10 |
---|---|
1. Verfasser: | |
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 & Engineering Collection</collection><collection>ProQuest Central (Alumni)</collection><collection>ProQuest Central</collection><collection>Advanced Technologies & 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 & aerospace journals</collection><collection>ProQuest Advanced Technologies & 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 |