软件工程导论复习要点
软件工程导论复习整理(最新)
软件工程导论复习整理(最新)第一篇:软件工程导论复习整理(最新)第一章1..软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2.软件与硬件的区别:软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
3.软件:程序、数据及相关文档的完整集合。
4.软件工程是指导计算机软件开发和维护的一门工程学科,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到最好的技术方法结合起来,以经济地开发出高质量的软件并有校地维护它。
5.软件工程方法学三要素:方法、工具和过程。
6.传统方法学也称为生命周期方法学或结构化范型。
它采用结构化技术来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。
7.面向对象方法学把数据和行为看成同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。
8.软件生命周期划分为三个时期:1软件定义(问题定义、可行性研究、需求分析),2软件开发(总体设计、详细设计、编码和单元测试、综合测试),3运行维护(软件维护)。
9.4类软件维护活动:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充软件使它更完善;预防性维护,即修改软件,为将来的维护活动预先做准备。
10.“瀑布模型”的缺点:它是由文档驱动的,仅仅通过写在纸上的静态的规格说明,很难全面正确地认识动态的软件产品;瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的产品不能真正的满足用户的需要。
11.快速原型模型的优点:原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求;开发人员通过建立原型系统已经学到了很多东西,因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。
软件工程导论复习重点总结很全(第六版)
软件工程导论复习重点总结很全(第六版)软件工程导论复习重点总结很全(第六版)软件工程是一门研究如何以系统化的、可管理的和可维护的方式来构建高质量的软件的学科。
在软件工程导论中,我们学习了软件开发的基本概念、原理和方法。
本文将对软件工程导论的重点内容进行总结,帮助读者巩固所学知识,为学习和工作提供帮助。
1. 软件工程概述软件工程的定义、目标和原则;软件生命周期和过程模型;软件开发的重要性和挑战;软件工程中的质量保证和风险管理。
2. 软件需求工程软件需求的定义和分类;需求获取、分析和建模;需求验证和确认;需求变更和配置管理。
3. 软件设计软件设计原则和方法;面向对象设计和结构化设计;软件架构设计;设计模式的应用。
4. 软件测试与调试软件测试的概念和目的;测试策略和技术;测试用例的设计和执行;测试评估和管理;软件错误调试和修复。
5. 软件项目管理软件项目管理的基本概念和流程;项目计划和进度管理;团队组织和沟通;风险管理和变更管理;质量管理和配置管理;软件工程伦理与法规。
6. 软件开发过程软件开发过程模型的选择和应用;瀑布模型、迭代模型和敏捷开发等常用模型的特点和比较;敏捷开发方法的原理和实践。
7. 软件工具与环境软件开发工具的选择和使用;集成开发环境、版本控制工具、测试工具和调试工具等的功能和特点;软件工程中的自动化工具和技术。
8. 软件工程的前沿技术软件工程的新兴技术和趋势;人工智能、大数据、云计算等技术在软件开发中的应用;软件工程的创新与创业。
通过对上述主要内容的学习和理解,我们可以全面掌握软件工程导论的核心知识和方法。
在今后的学习和实践中,我们应该注重理论与实际的结合,不断提高自己在软件开发和项目管理方面的能力。
只有不断学习和实践,我们才能成为优秀的软件工程师,为社会和企业创造更大的价值。
总结:软件工程导论是软件工程领域中的重要基础课程,通过对软件开发过程和管理原理的学习,我们可以掌握软件工程的基本概念、原则和方法。
软件工程导论复习重点总结很全第六版
第1章软件工程学概述1.1 软件危机1.1.1 软件危机旳简介软件危机(软件萧条、软件困扰): 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。
软件危机包括下述两方面旳问题:怎样开发软件, 满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。
软件危机旳经典体现:(1)对软件开发成本和进度旳估计常常很不精确;(2)顾客对“已完毕旳”软件系统不满意旳现象常常发生;(3)软件产品旳质量往往靠不住;(4)软件常常是不可维护旳;(5)软件一般没有合适旳文档资料;(6)软件成本在计算机系统总成本中所占旳比例逐年上升;(7)软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。
1.1.2 产生软件危机旳原因(1)与软件自身旳特点有关(2)与软件开发与维护旳措施不对旳有关1.1.3 消除软件危机旳途径对计算机软件有对旳旳认识。
认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完毕旳工程项目。
应当推广使用在实践中总结出来旳开发软件旳成功技术和措施, 并继续研究探索。
应当开发和使用更好旳软件工具。
总之, 为了处理软件危机, 既要有技术措施(措施和工具), 又要有必要旳组织管理措施。
1.21.2.1 软件工程旳简介软件工程: 是指导计算机软件开发和维护旳一门工程学科。
采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它, 这就是软件工程。
(期中考)软件工程旳本质特性:软件工程关注于大型程序旳构造软件工程旳中心课题是控制复杂性软件常常变化开发软件旳效率非常重要友好地合作是开发软件旳关键软件必须有效地支持它旳顾客在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品1.2.2 软件工程旳基本原理用分阶段旳生命周期计划严格管理坚持进行阶段评审实行严格旳产品控制采用现代程序设计技术成果应能清晰地审查开发小组旳人员应当少而精承认不停改善软件工程实践旳必要性1.2.3 软件工程措施学软件工程包括技术和管理两方面旳内容。
《软件工程导论》考试重点
第一章1.软件危机的概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。
2.产生软件危机的原因:(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.软件配置的主要包括程序、文文件和数据等成分。
配置管理工具:commit,分支,合并。
4.软件工程的定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。
它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。
(ppt上定义)、、、、、//6.通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型//7.软件工程方法学包含三个要素:方法、工具和过程。
//8.目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学//9.传统方法学也称为生命周期方法学或结构化范型//10.面向对象方法学的四个要点://1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件//2.把所有对象都划分成类//3.按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。
//4.对象彼此间仅能通过发送消息互相联系。
11.软件生命周期:软件定义(问题定义,可行性研究,需求分析)、软件开发(总体设计,详细设计,编码,单元测试,总体测试)、运行维护(持久地满足用户的需要)12.最基本的测试是集成测试和验收测试。
13.瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型,概念.方法.优缺点.区别。
软件工程导论复习知识点
软件工程导论复习知识点一、软件:软件定义:软件=程序+文档+数据软件特点:1、具有抽象性2、没有明显的制造过程3、软件的维护比硬件的维护要复杂得多4、对计算机系统有着不同程度的依赖性5、尚未完全摆脱手工艺的开发方式6、软件本身是复杂的7、软件成本相当昂贵8、相当多的软件工作涉及到社会因素软件的发展:程序设计、程序系统、软件工程软件危机:软件危机指的是软件开发和维护过程中遇到的一系列严重问题。
软件危机的问题:如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机表现:1.开发成本难以控制,进度不可预计;2.软件系统的质量和可靠性很差,难以满意;3.软件文档相当缺乏,软件系统不可维护;4.软件开发生产率很低,软件产品供不应求。
5.软件产品成本十分昂贵。
管理科学中的方法和原理进行软件生产的管理。
用数学的方法建立软件开发中的各种模型和各种算法,如可靠性模型,说明用户需求的形式化模型等。
软件工程三要素:方法、工具和过程。
软件方法:是完成软件开发的各项任务的技术方法,回答“如何做”的问题;工具是为方法的运用提供自动的或半自动的软件支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
包括:传统方法学面向对象方法学需要解决的问题:软件成本、软件可靠性、软件维护、软件生产率和软件复用。
基本内容:包括理论、结构、方法、工具、环境与规范等目标:以较少的投资获得易维护、易理解、可靠和高效率的软件产品。
原则:即分解、抽象和信息隐蔽、一致性和确定性原理:工程化和系统化。
软件过程:软件过程是把输入转化为输出的一组彼此相关的资源和活动从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、时间等,为开发软件进行的一组开发活动,在过程结束时将输入(用户要求转化为输出(软件产品。
软件工程过程包含四种基本的过程活动:Plan 软件规格说明:规定软件的功能及其运行的限制Do 软件开发:产生满足规格说明的软件Check 软件确认:确认软件能够完成客户提出的要求Action 软件演进:为满足客户的变更要求,软件必须在使用的过程中演进软件工程的基本原理:强调使用生存周期方法学、强调使用结构分析与结构设计任务软件工程的目标:生产具有正确性、可用性以及开销合宜的产品1、付出较低的开发成本2、达到要求的软件功能3、取得较好的软件性能4、开发的软件易于移植5、需要较低的维护费用6、能按时完成开发7、及时交付使用三、软件生命周期:生命周期基本流程:问题定义→可行性研究→需求分析→总体设计(概要设计→详细设计→编码和单元测试→综合测试→软件维护。
软件工程导论 复习资料
软件工程导论复习资料软件工程导论是计算机科学与技术专业的一门重要课程,它主要介绍了软件工程的基本概念和原理,帮助学生了解软件开发过程中的关键问题和解决方法。
本文将为大家提供一份软件工程导论的复习资料,希望能够帮助同学们更好地复习和掌握这门课程。
1. 软件工程概述1.1 软件工程定义软件工程是一门关于开发和维护大规模软件的学科,它涉及到软件开发的各个阶段和过程。
软件工程的目标是通过系统化和可量化的方法来开发、维护和管理软件,以提高软件的质量、效率和可靠性。
1.2 软件生命周期软件生命周期是软件开发过程中的一个重要概念,它包括需求分析、设计、编码、测试、部署和维护等阶段。
了解软件生命周期的各个阶段和活动,对于理解软件开发过程的全貌和整体把控至关重要。
1.3 软件工程方法学软件工程方法学是用于指导软件开发过程的一种方法体系,包括传统的瀑布模型、敏捷开发方法、迭代开发方法等。
通过学习不同的软件工程方法学,可以使软件开发过程更加有序、高效。
2. 需求工程2.1 需求定义和分类需求工程是软件开发过程中的第一个阶段,它主要涉及到需求的定义、分析和规范化等活动。
了解需求的定义和分类能够帮助我们更好地理解用户的需求,从而制定出更准确的软件需求规格说明书。
2.2 需求获取和分析需求获取是收集用户需求信息的过程,需求分析是将这些需求信息进行过滤、分类和分析的过程。
在需求获取和分析阶段,我们需要使用一些常见的工具和技术,例如面谈、问卷调查、用例图等。
2.3 需求规格说明书需求规格说明书是对系统需求进行详细描述和规范的文档,它包括功能需求、非功能需求、性能需求等内容。
编写清晰、准确的需求规格说明书是软件开发过程中的关键一步,它对于后续的设计和编码工作具有重要的指导作用。
3. 软件设计3.1 软件设计基础软件设计是将需求转化为软件结构的过程,它包括模块化设计、面向对象设计、数据结构设计等。
掌握软件设计的基础知识,能够帮助我们合理划分系统的功能模块,提高软件的可维护性和可扩展性。
软件工程导论第五版复习重点
储户
储户
1
记录存款 信息
打印存款 信息
存款单
存款信息
存款存单
3
计算利息
4
打印利息 清单
存款信息
利息值
利息清单
D1
存款信息
存款信息
2
细化后的计算机储蓄系统软件结构
第3章 需求分析
1、需求分析的基本任务是什么?P46-P48 2、分析建模 2.1什么是模型? 模型:就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。 2.2数据模型(E-R)、 功能模型(2.4节数据流图)、 行为模型(状态转换图是行为模型的基础) 3、要从哪些方面验证软件需求?P60
第6章 详细设计
1、结构程序设计中有哪几种基本控制结构?P108 2、了解人机界面的设计。 3、掌握过程设计的工具(程序流程图、盒图、PAD图,判定树)P114—P119 4、面向数据结构的设计方法(Jackson图) 5、程序复杂度的定量度量(McCabe)
6.1 结构程序设计
6.1 结构程序设计
实现
编码和测试
7.2 软件测试基础
7.2 软件测试基础
软件测试:为发现程序中的错误而执行程序的过程。 软件测试的准则(尽早和不断的测试、彻底测试的不可能、软件测试是有风险的行为、并非所有的软件错误都能恢复、反向思维逻辑、由小到大的测试范围、避免检查自己的代码、追溯至用户需求) 测试方法(黑盒测试和白盒测试) 测试步骤(模块测试、子系统测试、系统测试、验收测试、平行运行)
图6.4 盒图的基本符号
图6.5 PAD中基本符号 顺序结构;(b) 分支结构;(c) 多分支CASE结构; (d) 当型循环;(e);直到型循环;(f) 语句标号;(g)定义
软件工程导论 复习资料
名词解释:1.软件生命周期模型软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。
软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等2. 模块独立性模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。
模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。
3.软件的可维护性软件可维护性指软件能够被理解、校正、适应及增强功能的容易程度。
4. 软件工程软件工程指用科学知识和技术原理来定义、开发、维护软件的一门学科。
或者说,软件工程就是运用工程学的基本原理和方法来组织管理软件的生产、研究、开发、管理、维护的过程、方法和技术。
5.数据字典字据字典:简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的\无二义性的说明方式为系统的分析\设计及维护提供了有关元素的一致的定义和详细的描述。
6、静态测试静态测试是采用人工检测和计算机辅助静态分析的方法对程序进行检测。
7、面向对象:面向对象OO=类+对象+继承+通信8、需求分析需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。
9、软件危机软件危机(Software Crisis) 是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。
概括地说,主要包含两方面的问题:如何开发软件,怎样满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
10、软件生存周期软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。
软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等。
简答:1.软件生存周期有哪几个阶段?①可行性研究②需求分析③总体设计④详细设计⑤编码⑥测试⑦维护2.白盒测试法有哪些逻辑覆盖标准?①语句覆盖②判定覆盖③条件覆盖④判定/条件覆盖⑤条件组合覆盖⑥点覆盖、边覆盖、路径覆盖3.软件的维护有哪4种类型?①校正性维护②适应性维护③完善性维护④预防性维护。
软件工程导论期末复习重点
软件工程导论期末复习重点选择、判断略一、名词解释1、软件危机2、软件工程3、数据字典4、模块化5、黑盒测试6、软件维护7、软件过程8、快速原型9、白盒测试二、简答题1、可行性研究目的和任务?2、可行性研究包括哪几方面的容?3、简述需求分析的描述工具和基本任务?4、什么是模块化?模块设计的准则?5、详细设计阶段的根本目标和任务?6、比较面向数据流和面向数据结构两类设计方法的异同?7、测试与调试的主要区别?8、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用围。
9、比较层次方框图与结构图的异同?10、结构化程序设计的基本原则?11、提高软件编码效率的3条原则?一、名词解释1、软件危机答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
概括地说,包含两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
2、软件工程答:①把系统的、规的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。
3、数据字典答:数据字典是描述数据流图中数据的信息的集合。
它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。
4、模块化答:模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
5、黑盒测试答:黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程序的部逻辑结构。
测试者把被测程序看成一个黑盒,不用关心程序的部结构。
黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
6、软件维护软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
软件工程导论复习
软件工程导论复习一、概念:1.软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2.软件工程:是指导软件开发与维护的工程性学科,采用工程的概念、原理、技术和方法来开发与维护软件。
3.软件工程的7条基本原理:(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果可以清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性4.软件生命周期:从软件定义开始到软件被废弃所经历的整个时期,它包括软件定义、软件开发和运行维护3个时期,每个时期又进一步划分成若干个阶段。
5.软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
6.瀑布模型的特点:(1)阶段间具有顺序性和依赖性(2)推迟实现的观点(典型特点)(3)质量保证的观点7.可行性研究的任务目的:用最小的代价和尽可能短的时间判断问题是否值得去解8.系统流程图:用来描述物理系统的工具。
9.数据流图(DFD):是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换,即数据流图描绘数据在软件中流动和被处理的逻辑过程。
10.结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。
11.数据模型中包含3种互相关联的信息:(1)数据对象(2)数据对象的属性(3)数据对象彼此间相互连接的关系12.信息隐藏原理:应这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。
13.数据耦合:如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合称为数据耦合。
14.控制耦合:如果传递的信息中有控制信息(尽管有时这种控制信息以数据的形式出现),则这种耦合称为控制耦合。
15.黑盒测试法:把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程,是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,黑盒测试又称为功能测试。
软件工程导论最全复习总结
1、软件危机是指在计算机开发过程中旳开发和维护过程中所碰到旳一系列旳严重问题。
2、软件是程序、数据及有关文档旳完整集合,程序是可以完毕预定功能和性能旳可执行旳程序序列;数据是是使程序可以合适旳处理信息旳数据构造;文档是开发、使用和维护程序所需要旳图文资料。
3、软件工程学包括3个要素:措施、工具、过程。
4、目前使用最广泛旳软件工程措施学是老式措施学和面向对象措施学。
5、软件工程措施学旳软件过程基本上可以用瀑布模型来描述。
6、瀑布模型、迅速原型模型、增量模型、螺旋模型、喷泉模型。
7、Rup把软件生命周期划为:初始、精化、构建、移交阶段。
8、可行性研究旳三方面:技术可行性、经济可行性、操作可行性。
9、数据流图(DFD是一种图形化技术,他描绘信息流和数据从输入移动到输出旳过程中所经受旳变化。
10、数据字典是有关数据信息旳集合,也就是对数据流程图中所包括旳所有元素旳定义旳集合。
11、数据流图和数据字典共同构成系统旳逻辑模型,没有数据字典,数据如就不严格,没有流程图,数据字典也难以发挥作用。
12、需求分析阶段结束之前,系统分析员应当写出软件需求规格阐明书,以书面形式准确旳描述软件需求。
13、9、构造化分析措施就是面向数据流自顶向下逐渐求精进行需求分析旳措施。
14、ER图中包括了实体、关系和属性,矩形代表实体,菱形表达关系,椭圆或圆角矩形表达属性,用直线把实体和其属性连接。
15、验证软件需求旳对旳性:一致性、完整性、现实性、有效性。
16、总体设计旳基本目旳是回答“概括地说,系统应当怎样实现?”,总体设计又称为概要设或初步设计。
17、模块旳独立程度可以有两个定性标量度量:内聚和耦合。
18、软件测试旳目旳:(1测试是为了发现程序中旳错误而执行程序旳过程;(2好旳测试方案是极也许发现迄今为止尚未发现旳错误旳测试方案;(3成功旳测试是发现可至今为止尚未发现旳错误旳测试。
19、软件测试环节:模块测试、子系统测试、系统测试、验收测试、平行运行。
软件工程导论知识点
软件工程导论知识点软件工程导论一、各章知识点1、统一建模语言(UML):是一种面向对象的建模语言,它是运用统一的,标准化的标记和定义实现对软件系统进行面向对象的描述和建模2、封装从字面上理解,所谓封装就是把某个事物包起来,使外界不知道该事物的具体内容。
封装也就是信息隐藏,通过封装对外界隐藏了对象的实现细节。
3、软件维护性的过程分为四类:改正性维护;适应性维护;完善性维护;预防性维护4、白盒、黑盒测试的概念如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。
这种测试叫做白盒测试,也叫结构测试。
如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用,这种测试叫做黑盒测试,也叫功能测试。
5、继承:继承是指能够直接获得已有的性质和特征,而不必重复定义它们继承分单继承(树型结构)和多重继承(网状结构)6、软件生命周期以及各阶段的任务(3个时期,9个阶段)概括的说,软件生命周期由软件定义,软件开发和运行维护3个时期组成,通常把前两个时期再一步划分成若干个阶段。
软件定义时期:问题定义;可行性研究;需求分析三个阶段软件开发时期:总体设计;详细设计;编码和单元测试;综合测试五个阶段软件定义时期的任务是:确定软件开发工程的总目标;研究该项目的可行性;分析确定客户对软件产品的需求估算完成该项目所需的资源和成本,并且制定工程进度表软件开发时期的任务是:具体设计和实现在前一个时期定义的软件运行维护时期的任务是:通过对已交付使用的软件做必要的修改,使软件持久地满足客户的需求7、需求/概要/详细设计阶段是干什么的?需求分析阶段的基本任务是确定软件必须”做什么”,使用的概念主题是”功能”概要设计阶段的任务是确定“怎样做“,使用的概念是”模块“详细设计阶段的任务就是把解法具体化,即回答“应该怎样具体地实现这个系统”使用的概念是“数据结构“和”算法“8、软件生命周期中时间花费做多的是维护阶段软件生命周期中最重要的是系统分析9、软件的开发模型。
软件工程导论复习知识点
、软件:软件定义:软件=程序+文档+数据软件特点:1、具有抽象性2、没有明显的制造过程3、软件的维护比硬件的维护要复杂得多4、对计算机系统有着不同程度的依赖性5、尚未完全摆脱手工艺的开发方式6、软件本身是复杂的7、软件成本相当昂贵8、相当多的软件工作涉及到社会因素软件的发展:程序设计、程序系统、软件工程软件危机:软件危机指的是软件开发和维护过程中遇到的一系列严重问题。
软件危机的问题:如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机表现:1.开发成本难以控制,进度不可预计;2. 软件系统的质量和可靠性很差,难以满意;3. 软件文档相当缺乏,软件系统不可维护;4. 软件开发生产率很低,软件产品供不应求。
5. 软件产品成本十分昂贵。
软件危机产生原因:1、软件本身的特点2、对软件开发与维护存在许多错误认识和做法3、软件开发与维护的方法不正确解决软件危机途径:1、将软件开发看成是一种组织严密、管理严格、各类人员协同配合共同完成的工程项目。
2、研究和推广成功的软件开发技术和方法。
3、开发和使用好的软件工具。
软件生命周期:软件所经历的定义、开发、使用和维护直到废弃所经历的时期。
程序设计环境:源程序编辑,编译或解释,链接,调试和运行工具的集合软件工程环境:软件定义,设计和实现,测试和维护等各个阶段所使用的软件工具的集合二、软件工程:软件工程定义:研究如何应用一些科学理论和工程上的技术来指导软件的开发,用较少的投资获得高质量的软件的一门学科。
软件工程性质:涉及计算机科学、工程科学、管理科学、数学等领域,着重于如何建造一个软件系统。
用工程科学中的观点来进行费用估算、制定进度、制定计划和方案。
用管理科学中的方法和原理进行软件生产的管理。
用数学的方法建立软件开发中的各种模型和各种算法,如可靠性模型,说明用户需求的形式化模型等。
软件工程三要素:方法、工具和过程。
软件方法:是完成软件开发的各项任务的技术方法,回答“如何做”的问题;工具是为方法的运用提供自动的或半自动的软件支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件工程导论知识点总结
软件工程导论知识点总结一、软件工程概述软件工程是将系统化、规范化、可度量化的方法应用于软件的开发、运行和维护的过程。
软件工程包括软件开发过程、软件工具和方法以及软件质量管理等方面。
二、软件生命周期模型1. 瀑布模型:依次完成需求分析、设计、编码、测试和维护等阶段。
2. 增量模型:将整个项目分为多个增量,逐步完成。
3. 螺旋模型:在瀑布模型基础上增加风险评估环节,不断迭代。
4. 原型模型:快速构建原型,反复修改完善。
5. 敏捷开发:注重快速响应变化,通过迭代交付高质量的软件。
三、需求分析需求分析是指对用户需求进行详细的调查和分析,并将其转换为可实现的系统规格说明。
主要包括功能性需求和非功能性需求两个方面。
四、设计1. 结构设计:确定系统各个组成部分之间的关系。
2. 数据设计:确定数据结构及其组织方式。
3. 接口设计:定义各个组成部分之间的接口。
4. 过程设计:定义系统中各个过程的执行方式。
五、编码编码是将设计好的系统规格说明转换为计算机可执行的程序代码,主要包括选择编程语言、编写代码、调试和测试等环节。
六、测试测试是对软件进行验证和确认,主要包括单元测试、集成测试、系统测试和验收测试等环节。
七、维护维护是指在软件交付后,对软件进行修改和更新以满足用户需求或修复缺陷。
维护包括预防性维护、适应性维护和完善性维护等方面。
八、软件质量管理软件质量管理是指通过各种手段确保软件产品满足用户需求,并具有可靠性、可用性、安全性等特点。
主要包括质量计划制定、质量保证控制和质量评估等环节。
九、常见开发模式1. 面向对象开发模式:采用面向对象的思想进行开发。
2. 组件化开发模式:将系统划分为多个组件进行开发。
3. 服务化开发模式:将系统划分为多个服务进行开发。
4. 微服务架构:将系统划分为多个微服务进行独立部署和运行。
十、常用工具和技术1. UML:统一建模语言,用于软件建模和设计。
2. IDE:集成开发环境,用于编码、调试和测试等环节。
软件工程导论 复习整理
1.软件危机的概念2.产生软件危机的原因(了解)3.消除软件危机的途径4.软件工程的概念5.软件工程的本质特性(7个)6.软件工程的基本原理(7个)7.传统方法学和面向对象的比较(各自的优缺点)8.软件生命周期的8个阶段以及各阶段的基本任务9.软件过程中使用的5个模型以及各自的特点瀑布模型:1)瀑布模型具有顺序性和依赖性。
2)推迟实现的观点:把逻辑设计与物理设计清楚地划分开,尽可能推迟物理模型的实现。
3)质量保证的观点:每一步都循序渐进,及早消除隐患,从而保证软件质量。
缺点:只有做出精确的需求分析,才能取得预期的结果。
由于各种客观、主观的原因,需求分析往往不很精确,常常给日后的开发带来隐患。
快速原型模型:1)开发人员和用户在“原型”上达成一致。
2)缩短开发周期,加快工程进度。
3)降低成本。
缺点:当告诉用户,还必须重新生产该产品时,用户是很难接受的。
这往往给工程继续开展带来不利因素。
增量模型:1)增量模型是一种非整体开发的模型。
2)该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。
缺点:要求软件具有开放的结构是这种模型固有的困难,可能会导致设计差、效率低、维护难。
螺旋模型:1)风险驱动,有利于软件重用。
2)建立在风险分析的基础上,绝对依赖人的素质。
3)开发中的每一层都很有弹性,并不是很明确的界限;每一层的目标和计划都是由小组本身来制定。
缺点:很难让用户确信这种演化方法的结果是可以控制的。
喷泉模型:1)充分体现了面向对象软件开发过程迭代和平滑过渡的特性。
2)各个阶段没有明显的界限,开发人员可以同步进行开发。
3)适应于面向对象的软件开发过程。
缺点:由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。
此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。
10.Rational统一过程(简称RUP,了解)11.敏捷过程的宣言(4个)12.极限编程&微软过程(了解)第2章1.可行性研究的任务(4个)2.系统流程图(了解)3.数据流图&数据字典(会画)4.单元练习题51.需求分析的目的2.获取需求的方法3.需求分析的图形工具(5个,重点掌握前2个)第5章1.总体设计的目的和原理原理:模块化;抽象;逐步求精;信息隐藏和局部化;模块独立2.耦合&内聚(从强到弱的顺序,各7个)耦合:1)内容耦合:当一个模块直接修改或操作另一个模块的数据,或者直接转入另一个模块时,就发生了内容耦合。
软件工程导论期末复习重点
软件工程导论期末复习重点软件工程期末复习一、软件工程学概述1.软件危机:计算机开发和维护的过程中所遇到的一系列问题名词解释(需要加上软件危机产生的原因)对用户的要求没有完整准确的认识就匆忙着手编写程序论述题(需要加上软件危机的典型表现)01.对软件开发成本和嫉妒的估计常常不准确02.用户对已完成软件系统的不满意情况经常发生03.软件的质量靠不住2.软件工程:指导计算机开发和维护的一门工程学科?名词解释3.软件工程方法学的三要素:方法、工具、过程4.软件生命周期的三个时期:软件定义、软件开发、运行维护01.软件定义时期的三个阶段:问题定义、可行性研究、需求分析02.软件开发时期的四个阶段:总体设计、详细设计、编码、单元测试,综合测试,前两个称系统设计,后两个称系统实现03.软件维护时期:只要任务是使软件持久的满足用户的需要,具体的说,当软件在使用过程中发现错误时应该加以纠正,当环境改变时应修改软件以适应新的环境,当用户有新的需要时,应该及时改进软件以满足用户新的需求,本时期不在划分阶段,但是每一次维护活动本质上都是一次压缩和简化了的定义和开发过程5.可行性研究的结果是客户做出是否继续这项工程的决定的重要依据,只有投资取得较大收益的的那些工程项目才是值得继续进行下去的6.需求分析的目标是:确定出系统必须具备哪些功能,和用户密切配合,充分交流信息,以得出经过系统确认的系统逻辑模型7.软件维护的四类维护活动:01.改正性维护:改正和诊断在使用过程中发生的软件错误02.适应性维护:修改软件以适应新的环境变化03.完善性维护:根据用户的需求改善和扩充软件使它更完善04.预防性维护:为将来的维护活动事先做准备8.瀑布模型: ?论述题01.传统的瀑布模型开发软件的特点A.阶段间具有顺序性和依赖性B.推迟实现的观点C.质量保证的观点02.软件配置:程序、文档、数据03.注释有什么用:提高代码的可读性(有待补充)二、可行性研究1.可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否能够解决2.从三个方面研究每种解法的可读性;01.技术可行性:使用现在的技术能实现这个系统吗?02.经济可行性:这个系统的经济效益能超过它的开发成本吗?03.操作可行性:系统的操作方式在这个用户组织内能行得通吗?3.系统流程图:是概括的描绘物理系统的传统工具。
《软件工程导论》考试重点
软件工程复习1.重点1-9章2.掌握基本概念软件危机的典型表现,解决途径软件过程的主要模型数据流图的用途验证软件需求模块独立程度度量最基本的控制结构盒图黑、白盒测试软件维护的代价面向对象方法需求陈述软件工程学可行性研究的任务事件、状态转换获取需求的典型方法详细设计的具体任务测试、调试、维护性质类的关联软件生命周期系统的逻辑模型软件结构的层次系统细化流图内聚与耦合用面向对象方法开发软件,三大模型的功能软件项目管理的周期良好的软件设计原则3. 有穷状态机4. 三个主要作业5. MTTF6. 根据数据流图类型,映射出对应的软件模块结构图7. 流图,并计算它的环形复杂度8. 程序流程图设计测试用例7-8 对一个包含10000条机器指令的程序进行一个月集成测试后,总共改正了15个错误,此时MTTF=10h;经过两个月测试后,总共改正了25个错误(第二个月改正了10个错误),MTTF=15h。
要求:(1) 根据上述数据确定MTTF与测试时间之间的函数关系,画出MTTF与测试时间τ的关系曲线。
在画这条曲线时做了什么假设?(2) 为做到MTTF=100h,必须进行多长时间的集成测试?当集成测试结束时总共改正了多少个错误,还有多少个错误潜伏在程序中?解:(1)假设MTTF与时间存在线性关系(2)设MTTF = a + bt10 = a + b15 = a + 2b得: a = 5, b = 5所以: 100 = 5 + 5tt = 19(月)由:))((t E E K I MTTF c T T -=有: )15(1000010-=T E K )25(1000015-=T E K 求得:E T = 45, K=33.33))19(45(33.3310000100Ec -= 求得:Ec(19) = 42还有 45 - 42 = 37-9 如对一个长度为100000条指令的程序进行集成测试期间记录下下面的数据:(a) 7月1日:集成测试开始,没有发现错误。
软件工程导论复习资料
软件工程导论复习资料第一章软件工程导论一、软件工程是指导计算机软件开发和维护的一门工程学科二、件工程的七条基本原则:1. 用分阶段的生命周期计划严格管理2. 坚持进行阶段评审3. 实行严格的产品控制4. 采用现代程序设计技术5. 结果应能清楚地审查6. 开发小组的人员应该少而精7. 承认不断改进软件工程实践的必要性三、软件工程方法学包含3个要素:方法、工具和过程。
方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
四、软件一程方法学:传统方法学、面向对象方法学五、软件生命周期:软件定义、软件开发和运行维护(也称为软件维护)3个时期组成1软件定义主要任务:问题定义、可行性研究和需求分析2开发时期主要任务:总体设计,详细设计,编码和单元测试,综合测试3维护时期主要任务:通过各种维护性活动使系统持久地满足用户的需求,通常有四类维护:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的需求改进若扩充软件使它更完善;预防性维护,即修改软件,为将来的维护活动预先做准备//①问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”②可行性研究~:对于上一个阶段所确定的问题有行得能的解决办法吗?③需求分析:确定目标系统必须具备哪些工能④总体设计:概括地说,应该怎样实现目标系统?⑤详细设计:应该怎样具体地实现这个系统呢?⑥编码和单元测试:写出正确的容易理解、容易维护的程序模块⑦综合测试:通过各种类型测(及相应的调试)使软件达到预定的要求,最基本的测试是集成测试和验收测试,集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试;验收测试则是按照规格说明的规定,由用户对目标系统验收六、软件过程的各种模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型第二章可行性研究一、可行性研究的任务分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度二、可行性(1) 技术可行性使用现有的技术能实现这个系统吗?(2) 经济可行性这个系统的经济效益能超过它的开发成本吗?(3) 操作可行性系统的操作方式在这个用户组织内行得通吗?三、可行性研究过程1. 复查系统规模和目标、2. 研究目前正在使用的系统3. 导出新系统的高层逻辑模型、4. 进一步定义问题5. 导出和评价供选择的解法、6. 推荐行动方针7. 草拟开发计划、8. 书写文档提交审查四、系统流程图:是概括地描绘物理系统的传统工具。
(完整版)软件工程导论知识点概要
1.1软件危机软件危机的表现软件危机是指在计算机软件的开发、使用和维护过程中遇到的一系列严重问题。
1)成本难以估计、成本高。
2)软件开发进度估计不准确,项目延期比比皆是。
3)软件质量得不到保证(功能和性能)。
4)用户对“已完成的”软件系统不满意的现象经常发生。
5)维护非常困难(多样性、复杂性、副作用)。
6)软件通常没有适当的文档。
7)软件产品供不应求,跟不上计算机普及速度。
产生软件危机的原因(1)与软件本身的特点有关(逻辑复杂,成本高,风险大,难于维护)。
(2)与软件开发与维护的方法不正确有关:软件≠程序(软件是程序、数据及相关文档的完整集合)急于求成=拔苗助长(软件从定义、开发、使用和维护、废弃要经历一个漫长的生命周期)各自为阵无方法学(应要组织良好、管理严密、各类人员协作共同完成的工程项目)1.2软件工程定义软件工程是应用计算机科学、数学、心理学及管理科学等原理开发软件的工程。
它借鉴传统工程的原则、方法,以提高质量、降低成本和提高效率为目的。
软件工程包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。
软件工程的特性:1. 软件工程关注于大型程序的构造(传统的程序设计技术和工具是支持小型程序设计的)2. 软件工程的中心课题是控制复杂性(问题分解)3. 软件经常变化(考虑将来要发生的变化)4. 开发软件的效率非常重要(寻求更好、更有效的工具)5. 和谐地合作是开发软件的关键(运用标准和规程)6. 软件必须有效地支持它的用户(软件要服务于用户)7. 在软件工程领域中通常是由具有一种文化背景的人替具有另一种文化背景的人创造产品软件工程的7条基本原理1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实行严格的产品控制4.采用现代程序设计技术5.结果应能清楚地审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性软件工程方法学通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程导论复习要点第一章1.软件的定义:软件是计算机程序、数据以及运行计算机系统可能需要的相关文档。
(1)程序:程序是计算任务的处理对象和处理规则的描述。
(软件!=程序)(2)数据:使程序能正常操纵信息的数据结构(即数据的组织形式)。
(3)文档:文档是为了便于了解程序所需的阐明性资料。
2.软件工程的定义:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;研究上面提到的途径。
3.软件工程三要素:过程:开发软件产品的一组活动及其结果。
方法:为软件开发过程提供“如何做”的技术。
工具:为软件开发方法提供自动的或半自动的软件支撑环境。
4.软件过程的四个基本活动:规格说明:定义软件功能以及对其使用的限制。
软件开发:设计和实现满足规格说明的软件。
软件确认:验证软件足以保证能够满足客户的要求。
软件演化:改进软件以适应不断变化的需求。
5.两种主要的开发方法:结构化(面向过程)的方法、面向对象的方法。
第二章1.软件工程发展历史:(1)第一阶段:软件危机——是指计算机软件的开发和维护过程所遇到的一系列严重问题主要表现:软件开发费用和进度失控;软件的可靠性差;生产出来的软件难以维护;软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的需要。
(1968年10 月软件工程大会在德国由北约出资举办)(2)第二阶段:传统软件工程——一是从管理的角度,希望实现软件开发过程的工程化(软件生命周期模型;确定了一些重要文档格式的标准);二是侧重于对软件开发过程中、分析设计的方法的研究(结构化)。
(3)第三阶段:现代软件工程——从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。
发展趋势:模块化;开放计算;合理的开发治理;全球化软件协作交付。
第三章1.计算机网络的概念:计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
2.互联网的概念:又称网际网络,或音译因特网(Internet)、英特网。
互联网始于1969年美国的阿帕网,这种将计算机网络互相联接在一起的方法称作“网络互联”。
在这基础上发展出覆盖全世界的全球性互联网络称互联网,即是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。
(互联网+:以互联网平台为基础,利用信息通信技术与各行业跨界融合,推动产品转型升级,并不断创造出新产品、新业务与新模式,构建连接一切的新生态(传统行业与互联网行业双向渗透))3.物联网的概念:物联网是新一代信息技术的重要组成部分,也是“信息化”时代的重要发展阶段。
其英文名称是:“Internet of things(IoT)”。
顾名思义,物联网就是物物相连的互联网。
这有两层意思:其一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;其二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信,也就是物物相息。
物联网通过智能感知、识别技术与普适计算等通信感知技术,广泛应用于网络的融合中。
4.人工智能的概念:人工智能(Artificial Intelligence),英文缩写为AI。
它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。
第四章1.软件工程过程:ISO 9000定义:软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。
从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、时间等),为开发软件进行的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品)2.四个基本活动(PDCA):(1)P(Plan)软件规格说明:规定软件的功能及其运行的限制。
软件规格说明是确定系统需要的服务以及运行与开发中所受的约束的过程,也称为需求工程。
进行需求分析工作,通过与用户的反复交流,搞清楚用户对该软件的具体需求,这些需求是进行软件设计的依据;在编写程序之前需要先进行设计。
(2)D(Do)软件开发:产生满足规格说明的软件。
软件设计是根据需求规格说明,确定软件体系结构,进一步设计每个系统部件的实现算法、数据结构及其接口等。
软件实现是将软件设计转换成程序代码。
通常,大型软件的设计工作又分成两个阶段进行,先进行总体设计(又称为概要设计),再进行详细设计;编写程序实质上是把设计结果翻译成用某种程序设计语言书写的程序;(3)C(Check)软件确认:确认软件能够完成客户提出的要求。
验证和确认(Verification and Validation)需要指出软件是否符合规格说明以及是否满足客户的需求。
—验证和确认包括检查和评审过程以及系统测试。
—系统测试是使用由规格说明产生的测试用例执行软件的过程。
程序编写出来之后,还需要经过严格的测试过程(需要的工作量通常占软件开发全部工作量的40%~50%),软件确实符合用户需求而且质量合格,才能交付给用户使用。
(4)A(Action)软件演进:为满足客户的变更要求,软件必须在使用的过程中演进。
软件的内在本质是灵活和可变的:随着业务需求的变化,软件必须进化和变更;尽管在开发过程和演化过程中存在划分,但是现实中全新的系统越来越少。
认识软件演化过程:好的软件需要维护;维护软件的成本是很高的,应该在开发阶段考虑维护问题;文档是很重要的,但在实际开发中经常存在文档过时或缺少文档的情况。
3.软件的生存周期:软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。
这个过程即为计算机软件的生存期。
软件生存周期就是软件产品从提出、实现、使用维护到停止使用退役的全过程。
阶段划分:软件定义->软件开发->软件运行维护。
(1)软件定义时期:问题定义->可行性分析->需求分析;(2)软件开发时期:概要设计(总体设计)->详细设计->编码->测试(单元测试和综合测试);(3)软件运行维护时期:在软件被淘汰之前,要经历多次的纠错性、完善性和适应性维护活动。
4.软件生存周期的六个步骤:制定计划、需求分析、设计、程序编码、测试及运行维护。
(1)制定计划:确定要开发软件系统的总目标;给出功能、性能、可靠性以及接口等方面的要求;完成该软件任务的可行性研究;估计可利用的资源(计算机硬件,软件,人力等)、成本、效益、开发进度;制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查(2)需求分析和定义:对待开发软件提出的需求进行分析并给出详细的定义;编写软件需求说明书或系统功能说明书及初步的系统用户手册;提交管理机构评审。
(3)软件设计:概要设计:把各项需求转换成软件的体系结构。
结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应;详细设计:对每个模块要完成的工作进行具体的描述,为源程序编写打下基础;编写设计说明书,提交评审。
(4)程序编码:把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单”;写出的程序应当是结构良好、清晰易读的,且与设计相一致的。
(5)软件测试:单元测试:查找各模块在功能和结构上存在的问题并加以纠正;组装测试,将已测试过的模块按一定顺序组装起来;按规定的各项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使用(6)运行/维护:改正性维护:运行中发现了软件中的错误需要修正;适应性维护:为了适应变化了的软件工作环境,需做适当变更;完善性维护为了增强软件的功能需做变更。
5.软件生存周期模型:是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架(也称软件开发模型、软件过程模型、软件工程范型)简单地说,是软件产品或软件系统从设计、投入使用到被淘汰的全过程。
编码修复模型、瀑布模型、增量模型、快速原型模型、螺旋模型。
增量模型:先完成一个系统核心产品的开发,再按同样的开发步骤增加功能,每一个线性序列产生软件的一个可发布的“增量”。
如此递增直至满足全部需求。
快速原型模型:用户给出软件产品的基本需求;开发小组和用户共同定义软件总体目标:标识已知需求;对界面、功能、人机交互方式等,进行设计并建造原型;强调“快速”,釆用基于构件的软件开发方法,尽量缩短软件开发周期,不宜釆用过多的新技术;用户对原型进行评估;修改需求、更新设计、完善原型直至确定需求。
第五章1.模块的概念:指具有相对独立性的,由数据说明、执行语句等程序对象构成的集合。
程序中的每个模块都需要单独命名,通过名字可实现对指定模块的访问。
在高级语言中,模块具体表现为函数、子程序、过程等。
2.模块化:将程序划分成若干个独立的模块,每个模块完成一个特定子功能,每个模块既是相对独立的,又是相互联系的,它们共同完成系统指定的各项功能。
(降低软件的复杂性)3.模块独立性:软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的。
4.耦合和内聚:衡量软件模块独立性使用模块本身的内聚和模块之间的耦合两个定性的度量标准。
内聚性:一个模块内部各个元素之间彼此结合的紧密程度的度量。
耦合性:模块之间互相连接的紧密程度的度量。
模块设计准则:高内聚,低耦合。
5.软件工程主要开发方法:结构化方法、面向对象方法。
6.结构化编程的基本单位:模块。
程序核心:计算方法。
’第六章1.软件工具:软件工具是用来辅助计算机软件的开发、运行、维护、管理、支持过程中的活动或任务的软件。
2.分类:(1)支持软件开发过程的工具:主要有需求分析工具、设计工具(通常还可以分为概要设计工具和详细设计工具)、编码工具、排错工具、测试工具等;(2)支持软件维护过程的工具:主要有版本控制工具、文档分析工具、信息库开发工具、逆向工程工具、再工程工具等;(3)支持软件管理过程和支持过程的工具:主要有项目管理工具、配置管理工具、软件评价工具等。
3.统一建模语言UML由:用例图、静态图、行为图、交互图、实现图来定义。
用例图:从用户角度描述系统功能,是用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元。
静态图:包括类图、对象图和包图。
行为图:描述系统的动态模型和组成对象间的交互关系。
交互图:描述对象间的交互关系。
实现图:如部署图,定义系统中软硬件的物理体系结构。
4.UML特点:统一标准;面向对象;可视化,表达能力强;独立于过程;容易掌握使用;与编程语言的关系。
第七章1.程序设计语言:是一组用来定义计算机程序的语法规则,程序设计语言有3个方面的因素,即语法、语义和语用。