【软件⼯程知识】{2}软件⼯程和过程模型
⼀、软件⼯程的定义
1968年在NATO会议上,⾸次提出“软件⼯程”这个术语。但软件⼯程⼀直以来都缺乏⼀个统⼀的定义,有很多学者、组织机构都分别给出了⾃⼰认可的定义。以下给出三种常⽤的定义:
1、Fritz Bauer在NATO上给出的定义
The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works on real machines.
建⽴并使⽤完善的⼯程化原则,以较经济的⼿段获得能在实际机器上有效运⾏的可靠软件的⼀系列⽅法。
2、Barry Boehm
Software engineering is that form of engineering that applies the principles of computer science and mathematics to achieving cost-effective solutions to software problems.
软件⼯程就是应⽤计算机科学和数学的原理,来为软件问题提供经济⾼效的解决⽅案。
通俗点来说:①运⽤现代科学技术知识来设计并构造计算机程序;②开发、运⾏和维护这些程序所必需的相关⽂件资料。
3、IEEE在软件⼯程术语汇编中的定义
The application of a systematic,disciplined,quantifiable approach to the development,operation,and maintenance of software.
将系统化的、严格约束的、可量化的⽅法应⽤于软件的开发、运⾏和维护,即将⼯程化应⽤于软件。
⼆、软件⼯程的层次
软件⼯程是⼀种层次化的技术,⽀持软件⼯程的根基就在于对质量的关注。
1、软件⼯程三个要素
过程、⽅法、⼯具
2、软件⼯程的层次——图解
孕婴用品批发市场3、软件⼯程的层次——逐⼀分析
(1)质量焦点(a quality focus)
软件⼯程的根基,任何⼯程⽅法都必须以有组织的质量承诺为基础
(2)过程(process)
是软件⼯程的基础,定义了⼀组关键过程区域框架,包括<u>⼯程产品的产⽣</u>,<u>⾥程碑的建⽴</u>等等
(3)⽅法(methods)
提供了建造软件在技术上需要“如何做”,包括需求分析(analysis)、设计(design)、编码(coding)、测试(testing)和⽀持(backing)
(4)⼯具(tools)
对过程和⽅法提供了⾃动或半⾃动的⽀持
< CASE⼯具(计算机辅助软件⼯程):集成硬件、软件和数据库⽽创建的软件⼯程环境,类似于
硬件的CAD(计算机辅助设计)/CAE(计算机辅助⼯程)
三、软件过程的三个阶段
1、定义阶段——“做什么”
(1)定义:系统和软件的关键需求被标识
(2)应⽤场景:①系统和信息⼯程;②软件项⽬计划;③需求分析
2、开发阶段——“如何做”
(1)定义:定义数据结构、体系结构、过程细节、界⾯表⽰、算法和测试如何执⾏
(2)应⽤场景:①软件设计;②代码⽣成;③软件测试
3、⽀持阶段——“变化”
(1)定义:①纠正错误;②随着软件环境的演化⽽要求的适应性修改;③⽤户需求的变化⽽带来的增强型修改
(2)应⽤场景:①纠错性维护(校正式);②适应性维护;③完善性维护;④预防性维护
下⾯⽤⼀张图了解软件过程的三个阶段:
教师节的古诗四、软件过程框架
1、引例——煮蛋的启⽰
很久以前,中国⼈煮蛋⽅式与德国⼈煮蛋⽅式的不同。
中国⼈:先⼀个锅,倒进⽔,再把蛋放进去,整个过程需要10~20min。
德国⼈:先⼀个锅,倒进⽔,再把蛋放进去,在容器的下⽅焊接⼀个托盘,再将锅放到托盘上去烧开,如此,仅⽤1min就把⽔烧开,之后再⽤⽕继续煮了3min,关⽕;再⽤余热继续煮了3min;煮熟后丢到冷⽔⾥⾯3min;最后他⽤10min时间把蛋煮熟。
从以上分析来看,德国⼈煮蛋更讲究过程,不同的过程会导致不⼀样的结果。研究表明,德国⼈煮蛋
的⽅式有以下⼏点好处:①更省⽔;②更省热能;③煮蛋所花时间更少;④利⽤余热煮3min,这个时候蛋的营养价值更⾼;⑤⽤凉⽔泡了3min,蛋壳更容易拨开。
2、软件⼯程的过程定义
2022年4月1号驾考新规(1)过程(process):⼀组有序的任务,每个任务由⼀些步骤组成,每个步骤涉及到活动、约束及产品。
(2)⼴义上,软件开发的每⼀个阶段都可看成是⼀个过程。
(3)简⾔之,过程就是⼀个步骤、⼀个路线图,帮助创建⾼质量的软件。
3、软件过程框架
先⽤⼀张图简单了解软件过程框架:
好玩的游戏有哪些(1)第⼀级:初始级(initial)
①定义:软件过程是定义的和偶然的,有时甚⾄是混乱的。⼏乎没有过程定义,成功完全取决于个⼈能⼒。
②特点:不可预测并且缺乏控制。
(2)第⼆级:可重复级(repeatable)
①定义:建⽴了基本的项⽬管理过程,能够跟踪费⽤、进度和功能。有适当的必要的过程规范,可以重复以前类似项⽬的成功。
初一期中考试卷②特点:可重复以前的主要经验。
③关键过程区域:需求管理;软件项⽬计划;软件项⽬跟踪和监督;软件⼦合同管理;软件质量保证;软件配置管理。
(3)第三级:定义级(defined)
骄怎么组词①定义:企业的软件过程已经⽂档化、标准化并与整个组织的软件过程相集成。所有项⽬都使⽤统⼀的、⽂档化的、组织过程认可的版本来开发和维护软件。包含第⼆级的所有特征。
②特点:过程被描述,并得到良好理解。
③关键过程区域:组织过程定义;组织过程焦点;培训⼤纲;集成软件管理;软件质量保证;软件配置管理。
(4)第四级:管理级(managed)
①定义:软件过程和产品质量的详细数据被收集,通过这些度量数据,软件过程和产品能够被定量地理解和控制。包含第三级的所有特征。
②特点:过程被测量并受控。
③关键过程区域:定量的过程管理;软件质量管理。
(5)第五级:优化级(optimizing)
①定义:通过定量反馈进⾏不断的过程改进,这些反馈来⾃于过程或通过试验新的想法和技术⽽得到。包含第四级所有特征。
②特点:关注过程改进。
③关键过程区域:缺陷预防;技术变更管理;过程变更管理。
六、软件过程模型
1、软件过程模型概述
软件过程模型是软件开发全部过程、活动和任务的结构框架。软件过程模型不是⼀种具体模型,是⼀种开发策略,包含过程、⽅法和⼯具三个层次以及⼀般性阶段,常称为:①软件开发模型;②软件⽣存期模型;③软件⼯程范型。
2、软件过程模型分类
(1)传统的软件过程模型(7种)
详细内容见以下第3点
(2)敏捷视⾓下的过程模型(7种)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论