- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程讲义-01 第一篇 章 软件工程概念.ppt
软件工程第一章 软件工程概念;提示:设计与建模要点;软件的概念;软件工程概念的出现源自软件危机。
软件危机的主要特征
软件价格在整个项目投入中的比例不断升高;
软件开发成本严重超标;
软件开发周期大大超过规定日期;
软件质量难于保证;
软件修改、维护困难;
失败的根本原因在于:开发人员写出的东西达不到用户要求 (人的问题、技术问题);1968 年德国人 Bauer 在北大西洋公约组织会议上的定义: 建立并使用完善的工程化原则 , 以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
1983 年 IEEE 的软件工程定义: 软件工程是开发,运行 , 维护和修复软件的系统方法。
1993 年 IEEE 的一个更加综合的定义: 将系统化的,规范的,可度量的方法应用于软件的开发 , 运行和维护的过程,即将工程化应用于软件中。;软件工程的知识结构;软件工程的知识结构;ISO 9000定义:软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。
从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、时间等),为开发软件进行的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品)。;软件工程过程定义了: 方法使用的顺序、要求交付的文档资料、为保证质量和适应变化所需要的管理、软件开发各个阶段完成的里程碑。
软件工程过程包含四种基本的过程活动:
plan : 软件规格说明
do : 软件开发
check : 软件确认
action : 软件演进;软件生存周期包含三个阶段:软件定义、软件开发及软件运行维护。
软件生存周期模型是软件工程思想的具体化,是跨越软件生存周期的系统开发、运行、维护所实施的全部活动和任务的过程框架。
常用的软件生存周期模型有瀑布模型,演化模型,螺旋模型,增量模型,喷泉模型,快速应用开发( RAD )模型。;瀑布模型;需求定义;演化模型;需求的采集
与细化;螺旋模型;决定目标、
方案和限制;增量模型;定义基
本需求;日历时间;喷泉模型;需求阶段;变换模型;软件需求
形式化说
明 (M0);基于第四代技术的模型; 转换为程序代码。这大大减少了分析、设计、编码和测试的时间。
以4GL为核???的软件开发技术成为第四代技术(4GT),采用4GT的软件开发模型如图。;快速应用开发( RAD )模型;业务建模;软件开发范型(Paradigm);面向对象范型把标识和模型化问题领域中的实体做为系统开发的起点,面向对象系统中的对象是数据抽象与过程抽象的综合。
逻辑性范型是基于规则的,它把有关问题的知识分解成一组具体规则(如prolog语言)。
面向进程范型把一个问题分解成独立执行的模块。让不只一个程序同时运行。这些进程互相配合,解决问题。
面向存取范型是一种在构造用户界面方面很有用的技术。;函数型范型是基于规则的,它把有关问题的知识分解成一组具体规则,用语言的“if_then”等结构来表示这些规则。
说明性范型。
每种开发范型都有它的支持者和用户:
每种开发范型都特别适合于某种类型的问题或子问题;
每种开发范型都用不同的方式考虑问题;
每种开发范型都使用不同的方法来分解问题;每种开发范型都导致不同种类的块、过程、产生规则。
系统开发时通常把大型问题分解成一组子问题。对于每个子问题采用适当的软件开发范型。;软件工程原则有:
抽象与自顶向下、逐层细化 采用分层抽象的方法,有效控制软件开发的复杂性。
模块化 把问题分解为若干较小的较易解决的模块,有助于信息隐蔽和抽象。
信息隐蔽和数据封装 将模块中的软件设计决策封装在模块内部,使得模块实现与使用分离,有助于控制修改局部化。抽象与自顶向下、逐层细化;局部化 在一个物理模块内集中逻辑上相互关联的计算机资源,促使聚合具有特定目的的事物。
一致性 整个软件系统的模块使用一致的设计策略、编程风格,保持程序内部接口的一致性、软件与硬件接口的一致性、系统规格说明与系统行为的一致性。
完备性 软件系统中不丢失任何成分。
可验证性 系统分解应当遵循易检查、易测试和易评审的原则,以保证系统的正确性。;软件工程的基本原理有:
按软件生存期分阶段制定计划并认真实施 把整个软件开发过程视为一项工程,把工程划分为若干阶段,分别制定每个阶段的计划,逐个实施。
坚持进行阶段评审 前一阶段的结果将成为下一阶段的依据。坚持阶段的评审才能保证错误不传播到下一阶段。;坚持严格的产品控制 将影响软件质量的因素在整个过程中置于严格控制之下。
使用现代程序设计技术 先进的程序设计技术带来的是生产率和质量的提高。使用合适的开发模式和工具可以有效地建立功能强大的系统。
明确责任,使得工作结果能够得到清楚的审查 开
文档评论(0)