① 软件工程的三大要素
软件工程包括三个要素:方法、工具和过程。
软件工程方法为软件开发提供了“如何做”的技术。它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。
软件工具为软件工程方法提供了自动的或半自动的软件支撑环境。目前,已经推出了许多软件工具,这些软件工具集成起来,建立起称之为计算机辅助软件工程(CASE)的软件开发支撑系统。CASE将各种软件工具、开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。
软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。
软件工程是一种层次化的技术。任何工程方法(包括软件工程)必须以有组织的质量保证为基础。全面的质量管理和类似的理念刺激了不断的过程改进,正是这种改进导致了更加成熟的软件工程方法的不断出现。支持软件工程的根基就在于对质量的关注。 ...
② 软件工程中的五种耦合,各举一个例子。
数据耦合
sum(int a,int b)
{int c;
c=a+b;
return(c);
}
main()
{int x,y;
.
.
.printf("x+y=%d",sum(x,y));
}
主函数与sum函数之间即为数据耦合关系
控制耦合
void output(flag)
{
if(flag)printf("OK!");
else printf("NO!");
}
main()
{int flag;
..
..
..
output(flag);
}
主函数与output函数之间即为控制耦合关系.
内容耦合
如goto语句
公共环境耦合
如FORTRAN语言中使用的common语句
③ 软件工程的基本原理有哪些
软件工程的七条基本原理
1、用分阶段的生命周期计划严格管理有人经统计发现,在不成功的软件项目中有一半左右是由于计划不周造成的,可见把建立完善的计划作为第一条基本原理是吸取了前人的教训而提出来的。
在软件开发与维护的漫长的生命周期中,需要完成许多性质各异的工作。这条基本原理意味着,应该把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理。Boehm 认为,在软件的整个生命周期中应该制定并严格执行六类计划,它们是项目概要计划,里程碑计划,项目控制计划,产品控制计划,验证计划,运行维护计划。
不同层次的管理人员都必须严格按照计划各尽其职地管理软件开发与维护工作,绝不能受客户或上级人员的影响而擅自背离预定计划。
2、坚持进行阶段评审
当时已经认识到,软件的质量保证工作不能等到编码阶段结束之后再进行。这样说至少有两个理由:第一,大部分错误是在编码之前造成的,例如,根据Boehm 等人的统计,设计错误占软件错误的63%,编码仅占37%;第二,错误发现与改正得越晚,所需付出的代价也越高。因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。
3、实行严格的产品控制
在软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价,但是,
在软件开发过程中改变需求又是难免的,由于外部环境的变化,相应地改变用户需求是一种客观需要,显然不能硬性禁止客户提出改变需求的要求,而只能依靠科学的产品控制技术来顺应这种要求。也就是说,当改变需求时,为了保持软件各个配置成分的一致性,
必须实行严格的产品控制,其中主要是实行基准配置管理。所谓基准配置又称基线配置,它们是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。基准配置管理也称为变
动控制:
一切有关修改软件的建议,
特别是涉及到对基准配置的修改建议,必须按照严格的规程进行评审,获得批准以后才能实施修改。绝对不能谁想修改软件(包括尚在开发过程中的软件),就随意进行修改。
4、采用现代程序设计技术
从提出软件工程的概念开始,人们一直把主要精力用于研究各种新的程序设计技术。
60年代末提出的结构程序设计技术,已经成为绝大多数人公认的先进的程序设计技术。以后又进一步发展出各种结构分析(SA)与结构设计(SD)技术。实践表明,采用先进的技术既可
提高软件开发的效率,又可提高软件维护的效率。
5、结果应能清楚地审查
软件产品不同于一般的物理产品,它是看不峥摸不着的逻辑产品。软件开发人员
(或开发小组)
的工作进展情况可见性差,难以准确度量,从而使得软件产品的开发过程比一般产品的
开发过程更难于评价和管理。为了提高软件开发过程的可见性,更好地进行管理,应该根据
软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结
果能够清楚地审查。
6、开发小组的人员应该少而精
这条基本原理的含义是,软件开发小组的组成人员的素质应该好,而人数则不宜过多。
开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。
素质高的人员的开发效率比素质低的人员的开发效率可能高几倍至几十倍,而且素质高的人员所开发的软件中的错误明显少于素质低的人员所开发的软件中的错误。此外,随着开发小组人员数目的增加,因为交流情况讨论问题而造成的通信开销也急剧增加。当开发小组人员数为N时,可能的通信路径有N(N?/FONT>1)/2条,可见随着人数N的增大,通信开销将急剧增加。因此,
组成少而精的开发小组是软件工程的一条基本原理。
7、承认不断改进软件工程实践的必要性遵循上述六条基本原理,就能够按照当代软件工程基本原理实现软件的工程化生产,但是,仅有上述六条原理并不能保证软件开发与维护的过程能赶上时代前进的步伐,能跟上技术的不断进步。
l
因此,Boehm提出应把承认不断改进软件工程实践的必要性作为软件工程的第七条基本原理。按照这条原理,不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验,例如,收集进度和资源耗费数据,收集出错类型和问题报告数据等等。这些数据不仅可以用来评价新的软件技术的效果,而且可以用来指明必须着重开发的软件工具和应该优先研究的技术
④ 软件工程所分的三个方向如何
谁说软件工程分出来的就三个方向。。。。而且,你学什么跟你以后去公司做什么,也没什么关系。学编程的也可以做测试啊,学面向对象语言的也可以去做面向过程的啊,学网络的我们还凑合过来编了俩月代码呢。听都没听过的语言,一个星期培训我就敢上手coding。。。。我就什么都做过,一般大公司让你做什么新的工作的话都会给你培训的。。。。不过,计算机行业的工作真的很累,半夜两点多下班,一加班加一个月两个月三个月四个月的是常事儿,要不是不知道我还能做什么,我早就不做了,累死了!不过,如果单纯做测试人员,会比做开发相对来说轻松一点点点点,但是该加班还是要加班。上面说做美工,这应该就不属于软件工程了吧,不过做美工倒是挺轻松,薪资当然也一般,起步时候差不多,等人家技术强悍起来的时候,就能看出薪资差距了。
⑤ 软件工程的三大文档是什么
01立项调查报告
02立项建议书
03立项评审报告
04项目设计开发任务书
05项目计划
06质量保证计划
07配置管理计划
08需求分析说明书
09概要设计说明书
10详细设计说明书
11数据库设计说明书
12数据库表详细设计
13单元测试计划
14测试脚本
15单元测试报告
16系统测试计划
17验收申请书
18验收评审报告
19客户验收报告
21审核反馈表
22软件评审报告
23变更需求报告
24设计变更报告
26项目管理报告
27项目总结报告
一共这么多,三大报告是
需求分析说明书
概要设计说明书
详细设计说明书
⑥ 软件工程的具体内容
我是09年软件工程刚毕业的
主要专业课程:
高等数学 数据库 数据结构 操作系统 计算机网络 软件体系结构 软件工程 系统分析于设计 汇编语言 C++ JAVA linux
⑦ 软件工程的3要素都是什么
软件工程的三要素是方法、工具和过程。
软件工程方法为软件开发提供了 “如何做” 的技术,软件工具为软件工程方法提供了自动的或半自动的软件支撑环境; 过程是为了获得高质量的软件所需要完成的一系列任务框架,它规定了完成各项任务的工作步骤。
软件工程的目标是在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。
扩展资料:
软件工程的特点:
1、可理解性:系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制系统软件复杂性,并支持软件的维护、移植或重用。
2、可维护性:软件交付使用后,能够对它进行修改,以改正潜伏的错误,改进性能和其它属性,使软件产品适应环境的变化等。软件维护费用在软件开发费用中占有很大的比重。可维护性是软件工程中一项十分重要的目标。
3、可重用性:把概念或功能相对独立的一个或一组相关模块定义为一个软部件。可组装在系统的任何位置,降低工作量。
4、可移植性:软件从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度。
5、可追踪性:根据软件需求对软件设计、程序进行正向追踪,或根据软件设计、程序对软件需求的逆向追踪的能力。
参考资料来源:网络-软件工程
⑧ 软件工程的原理
自从1968年提出“软件工程”这一术语以来,研究软件工程的专家学者们陆续提出了100多条关于软件工程的准则或信条。美国著名的软件工程专家巴利·玻姆(Barry Boehm)综合这些专家的意见,并总结了美国天合公司(TRW)多年的开发软件的经验,于1983年提出了软件工程的七条基本原理。
玻姆认为,这七条原理是确保软件产品质量和开发效率的原理的最小集合。它们是相互独立的,是缺一不可的最小集合;同时,它们又是相当完备的。人们当然不能用数学方法严格证明它们是一个完备的集合,但是可以证明,在此之前已经提出的100多条软件工程准则都可以有这七条原理的任意组合蕴含或派生。
下面简要介绍软件工程的七条原理:
用分阶段的生命周期计划严格管理
这一条是吸取前人的教训而提出来的。统计表明,50%以上的失败项目是由于计划不周而造成的。在软件开发与维护的漫长生命周期中,需要完成许多性质各异的工作。这条原理意味着,应该把软件生命周期分成若干阶段,并相应制定出切实可行的计划,然后严格按照计划对软件的开发和维护进行管理。
玻姆认为,在整个软件生命周期中应指定并严格执行6类计划:
项目概要计划、
里程碑计划、
项目控制计划、
产品控制计划、
验证计划、
运行维护计划。
坚持进行阶段评审
统计结果显示:大部分错误是在编码之前造成的,大约占63%错误发现的越晚,改正它要付出的代价就越大,要差2到3个数量级。 因此,软件的质量保证工作不能等到编码结束之后再进行,应坚持进行严格的阶段评审,以便尽早发现错误。
实行严格的产品控制
开发人员最痛恨的事情之一就是改动需求。但是实践告诉我们,需求的改动往往是不可避免的。这就要求我们要采用科学的产品控制技术来顺应这种要求。也就是要采用变动控制,又叫基准配置管理。当需求变动时,其它各个阶段的文档或代码随之相应变动,以保证软件的一致性。
采纳现代程序设计技术
从六、七十年代的结构化软件开发技术,到最近的面向对象技术,从第一、第二代语言,到第四代语言,人们已经充分认识到:方法大于气力。采用先进的技术既可以提高软件开发的效率,又可以减少软件维护的成本。
结果应能清楚地审查
软件是一种看不见、摸不着的逻辑产品。软件开发小组的工作进展情况可见性差,难于评价和管理。为更好地进行管理,应根据软件开发的总目标及完成期限,尽量明确地规定开发小组的责任和产品标准,从而使所得到的标准能清楚地审查。
开发小组的人员应少而精
开发人员的素质和数量是影响软件质量和开发效率的重要因素,应该少而精。这一条基于两点原因:高素质开发人员的效率比低素质开发人员的效率要高几倍到几十倍,开发工作中犯的错误也要少的多;当开发小组为N人时,可能的通信信道为N(N-1)/2, 可见随着人数N的增大,通讯开销将急剧增大。
承认不断改进软件工程实践的必要性
遵从上述六条基本原理,就能够较好地实现软件的工程化生产。但是,它们只是对现有的经验的总结和归纳,并不能保证赶上技术不断前进发展的步伐。因此,玻姆提出应把承认不断改进软件工程实践的必要性作为软件工程的第七条原理。根据这条原理,不仅要积极采纳新的软件开发技术,还要注意不断总结经验,收集进度和消耗等数据,进行出错类型和问题报告统计。这些数据既可以用来评估新的软件技术的效果,也可以用来指明必须着重注意的问题和应该优先进行研究的工具和技术。
⑨ 什么是软件工程的核心思想
软件工程的核心思想是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可追踪性、可互操作性和满足用户需求的软件产品。
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。
它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。
但是软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义:
BarryBoehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
FritzBauer:在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
(9)软件工程的三段论扩展阅读:
软件工程有以下四项基本原则:
1、选取适宜开发范型。
在系统设计中,软件需求、硬件需求以及其他因素之间是相互制约、相互影响的,经常需要权衡。因此,必须认识需求定义的易变性,采用适宜的开发范型予以控制,以保证软件产品满足用户的要求。
2、采用合适的设计方法。
在软件设计中,通常要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征。合适的设计方法有助于这些特征的实现,以达到软件工程的目标。
3、提供高质量的工程支持。
在软件工程中,软件工具与环境对软件过程的支持颇为重要。软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。
4、重视开发过程的管理。
软件工程的管理,直接影响可用资源的有效利用,生产满足目标的软件产品,提高软件组织的生产能力等问题。因此,仅当软件过程得以有效管理时,才能实现有效的软件工程。
⑩ 软件工程的3要素:工具、过程、方法分别是什么意思呀
软件工程包括三个要素:方法、工具和过程。
软件工程方法为软件开发提供了“如何做”的技术。它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。
软件工具为软件工程方法提供了自动的或半自动的软件支撑环境。目前,已经推出了许多软件工具,这些软件工具集成起来,建立起称之为计算机辅助软件工程(CASE)的软件开发支撑系统。CASE将各种软件工具、开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。
软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。
软件工程是一种层次化的技术。任何工程方法(包括软件工程)必须以有组织的质量保证为基础。全面的质量管理和类似的理念刺激了不断的过程改进,正是这种改进导致了更加成熟的软件工程方法的不断出现。支持软件工程的根基就在于对质量的关注。