- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程学概论
1、软件危机产生的原因
软件本身的特点:难于维护、逻辑复杂
软件开发与维护的方法不正确:忽略需求分析重要性、轻视软件维护
课本表述:
软件不同于硬件,它是计算机中的逻辑部件而不是物理部件
软件不同于一般程序,它的一个显著特点是规模庞大,而且程序的复杂性将规模的增加而呈现指数上升。
软件本身特有的特点确实给开发和维护带了一些客观困难
软件开发与维护有关的许多错误认识与做法有关(忽略需求分析,轻视软件维护)
对用户要求没有完整准确的认识就匆忙开始着手编写程序
在软件不同阶段进行修改需要付出的代价是很不相同的
2、软件危机的表现(什么是软件危机)
(1)、成本高:
(2)、软件质量得不到保证:软件质量问题导致失败的软件项目非常多
(3)、进度难以控制:
●项目延期比比皆是
●由于进度问题而取消的软件项目较常见
●只有一小部分的项目能够按期完成
(4)、维护十分困难:
▼软件维护的多样性
▼软件维护的复杂性
▼软件维护的副作用
3、克服软件危机
(1)、管理的角度:
软件开发过程的研究、文档的标准化以及人员的交流方式等
(2)、软件开发方法的研究
结构化软件开发方法, 面向对象的开发
4、软件工程的定义
概括的说,软件工程师指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
(1)、软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、可以在实际机器上高效运行的软件。
(2)、 = 1 \* GB3 ①把系统的、规范的、可度量的方法应用于软件开发、运行和维护的过程,也就是把工程应用于软件. = 2 \* GB3 ②研究 = 1 \* GB3 ①中提到的途径
总之:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。他借鉴传统工程的原理、方法,以提高质量,降低成本为目的。
5、软件工程的本质特性
1、 关注与大型程序的构造
2、 中心课题是控制复杂度
3、 软件经常变化
4、 开发软件的效率非常重要
5、 和谐的合作是开发软件的关键
6、 软件必须有效地支持它的用户
7、 在软件工程领域中通常由具有一个文化背景的人替另外一种文化背景的人创造产品
6、软件工程的基本原理
1、用分阶段的生命周期计划严格管理
2、坚持进行阶段评审
3、实行严格的产品控制
4、采用现代程序设计技术
5、结果应能清楚地审查
6、开发小组应该少而精
7、承认不断改进软件工程实践的必要性
软件工程学包含3个要素:方法、工具和过程
7、软件生命周期
(1)、概念:
软件生命周期由软件定义、软件开发和运行维护(也成软件维护)3个时期组成。
(2)、内容:
问题定义
回答“要解决的问题是什么?“,写出关于问题性质、工程目标和工程规模的书面报告
可行性分析
回答”对于问题是否有行得通的解决办法?“,即探索问题是否值得去解,是否有可行的办法
需求分析
确定”为了解决这个问题,目标系统必须做什么“,确定目标系统必须具备哪些功能,得到需求规格说明书。
总体设计
回答”概括地说,应该怎样实现目标系统?“,确定程序由哪些模块组成以及模间的关系
详细设计
回答”应该怎样具体地实现这个系统呢?”,确定实现模块功能所需要的算法与数据结构
编码和单元测试
写出正确的容易理解、容易维护的程序模块,然后仔细测试每个模块
综合测试
通过各种类型的测试(及相应的调试)是软件达到预定要求
软件维护
通过各种必要活动是系统持久地满足用户需求
8、生命周期模型
(1)、瀑布模型
传统瀑布模型特点:
阶段间具有顺序性与依赖性
推迟实现的观点
质量保证的观点
瀑布模型
优点:
可强迫开发人员使用规范的方法(例如:结构化技术);
严格规定每个阶段必须提交的文档;
要求每个阶段交出的所有产品都必须通过验证。
缺点:
1、“瀑布模型是由文档驱动的”成为主要缺点
适用范围:
适合于用户需求明确、完整、无重大变化的软件项目开发。
(2)、快速原型模型
适用范围:
用户不能给出完整、准确的需求说明,或者开发者不能确定算法的有效性、操作系统的适应性或人机交互的形式等情况。
(3)、增量模型
特点:
1、反复的应用瀑布模型的基本成分和原型模型的迭代特征,每一个线型过程产生一个“增量”的发布或提交,该增量均是一个可运行的产品。
2、 早期的版本实现用户的基本需求,并提供给用户评估的平台。
优点:
在较短时间内向用户提交可完成部分工作的产品;
逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能
文档评论(0)