《实践者的研究方法》—— 第2章 软件工程 2.5 这一切是如何开始的

2.5 这一切是如何开始的

每个软件工程项目都来自业务需求——对现有应用程序缺陷的纠正,改变遗留系统以适应新的业务环境,扩展现有应用程序功能和特性,或者开发某种新的产品、服务或系统。

在软件项目的初期,业务需求通常是在简短的谈话过程中非正式地表达出来的。以下这段简短谈话就是一个典型的例子。

SafeHome 如何开始一个软件项目

 

[场景] CPI公司的会议室里。CPI是一个虚构的为家庭和贸易应用生产消费产品的公司。

[人物] Mal Golden,产品开发部高级经理;Lisa Perez,营销经理;Lee Warren,工程经理;Joe Camalleri,业务发展部执行副总裁。

[对话]

Joe: Lee,我听说你们那帮家伙正在开发一个产品——通用的无线盒?

Lee: 哦,是的,那是一个很棒的产品,只有火柴盒大小。我们可以把它放在各种传感器上,比如数码相机,总之任何东西里。采用802.11n无线网络协议,可以通过无线连接获得它的输出。我们认为它可以带来全新的一代产品。

Joe: Mal,你觉得怎么样呢?

Mal: 我当然同意。事实上,随着这一年来销售业绩的趋缓,我们需要一些新的产品。Lisa和我已经做了一些市场调查,我们都认为该系列产品具有很大的市场潜力。

Joe: 多大,底线是多少?

Mal(避免直接承诺): Lisa,和他谈谈我们的想法。

Lisa: 这是新一代的家庭管理产品,我们称之为“SafeHome”。产品采用新型无线接口,给家庭和小型商务从业人士提供一个由电脑控制的系统——住宅安全、监视,仪表和设备控制。例如,你可以在回家的路上关闭家里的空调,或者如此这类的应用。

Lee(插话): Joe,工程部已经作了相关的技术可行性研究。它可行且制造成本不高。大多数硬件可以在市场购买产品,不过软件方面是个问题,但也不是我们不能做的。

Joe: 有意思! 我想知道底线。

Mal:在美国,70%的家庭拥有电脑。如果我们定价合适,这将成为一个十分成功的产品。到目前为止,只有我们拥有这一无线控制盒技术。我们将在这方面保持两年的领先地位。收入吗,在第二年大约可达到3000万到4000万。

Joe(微笑): 我很感兴趣,让我们继续讨论一下。

除了一带而过地谈到软件,这段谈话中几乎没有提及软件开发项目。然而,软件将是SafeHome产品线成败的关键。只有SafeHome软件成功,该产品才能成功。只有嵌入其中的软件产品满足顾客的需求(尽管还未明确说明),产品才能被市场所接受。我们将在后面的几章中继续讨论 SafeHome中软件工程的话题。

时间: 2024-08-03 17:44:07

《实践者的研究方法》—— 第2章 软件工程 2.5 这一切是如何开始的的相关文章

《实践者的研究方法》—— 第1章 软件的本质 1.1 软件的本质

第1章 Software Engineering: A Practitioner's Approach, Eighth Edition 软件的本质 要 点 浏 览 概念:计算机软件是由专业人员开发并长期维护的软件产品.完整的软件产品包括:可以在各种不同容量及系统结构的计算机上运行的程序.程序运行过程中产生的各种结果以及各种描述信息,这些信息可以以硬拷贝或是各种电子媒介形式存在. 人员:软件工程师开发软件并提供技术支持,产业界中几乎每个人都间接或直接地使用软件. 重要性:软件之所以重要是因为它在我

《实践者的研究方法》—— 导读

前 言 如果有这样一款计算机软件,它能满足用户的需求,能在相当长的时间内无故障地运行,修改起来轻松便捷,使用起来更是得心应手,那么,这款软件必定是成功的,它切实改善了我们的生活.但是,如果有这样一款软件,它令用户失望,错误频出,修改起来困难重重,使用起来更是举步维艰,那么,这必定是一款失败的软件,它使我们的生活一团糟.谁都希望开发出优秀的软件,为我们的生活带来便利,而不是把自己陷入失败的深渊.要想使软件获得成功,在设计和构建软件时就需要有规范,需要采用工程化的方法. 自本书第1版问世以来的近35

《实践者的研究方法》—— 第2章 软件工程 2.4 软件开发神话

2.4 软件开发神话 软件开发神话,即关于软件及其开发过程的一些被人盲目相信的说法,这可以追溯到计算技术发展的初期.神话具有一些特点,让人觉得不可捉摸.例如,神话看起来是事实的合理描述(有时的确包含真实的成分),它们符合直觉,并且经常被那些知根知底的有经验的从业人员拿来宣传. 今天,大多数有见地的软件工程师已经意识到软件神话的本质--它实际上误导了管理者和从业人员对软件开发的态度,从而引发了严重的问题.然而,由于习惯和态度的根深蒂固,软件神话遗风犹在. 管理神话.像所有领域的经理一样,承担软件职

《实践者的研究方法》—— 第2章 软件工程 2.6 小结

2.6 小结 软件工程包含过程.方法和工具,这些工具使得快速构建高质量的复杂计算机系统成为可能.软件过程包括五个框架活动:沟通.策划.建模.构建和部署,这些活动适用于所有软件项目.软件工程实践遵照一组核心原则,是一项解决问题的活动. 尽管我们关于构建软件所需的软件知识和技能增长了,但仍有大量的软件神话将管理者和从业人员诱入歧途.随着对软件工程理解的深化,你就会逐渐明白,为什么无论何时遇到这些神话,都要不遗余力地揭露. 习题与思考题 2.1 图2-1中,将软件工程的三个层次放在了 "质量关注点&q

《实践者的研究方法》—— 第2章 软件工程 2.3 软件工程实践

2.3 软件工程实践 在2.2节中,曾介绍过一种由一组活动组成的通用软件过程模型,建立了软件工程实践的框架.通用的框架活动--沟通.策划.建模.构建和部署--和普适性活动构成了软件工程工作的体系结构的轮廓.但是软件工程的实践如何融入该框架呢?在以下几节里,读者将会对应用于这些框架活动的基本概念和原则有一个基本了解.   2.3.1 实践的精髓 在现代计算机发明之前,有一本经典著作<How to Solve it>,在书中,George Polya[Pol45]列出了解决问题的精髓,这也正是软件

《实践者的研究方法》—— 第3章 软件工程 3.1 通用过程模型

第3章 Software Engineering: A Practitioner's Approach, Eighth Edition 软件过程结构 要 点 浏 览 概念:在开发产品或构建系统时,遵循一系列可预测的步骤(即路线图)是非常重要的,它有助于及时交付高质量的产品.软件开发中所遵循的路线图就称为"软件过程". 人员:软件工程师及其管理人员根据需要调整开发过程,并遵循该过程.除此之外,软件的需求方也需要参与过程的定义.建立和测试. 重要性:软件过程提高了软件工程活动的稳定性.可控

《实践者的研究方法》—— 第2章 软件工程 2.2 软件过程

2.2 软件过程 软件过程是工作产品构建时所执行的一系列活动.动作和任务的集合.活动(activity)主要实现宽泛的目标(如与利益相关者进行沟通),与应用领域.项目大小.结果复杂性或者实施软件工程的重要程度没有直接关系.动作(action,如体系结构设计)包含了主要工作产品(如体系结构设计模型)生产过程中的一系列任务.任务(task)关注小而明确的目标,能够产生实际产品(如构建一个单元测试). 在软件工程领域,过程不是对如何构建计算机软件的严格的规定,而是一种具有可适应性的调整方法,以便于工作

《实践者的研究方法》—— 第3章 软件工程3.2 定义框架活动

3.2 定义框架活动 尽管第2章描述了5种框架活动,并给出了每种活动的基本定义,但是软件团队要在软件过程中具体执行这些活动中的任何一个,还需要更多信息.因此,我们面临一个关键问题:针对给定的问题.开发人员和利益相关者,哪些动作适合于框架活动? 对于由个人负责的小型软件项目(可能远程),其需求简单明确,沟通活动也许仅仅是与合适的利益相关者的一个电话或一封邮件.因此,主要的动作是电话交流,这个动作所包括的主要工作任务(任务集)有: 1.通过电话与利益相关者取得联系. 2.讨论需求并做记录. 3.将笔

《实践者的研究方法》—— 第3章 软件工程 3.3 明确任务集

3.3 明确任务集 我们再来看图3-1,每一个软件工程动作(如需求获取以及与沟通活动相关的动作)都由若干个任务集(task set)构成,而每一个任务集都由软件工程工作任务.相关工作产品.质量保证点和项目里程碑组成.需要选择最能满足项目需要并适合开发团队特点的任务集.这就意味着软件工程动作可以根据软件项目的特定需要和项目团队的特点做适当的调整. 信息栏 任务集 任务集定义了为达到一个软件工程动作的目标所需要完成的工作.例如,需求获取(通常称为"需求收集")就是发生在沟通活动中的一个重要