《实践者的研究方法》—— 第1章 软件的本质 1.3 小结
本节书摘来自华章出版社《实践者的研究方法》一书中的第1章,第1.3节,作者罗杰 S. 普莱斯曼(Roger S. Pressman),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.3 小结
软件是以计算机为基础的系统和产品中的关键部分,并且是世界舞台上最重要的技术之一。在过去的50年里,软件已经从解决特定问题和信息分析的工具发展为独立的产业。然而,如何在有限的时间内利用有限的资金开发高质量的软件,这仍然是我们所面对的难题。
软件——程序、数据和描述信息——覆盖了科技和应用的很多领域。遗留软件仍旧给维护人员带来了特殊的挑战。
软件的本质是变更。基于Web的系统和App已经从简单的信息内容集合演化为能够展示复杂功能和多媒体信息的复杂系统。尽管WebApp具有独特的特性和需求,但它们仍然属于软件范畴。由于App已迁移到很多的平台上,因此移动App展示出了新的挑战。云计算将转变软件交付的方式及软件存在的环境。产品线软件提供了构建软件的潜在效率。
习题与思考题
1.1. 举出至少5 个例子来说明“意外效应法则”在计算机软件方面的应用。
1.2. 举例说明软件对社会的影响(包括正面影响和负面影响)。
1.3. 针对1.1节提出的5个问题给出你的答案,并与同学讨论。
1.4. 在交付最终用户之前,或者首个版本投入使用之后,许多现代App程序都会有频繁的变更。为防止变更引起软件退化,请提出一些有效的解决措施。
1.5. 思考1.1.2节中提到的7个软件分类。请问能否将一个软件工程方法应用于所有的软件分类?并就你的答案加以解释。
扩展阅读与信息资源
在数千本关于计算机软件的书中,大多数讨论的是程序设计语言和软件应用系统,很少有涉及软件本身的。Pressman 和Herron(《Software Shock》,Dorset House,1991)最早讨论了软件和专业开发方法的问题(针对门外汉)。Negroponte的畅销书(《Being Digital》,Alfred A. Knopf,Inc.,1995)提供了关于计算及其在21世纪的发展和影响的观点。Demarco(《Why does Software Cost So Much?》,Dorset House,1995)就软件和开发过程发表了一系列惊人且见解独到的论文。 Ray Kurzweil(《How to Create a Mind》,Viking,2013)讨论了软件如何在不久的将来就会模仿人类思想,并带来人类和机器进化的“奇异性”。
Keeves(《Catching Digital》,Business Infomedia Online,2012)讨论了商业领导者应该如何适应以不断增大的步伐进行演化的软件。Minasi在著作(《The Software Conspiracy: Why Software Companies Put Out Faulty Products,How They Can Hurt You,and What You Can Do》,McGraw-Hill,2000)中认为,现在由于软件缺陷引起的“现代灾难”将被消除并提出了解决的方法。Eubanks (《Digital Dead End: Fighting for Social Justice in the Information Age》,MIT Press,2011)和Compaine(《Digital Divide: Facing a Crisis or Creating a Myth》,MIT Press,2001)的书认为,在21世纪的第一个十年里,信息(如Web资源)富有者和信息贫困者之间的数字鸿沟将越来越小。Kuniavsky(《Smart Things: Ubiquitous Computing User Experience Design》,Morgan Kaufman,2010)、Greenfield(《Everyware: The Dawning Age of Ubiquitous Computing》,New Riders Publishing,2006)和Loke(《Context-Aware Pervasive Systems: Architectures for a New Breed of Applications》,Auerbach,2006)的著作介绍了“开放世界”软件的概念,并指出在无线网络环境中软件必须能够进行适应性调整,以满足实时涌现的需求。
网上有很多讨论软件本质的信息资源,与软件过程相关的最新参考文献可在SEPA网站www.mhhe.com/pressman找到。
体外类生命系统构建领域取得进展 该研究基于光诱导微流控芯片,利用动态变化的数字光掩膜,实现了多维水凝胶结构的层层微制造,并且具备非紫外、快速、灵活、可重构的优点,为建立体外类生命系统、生物器官模型等奠定了基础。
在生物学中,“利他主义问题”是自然选择与利他主义之间的明显冲突,自然选择表明动物生存在不断竞争的状态中来生存和繁殖,利他主义是许多动物帮助其他动物的倾向,甚至是显然对他们不利。
相关文章
- js校验表单后提交表单的三种方法总结
- 【lombok问题】使用了@Slf4j,但是log没有info的方法
- win7禁用其他软件只启用自定义软件的方法
- Mac安装软件时提示已损坏的解决方法
- 在Python的列表中利用remove()方法删除元素的教程
- 收集最好的Mac软件和使用方法
- SAP Gateway Foundation Client Proxy 的使用方法
- Atitit 软件开发方法论 attilax著 艾龙 著 1. 1.3 软件工程方法 软件工程方法论分为软件开发方法论和软件组织方法论两个部分。1 2. 软件开发方法的演进 SP DOP PAM
- Atitit.提升软件Web应用程序 app性能的方法原理 h5 js java c# php python android .net
- utools快速上手心得、给你安利一款国产良心软件uTools工具--uTools 新一代效率工具平台:怎样安装和使用?详细方法?打工人必看、高效工作、提高效率、提高生产力
- IDE之Eclipse:Eclipse软件的简介、安装、入门、使用方法之详细攻略
- Chrome浏览器,搜索JS方法。
- ML之XGBoost:利用XGBoost算法对波士顿数据集回归预测(模型调参【2种方法,ShuffleSplit+GridSearchCV、TimeSeriesSplitGSCV】、模型评估)
- 实践Pytorch中的模型剪枝方法
- 大批量数据处理方法
- 软件工程——理论、方法与实践 之 软件演化
- 软件工程——理论、方法与实践 之 软件实现
- 软件工程——理论、方法与实践 之 软件过程
- Java和JavaScript中使用Json方法大全
- 北邮iptv用WindowsMediaplayer打不开的解决的方法
- Ubuntu 中软件的安装、卸载以及查看的方法总结
- 64位程序调用32位dll的方法
- Xbox商店下载软件速度很慢解决方法教学
- Win11因为文件包含病毒或潜在垃圾软件无法卸载解决方法
- 排查C++软件异常的常见思路与方法(实战经验总结)
- 软件测试技术之性能测试进阶—并发测试的方法
- [Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法(转)