您现在的位置是:首页 >

软体类有什么 软体工程(学科)详细资料大全

火烧 2021-06-09 07:22:03 1052
软体工程 学科 详细资料大全 软体工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软体的学科。它涉及程式设计语言、资料库、软体开发工具、系统平台、标准、设计模式等方面。在现代社会中,软体套

软体工程(学科)详细资料大全  

软体类有什么 软体工程(学科)详细资料大全

软体工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软体的学科。它涉及程式设计语言、资料库、软体开发工具、系统平台、标准、设计模式等方面。

在现代社会中,软体套用于多个方面。典型的软体有电子邮件、嵌入式系统、人机界面、办公套件、作业系统、编译器、资料库、游戏等。同时,各个行业几乎都有计算机软体的套用,如工业、农业、银行、航空、政府部门等。这些套用促进了经济和社会的发展,也提高了工作效率和生活效率 。

基本介绍

中文名:软体工程外文名:Sofare Engineering简称:SE类别:学科相关专业:通信工程、计算机科学与技术 定义内涵,定义,内涵,基本内容,发展过程,程式设计阶段,软体设计阶段,软体工程阶段,未来,目标,研究领域,原理,结构,方法,结构化方法,面向数据结构的软体开发方法,面向问题的分析法,原型化方法,开发方法,软体需求,工程与科学,软体工程专业,简介,学科地位,就业岗位,

定义内涵

定义

软体工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己认可的定义:软体工程 BarryBoehm:运用现代科学技术知识来设计并构造计算机程式及为开发、运行和维护这些程式所必需的相关档案资料。 IEEE:在软体工程术语汇编中的定义:软体工程是:1.将系统化的、严格约束的、可量化的方法套用于软体的开发、运行和维护,即将工程化套用于软体;2.在1中所述方法的研究 FritzBauer:在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软体的一系列方法。 《计算机科学技术百科全书》:软体工程是套用计算机科学、数学、逻辑学及管理科学等原理,开发软体的工程。软体工程借鉴传统工程的原则、方法,以提高质量、降低成本和改进算法。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计画、资源、质量、成本等管理。 比较认可的一种定义认为:软体工程是研究和套用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软体,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。 ISO 9000对软体工程过程的定义是:软体工程过程是输入转化为输出的一组彼此相关的资源和活动。 其它定义:1.运行时,能够提供所要求功能和性能的指令或电脑程式集合。2.程式能够满意地处理信息的数据结构。3.描述程式功能需求以及程式如何操作和使用所要求的文档。以开发语言作为描述语言,可以认为:软体=程式+数据+文档。

内涵

一、软体工程过程是指为获得软体产品,在软体工具的支持下由软体工程师完成的一系列软体工程活动,包括以下四个方面: 1、P(Plan)——软体规格说明。规定软体的功能及其运行时的限制。 2、D(DO)——软体开发。开发出满足规格说明的软体。 3、C(Check)——软体确认。确认开发的软体能够满足用户的需求。 4、A(Action)——软体演进。软体在运行过程中不断改进以满足客户新的需求。 二、从软体开发的观点看,它就是使用适当的资源(包括人员,软硬体资源,时间等),为开发软体进行的一组开发活动,在活动结束时输入(即用户的需求)转化为输出(最终符合用户需求的软体产品)。 三个阶段:定义阶段:可行性研究初步项目计画、需求分析;开发阶段:概要设计、详细设计、实现、测试;运行和维护阶段:运行、维护、废弃 原则:1、抽象;2、信息隐蔽;3、模组化;4、局部化;5、确定性;6,一致性;7、完备性;8、可验证性

基本内容

软体工程原理、软体工程过程、软体工程方法、软体工程模型、软体工程管理、软体工程度量、软体工程环境、软体工程套用、软体工程开发使用。著名软体工程专家B.Boehm综合有关专家和学者的意见并总结了多年来开发软体的经验,于1983年在一篇论文中提出了软体工程的七条基本原理: (1)用分阶段的生存周期计画进行严格的管理。 (2)坚持进行阶段评审。 (3)实行严格的产品控制。
(4)采用现代程式设计技术。
(5)软体工程结果应能清楚地审查。
(6)开发小组的人员应该少而精。
(7)承认不断改进软体工程实践的必要性。

发展过程

软体是由电脑程式和程式设计的概念发展演化而来的,是在程式和程式设计发展到一定规模并且逐步商品化的过程中形成的。软体开发经历了程式设计阶段、软体设计阶段和软体工程阶段的演变过程。

程式设计阶段

程式设计阶段出现在1946年~1955年。此阶段的特点是:尚无软体的概念,程式设计主要围绕硬体进行开发,规模很小,工具简单,无明确分工(开发者和用户),程式设计追求节省空间和编程技巧,无文档资料(除程式清单外),主要用于科学计算。

软体设计阶段

软体设计阶段出现在1956年~1970年。此阶段的特点是:硬体环境相对稳定,出现了“软体作坊”的开发组织形式。开始广泛使用产品软体(可购买),从而建立了软体的概念。随着计算机技术的发展和计算机套用的日益普及,软体系统的规模越来越庞大,高级程式语言层出不穷,套用领域不断拓宽,开发者和用户有了明确的分工,社会对软体的需求量剧增。但软体开发技术没有重大突破,软体产品的质量不高,生产效率低下,从而导致了“软体危机”的产生。软体工程

软体工程阶段

自1970年起,软体开发进入了软体工程阶段。由于“软体危机”的产生,迫使人们不得不研究、改变软体开发的技术手段和管理方法。从此软体产生进入了软体工程时代。此阶段的特点是:硬体已向巨型化、微型化、网路化和智慧型化四个方向发展,资料库技术已成熟并广泛套用,第三代、第四代语言出现;第一代软体技术:结构化程式设计在数值计算领域取得优异成绩;第二代软体技术:软体测试技术、方法、原理用于软体生产过程;第三代软体技术:处理需求定义技术用于软体需求分析和描述。

未来

在Inter平台上进一步整合资源,形成巨型的、高效的、可信的虚拟环境,使所有资源能够高效、可信地为所有用户服务,成为软体技术的研究热点之一。 软体工程领域的主要研究热点是软体复用和软体构件技术,它们被视为是解决“软体危机”的一条现实可行的途径,是软体工业化生产的必由之路。而且软体工程会朝着开放性计算的方向发展,朝着可以确定行业基础框架、指导行业发展和技术融合的“开放计算”。

目标

软体工程的目标是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软体产品。追求这些目标有助于提高软体产品的质量和开发效率,减少维护的困难。 (1) 适用性:软体在不同的系统约束条件下,使用户需求得到满足的难易程度。 (2) 有效性:软体系统能最有效的利用计算机的时间和空间资源。各种软体无不把系统的时/空开销作为衡量软体质量的一项重要技术指标。很多场合,在追求时间有效性和空间有效性时会发生矛盾,这时不得不牺牲时间有效性换取空间有效性或牺牲空间有效性换取时间有效性。时/空折衷是经常采用的技巧。 (3) 可修改性:允许对系统进行修改而不增加原系统的复杂性。它支持软体的调试和维护,是一个难以达到的目标。 (4) 可靠性:能防止因概念、设计和结构等方面的不完善造成的软体系统失效,具有挽回因操作不当造成软体系统失效的能力。 (5) 可理解性:系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制系统软体复杂性,并支持软体的维护、移植或重用。 (6) 可维护性:软体交付使用后,能够对它进行修改,以改正潜伏的错误,改进性能和其它属性,使软体产品适应环境的变化等。软体维护费用在软体开发费用中占有很大的比重。可维护性是软体工程中一项十分重要的目标。 (7) 可重用性:把概念或功能相对独立的一个或一组相关模组定义为一个软部件。可组装在系统的任何位置,降低工作量。 (8) 可移植性:软体从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度。 (9) 可追踪性:根据软体需求对软体设计、程式进行正向追踪,或根据软体设计、程式对软体需求的逆向追踪的能力。 (10) 可互操作性:多个软体元素相互通信并协同完成任务的能力。

研究领域

软体架构 软体设计方法 软体领域建模 软体工程决策支持 软体工程教育 软体测试技术 自动化的软体设计和合成 基于组件的软体工程 计算机支持的协同工作 程式语言和软体工程 计算机网路 信息与通信安全 计算机图形学与人机互动 多媒体技术套用 人工智慧与识别 嵌入式软体与套用 自动控制 分散式计算与格线计算 云计算技术 存储技术 资料库技术研究 计算机辅助设计与套用技术 大数据分析与处理

原理

自从1968年提出“软体工程”这一术语以来,研究软体工程的专家学者们陆续提出了100多条关于软体工程的准则或信条。美国著名的软体工程专家巴利·玻姆(Barry Boehm)综合这些专家的意见,并总结了美国天合公司(TRW)多年的开发软体的经验,于1983年提出了软体工程的七条基本原理。 玻姆认为,这七条原理是确保软体产品质量和开发效率的原理的最小集合。它们是相互独立的,是缺一不可的最小集合;同时,它们又是相当完备的。人们当然不能用数学方法严格证明它们是一个完备的集合,但是可以证明,在此之前已经提出的100多条软体工程准则都可以有这七条原理的任意组合蕴含或派生。 下面简要介绍软体工程的七条原理: 用分阶段的生命周期计画严格管理 这一条是吸取前人的教训而提出来的。统计表明,50%以上的失败项目是由于计画不周而造成的。在软体开发与维护的漫长生命周期中,需要完成许多性质各异的工作。这条原理意味着,应该把软体生命周期分成若干阶段,并相应制定出切实可行的计画,然后严格按照计画对软体的开发和维护进行管理。 玻姆认为,在整个软体生命周期中应指定并严格执行6类计画: 项目概要计画、 里程碑计画、 项目控制计画、 产品控制计画、 验证计画、 运行维护计画。 坚持进行阶段评审 统计结果显示:大部分错误是在编码之前造成的,大约占63%错误发现的越晚,改正它要付出的代价就越大,要差2到3个数量级。 因此,软体的质量保证工作不能等到编码结束之后再进行,应坚持进行严格的阶段评审,以便尽早发现错误。 实行严格的产品控制开发人员最痛恨的事情之一就是改动需求。但是实践告诉我们,需求的改动往往是不可避免的。这就要求我们要采用科学的产品控制技术来顺应这种要求。也就是要采用变动控制,又叫基准配置管理。当需求变动时,其它各个阶段的文档或代码随之相应变动,以保证软体的一致性。采纳现代程式设计技术从六、七十年代的结构化软体开发技术,到最近的面向对象技术,从第一、第二代语言,到第四代语言,人们已经充分认识到:方法大于气力。采用先进的技术既可以提高软体开发的效率,又可以减少软体维护的成本。结果应能清楚地审查软体是一种看不见、摸不著的逻辑产品。软体开发小组的工作进展情况可见性差,难于评价和管理。为更好地进行管理,应根据软体开发的总目标及完成期限,尽量明确地规定开发小组的责任和产品标准,从而使所得到的标准能清楚地审查。开发小组的人员应少而精 开发人员的素质和数量是影响软体质量和开发效率的重要因素,应该少而精。 这一条基于两点原因:高素质开发人员的效率比低素质开发人员的效率要高几倍到几十倍,开发工作中犯的错误也要少的多;当开发小组为N人时,可能的通信信道为N(N-1)/2, 可见随着人数N的增大,通讯开销将急剧增大。 承认不断改进软体工程实践的必要性遵从上述六条基本原理,就能够较好地实现软体的工程化生产。但是,它们只是对现有的经验的总结和归纳,并不能保证赶上技术不断前进发展的步伐。因此,玻姆提出应把承认不断改进软体工程实践的必要性作为软体工程的第七条原理。根据这条原理,不仅要积极采纳新的软体开发技术,还要注意不断总结经验,收集进度和消耗等数据,进行出错类型和问题报告统计。这些数据既可以用来评估新的软体技术的效果,也可以用来指明必须着重注意的问题和应该优先进行研究的工具和技术。

结构

软体体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连线构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连线构件把体系结构的不同部分组组合连线起来。这一定义注重区分处理构件、数据构件和连线构件,这一方法在其他的定义和方法中基本上得到保持。 软体体系结构表示了一个软体系统的高层结构,主要特点有: 1)软体系统结构是一个高层次上的抽象,它并不涉及具体的系统结构(比如B/S还是C/S),也不关心具体的实现。 2)软体体系结构必须支持系统所要求的功能,在设计软体体系结构的时候,必须考虑系统的动态行为。 3)在设计软体体系结构的时候,必须考虑有现有系统的兼容性、安全性和可靠性。同时还要考虑系统以后的扩展性和伸缩性。所以有时候必须在多个不同方向的目标中进行决策。 软体体系结构贯穿于软体研发的整个生命周期内,具有重要的影响。这主要从以下三个方面来进行考察:利益相关人员之间的交流,系统设计的前期决策,可传递的系统级抽象。 当前已经有一些关于规范化软体体系结构,比如:ISO的开放系统互联模型、X Window系统等等。

方法

国外大的软体公司和机构一直在研究软体开发方法这个概念性的东西,而且也提出了很多实际的开发方法,比如:生命周期法、原型化方法、面向对象方法等等。下面介绍几种流行的开发方法:

结构化方法

结构化开发方法是由E.Yourdon 和 L.L.Constantine 提出的,即所谓的SASD 方 法, 也可称为面向功能的软体开发方法或面向数据流的软体开发方法。 Yourdon方法是80年代 使用最广泛的软体开发方法。它首先用结构化分析(SA)对软体进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程(SP)。它给出了两类典型的软体结构(变换型和事务型)使软体开发的成功率大大提高。

面向数据结构的软体开发方法

Jackson方法是最典型的面向数据结构的软体开发方法,Jackson方法把问题分解为可由三种基本结构形式表示的各部分的层次结构。三种基本的结构形式就是顺序、选择和重复。三种数据结构可以进行组合,形成复杂的结构体系。这一方法从目标系统的输入、输出数据结构入手,导出程式框架结构,再补充其它细节,就可得到完整的程式结构图。这一方法对输入、输出数据结构明确的中小型系统特别有效,如商业套用中的档案表格处理。该方法也可与其它方法结合,用于模组的详细设计。

面向问题的分析法

PAM(Problem Analysis Method)是80年代末由日立公司提出的一种软体开发方法。 它的基本思想是考虑到输入、输出数据结构,指导系统的分解,在系统分析指导下逐步综 合。这一方法的具体步骤是:从输入、输出数据结构导出基本处理框;分析这些处理框之间的先后关系;按先后关系逐步综合处理框,直到画出整个系统的PAD图。这一方法本质上是综合的自底向上的方法,但在逐步综合之前已进行了有目的的分解,这个目的就是充分考虑系统的输入、输出数据结构。PAM方法的另一个优点是使用PAD图。这是一种二维树形结构图,是到目前为止最好的详细设计表示方法之一。当然由于在输入、输出数据结构与整个系统之间同样存在着鸿沟,这一方法仍只适用于中小型问题。 软体工程需求分析

原型化方法

产生原型化方法的原因很多,主要随着我们系统开发经验的增多,我们也发现并非所有的需求都能够预先定义而且反复修改是不可避免的。当然能够采用原型化方法是因为开发工具的快速发展,比如用VB,DELPHI等工具我们可以迅速的开发出一个可以让用户看的见、摸的著的系统框架,这样,对于计算机不是很熟悉的用户就可以根据这个样板提出自己的需求。

开发方法

软体工程的方法有很多方面的意义。包括专案管理,分析,设计,程式的编写,测试和质量控制。 软体设计方法可以区别为重量级的方法和轻量级的方法。重量级的方法中产生大量的正式文档。 著名的重量级开发方法包括ISO9000,CMM,和统一软体开发过程(RUP)。 轻量级的开发过过程没有对大量正式文档的要求。著名的轻量级开发方法包括极限编程(XP)和敏捷流程(AgileProcesses)。

软体需求

软体需求包括 3 个不同的层次――业务需求、用户需求和功能需求。 除此之外,每个系统还有各种非功能需求。 业务需求(Business requirement表示组织或客户高层次的目标。业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、市场行销部门或产品策划部门。业务需求描述了组织为什么要开发一个系统,即组织希望达到的目标。使用前景和范围( vision and scope )文档来记录业务需求,这份文档有时也被称作项目轮廓图或市场需求( project charter 或 market requirement )文档。 用户需求(user requirement描述的是用户的目标,或用户要求系统必须能完成的任务。用例、场景描述和事件――回响表都是表达用户需求的有效途径。也就是说用户需求描述了用户能使用系统来做些什么。功能需求(functional requirement规定开发人员必须在产品中实现的软体功能,用户利用这些功能来完成任务,满足业务需求。功能需求有时也被称作行为需求( behavioral requirement ),因为习惯上总是用“应该”对其进行描述:“系统应该传送电子邮件来通知用户已接受其预定”。功能需求描述是开发人员需要实现什么。 系统需求(system requirement用于描述包含多个子系统的产品(即系统)的顶级需求。系统可以只包含软体系统,也可以既包含软体又包含硬体子系统。人也可以是系统的一部分,因此某些系统功能可能要由人来承担。业务规则包括企业方针、政府条例、工业标准、会计准则和计算方法等。业务规划本身并非软体需求,因为它们不属于任何特定软体系统的范围。然而,业务规则常常会限制谁能够执行某些特定用例,或者规定系统为符合相关规则必须实现某些特定功能。有时,功能中特定的质量属性(通过功能实现)也源于业务规则。所以,对某些功能需求进行追溯时,会发现其来源正是一条特定的业务规则。功能需求记录在软体需求说明书( SRS )中。 SRS 完整地描述了软体系统的预期特性。 SRS 我们一般把它当作文档,其实, SRS 还可以是包含需求信息的资料库或电子表格;或者是存储在商业需求管理工具中的信息;而对于小型项目,甚至可能是一叠索引卡片。开发、测试、质量保证、项目管理和其他相关的项目功能都要用到 SRS 。 除了功能需求外, SRS 中还包含非功能需求,包括性能指标和对质量属性的描述。 质量属性(quality attribute对产品的功能描述作了补充,它从不同方面描述了产品的各种特性。这些特性包括可用性、可移植性、完整性、效率和健壮性,它们对用户或开发人员都很重要。其他的非功能需求包括系统与外部世界的外部界面,以及对设计与实现的约束。约束(constraint限制了开发人员设计和构建系统时的选择范围。 行业需求:企业在招聘软体测试人员时主要看中应聘者的项目经验、逻辑思维能力、一定的技术能力和综合素质,而对学历、年龄、性别、工作经验等的要求较低,相对于IT行业其他职位而言,软体测试的入行更加容易。

工程与科学

软体的开发到底是一门科学还是一门工程,这是一个被争论了很久的问题。实际上,软体开发兼有两者的特点。但是这并不意味着它们可以被互相混淆。很多人认为软体工程基于计算机科学和信息科学就如传统意义上的工程学之于物理和化学一样。在美国,大约40%的软体工程师具有计算机科学的学位。在世界其他地方,这个比例也差不多。他们并不一定会每天使用计算机科学方面的知识,但是他们每天都会使用软体工程方面的知识。 软体工程 计算机科学 目标 在时间、资源、人员的限制条件下构建满足用户需求的软体系统。 探索正确的计算和建模方法,从而改进计算方法本身。 进度与时间表 软体专案都有特定的进度与时间表 研究专案一般不具有设定的进度与时间表 产品 软体(比如办公包和编译器)。 算法(比如希尔排序法)和抽象的问题(比如哲学家进餐问题)。 关注点 软体工程关注如何为用户实现价值。 软体理论关注的是软体本身运行的原理,比如时间复杂度。 变化程度 随着技术和用户需求的不断变化,须时刻调整以适应当前的需求。 对于某一种特定问题的正确解决方法将永远不会改变。 需要的其他知识 相关领域的知识。 数学。 著名的探索者和教育家 Barry Boehm, David Parnas 等 Edsger Dijkstra, 高德纳 等 著名的实践者 John Backus, 蒂姆·伯纳斯-李 等 无。

软体工程专业

简介

软体工程专业是一门研究用工程化方法构建和维护有效的、实用的和高质量的软体的学科。它涉及到程式设计语言,资料库,软体开发工具,系统平台,标准,设计模式等方面。在现代社会中,软体套用于多个方面。典型的软体比如有电子邮件,嵌入式系统,人机界面,办公套件,作业系统,编译器,资料库,游戏等。同时,各个行业几乎都有计算机软体的套用,比如工业,农业,银行,航空,政府部门等。这些套用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。

学科地位

软体工程学科是计算学科的分支,计算学科中理论、抽象、设计等三个学科形态,绑定、大问题的复杂性、概念和形式模型、一致性和完备性、效率、演化、抽象层次、按空间排序、按时间排序、重用、安全性、折衷与决策等十二个基本概念,数学方法、系统科学方法在软体工程学科中占有重要地位。此外,软体工程还十分重视管理过程,以提高软体产品的质量、降低开发成本、保证工程按时完成。系统性、规范性、可度量性也是软体工程非常关注的。 软体工程学科的理论基础是数学、计算机科学。软体工程的研究和实践涉及人力、技术、资金、进度的综合管理,是开展最最佳化生产活动的过程;软体工程必须划分系统的边界,给出系统的解决方案。因此,软体工程的相关学科有计算机科学与技术、数学、计算机工程、管理学、系统工程和人类工程学等。

就业岗位

Java方向:JAVA初级程式设计师、JAVA计算程式设计师 、 JAVA工程师 、J2EE系统工程师等。 .Net方向: .Net程式设计师网站开发工程师 .Net工程师等。 其它方向: 简单的管理信息系统开发和维护人员 、网页制作和客户端脚本程式编写人员 、初级资料库管理和维护人员 、资料库开发工程师 、系统分析设计工程 、软体项目配置管理员 、文档编写工程师。  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码