Some reservations on software process programming

M. Lehman
{"title":"Some reservations on software process programming","authors":"M. Lehman","doi":"10.1145/75110.75128","DOIUrl":null,"url":null,"abstract":"In what follows the term `process programs` is used as shorthand for the stated intended workshop focus `executable and interpretable (surely `interpretable and executable`?) models of the software (`development?`) process and their prescriptive application to directly controlling software project activities`.\nAt the recent ICSE9 conference [LEH87] I indicated my strong reservations about process programs and the role they could or should play in software development. I questioned whether their pursuit or development would yield more insight into the software development process, produce better understanding of that process or lead to its significant improvement. I also expressed some concern at popularisation of process programming. These reservations and concerns have been intensified by the workshop announcement which appears to reflect the very euphoria I feared. There is no need to repeat the details here and I use this opportunity to briefly explore some underlying and intrinsic reasons for my attitude and concern.\nProcess programming is, unquestionably, one approach to process modelling. Superficially it appears to have an advantage over other, less formalised, approaches in that its models can be machine interpreted and can, therefore, be used as a process control mechanism. It may for example, be suggested that a program driven mechanism can be used to select and invoke the application of a sequence of IPSE tools. The IPSE itself could then be tuned to the needs of a particular application of the process by preparing and loading an appropriate process program or by adjusting parameters in a program already loaded. Any benefit from an implementation of this approach would, however, be virtual rather than real. The implementors, the manager responsible for progress and the software engineer {LEH86} responsible for the dynamic process composition would have to intervene on completion of each constituent activity to select the next action on the basis of circumstance dependent considerations that cannot be predicted; that must be determined in real time. Indeed, where such intervention is considered to be never necessary, tools being used, and the actions they implement, would be coupled and comprises an entity. In so far as a, so called, process program determines that coupling it simply represents a part of a more complex tool.\nWith this view the process program is seen to comprise a series of calls for specific actions with a human having to take the decision as to which action — and tool — is next to be invoked.\nThis situation arises because the process is heavily context dependent. The direction and nature of further progress from any stage is a function of progress already made and how it was achieved; on the nature and properties of the continuously developing process product and on the essential and central role of human creativity in the creation of that product. The process followed to implement a particular program or software system includes intrinsic interdependencies between different steps or actions in the process as well as dependencies on the problem or application domain, the solution approach adopted and human input, creative and otherwise, during process execution. Detailed process structure and composition cannot be predicted. Both are dynamic, determined and controlled amongst other factors, by multi-loop feedback paths and effects. Process descriptions, whether formal or informal, are essentially imprecise and non-deterministic.\nOther, equally important, fundamental problems with process programs arise because computer application for which software is developed occurs, in general, in an essentially continuous and infinite application domain. Any digital computer-based process model is discrete and finite. Abstraction, discretisation and data selection must occur during program creation, though binding may, sometimes, be delayed till initiation of each process step. A `program` based model limits, therefore, the scope and power of what can be achieved. The process it represents differs fundamentally, from human controlled processes where the context dependent abstraction and discretisation necessary during process execution occurs, in general, when required rather than when planned. That process can take into account all circumstances relevant to progress at the time when decisions for further action must be taken, when binding must occur. Undoubtedly controls are then required to discipline and direct the human contribution. Models can and must play a significant role in the development and implementation of such controls and the tools that mechanise them. But that is a different, more limited role than that envisaged by the workshop announcement.\nOn the basis of this outline analysis one may question many of the implied assumptions underlying the workshop announcement and develop specific answers to the questions posed. For example, interest should be focussed on GOOD processes for execution, not on `GOOD processes for modelling`. I question the validity, at this point in time, of a search for requirements for prescriptive models or that formalisms are needed, as distinct from possibly being useful in a limited way. Formalisation and mechanisation do not enhance human intelligence. Formalism can provide support for human understanding; mechanisation will reduce or replace such human repetitive activity for which the need and make-up is predictable. And so on.\nEqually, answers to some of the questions as posed in the call are clear. In my judgement it is unquestionable, for example, that there are limits, severe limits, to which it is practical or desirable to automate the software (development) process arising both from technological and sociological issues. It is to be hoped that the workshop will consider real issues and not follow philosophical willow-the-wisps.\nProcess models of whatever sort must not become an obsession. Their prime purpose is to aid human investigation, achievement of understanding and process design and refinement. They will also prove useful in a limited way to guide IPSE and tool architecture and to help control IPSE usage. In the latter role they will undoubtedly use active information retrieval mechanisms which may include inferential properties operating on data in the IPSE information repository.","PeriodicalId":414925,"journal":{"name":"International Software Process Workshop","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1988-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"8","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"International Software Process Workshop","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/75110.75128","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 8

Abstract

In what follows the term `process programs` is used as shorthand for the stated intended workshop focus `executable and interpretable (surely `interpretable and executable`?) models of the software (`development?`) process and their prescriptive application to directly controlling software project activities`. At the recent ICSE9 conference [LEH87] I indicated my strong reservations about process programs and the role they could or should play in software development. I questioned whether their pursuit or development would yield more insight into the software development process, produce better understanding of that process or lead to its significant improvement. I also expressed some concern at popularisation of process programming. These reservations and concerns have been intensified by the workshop announcement which appears to reflect the very euphoria I feared. There is no need to repeat the details here and I use this opportunity to briefly explore some underlying and intrinsic reasons for my attitude and concern. Process programming is, unquestionably, one approach to process modelling. Superficially it appears to have an advantage over other, less formalised, approaches in that its models can be machine interpreted and can, therefore, be used as a process control mechanism. It may for example, be suggested that a program driven mechanism can be used to select and invoke the application of a sequence of IPSE tools. The IPSE itself could then be tuned to the needs of a particular application of the process by preparing and loading an appropriate process program or by adjusting parameters in a program already loaded. Any benefit from an implementation of this approach would, however, be virtual rather than real. The implementors, the manager responsible for progress and the software engineer {LEH86} responsible for the dynamic process composition would have to intervene on completion of each constituent activity to select the next action on the basis of circumstance dependent considerations that cannot be predicted; that must be determined in real time. Indeed, where such intervention is considered to be never necessary, tools being used, and the actions they implement, would be coupled and comprises an entity. In so far as a, so called, process program determines that coupling it simply represents a part of a more complex tool. With this view the process program is seen to comprise a series of calls for specific actions with a human having to take the decision as to which action — and tool — is next to be invoked. This situation arises because the process is heavily context dependent. The direction and nature of further progress from any stage is a function of progress already made and how it was achieved; on the nature and properties of the continuously developing process product and on the essential and central role of human creativity in the creation of that product. The process followed to implement a particular program or software system includes intrinsic interdependencies between different steps or actions in the process as well as dependencies on the problem or application domain, the solution approach adopted and human input, creative and otherwise, during process execution. Detailed process structure and composition cannot be predicted. Both are dynamic, determined and controlled amongst other factors, by multi-loop feedback paths and effects. Process descriptions, whether formal or informal, are essentially imprecise and non-deterministic. Other, equally important, fundamental problems with process programs arise because computer application for which software is developed occurs, in general, in an essentially continuous and infinite application domain. Any digital computer-based process model is discrete and finite. Abstraction, discretisation and data selection must occur during program creation, though binding may, sometimes, be delayed till initiation of each process step. A `program` based model limits, therefore, the scope and power of what can be achieved. The process it represents differs fundamentally, from human controlled processes where the context dependent abstraction and discretisation necessary during process execution occurs, in general, when required rather than when planned. That process can take into account all circumstances relevant to progress at the time when decisions for further action must be taken, when binding must occur. Undoubtedly controls are then required to discipline and direct the human contribution. Models can and must play a significant role in the development and implementation of such controls and the tools that mechanise them. But that is a different, more limited role than that envisaged by the workshop announcement. On the basis of this outline analysis one may question many of the implied assumptions underlying the workshop announcement and develop specific answers to the questions posed. For example, interest should be focussed on GOOD processes for execution, not on `GOOD processes for modelling`. I question the validity, at this point in time, of a search for requirements for prescriptive models or that formalisms are needed, as distinct from possibly being useful in a limited way. Formalisation and mechanisation do not enhance human intelligence. Formalism can provide support for human understanding; mechanisation will reduce or replace such human repetitive activity for which the need and make-up is predictable. And so on. Equally, answers to some of the questions as posed in the call are clear. In my judgement it is unquestionable, for example, that there are limits, severe limits, to which it is practical or desirable to automate the software (development) process arising both from technological and sociological issues. It is to be hoped that the workshop will consider real issues and not follow philosophical willow-the-wisps. Process models of whatever sort must not become an obsession. Their prime purpose is to aid human investigation, achievement of understanding and process design and refinement. They will also prove useful in a limited way to guide IPSE and tool architecture and to help control IPSE usage. In the latter role they will undoubtedly use active information retrieval mechanisms which may include inferential properties operating on data in the IPSE information repository.
对软件过程编程的一些保留意见
在接下来的内容中,术语“过程程序”被用作陈述的预期研讨会焦点“软件(“开发”)过程的可执行和可解释(当然是“可解释和可执行”)模型及其直接控制软件项目活动的规范性应用”的简写。在最近的ICSE9会议[LEH87]上,我表明了我对过程程序及其在软件开发中可以或应该扮演的角色的强烈保留。我质疑他们的追求或开发是否会对软件开发过程产生更多的洞察力,产生对该过程更好的理解,或者导致其显著的改进。我还对过程编程的普及表示了一些关切。这些保留意见和关切因研讨会的宣布而更加强烈,这似乎反映了我所担心的兴奋情绪。这里没有必要重复细节,我借此机会简要探讨我的态度和关注的一些潜在的和内在的原因。毫无疑问,过程编程是过程建模的一种方法。从表面上看,它似乎比其他不太形式化的方法有优势,因为它的模型可以被机器解释,因此可以用作过程控制机制。例如,可以建议使用程序驱动机制来选择和调用一系列IPSE工具的应用程序。然后,可以通过准备和加载适当的流程程序或通过调整已加载的程序中的参数来调整IPSE本身以适应流程的特定应用程序的需要。然而,实现这种方法所带来的任何好处都是虚拟的,而不是真实的。实现者、负责进度的经理和负责动态流程组合的软件工程师必须在每个组成活动完成时进行干预,以根据无法预测的环境依赖因素选择下一个行动;这必须实时确定。事实上,当这种干预被认为是没有必要的时候,正在使用的工具和它们所实施的行动将被耦合并组成一个实体。在所谓的过程程序确定耦合的范围内,它只是代表一个更复杂工具的一部分。从这个角度来看,流程程序被看作是由一系列特定操作的调用组成的,而一个人必须决定接下来调用哪个操作和工具。出现这种情况是因为流程严重依赖于上下文。任何阶段进一步进展的方向和性质取决于已经取得的进展以及如何取得的进展;关于不断发展的过程产品的性质和特性,以及人类创造力在该产品的创造中所起的基本和中心作用。实现特定程序或软件系统所遵循的过程包括过程中不同步骤或操作之间的内在相互依赖关系,以及过程执行期间对问题或应用程序领域、采用的解决方案方法和人工输入(创造性的或其他的)的依赖关系。详细的工艺结构和组成无法预测。两者都是动态的,在其他因素中,由多回路反馈路径和效果决定和控制。过程描述,无论是正式的还是非正式的,本质上都是不精确和不确定的。过程程序的其他同样重要的基本问题的出现,是因为开发软件的计算机应用通常发生在本质上连续和无限的应用领域。任何基于数字计算机的过程模型都是离散的和有限的。抽象、离散和数据选择必须在程序创建期间进行,尽管绑定有时可能延迟到每个过程步骤的开始。因此,基于“程序”的模型限制了可以实现的范围和能力。它所代表的过程从根本上不同于人工控制的过程,在人工控制的过程中,过程执行过程中必要的与上下文相关的抽象和离散化通常发生在需要的时候,而不是计划好的时候。当必须作出进一步行动的决定时,当必须产生约束力时,这一进程可以考虑到与进展有关的所有情况。毫无疑问,需要控制来约束和指导人类的贡献。模型能够而且必须在开发和实现这些控制以及使它们机械化的工具中发挥重要作用。但这是一个不同的、更有限的角色,而不是研讨会公告所设想的那样。在此概要分析的基础上,人们可以质疑研讨会公告背后的许多隐含假设,并对所提出的问题提出具体的答案。 例如,兴趣应该集中在执行的良好过程上,而不是“建模的良好过程”上。在这个时间点上,我对寻找规定性模型的需求或需要形式主义的有效性提出质疑,因为这与可能以有限的方式有用截然不同。正规化和机械化并不能提高人类的智力。形式主义可以为人类的理解提供支持;机械化将减少或取代这种需要和组成是可预测的人类重复活动。等等......同样,电话中提出的一些问题的答案是明确的。在我的判断中,毫无疑问,例如,存在一些限制,严重的限制,使软件(开发)过程自动化是实际的或可取的,这些限制来自技术和社会问题。希望研讨会能考虑实际问题,而不是遵循哲学上的空想。任何类型的过程模型都不应该成为一种痴迷。它们的主要目的是帮助人类进行调查,实现理解,设计和改进过程。它们还将以有限的方式证明对指导IPSE和工具体系结构以及帮助控制IPSE的使用是有用的。在后一种角色中,他们无疑将使用主动信息检索机制,其中可能包括对IPSE信息存储库中的数据进行操作的推断属性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信