没有合适的资源?快使用搜索试试~ 我知道了~
软件工程导论知识点概要.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 19 浏览量
2022-07-06
00:59:40
上传
评论 1
收藏 641KB DOC 举报
温馨提示
试读
27页
软件工程导论知识点概要.doc
资源推荐
资源详情
资源评论
.
1 / 27
1.1 软件危机
软件危机的表现
软件危机是指在计算机软件的开发、使用和维护过程中遇到的一
系列严重问题。
1)成本难以估计、成本高。
2)软件开发进度估计不准确,项目延期比比皆是。
3)软件质量得不到保证(功能和性能)。
4)用户对“已完成的”软件系统不满意的现象经常发生。
5)维护非常困难(多样性 、复杂性、 副作用)。
6)软件通常没有适当的文档。
7)软件产品供不应求,跟不上计算机普与速度。
产生软件危机的原因
(1)与软件本身的特点有关 (逻辑复杂,成本高,风险大,难于维
护)。
(2)与软件开发与维护的方法不正确有关:
软件≠程序(软件是程序、数据与相关文档的完整集合)
急于求成=拔苗助长(软件从定义、开发、使用和维护、废弃要经
历一个漫长的生命周期)
各自为阵无方法学(应要组织良好、管理严密、各类人员协作共
同完成的工程项目)
1.2 软件工程定义
软件工程是应用计算机科学、数学、心理学与管理科学等原理
开发软件的工程。它借鉴传统工程的原则、方法,以提高质量、降
低成本和提高效率为目的。
软件工程包括技术和管理两方面的容,是技术与管理紧密结合
所形成的工程学科。
软件工程的特性:
.
2 / 27
1. 软件工程关注于大型程序的构造
(传统的程序设计技术和工具是支持小型程序设计的)
2. 软件工程的中心课题是控制复杂性(问题分解)
3. 软件经常变化(考虑将来要发生的变化)
4. 开发软件的效率非常重要(寻求更好、更有效的工具)
5. 和谐地合作是开发软件的关键(运用标准和规程)
6. 软件必须有效地支持它的用户(软件要服务于用户)
7. 在软件工程领域常是由具有一种文化背景的人替具有另一种文
化背景的人创造产品
软件工程的 7 条基本原理
1.用分阶段的生命周期计划严格管理
2.坚持进行阶段评审
3.实行严格的产品控制
4.采用现代程序设计技术
5.结果应能清楚地审查
6.开发小组的人员应该少而精
7.承认不断改进软件工程实践的必要性
软件工程方法学
通常把在软件生命周期全过程中使用的一整套技术方法的集合称
为方法学(methodology),也称为型(paradigm)。
目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对
象方法学。
软件工程方法学包含 3 个要素:方法、工具和过程。
1.3 软件生命周期
每阶段的基本任务:
1. 问题定义
2. 可行性研究
3. 需求分析
4. 总体设计
.
3 / 27
5. 详细设计
6. 编码和单元测试
7. 综合测试
8. 软件维护
1.4 软件过程
软件过程是为了获得高质量软件所需要完成的一系列任务的框
架,它规定了完成各项任务的工作步骤。
通常包括四种基本的过程活动: (1)软件规格说明;(2)
软件开发;(3)软件确认;(4)软件演进
软件过程模型:
软件开发程模型是软件开发全部过程、活动和任务的结构框架。
它能直观表达软件开发全过程,明确规定要完成的主要活动、任务
和开发策略。
几种典型的模型:瀑布模型、快速原型模型、增量模型、螺旋
模型、喷泉模型、RUP 等。
软件过程模型的选择基于项目和应用的性质、采用的方法工具
以与需要的控制和交付的产品。
瀑布模型(Waterfall Model ):
传统瀑布模型:规定了各项软件工程活动,包括:制定开发计
划、需求分析和说明、软件设计、程序编码、测试、运行维护。并
且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐
级下落。
特点:
1、阶段间具有顺序性和依赖性。
2、推迟实现。
3、质量保证。
优点:
1、可强迫开发人员采用规的方法(例如,结构化技术);
严格地规定了每个阶段必须提交的文档;要求每个阶段交出的
所有产品都必须经过质量保证小组的仔细验证。
.
4 / 27
2、瀑布模型的成功在很大程度上是由于它基本上是一种
文档驱动的模型。
3、瀑布模型适合于用户需求明确、完整、无重大变化的
软件项目开发!!
问题:
1、不适应需求经常发生变更的环境:在项目的开发过程
中,变更可能会引起混乱。所以,有人形象地把采用线性模型
进行商业软件工程称之为“在沙滩上盖楼房”。(适合于用户需求
明确、完整、无重大变化的软件项目开发)
2、线性顺序模型每一步的工作都必须以前一阶段的输出
为输入,这种特征会导致工作中发生“阻塞”状态。
3、由于瀑布模型几乎完全依赖于书面的规格说明,很可
能导致最终开发出的软件产品不能真正满足用户的需要。
4、是一种整体开发模型,程序的物理实现集中在开发阶
段的后期,用户在最后才能看到自己的产品。在可运行的软件
产品交付给用户之前,用户只能通过文档来了解产品是什么样
的。
快速原型模型(Rapid Prototype Model)
步骤:第一步进行试验开发,得出产品的“原型”,其目的在于
弄清软件需求并探索可行性;第二步在原型的基础上开发出较为
满意的软件产品。
该模型克服了瀑布模型的部分缺陷,减少了软件需求不明确
给开发工作带来的风险。
前提:
(1)是用户必须积极参与原型的建造,建造原型仅仅是为了
定义需求,之后就必须被全部抛弃(至少是部分抛弃),实际的软
件必须在充分考虑到软件质量和可维护性之后才被开发。从这个
意义上说,原型模型又往往被称为“抛弃原型模型”。
(2)是必须有快速开发工具可供使用。
增量模型 (Incremental Model)
是一种渐进地开发逐步完善的软件版本的模型,该模型一般首
.
5 / 27
先开发产品的基本部,然后再逐步开发产品的附加部分。
整个软件产品被分解成许多个增量构件。每个构件由多个相互
作用的功能模块构成,并能够完成特定的功能。
该增量模型表明:必须在开始实现各个构件之前就全部完成需
求分析、规格说明和概要设计,因此风险较小。
优点:是十分有用的一种模型。在克服瀑布模型缺点、减少
由于软件需求不明确而给开发工作带来风险方面,确有显著的效
果;缩短产品提交时间都能够起到良好的作用。
困难:
1、在把每个新的增量构件集成到现有软件体系结构中时,
必须不破坏原来已经开发出的产品。此外,必须把软件的体系结
构设计得便于按这种方式进行扩充,向现有产品中加入新构件的
过程必须简单、方便,也就是说,软件体系结构必须是开放的。
2、开发人员既要把软件系统看作整体。又要看成可独立的
构件,因此相互矛盾。除非开发人员有足够的技术能力协调好。
3、多个构件并行开发,具有无法集成的风险
螺旋模型 (Spiral Model)
优点:对于高风险的大型软件,螺旋模型是一个理想的开发方
法。
缺点:风险驱动,需要相当丰富的风险评估经验和专门知识,
否则风险更大。
适合场合:
主要适用于部开发的大规模软件项目,随着过程的进展演化,
开发者和用户能够更好地识别和对待每一个演化级别上的风险。
只有部开发的项目,才能在风险过大时方便地中止项目。
如果进行风险分析的费用接近整个项目的经费预算,则风险
分析是不可行的。
喷泉模型 (Fountain Model)
特点:喷泉模型的各阶段均采用了“对象”这一统一式,整个
过程看起来像喷泉从喷出到落下再喷出的周而复始过程产生的
光滑水柱,体现了软件创建所固有的迭代和无间隙的特征。
剩余26页未读,继续阅读
资源评论
智慧安全方案
- 粉丝: 3607
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功