- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1章 软件工程导论 软件工程的重点 软件工程的重点既在软件,也在工程。 软件工程师能够在一定时间和预算内,通过使用和集成构件,来构造高质量软件产品。 1.1 导言 软件的复杂性和变化 有用的软件系统通常是复杂的。 为了有用,它们必须随着终端用户需求和目标环境的变化而变化。 软件工程的失误 例:P2-3 软件系统的开发是一个复杂的创造过程。 软件系统需要完成多种功能;构建软件系统需要达到许多不同目标,这些目标通常还会相互冲突。 软件系统包含许多构件,这些构件是定做的且本身就很复杂。同时,不同领域的人参与了这些构件的开发,这也造成了开发过程的复杂性。 开发过程和软件生命周期通常是以年计数的。而且,任何一个人都很难完全理解复杂系统。有很多系统,即使处在开发阶段,也是很难被理解的,以致这些系统最终难以完成而成为“空想件”(vaporware)。 软件工程的失误 软件开发项目要不断变化。因为: 需求是复杂的,当发现错误、当开发者能更好地理解其应用之后,需求就需要不断被更新。 如果一个项目被开发多年,可能出现的问题是人员流动大,这就需要不断对人员进行培训。 通常,技术变化的周期比项目周期短。软件项目经理普遍假设所有变化已经得到处理并且需求已经确定,这可能导致开发出不正确的系统。 1.2 什么是软件工程 高层次软件工程视点。 从科学、工程学以及知识获取和形式化的角度描述软件工程。 软件工程是一种建模活动。 软件工程是一种解决问题的活动。 软件工程是一种知识获取的活动。 软件工程是一种受软件工程原理指导的活动。 1.2.1 建模 软件工程是一种建模活动。 软件工程师通过建模来处理复杂性,以做到每次只专注于相关联的细节而忽略其他一切。在开发过程中,软件工程师构建许多不同的系统模型以及应用域模型。 科学的目的是描述和理解复杂系统。例:原子系、人类社会、太阳系。 科学的基本方法之一是建模。 一个模型是对一个系统的抽象表示。 这种表示使我们能够回答关于系统的问题。在处理太大、太小、太复杂或第一手亲历代价太高的系统时,模型是非常有用的。模型也使我们能够想象和理解那些已经不复存在的系统,或那些被认为存在但未经证实的系统。 例:化石生物学家们出土了一些恐龙的骨头和牙齿,没人见过这些恐龙。利用一些骨头残片,他们依照解剖学的规律,重新构造了恐龙模型。他们发现的骨头越多,就越清楚这些骨头是如何连接起来的,也就越相信他们构建的模型与原始恐龙相符。 系统建模者,研究的是: 现实世界系统(例:恐龙),即通过一系列现象观察到的系统; 应用域模型,即表达为一组相互依存的概念。应用域模型是对现实世界系统中那些与在研问题相关的方面进行的描述。 软件工程师: 需要理解一个系统的运行环境。即需要了解与系统有关的应用域中的概念。 例:对于一个列车交通控制系统,软件工程师需要了解列车的信号程序。对于一个股票交易系统,软件工程师需要了解交易规则。 ——软件工程师需要构建一个应用域模型。 软件工程师需要理解他们能够构建的系统,并能评估不同的解决方案和其他可替换的方案。许多系统都过于复杂,任何个人都无法全部理解,而且许多系统的构建是十分昂贵的。要解决这些难题,软件工程师要描述他们所研究的一些可选系统的某些重要方面。 ——软件工程师需要构建一个求解(解决方案)域模型。 面向对象方法: 将应用域建模为一组对象和关系,系统用这一模型来表示它所处理的现实世界中的概念。一个列车交通控制系统包括列车对象,表示该系统监控的列车。一个股票交易系统包括代表股票买卖的交易对象。 解决方案域的概念也被建模为对象。用来描绘一列列车或者一次经济交易的语句行的集合也是对象,这些对象是解决方案域的一部分。 面向对象方法的思想是:解决方案域模型就是应用域模型的一种转化。开发软件就转化为找出一个解决最终用户问题的系统并将之描述为模型集合。 1.2.2 问题解决 软件工程是一种问题解决的活动。 工程是一种解决问题的活动。——工程师通常在资源有限和知识不完备的情况下,通过尝试和失败、通过实验评估各种可供选择的方法,寻求解决问题的合适方法。 工程方法包括以下5步: 1.明确问题; 2.分析问题; 3.寻找解决方案; 4.选定合适的解决方案; 5.详细说明解决方案。 面向对象的软件开发通常包括5种开发活动: 需求获取、分析、系统设计、对象设计和实现。 需求获取和分析,软件工程师与客户把问题明确化并构建问题域模型。对应于工程方法的第1步和第2步。 系统设计,软件工程师分析问题,把它分成小块,并选择一些总体策略来设计系统。 对象设计,开发者为每一小块选择一些详细的解决方案,并且最终选择一种最合适的方案。 系统设计和对象设计用于产生解决方案域模型。系统设计和对象设计对应于工程方法的第3步和第4步。 实现,软件
文档评论(0)