软件工程的几种定义
- 格式:doc
- 大小:22.00 KB
- 文档页数:3
软件工程的几种定义软件工程是指应用系统化、规范化和可持续发展的原则、方法和工具来开发、维护和管理软件的学科。
随着软件的快速发展和广泛应用,软件工程的定义也逐渐形成并演变。
在本文中,将介绍软件工程的几种定义。
一、软件工程的经典定义软件工程一词最早由美国学者弗里德曼(Friedman)于1968年提出,并在1969年的美国计算机学会(ACM)会议上首次正式使用。
软件工程的经典定义是指通过系统化、规范化的方法来开发、维护和管理软件,以提高软件质量和效率。
弗里德曼将软件开发过程类比为建筑工程,强调了规范和纪律的重要性。
二、软件工程的工程化定义软件工程的工程化定义强调将软件开发过程视为一种工程活动,强调工程方法和技术在软件开发中的应用。
它强调软件工程师必须具备系统工程、管理学、计算机科学等多学科的知识和技能,以应对软件开发过程中的挑战。
三、软件工程的过程控制定义软件工程的过程控制定义强调通过控制软件开发过程中的各个环节,确保软件开发过程的可控性和可预测性。
它倡导使用统一的开发流程和规范,并通过度量和评估来监控和改进软件开发过程。
四、软件工程的价值导向定义软件工程的价值导向定义将软件开发过程的目标定位于为用户提供有价值的软件产品。
它关注软件的功能、质量、性能等方面,以满足用户需求为出发点,通过合理的规划和组织来创造具备商业竞争力的软件产品。
五、软件工程的技术方法论定义软件工程的技术方法论定义将软件开发过程视为一种科学,强调使用科学的方法和技术来解决软件开发中的问题。
它将软件开发过程分解为多个阶段,并通过应用软件工程方法和技术来实现每个阶段的目标。
六、软件工程的持续改进定义软件工程的持续改进定义强调软件开发过程的不断改进和优化。
它倡导使用反馈机制和度量指标,通过持续评估和改进来提高软件开发过程的效率和质量。
综上所述,软件工程的定义多种多样,但它们都强调了软件开发过程的系统性、规范性和可持续发展的特点。
无论采用哪种定义,软件工程都是一个充满挑战和创新的领域,需要软件工程师具备广泛的知识和技能,以开发出更安全、更可靠、更高效的软件产品。
软件⼯程的定义、内容及步骤软件⼯程⼀直以来都缺乏⼀个统⼀的定义,很多学者、组织机构都分别给出了⾃⼰的定义:Boehm:运⽤现代科学技术知识来设计并构造计算机程序及为开发、运⾏和维护这些程序所必需的相关⽂件资料。
IEEE:软件⼯程是开发、运⾏、维护和修复软件的系统⽅法。
Fritz Bauer:建⽴并使⽤完善的⼯程化原则,以较经济的⼿段获得能在实际机器上有效运⾏的可靠软件的⼀系列⽅法。
软件⼯程学的内容软件⼯程学的主要内容是软件开发技术和软件⼯程管理.软件开发技术包含软件⼯程⽅法学、软件⼯具和软件开发环境;软件⼯程管理学包含软件⼯程经济学和软件管理学。
软件⼯程基本原理著名软件⼯程专家B.Boehm综合有关专家和学者的意见并总结了多年来开发软件的经验,于1983年在⼀篇论⽂中提出了软件⼯程的七条基本原理。
(1)⽤分阶段的⽣存周期计划进⾏严格的管理。
(2)坚持进⾏阶段评审。
(3)实⾏严格的产品控制。
(4)采⽤现代程序设计技术。
(5)软件⼯程结果应能清楚地审查。
(6)开发⼩组的⼈员应该少⽽精。
(7)承认不断改进软件⼯程实践的必要性。
B.Boehm指出,遵循前六条基本原理,能够实现软件的⼯程化⽣产;按照第七条原理,不仅要积极主动地采纳新的软件技术,⽽且要注意不断总结经验。
软件⼯程(SoftWare Engineering)的框架可概括为:⽬标、过程和原则。
(1)软件⼯程⽬标:⽣产具有正确性、可⽤性以及开销合宜的产品。
正确性指软件产品达到预期功能的程度。
可⽤性指软件基本结构、实现及⽂档为⽤户可⽤的程度。
开销合宜是指软件开发、运⾏的整个开销满⾜⽤户要求的程度。
这些⽬标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及⼯程⽅法选取的约束。
(2)软件⼯程过程:⽣产⼀个最终能满⾜需求且达到⼯程⽬标的软件产品所需要的步骤。
软件⼯程过程主要包括开发过程、运作过程、维护过程。
它们覆盖了需求、设计、实现、确认以及维护等活动。
软件工程概念软件工程概念1. 软件工程的定义软件工程是一门涉及软件开发、维护和管理的学科,它利用系统化、规范化和量化的方法来开发和维护高质量的软件。
软件工程的目标是提高软件的质量、可靠性和可维护性,并确保软件项目在预定的时间和预算范围内完成。
2. 软件工程的特点软件工程具有以下几个特点:多学科综合:软件工程需要整合计算机科学、数学、工程学等多个学科的知识。
可量化和可测量性:软件工程使用度量和度量方法来评估软件的质量和进度。
工程化方法:软件工程采用工程化的方法,包括需求分析、设计、编码、测试和维护等环节。
团队合作:软件工程通常需要一个开发团队来合作完成项目,需要沟通和协调。
3. 软件工程的生命周期软件工程的生命周期包括以下几个阶段:需求分析:确定用户需求和系统要求,为后续的开发工作打下基础。
设计:根据需求分析得到的需求,设计软件的结构、功能和界面等。
编码:根据设计文件编写代码,实现软件的功能。
测试:测试软件的功能、性能和稳定性,发现并修复bug。
部署:将软件部署到目标系统中,让用户可以使用。
维护:随着时间的推移,软件可能需要更新和维护,以修复bug或添加新的功能。
4. 软件工程的原则软件工程有一些基本原则,包括:模块化:将系统划分为多个模块,每个模块负责一个特定的功能。
可复用性:设计和实现可复用的软件组件,提高开发效率和软件质量。
适应性:软件应该能够适应不断变化的需求和环境。
可测试性:软件应该易于测试,以便发现和解决问题。
文档化:软件应该有清晰的文档,方便开发者和用户理解和使用。
5. 软件工程的工具和技术软件工程使用各种工具和技术来支持开发过程,包括:集成开发环境(IDE):用于编写、调试和测试代码的集成开发环境,如Eclipse、Visual Studio等。
版本控制系统:用于管理和追踪代码版本的工具,如Git、SVN 等。
自动化测试工具:用于自动执行测试用例的工具,如JUnit、Selenium等。
软件工程基本概念:系统工程、软件开发方法、软件工具与软件开发环境软件工程基本概念1.系统工程系统工程是一种跨学科的工程方法,它强调在系统开发过程中采用全面的视角和思维方式,以系统性的方法和策略来解决各种问题。
在软件工程中,系统工程着重应用于大型、复杂系统的开发,如航天、军事、大型企业等。
系统工程强调对系统的整体性、结构性和功能性进行全面分析,包括系统需求分析、系统设计、系统实现、系统测试与验收等阶段。
在系统开发过程中,系统工程采用一系列工具和技术,如系统建模、系统架构设计、系统仿真等,以实现系统的优化和改进。
2.软件开发方法软件开发方法是一种用于指导软件开发过程的方法论,它提供了一组标准的步骤和原则,以指导开发者进行有效的软件开发。
常见的软件开发方法包括:结构化开发方法(SDM)、面向对象开发方法(ODM)、敏捷开发方法(ADM)、迭代开发方法(IDM)等。
这些方法在不同的软件开发场景和项目中具有不同的应用和优势。
软件开发方法的核心是提供一套完整的开发流程和规范,以指导开发者进行需求分析、设计、编码、测试和维护等软件开发活动。
此外,软件开发方法还强调对开发过程的管理和控制,以确保软件开发的质量和效率。
3.软件工具软件工具是用于辅助软件开发的软件或工具集,它们能够提高软件开发的效率和质量。
常见的软件工具包括:集成开发环境(IDE)、版本控制系统(VCS)、代码质量检测工具、调试工具、测试工具、需求管理工具等。
这些工具在不同的软件开发阶段和领域中具有广泛的应用和优势。
软件工具的目的是帮助开发者提高开发效率和质量,它们通过自动化、智能化和可视化等方式,减少了开发者的工作量和难度,同时提高了软件开发的精度和可靠性。
4.软件开发环境软件开发环境是指一系列软件工具和技术的集合,它们用于支持软件开发的整个生命周期。
常见的软件开发环境包括:软件开发平台(如Java平台、Python平台等)、软件开发框架(如Spring、Django等)、软件测试工具(如Junit、Selenium等)、版本控制系统(如Git、SVN等)、持续集成与持续部署(CI/CD)工具等。
三、名词解释1、软件:在计算机系统中,与硬件互相依存旳逻辑部件,它由程序、数据及有关文档构成。
2、软件工程:是指导计算机软件开发和维护旳工程学科。
采用工程旳概念、原理、技术和措施来开发与维护软件,把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来。
3、数据字典:是有关数据旳信息旳集合,也就是对数据流图中包括旳所有元素旳定义旳集合。
4、模块化:是把程序划提成若干个模块,每个模块完毕一种子功能,把这些模块集总起来构成一种整体,也许完毕指定旳功能满足问题旳需求。
5、类:对具有相似数据和相似操作旳一组相似对象旳定义。
6、软件危机: 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。
7、软件维护:在软件已经交付使用之后,为了改正错误或满足新旳需要而修改软件旳过程.8、继承:子类自动地共享基类中定义旳数据和措施旳机制.9、投资回收期: 就是使合计旳经济效果等于最初投资旳需要旳时间。
10、构造化分析措施: 就是面向数据流自顶向下逐渐求精进行需求分析旳措施。
11、软件旳生命周期:一种软件从定义、开发、使用和维护,直到最终被废弃所经历旳一系列时期。
12、投资回收期:就是使合计旳经济效果等于最初投资旳需要旳时间。
13、构造化分析措施:就是面向数据流自顶向下逐渐求精进行需求分析旳措施。
14、模块:数听阐明、可执行语句等程序对象旳集合,它是单独命名旳并且可通过名字来访问。
15、宽度:是软件构造内同一种层次上旳模块总数旳最大值。
16、事务流:数据沿输入通路抵达一种处理,这个处理根据输入数据旳类型在若干个动作序列中选出一种来执行。
此类数据流应当划分为一类特殊旳数据流,称为事务流。
17、耦合:衡量不一样模块彼此间互相依赖旳紧密程度。
18、事件:是某个特定期刻所发生旳事情,它是对引起对象从一种状态转换到另一种状态旳现实世界中旳事件旳抽象。
19、函数重载:指在同一作用域内旳若干个参数特性不一样旳函数可以使用相似旳函数名字。
软件工程基本概念一、基本概念:1、程序:是为了实现设计的功能和性能要求而编写的指令序列。
2、数据:是使指令能够正常操纵信息的数据结构。
3、文档:是与程序开发、维护和使用有关的图文资料。
4,软件(公认的解释):是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。
另一种定义:计算机程序,数据结构和描述所需逻辑方法、过程或控制的文档。
4-1.实时软件:管理、分析、控制现实世界中所发生的事件的软件。
4-2.嵌入式软件:驻留在专用的职能产品中,用于控制这些产品进行正常工作,完成很有限、很专业的功能的软件。
5,软件危机:就是指在软件开发和软件维护过程中所存在的一系列严重的问题。
5-1.软件的“生命周期”:软件产品从策划、定义、开发、使用和维护直到最后废弃,要经过以一个漫长的时期,这个时期称为软件的“生命周期”。
6,软件工程(Boehm)定义:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
7,软件工程(IEEE)定义:是开发、运行、维护和修复的系统方法。
8,软件工程(Fritz Bauer)定义:建立并使用完善的工程化的原则,以较经济的手段获得能在实际机器上有效运行的可靠的软件的一系列方法。
9,软件工程过程:是用以开发和维护软件及其相关产品的一系列活动,包括软件工程活动和软件管理活动。
这些活动的执行可以使有序的、循环的、重复的、嵌套的、也可以是有条件引发的。
10,软件工程过程模型:在一个具体的实际工程活动中,软件工程师必须设计、提炼出一个工程开发策略,用以覆盖软件过程中的基本阶段,确定所涉及的过程、方法、工具。
11、过程性能:一个软件开发组织遵循其软件过程所得到的实际结果称之为该过程的“过程性能”。
12,过程能力:软件开发组织通过执行其软件过程能够实现预期结果的程度称之为该组织的“软件过程能力”13,过程成熟度:一个特定软件过程被明确和有效地定义、管理、测量和控制的程度称为此过程的成熟度。
软件工程概念第一章:软件定义1.软件( Software):计算机系统中与硬件相互依存的另一部分,它是包括程序(Program),数据(D ata)及其相关文档( Document)的完整集合。
2.软件的特征:逻辑复杂,开发复杂,成本高,风险大,维护困难。
3.按软件功能分类:系统软件,支撑软件,应用软件。
系统软件:操作系统,数据库管理系统,设备驱动程序,通信处理程序等。
支撑软件:文本编辑程序,文件格式化程序,程序库系统等应用软件:商业数据处理软件,工程与科学计算软件,计算机辅助设计/制造软件,系统仿真软件,智能嵌入软件,医疗、制药软件,事务管理、办公自动化软件。
按软件规模分类:微型,小型,中型,大型,甚大型,极大型。
按软件工作方式分:实时处理软件,分时软件,交互式软件,批处理软件4.软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题5.软件危机主要是两个问题:1.如何开发软件,以满足对软件的日益增长的需求?2.如何维护数量不断膨胀的已有软件?5.软件危机的表现:1.成本高,开发成本估计不准确2.软件质量不高、可靠性差3.进度难以控制4.维护非常困难5.用户不满意6. 由于软件质量问题导致失败的软件项目非常多。
6.产生软件危机的原因:1.与软件本身的特点有关 2.与软件开发与维护的方法不正确有关.软件工程学的目的:以较低的成本研制具有较高质量的软件软件工程技术的两个明显特点:1.强调规范化2. 强调文档化软件工程的基本原理(7条):1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实严格的产品控制4.采用现代程序设计技术5.结果应能清楚地审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性8.软件工程方法学包含3个要素:方法、工具和过程9.软件生命周期:软件定义(问题定义,可行性研究,需求分析),软件开发(总体设计,详细设计,编码和单元测试,集成测试),运行维护(持久满足用户需求)10.软件过程模型:瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型。
软件工程的几种定义(精)软件工程的几种定义软件工程是一门涉及软件开发、维护和管理的学科。
尽管软件工程是一个相对年轻的领域,但已经有多种定义被提出。
在本篇文章中,我们将探讨几种常见的软件工程定义,并了解它们对该领域的重要性。
定义一:IEEE标准610.12-1990根据IEEE标准610.12-1990,软件工程被定义为:“(1) 应用系统化、规范化、可量化的方法来开发、操作和维护软件;(2) 在软件工程的原则、方法和过程的框架下,将经验和理论知识应用于软件开发中。
”这一定义强调了软件工程的系统化和规范化,并强调了使用经验和理论知识来指导软件开发过程的重要性。
定义二:Barry W. Boehm软件工程大师Barry W. Boehm提出了另一种定义:“软件工程是一种应用工程原理和方法的计算机程序开发方法。
”这一定义强调了软件工程与工程学科的关联,并提到了使用工程原理和方法来开发计算机程序的重要性。
定义三:Fritz BauerFritz Bauer是软件工程的早期推动者之一,在他的定义中,软件工程被视为“(1) 对软件开发的管理和经济学的问题进行研究;(2) 对软件工艺和理论基础的研究;(3) 对软件项目和软件生产过程进行实证研究;(4) 软件工作者的培训和教育。
”这一定义包含了管理、经济学、工艺和教育等多个方面,并强调了软件工程的综合性质。
定义四:Fred Brooks著名计算机科学家Fred Brooks在他的著作《人月神话》中对软件工程进行了定义。
他认为软件工程是“(1) 组织化的、能够预测和可控的方法论;(2) 关心软件生命周期的各个阶段。
”这一定义强调了软件工程的组织化和可控性,以及对软件生命周期各个阶段的关注。
定义五:ISO/IEC 12207ISO/IEC 12207是软件工程国际标准,定义了软件生命周期中的过程和活动。
该标准对软件工程进行了全面而系统的定义,涵盖了需求分析、设计、编码、测试等关键流程,并强调了管理和质量保证等方面的重要性。
软件工程概念第一章:软件定义1. 软件(Software):计算机系统中与硬件相互依存的另一部分,它是包括程序(Program), 数据(Data)及其相关文档(Document)的完整集合。
2. 软件的特征:逻辑复杂,开发复杂,成本高,风险大,维护困难。
3. 按软件功能分类:系统软件,支撑软件,应用软件。
系统软件:操作系统,数据库管理系统,设备驱动程序,通信处理程序等。
支撑软件:文本编辑程序,文件格式化程序,程序库系统等应用软件:商业数据处理软件,工程与科学计算软件,计算机辅助设计/制造软件,系统仿真软件,智能嵌入软件,医疗、制药软件,事务管理、办公自动化软件。
按软件规模分类:微型,小型,中型,大型,甚大型,极大型。
按软件工作方式分:实时处理软件,分时软件,交互式软件,批处理软件4. 软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题5. 软件危机主要是两个问题:1.如何开发软件,以满足对软件的日益增长的需求?2•如何维护数量不断膨胀的已有软件?5. 软件危机的表现:1.成本高,开发成本估计不准确 2.软件质量不高、可靠性差3.进度难以控制4.维护非常困难5.用户不满意6.由于软件质量问题导致失败的软件项目非常多。
6. 产生软件危机的原因:1•与软件本身的特点有关2•与软件开发与维护的方法不正确有关. 软件工程学的目的:以较低的成本研制具有较高质量的软件软件工程技术的两个明显特点: 1.强调规范化2.强调文档化软件工程的基本原理(7条):1.用分阶段的生命周期计划严格管理 2.坚持进行阶段评审 3.实严格的产品控制 4.采用现代程序设计技术 5.结果应能清楚地审查 6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性8. 软件工程方法学包含3个要素:方法、工具和过程9. 软件生命周期:软件定义(问题定义,可行性研究,需求分析),软件开发(总体设计,详细设计,编码和单元测试,集成测试),运行维护(持久满足用户需求)10. 软件过程模型:瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型。
一、给出n种常用的“软件工程”、“软件质量”的定义并进行适当的解释。
阅读相关的文章,
对文章进行总结,概括其主要结论并简述你自己的观点。
每项至少1页A4纸。
软件工程:
几种软件工程的定义:
Fritz Bauer在NATO会议上给出的定义:软件工程是建立和使用一套合理的工程原则,从而经济地获得可靠的,可以在实际机器上高效运行的软件。
IEEE在软件工程术语汇编中的定义:软件工程是(1)将系统化的、规范化、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。
(2)在(1)中所述方法的研究。
《计算机科学技术百科全书》中的定义:软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。
软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。
其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。
百度百科:软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。
在现代社会中,软件应用于多个方面。
典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。
同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。
这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
上面是软件的几个定义,其实概括起来就是软件加工程。
就是把工程学的思想应用于软件,但是软件工程又不同于其他的工程,它有它特别的地方。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。
随着信息化的不断扩大,软件的范围已经越来越广了,越来越大了。
所以有一个良好的软件开发方法,能有效的提高软件的开发效率。
软件工程就是研究这一方面的。
如同土木工程,建筑工程一样,软件也需要系统化,规范化,可量化的进行开发。
但是软件开发又与建筑工程有不一样的地方。
如果使用双倍的人力建筑工程可能可以将工程期提早一半完成,例如两个人砌一个人的砖是不是快了一倍。
但如果说使用双倍的人数就能将软件工程的开发周期提高一倍的话,那是不可能的。
软件的开发过程中,需要团队人员不断的沟通。
我觉得软件开发过程中需要的合作沟通远远比建筑工程需要的多。
所以说团队的人越多,花在沟通上的时间也会越多,人均的效率反而可能会降低。
软件质量:
字典中队质量的定义是:“某一事物的特征或属性”。
作为一个事物的属性,质量指的是可测量的特征-与已知标准可以进行比较,如长度、颜色、电气特性、课延展性等等。
但是软件在很大程度上是一种知识实体,其特征的定义远比物理对象要困难得多。
然而却是存在程序特征的测量。
这些属性包括循环复杂度,内聚性,功能点数量、代码行数、以及其他很多属性。
当根据对象的可测量特征考察一个对象时,可以有两种不同的质量,设计质量和一致性质量。
软件质量是一模糊的、捉摸不定的概念。
我们常常听说:某某软件好用;某某某软件功能全、结构合理、层次分明、语言流畅。
这些模模糊糊的语言实在不能算作是软件质量评价,特别不能算作是软件质量科学的定量的评价。
但是,软件质量,乃至于任何产品质量,都是一个很复杂的事物性质和行为。
对于什么是产品质量,可以从以下几个观点来看:
* 透明性观点:质量是产品一种可以认识但不可定义的性质;
* 使用者观点:质量是产品满足使用目的之程度;
* 制造者观点:质量是产品性能和规格要求的符合度;
* 产品观点:质量是联结产品固有性能的纽带;
* 基于价值观点:质量依赖于顾客愿意付给产品报酬的数量。
按照ISO/IEC9126-1991(GB/T16260-1996)"信息技术软件产品评价质量特性及其使用指南"国际标准,对软件质量也有定义,软件质量(software quality)是与软件产品满足明确或隐含需求的能力有关的特征和特性的总和。
简言之,软件质量是软件一些特性的组合,它仅依赖软件本身。
对于软件质量有三种不同的视面。
用户主要感兴趣的是如何使用软件、软件性能和使用软件的效果。
所以他们关心的是:(1)是否具有所需要的功能;(2)可靠程度如何;(3)效率如何;(4)使用是否方便;(5)环境开放的程度如何。
我们进一步解释软件质量特性,一个软件质量特性可破细化成多个子特性。
功能性是与一组功能及其指定的性质有关的一组属性,可靠性是与在规定的一段时间和条件下,软件维持其性能水平的能力有关的一组属性,易用性是与一组规定或潜在用户为使用软件所需作的努力和对这样的使用所作的评价有关的一组属性。
我认为软件的质量包括两方面。
对用户来说,软件可靠性强,软件易用,软件稳定性强。
则用户觉得质量好;对于开发人员来说:除了用户所关心的,他们还可能会关心,程序的代码结构,整体框架,软件的可维护性,程序的可读性等等也标志着它的质量。
当然,我们还能从其它角度,比如软件的生产者-人的素质,来诠释软件质量,但不管怎样,软件的产品质量是最终的检验标准,而最终的检验者就是客户。
从这个意义上说,软件质量就是客户满意度。
二、名词解释:“软件危机”,“软件的特点”,“软件的产生和发展”
1、软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。
一些复杂的、大型
的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。
在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
2、软件的特点:
A) 软件是一种逻辑实体,是人类智力成果的表现形式。
B ) 软件的开发和制造是一个统一的过程。
C)软件开发时一项经济活动,在一定的成本和时间限制下,满足用户的需求是软件的开发的目标。
D ) 软件不会磨损,但可能存在错误,需要进行维护。
E ) 软件的复杂度随着亏魔的增大迅速增加。
3、软件的产生和发展
软件的产生始于早期的机械式计算机的开发。
从19世纪起,随着机械式计算机的更新,出现了穿孔卡片,这种卡片可以指导计算机进行工作。
但是直到20世纪中期现代化的电子计算机出现之后,软件才真正得以飞速发展。
软件工程发展史上各个阶段的里程碑是:(1)70年代:程序设计方法学、结构化分析和设计、抽象数据类型、软件工具;(2)80年代:软件开发方法学、软件工程环境(CASE)、面向对象技术;(3)90年代:软件复用和软件构件技术、软件过程、需求工程。
如何达成软件工程的目标--提高开发质量和生产率?过去的认识:技术的发展是达到上述目标的主要(唯一)途径。
如:80年代后期,CASE工具、环境被认为是最好的解决方案--通过自动化工具的支持可以很容易地提高质量和效率;90年代,GUI生成技术和OO技术也被寄予厚望。
其原因在于,技术可以给出立即可见的解决方案,并很快得到收益。
但结果却经常不尽人意。