- 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)对软件开发成本和进度的估计常常很不准确;
2)用户对完成的软件系统不满意的现象经常发生;
3)软件产品的质量往往靠不住;
4)软件常常是不可维护的;
5)软件通常没有适当的文档资料;
6)软件成本在计算机系统总成本中所占的比例逐年上升;
7)软件开发生产率提高的速度跟不上计算机应用的发展趋势。
;软件危机的实质:
如何开发软件,以满足对软件日益增长的需求?
如何维护数量不断膨胀的已有软件?;2. 为什么会产生软件危机;软件开发成本不同阶段的代价图;组织管理上:按照工程管理模式。强调组织良好、管理严密、协同配合。《软件项目管理》
开发方法上:已有成功技术和方法——《软件工程学》
开发工具上:充分利用辅助开发工具,降低繁琐重复的工作量——《软件工程支撑环境》;4. 什么是软件工程(学)?;正规定义:软件工程学是研究如何应用工程的技术、方法和工具进行软件开发、维护和软件管理的一门交叉学科。
方法:怎样做?完成软件开发各项任务的技术。
工具:怎样高效地做?软件支撑环境。
过程:怎样按部就班地做?规定完成各项任务的工作步骤和框架。
;5. 软件工程学的基本思想;6. 软件工程学的两种开发方法
传统的生命周期法(结构化)
面向对象的方法
;(1)生命周期法或结构化方法
基本思想:按照时间先后,把复杂问题分阶段处理,自顶向下、逐步求精,使得每个阶段处理的问题都较容易。
;生命周期法
方法:结构化。
工具:集成化开发界面。CASE等。
过程步骤:3个时期8个步骤,原型、瀑布模型等。
;什么是软件生命周期?软件从提交到最终被淘汰的存在期即其生命周期。主要包括定义、开发和维护三个时期,每个时期又划分若干个阶段。;软件生命周期开发步骤 ;16;结构化方法(Structure Method):
1)结构化分析方法(SA);
2)结构化设计方法(SD);
3)结构化分析与设计技术(SADT)
4)JACKSON方法
5)WARNIER方法;结构化方法要点是自顶向下、逐步求精、模块化设计、结构化编码。
结构化分析以数据流图、数据字典、结构化语言、判定表、判定树等图形表达为主要手段,注重开发方法的结构合理性和系统的结构合理性。
结构化设计以模块化、抽象、逐层分解求精、保持模块独立为准则来设计软件的模块架构。
结构化编码实现以先全局,后局部,先整体,后细节,先抽象,后具体,逐步求精,编制出来的程序具有清晰的逻辑层次结构,容易阅读、理解、修改和维护。尽量采用三种基本代码结构——顺序、选择和循环结构
;(2)面向对象的开发方法
模拟人类认识世界的方法和过程,把数据和对数据的操作结合起来,通过定义类、封装、对象、继承和消息通信实现便于维护的软件体。;面向对象方法的几个要素:
类(Class)
对象(Object)
继承(派生)。
封装
多态
接口
委托(代理)
事件;面向对象方法具有如下4个要点:
把对象(Object)作为融合了数据及在数据上的操作行为的统一的软件构件。用对象分解取代传统方法的功能分解。
把所有对象划分为类(Class):每个类定义了一组数据和一组操作。
按照父类(基类)和子类(派生类)的关系,把若干个相关类组成一个层次结构的系统。子类能够继承。
对象彼此间仅能通过发送消息互相联系。对象是数据处理的主体,具有封装性特点。
面向对象方法降低了软件开发的复杂性,简化了开发与维护、 提高了软件的可理解性和重用性。
;方法:面向对象
工具:集成化开发界面
过程步骤:迭代式开发,喷泉模型
;1)适用于实时事物处理系统的有限状态机方法(FSM);
2)适用于并发软件系统的PETRI网方法;
3)以数学概念和理论为基础的形式化方法,如
SDC公司的形式化开发方法FDM (Formal Development Methodology)
IBM公司的维也纳开发方法VDM (Vienna Development Method ) ;8 软件过程;(1)瀑布模型;1)顺序依赖性:前面未完成,后面不能开始,后面的正确取决于前面不出错。;2)推迟实现:前期工作未达成之前,不急于开始后期工作。;3)质量保证:强调文档及文档评审的重要性,实质是早发现的重要性。;优点:
带有严格规定的强迫性的规范方法。 围绕文档保质量。;改进的瀑布模型
带“反馈环路”;(2)快速原型模型;优点:
速度快,风险低
边用边改,减少返工
交互验证,及时获得经验;快速流程对应开发过程;(3)增量模型(渐增模型
文档评论(0)