软件工程整理
软件工程专业描述整理

软件工程专业描述整理软件工程专业描述下面是聘才网我为大伙整理的软件工程专业描述,欢迎阅读。
软件工程专业是国家教育部新增专业,随着计算机应用领域的不断扩大及中国经济建设的不断进展,软件工程专业将成为一个新的热门专业。
软件工程专业以计算机科学与技术学科为基础,强调软件开发的工程性,使同学在把握计算机科学与技术方面学问和技能的基础上娴熟把握从事软件需求分析、软件设计、软件测试、软件维护和软件项目管理等工作所必需的基础学问、基本方法和基本技能,突出对同学专业学问和专业技能的培育,培育能够从事软件开发、测试、维护和软件项目管理的高级特地人才。
主干课程主干学科:马克思主义理论、高校外语、高等数学、高校物理、物理试验、线性代数、概率论与数理统计、程序设计语言、数据结构、离散数学、操作系统、编译技术、软件工程概论、统一建模语言、软件体系结构、软件需求、软件项目管理该专业除了学习公共基础课外,还将系统学习离散数学、数据结构、算法分析、面对对象程序设计、现代操作系统、数据库原理与实现技术、编译原理、软件工程、软件项目管理、计算机平安等课程,依据同学的爱好还可以选修一些其它选修课。
实践环节:毕业实习、课程设计、计算机工程实践、生产实习、毕业设计(论文)。
培育方案培育要求本专业是培育适应计算机应用学科的进展,特殊是软件产业的进展,具备计算机软件的基础理论、基本学问和基本技能,具有用软件工程的思想、方法和技术来分析、设计和实现计算机软件系统的力量,毕业后能在IT行业、科研机构、企事业中从事计算机应用软件系统的开发和研制的高级软件工程技术人才。
软件工程项目管理流程把握和计算机科学与技术相关的基本理论学问,具有一般计算机相关工程的分析设计和解决实际问题的力量。
了解文献检索、资料查询的基本方法,具有肯定的'科学讨论和实际工作力量。
能够运用学习学问和外文阅读力量查阅外文资料。
养成乐观参与体育熬炼和健康的文化活动的良好习惯,达到国家规定的高校生体育合格标准,身心健康。
软件工程导论 重点知识整理 考前准备

软件工程关注于大型程序的构造:一个人短时间写的程序是小程序,多人半年以上时间为大型程序。
软件工程的基本原理1. 用分阶段的生命周期计划严格管理2. 坚持进行阶段评审3. 实行严格的产品控制4. 采用现代程序设计技术5. 结果应能清楚地审查6. 开发小组的人员应该少而精7. 承认不断改进软件工程实践的必要性软件工程包括技术和管理两方面,是技术和管理紧密结合所形成的工程学科。
管理:是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。
范型:在软件生命周期全过程中使用的一整套技术方法的集合为方法学,也称为范型。
软件工程三要素:方法,工程,过程软件工程方法学:分为传统方法学和面向对象方法学软件生命周期1.问题定义2. 可行性研究3. 需求分析4. 总体设计5. 详细设计6. 编码和单元测试7.综合测试8. 软件维护可行性研究过程1. 复查系统规模和目标2. 研究目前正在使用的系统3. 导出新系统的高层逻辑模型4. 进一步定义问题5. 导出和评价供选择的解法6. 推荐行动方针7. 草拟开发计划8. 书写文档提交审查在澄清问题定义后,分析员应导出系统的逻辑模型,然后探索主要解法,对每种解法研究可行性,至少三种可行性:技术可行性(使用现在的技术能实现这个系统吗?),经济可行性(这个系统的经济效益能超过它的开发成本吗?),操作可行性(系统的操作方式在这个用户组织内行的通吗?),必要时还需要法律、社会效益等发面研究每种解法可行性。
数据流图(DFD):是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。
数据流4种基本符号:在数据流图中应该描绘所有可能的数据流向,而不应该描绘出某个数据流的条件。
数据字典:对数据流图中包含的所有元素的定义的集合;数据流图与数据字典共同构成系统的逻辑模型。
数据字典的内容:1)数据流;2)数据元素(数据流分量);3)数据存储;4)处理。
数据元素的别名就是该元素的其他等价的名字,出现别名主要有下述三个原因:①对于同样的数据,不同的用户使用了不同的名字;②一个分析员在不同时期对同一个数据使用了不同的名字;③两个分析员分别分析同一个数据流时,使用了不同的名字。
软件工程中的软件工程项目收尾和总结

软件工程中的软件工程项目收尾和总结软件工程项目的成功与否,不仅取决于项目的开发过程,还在于项目的收尾和总结阶段。
项目收尾是指在项目生命周期的最后阶段,进行最后的工作,确保项目按照既定的目标和质量要求完成。
项目总结则是对整个项目进行评估和反思,总结经验教训,为未来的项目提供参考。
本文将深入探讨软件工程项目的收尾和总结过程。
一、软件工程项目收尾1. 阶段评估在软件工程项目的末尾,进行一个阶段性的评估是必要的。
该评估旨在确保项目阶段完成了规定的工作,并达到了预期的成果和质量要求。
通过评估,可以及时发现并解决存在的问题,确保项目整体顺利进行。
评估内容主要包括工作的完成情况、成果的质量、进度的控制等。
2. 风险管理在软件工程项目的收尾阶段,风险管理是一个至关重要的环节。
项目负责人和团队成员应该对项目存在的各种风险进行评估和控制,确保项目在收尾阶段不会出现大的风险和问题。
如果有必要,可以制定应急预案,以应对可能出现的突发情况。
3. 交付和验收软件工程项目的交付和验收是收尾阶段的核心内容。
在项目的末尾,项目团队应该按照合同或协议的要求,将软件产品交付给客户或使用方,同时进行相应的验收工作。
交付和验收的关键是确保软件产品能够满足客户的需求,并且达到预期的质量和性能标准。
4. 文档整理和归档在软件工程项目的收尾阶段,应该对项目相关的文档进行整理和归档。
这些文档包括需求分析文档、设计文档、测试文档、用户手册等。
文档整理和归档的目的是方便项目团队成员和后续人员查阅和使用,同时也是对项目成果的一种保留和记录。
二、软件工程项目总结1. 成果评估软件工程项目总结的第一步是对项目成果进行评估。
评估包括产品的质量、功能的实现程度、进度的控制等方面。
通过对项目成果的评估,可以直观地了解项目的成功之处和不足之处,为后续的项目提供经验教训。
2. 经验总结在软件工程项目总结中,经验总结是非常重要的环节。
项目团队成员应该详细记录并总结项目中的经验和教训。
软件工程导论(整理)

软件工程导论(整理)软件工程导论软件工程导论是计算机科学与技术专业的一门重要课程,通过对软件工程的基本概念、方法和技术进行介绍和讲解,使学生对软件开发过程有全面的认识。
本文将从软件工程的定义与特点、软件生命周期、软件开发方法和软件工程的挑战等方面进行论述。
一、软件工程的定义与特点软件工程是指研究和应用科学原理、方法和工具,对软件进行全面的规划、开发、测试、部署和维护的一门工程学科。
软件工程具有以下特点:1. 抽象性:软件是虚拟存在,不同于硬件,具有高度的抽象性。
2. 复杂性:软件开发是一项复杂的任务,涉及多个环节和多个参与者之间的协同合作。
3. 可变性:软件需求会随着时间和需求的变化而变化,需要具备良好的变更管理能力。
4. 可靠性:软件在使用过程中需要具备稳定、健壮和可靠的特性。
5. 可维护性:软件应该具备良好的可维护性,便于后续对其进行修改和维护。
二、软件生命周期软件生命周期是指软件从提出到退役的全过程,一般包括需求分析、设计、编码、测试、部署和维护等阶段。
1. 需求分析:明确用户需求,采集并分析用户的需求,形成软件的需求规格说明。
2. 设计:根据需求分析的结果,进行系统的设计,包括软件架构设计、模块设计等。
3. 编码:根据设计结果,进行具体代码的编写,实现软件的功能。
4. 测试:对编码后的软件进行测试,验证软件是否满足需求并具备稳定性。
5. 部署:将测试通过的软件部署到目标环境中,进行系统集成和性能调优等操作。
6. 维护:对已发布的软件进行修改、优化、升级和Bug修复等工作,确保软件持续稳定运行。
三、软件开发方法软件开发方法是指用于规范和指导软件开发过程的方法论和模型。
其中较为常见的软件开发方法有瀑布模型、迭代模型和敏捷开发等。
1. 瀑布模型:瀑布模型是软件开发过程中最早提出的方法之一,将软件开发过程划分为需求分析、设计、开发、测试和维护等阶段,每个阶段按顺序进行。
2. 迭代模型:迭代模型将软件开发过程划分为多个迭代周期,每个周期完成一部分需求的开发和测试,并通过反复迭代逐步完善软件。
软件工程习题整理

软件工程习题整理一、软件需求分析与建模1.软件需求分析的要求?答:了解软件需求的目标和任务;了解软件需求分析的基本过程;掌握功能建模;掌握行为建模;掌握数据建模;了解结构化需求分析的若干技术;了解需求规格说明和需求评审的主要内容。
2.需求分析的基本任务是什么?答:要准确地定义新系统的目标,为了满足用户需求,回答系统必须―做什么‖的问题。
获得需求规格说明书。
3.软件需求分析的原则?答:能够表达和理解问题的信息域和功能域;能够对问题进行分解和不断细化,建立问题的层次结构;需要给出系统的逻辑视图和物理视图。
4.什么是需求分析?需求分析阶段的基本任务是什么?答:需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。
需求分析阶段的基本任务是:(1) 问题识别:双方对问题的综合需求:a.功能需求b.性能需求c.环境需求d.用户界面需求.(2) 分析与综合,导出软件的逻辑模型.(3) 编写文档5.什么是结构化分析方法?该方法使用什么描述工具?答:结构化分析方法:是面向数据汉进行需求分析的方法。
描述工具:a、数据流图b、数据字典c、描述加工逻辑的结构化语言、判定表、判定树。
6.什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?答:数据流图:简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一种工具,是一种功能模型。
作用:它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能.基本符号有四种:→,箭头,表示数据流; ○,圆或椭圆,表示加工; =,双杠,表示数据存储;□,方框,表示数据的源点或终点.7.简述SA方法的优缺点。
答:优点:1)公认的、有成效的、技术成熟、使用广泛的一种方法,比较适合于开发数据处理类型软件的需求分析。
2)该方法利用图形等半形式化工具表达需求,简明、易读,也易于使用,为后一阶段的设计、测试、评价提供了有利条件。
软件工程考试资料整理

1.在结构化分析中,__数据字典__用于详细地定义数据流图中的成分。
2.结构化程序设计是一种程序设计技术,它采用__自顶向下、逐步求精__的设计方法和顺序、选择、循环三种基本控制结构构造常态程序。
3.结构化分析方法中,数据流图的四种基本成分为:处理、源点或终点__数据存储和数据流_。
4.模块内部的算法设计在结构化方法的___详细设计__阶段进行。
5.定性度量模块独立性的两个标准是内聚性和___耦合性___。
6.从模块内外的联系来看,结构化设计的要求是___高内聚低耦合_。
7.耦合性和内聚性是衡量___模块独立性_的两个定性的标准。
8.在一段程序中,将多次出现的一组语句设计为一个子程序,供多个部分调用,这种情况出现的内聚称为___偶然内聚_____。
9.一个进行学生成绩统计的模块其功能是先对学生的成绩进行累加,然后求平均值,则该模块的内聚性是 ____顺序内聚__。
10.在模块结构图中,直接调用某一模块的其他模块数称为该模块的__扇入数_11.在软件开发过程中要产生大量的信息,要进行大量的修改,软件配置管理能协调12.软件开发,并使混乱减到最低程度。
13.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。
14.为了便于对照检查,测试用例应由输入数据和预期的输出结果两部分组成。
15.软件结构是以模块为基础而组成的一种控制层次结构。
16.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、17.判定树。
18.结构化语言是介于自然语言和形式语言之间的一种半形式语言。
19.第二代CASE工具的特点是支持图形表示的 __结构化方法__________ 。
如数据流图与结构图。
20.在面向对象方法中,对象实现了数据和操作的结合,使数据和操作 _封装__ 于对象的统一体中。
21.面向对象分析的目的是对客观世界的系统进行建模。
22.为了使应用软件适应计算机环境的变化而 _____修改软件_的过程称为适应性维护。
软件工程简答题整理

什么是软件危机,有哪些具体表现形式?其原因?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
主要有以下表现形式:1、对软件开发成本和进度的估计常常很不准确 2、用户对“已完成的”软件系统不满意的现象经常发生 3、软件产品的质量往往靠不住 4、软件常常是不可维护的 5、软件通常没有合适的文档资料 6、软件成本在计算机系统总成本中所占的比例逐年上升 7、软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势原因:1、与软件本身特点有关2、与软件开发与维护的方法不正确有关什么是软件生存周期,有哪几个活动?比较模型软件生存周期是指一个软件该软件报废为止的整个时期。
软件生命周期由软件定义、软件开发和软件维护3个时期组成。
1问题定义,解决的问题是是什么;2可行性研究,问题是否有可行的解决办法;3需求分析,确定目标系统必须具备的功能;4总体设计,总体上解决问题,设计软件出层次结构图、5详细设计,具体实现,设计算法;6编码和单元测试,编程和单元测试;7综合测试,系统地设计测试用例;软件维护,修改软件满足用户需要。
瀑布模型:自上而下,相互衔接的固定次序,像瀑布逐级下落,有顺序性和依赖性,推迟实施,质量保证,严格要求输出文档,缺乏灵活性。
快速原型模型:能快速建立。
它所完成的功能往往是最终产品能完成的功能的一个子集,适合中小型,短周期的交互式系统。
增量模型:把软件产品作为一系列增量构件来设计、编码、集成和测试,能在较短的时间完成,有充裕的时间学习。
适合开发需求不明确设计方案有一定风险的软件项目。
螺旋模型:它是风险驱动的。
适合大型系统及软件的开发。
将瀑布模型与增量模型结合起来,喷泉模型:迭代和无缝连接简述软件测试的任务、目的与类型。
答:软件测试是一个为了寻找软件错误而运行程序的过程。
目的就是为了发现软件中的错误。
一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。
一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。
软件工程复习资料整理

《软件工程》试题参考答案(1)卷一、单向选择题(四选一、每小题3分,共18分)1、需求分析的任务不包括(B)。
A.问题分析B.系统设计C.需求描述D.需求评审。
2、当模块中包含复杂的条件组合,只有( A)能够清晰地表达出各种动作之间的对应关系。
0802A.判定表和判定树C.流程图3、以下不属于逻辑覆盖的是(D)。
1402A.语句覆盖C.条件覆盖B.盒图D 关系图B.判定覆盖D.基本路径4、为适应软件运行环境的变化而修改软件的活动称为( B)。
1501A.纠错性维护B.适应性维护C.改善性维护 D 预防性维护二、填空题(每空2分,共18分)1. 软件可靠性是指在给定的时间间隔内,程序成功运行的(概率)。
01012. 高级语言:独立于机器,面向过程或面向(对象)01013. 软件项目管理的范围主要集中于 3 个P 上,即:People 人员、Problem 问题和(过程)。
02014. 由于维护或在维护过程中其他一些不期望的行为引入的错误称为维护的(副作用)。
15045. 在公式V(G) = E – N + 2 中: E 为程序图G 中边的总数;N 为程序图中结点的总数。
V(G)又称为图 G 的环形(复杂度)0204。
6. 任何一个基于计算机系统都可以用输入-处理-输出(IPO)图来描述,它将该系统转换成一个信息变换模型。
03037. 为提高可交互性一般对所有可能造成损害的用户操作动作,应坚持要求用户(确认),例如,提问“你确实要删除…?”。
12048. 文档是一种数据媒体和其上所记录的(数据)。
0101三、判断题(每小题2分,共24分,错误打X、正确打√)1. 用户对软件需求的描述不准确,往往是产生软件危机的原因之一。
(√)01022. 一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际关系,善于听取别人的意见。
(√)02063. 目前的绝大多数软件都不适合于快速原型技术。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.遗留软件:年代较久,甚至过于久远的软件。
特点:(1)生命周期长以及业务关键性(2)质量差遗留系统发生演化的原因:(1)软件需要进行适应性调整,从而可以满足新的计算环境或者技术的需求。
(2)软件必须升级以实现新的商业需求。
(3)软件必须扩展以使之具有与更多新的系统和数据库的互操作能力。
(4)软件架构必须进行改建以使之能适应不断演化的计算环境。
2.软件工程设计软件设计在软件工程中属于核心技术,并且它的应用与所使用的软件工程模型无关。
必需的四种设计模型:(1)数据设计或类设计将类模型转化为设计类的实现以及软件实现所要求的数据结构。
(2)体系结构设计定义了软件的主要结构化元素之间的关系,可满足系统需求的体系结构风格和模式以及影响体系结构实现方式的约束。
(3)接口设计描述了软件和协作系统之间,软件和使用人员之间是如何通信的。
(4)构建级设计将软件体系结构的结构化元素变换为对软件构件的过程性描述。
3.需求获取的起始阶段要解决的问题:1)应能适当地调整收集范围。
在收集需求信息的开始,开发人员并不知道用户需求信息量的大小,可以根据系统的范围适当扩大收集范围。
但也不能过于扩大收集范围,因为在扩大的范围内收集的需求信息有些可能不是真正的需求,这将导致开发人员要花费大量的精力和时间来理解和分析这些需求信息。
显然,收集的范围也不能太小,否则有些重要需求会被遗漏或排除在外。
2)尽量把用户所持的假设解释清楚,特别是发生冲突的部分。
这就需要根据用户所讲的话或提供的文字去理解,以明确用户没有表达清楚的、但又想加入的需求信息。
3)尽量理解用户用于表达他们需求的思维过程,特别是尽量熟悉和掌握用户具有的一些专业知识和术语。
4)在收集需求信息时,应尽量避免受不熟悉细节的影响,如一些表格的具体设计等,这些可作为需求先记录下来,然后再由设计工作去完成。
4.体系结构模型的三个来源:构件、连接件和配置5.面向对象多态机制的三个必要条件:1)要有继承2)要有重写3)父类的应用指向子类的对象(向上转型)6.单元测试,回归测试,冒烟测试,白盒测试:单元测试侧重于软件设计的最小单元(软件构件或模块)的验证工作。
在单元测试期间,选择测试的执行路径是最基本的任务。
测试用例的设计目的旨在发现因错误计算、不正确的比较或不适当的控制流而引起的错误。
回归测试重新执行已测试过的某些子集,以确保变更没有传播不期望的副作用。
无论什么时候修正软件,软件配置的某些方面(程序、文档或支持数据)也发生变更。
回归测试的好处:有助于保证变更(由于测试或其他原因)不引入无意识行为或额外的错误。
回归测试方法:可以手工进行,重新执行所有测试用例的子集,或者利用捕捉/回放工具自动进行。
冒烟测试可以理解为该种测试耗时短,仅用一袋烟功夫足够了。
类比新电路板基本功能检查。
测试对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。
白盒测试也被称为玻璃盒测试或结构化测试,一种测试用例设计方法,利用作为构件级设计的一部分所描述的控制结构来生成测试用例。
测试方法:1)基本路径测试2)控制结构测试7.软件过程的框架过程框架为实现完整的软件工程建立了基础,一个通用的软件工程过程框架包含。
沟通:与客户和其它共利益者沟通和协作。
策划:为后续的软件工程工作制定计划。
建模:包括创建模型和设计。
构建:编码和测试。
部署:交付用户、测评及反馈。
8、耦合耦合是类之间彼此联系程度的一种定性度量,随着类之间的相互依赖越来越多,类之间的耦合程度也会增加,在构件级设计中一个重要目标就是保持低耦合。
9、重构重构是使用这样一种方式改变软件系统的过程:不改变代码[设计]的外部行为而是改进其内部结构。
10、软件工程是什么1.将系统化,规范化,可量化的方法应用于软件的开发,运行和维护,即将工程化方法应用于软件。
2.对系统化,规范化,可量化的方法进行研究。
11、内聚传统观点:模块的专一性面向对象系统构件设计观点::内聚性意味着构件或者类只封装那些相互关联密切,以及与构件或类自身有密切关系的属性和操作。
内聚分类功能的通过操作来表现分层的由包、构件和类来表现通信的访问相同数据的操作定义在一个类中12、设计模式设计模式描述了在某个特定场景中解决某个特定问题的设计结构。
13、回归测试、阿尔法测试、贝塔测试回归测试回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重。
阿尔法测试由有代表性的用户在开发者场所进行,软件在自然设置下使用,开发者站在用户后面观看,并记录错误和使用问题,阿尔法测试在受控环境下进行。
贝塔测试在一个或多个最终用户场所进行,开发者通常不在场,在不为开发者控制的环境下现场应用软件,最终用户记录测试过程中遇见的所有问题(现实存在或想象),并定期报告给开发者。
14.开闭原则p180开闭原则(OCP)。
“模块[构件]应该对外延具有开放性,对修改具有封闭性”。
15.分析模型p88 p96分析模型的作用是为基于计算机的系统提供必要的信息、功能和行为域的说明分析模型的元素:基于场景的元素、基于类的元素、行为元素。
分析模型必须建立的三个目标:(1)描述客户需要什么;(2)为软件设计奠定基础;(3)定义的一组需求在软件完成后可以被确认创建分析模型应该遵循的经验原则:1.模型应关注在问题域或业务域内可见的需求,抽象的级别应该相对高一些。
2.需求模型的每个元素都应能增加对软件需求的整体理解,并提出对信息域、功能和系统行为的深入理解。
3.关于基础结构和其他非功能的模型应推延到设计阶段再考虑。
4.最小化整个系统内的关联。
5.确认需求模型为所有利益相关者都带来价值。
6.尽可能保持模型简洁。
16、crc卡片分析类的建模活动p113CRC模型实际上是表示类的标准索引卡的集合。
类的类型:实体类也称作模型或业务类,是从问题说明中直接提取出来的(例如FloorPlan 和Senor)。
边界类用于创建用户可见的和在使用软件时交互的接口(如交互屏幕或打印的报表)。
控制类自始至终管理“工作单元”17螺旋模型、增量模型、瀑布模型、协同模型p31p32p35瀑布模型:又称经典生命周期,它提出一个系统的顺序的软件开发方法,从用户需求规格说明开始,通过策划、建模、构建和部署的过程,最终提供完整的软件支持。
瀑布模型的一个变体称为V模型优点:是软件工程最早的范例。
消除非结构化软件。
降低软件的复杂度,促进软件开发工程化出现的问题:实际的项目大部分情况难以按照该模型给出的顺序进行。
经常情况下客户难以表达真正的需求。
客户要等到开发周期的晚期才能看到程序运行的测试版本。
可能会产生“堵塞状况”总结:对当前软件工作往往并不合适。
当需求确定,工作能够线性方式完成时,可以采用增量模型:增量模型以迭代方式运用瀑布模型;在每个阶段运用的序列都是线性的;每个线性序列生产出一个软件的可交付增量;运用增量模型的时候,第一个增量往往是核心产品应用情况:(1)在期限之前没有足够的开发人员;(2)需要规避技术风险的项目;螺旋模型:一种演进式的软件过程模型结合了原型的迭代性质和瀑布模型的系统性和可控性特点具有迅速开发,逐步完善软件版本的潜力显著特点:1.采用循环的方式逐步加深系统定义和实现的深度,同时降低风险;2.确定一系列里程碑作为支撑点,确保共利益者都支持可行的和令人满意的系统解决方案;优点:1.这种模型适合于大型系统的开发,应该说它对于具有高度高风险的大型复杂软件系统的开发是最为实际有效的方法。
2. 沿螺线自内向外每旋转一圈便开发出更为完善的一个新的软件版本。
3.永远保持可操作性,直至软件产品周期结束。
4.过程经常处于休止状态,但每当有变更时,过程总能在合适的入口启动(如产品升级)。
协同模型:特点:1.提供精确的项目当前状态图;2.不是把软件工程活动、动作和任务局限在一个时间序列,而是定义活动状态网络;3.过程网络中某点产生的事件可以触发状态的转换18、软件工程的层次化技术和软件工程的5个框架活动p115个过程框架活动:沟通:与客户和其它共利益者沟通和协作。
策划:为后续的软件工程工作制定计划。
建模:包括创建模型和设计。
构建:编码和测试。
部署:交付用户、测评及反馈。
层次化技术:其根基在于质量关注点基础是过程层,定义一个框架。
方法层为建造软件提供技术上的解决方法。
工具层为过程和方法提供自动化或半自动化的支持。
19、敏捷软件开发和敏捷宣言p45敏捷宣言:个人和这些人之间的交流胜过了开发过程和工具可运行的软件胜过了宽泛的文档客户合作胜过了合同谈判对变更的良好响应胜过了按部就班地遵循计划什么是敏捷:有效的(快速并适应)响应变更所有利益相关者中的有效沟通吸引客户到团队组织团队使其控制工作执行快速、增量交付的软件敏捷要求:每个人是敏捷的团队是敏捷的使用最广泛的敏捷过程:极限编程(XP)极限编程(XP)的四个过程:策划、设计、编码、测试。
20体系结构并非可运行的软件。
他是一种表达使你能够:(1) 在满足既定的需求方面下,分析设计有效性;(2) 在设计变更相对容易的阶段,考虑体系结构可能的选择方案;(3) 降低与软件构造相关的风险21.描述软件体系结构风格的基本要素每种风格描述一种系统类别,包括:(1)完成系统需要的某种功能的一组构件(例如,数据库、计算模块);(2)能使构件间实现“通信、合作和协调”的一组连接件;(3)定义构件如何集成为系统的约束;(4)语义模型,能使设计者通过分析系统组成成分的已知属性来理解系统的整体性质。
体系结构风格的简单分类:(1)以数据为中心的体系结构(2)数据流体系结构(3)调用和返回体系结构(4)面向对象体系结构(5)层次体系结构22软件测试的主要步骤及主要任务主要步骤:(1)测试计划(2)测试用例设计(3)测试执行(4)测试结果数据的收集与评估主要任务:通过科学的、可靠的、有效的测试方法及技术找出软件中存在的缺陷,23普适性活动:(1)软件项目跟踪和控制(2)风险管理(3)软件质量保证(4)技术评审(5)测量(6)软件配置管理(7)可复用管理(8)工作产品的准备和生产24需求分析的主要内容:(1)产生软件工作特征的规格说明(2)指明软件和其他系统元素的接口(3)规定软件必须满足的约束25需求规格说明书的内容(p75信息栏)规格说明—是下面的一个(或者多个):一份写好的文档一套模型一个形式化的数学模型一组使用场景(使用案例)一个原型26用户界面设计的原则P1981.把控制权交给用户2.减轻用户的记忆负担3.保持界面一致27软件配置管理的主要活动P3121.对象标识2.变更控制3.版本控制4.影响管理5.配置审核6.报告28开源软件和非开源软件及其质量优势和劣势是什么开源软件: 可以被公众使用的软件,并且此软件的使用,修改和分发也不受许可证的限制。