南京大学-软件工程-22-软件开发过程模型

合集下载

南京大学软件工程专业本科生培养方案与教学计划

南京大学软件工程专业本科生培养方案与教学计划

南京大学软件工程专业本科生培养方案与教学计划(2005年6月1日修订)软件产业作为信息产业的核心是国民经济信息化的基础,已经涉足工业、农业、商业、金融、科教文卫、国防和百姓生活等各个领域。

采用先进的工程化方法进行软件开发和生产是实现软件产业化的关键技术手段。

因此,为积极促进我国软件产业发展,增强其国际竞争力,加速我国信息化建设,急需培养大批软件工程领域的实用型、复合型软件工程技术人才和软件工程管理人才。

为促进南京大学软件工程专业本科生在入学、培养、毕业和学位授予等环节的规范化,确保培养质量,根据教育部有关要求,依据南京大学有关本科生培养的规定,特制定本方案。

本方案作为南京大学培养软件工程专业本科生的指导性文件,规定其培养目标、方向和要求,以及培养对象、方式及学习年限,并就其课程设置、课程修读和学位论文要求等给出指导性意见。

一、培养目标、方向和要求1、培养目标软件工程专业本科生的培养目标是针对国民经济信息化建设和发展的需要,面向软件产业界对软件工程技术人才的需求,培养具有国际竞争能力的多层次复合型软件实用人才。

作为一名合格的软件工程专业本科毕业生,应当符合国民经济信息化建设和发展需要,以及软件企业对软件工程技术人才需求,能够成为企业所需要的较高层次的软件工程技术和管理人才,其基本能力应当达到(具有国际水准的)程序员、高级程序员、软件工程师、以及项目质量管理人员的水平。

2、培养方向软件工程专业本科生培养的基本思路是强化基础、注重实践。

针对软件产业的人才需求,本科生阶段强调宽口径培养,不具体细分专业培养方向,但考虑专业课程模块设置,从而使得毕业生既具备扎实的基础和宽广的知识面,又较深入地认识某类软件系统和应用领域。

软件工程专业的基础课程应涵盖软件基础,软件工程基础,数学、工程与职业基础。

软件工程专业的专业课程应覆盖软件设计开发、软件过程与管理、计算机网络、数字化技术、信息安全技术、嵌入式软件、信息系统、图形系统等。

江苏省考研软件工程专业核心知识点汇总

江苏省考研软件工程专业核心知识点汇总

江苏省考研软件工程专业核心知识点汇总软件工程作为一门专业领域的学科,涉及到软件开发生命周期的各个方面,包括需求分析、系统设计、编码、测试、部署和维护等。

在江苏省考研软件工程专业的学习过程中,有一些核心知识点是必须掌握的。

本文将对江苏省考研软件工程专业核心知识点进行汇总,帮助考生系统地了解与复习这些内容。

一、软件需求工程软件需求工程是软件开发过程中至关重要的一环,它涉及到对用户需求的分析和抽象,旨在明确软件系统的功能和性能要求。

软件需求工程的核心知识点包括需求获取、需求分析、需求建模和需求验证等。

1. 需求获取- 需求获取的方法:包括面谈、问卷调查、观察、原型开发和文档分析等,考生需要了解各种需求获取方法的适用场景和优缺点。

- 需求获取的技术:包括用例分析、数据流图、数据字典和状态转换图等,考生需要了解并掌握这些技术的使用方法。

2. 需求分析- 需求分析的目标:包括明确系统的功能和性能要求、发现需求之间的相互关系和约束以及对系统的未来发展进行规划等。

- 需求分析的方法:包括需求划分、需求描述和需求规格等,考生需要掌握这些方法的使用和应用场景。

3. 需求建模- 需求建模的工具:- 用例图:用于描述系统的功能和角色之间的关系。

- 领域模型:用于描述系统领域中的对象和它们之间的关系。

- 状态图:用于描述系统随时间变化的状态和状态之间的转换。

- 活动图:用于描述系统的工作流程和控制流程。

- 时序图:用于描述系统中不同对象之间的交互关系和消息传递顺序。

- 类图:用于描述系统中各个类之间的关系和属性。

4. 需求验证- 需求验证的方法:包括正面验证、负面验证、逻辑验证和过程验证等,考生需要了解各种验证方法的原理和应用。

- 需求验证的工具:包括静态分析工具、动态分析工具和形式化验证工具等,考生需要了解这些工具的原理和使用方法。

二、软件设计软件设计是将需求转化为实际的软件系统的过程,它包括系统设计和详细设计两个阶段。

2022年南京大学软件工程专业《操作系统》科目期末试卷B(有答案)

2022年南京大学软件工程专业《操作系统》科目期末试卷B(有答案)

2022年南京大学软件工程专业《操作系统》科目期末试卷B(有答案)一、选择题1、某进程访问页面的序列如下所示。

若工作集的窗口大小为6,则在t时刻的工作集为()。

A.(6,0,3,2)B. (2,3,0,4)C.(0,4,3,2,9)D.(4,5,6,0,3,2)2、CPU输出数据的速度远远高于打印机的速度,为解决这一矛盾,可采用()。

A.并行技术B.通道技术C.缓冲技术D.虚存技术3、设有一页式存储管理系统,向用户提供的逻辑地址空间最大为16页,每页2048B,内存总共有8个存储块,试问逻辑地址至少为多少位?内存空间有多大()?A.逻辑地址至少为12位,内存空间有32KBB.逻辑地址至少为12位,内存空间有16KBC.逻辑地址至少为15位,内存空间有32KBD.逻辑地址至少为15位,内存空间有16KB4、操作系统采用分页存储管理方式,要求()。

A.每个进程拥有一张页表,且进程的页表驻留在内存中,B.每个进程拥有一张页表,但只要执行进程的页表驻留在内存中C.所有进程共享一张页表,以节约有限的内存空间,但页表必须驻留在内存中D.所有进程共享一张页表,只有页表中当前使用的页面必须驻留在内存中5、当系统发生抖动(Trashing)时,可以采取的有效措施是()。

I.撤销部分进程 II.增大磁做交换区的容量 III.提高用户进程的优先级A. 仅IB.仅IIC.仅IIID.仅I,II6、用户程序在口态下使用特权指令引起的中断属于()。

A.硬件故障中断B.程序中断C.外部中断D.访管中断7、实时操作系统必须在()内处理完来白外部的事件。

A.一个机器周期B.被控对象规定时间C.周转时间D.时间片8、()结构的文件最适合于随机存取的应用场合。

A.流式B.索引C.链接D.顺序9、下面关于文件的叙述中,错误的是()。

I.打开文件的主要操作是把指定文件复制到内存指定的区域II.对一个文件的访问,常由用户访问权限和用户优先级共同限制III.文件系统采用树形片录结构后,对于不同用户的文件,其文件名应该不同IV.为防止系统故障造成系统内文件受损,常采用存取控制矩阵方法保护文件A.仅IB. 仅I、IIIC.仅I、III、IVD.I、II、III,IV10、下列选项中,降低进程优先权级的合理时机是()。

南京大学 软件 需求工程第10章.模型驱动方法

南京大学 软件 需求工程第10章.模型驱动方法




UML将用例定义为“在系统(或者子系统或者类)和外部 对象的交互当中所执行的行为序列的描述,包括各种不同 的序列和错误的序列,它们能够联合提供一种有价值的服 务”[Rumbaugh2004]。 [Cockburn2001]认为用例描述了在不同条件下系统对某一 用户的请求所作出的响应。根据用户的请求和请求时的系 统条件,系统将执行不同的行为序列,每一个行为序列被 称为一个场景。 目标性,多场景性 功能需求(擅长)与非功能需求(偏弱)
需求模型 c)
需求模型 d)
需求模型 e)
3. 基于场景的方法

场景方法的作用

组织需求获取得到的信息;
3. 基于场景的方法

场景方法的作用

帮助进行详细的需求分析; 指导需求验证
抽象
场景
捕获
组织
局部事件
由...验证 是...的部分
局部模型
是...的部分
事件的场 景要素
类型相关 (Dependencies)
前置条件: 后置条件: 正常流程: 分支流程: 异常流程: 相关用例: 业务规则: 特殊需求: 假设: 待确定问题:
用例能够正常启动和工作的系统状态条件 用例执行完成后的系统状态条件 在常见和符合预期的条件下,系统与外界的行为交互序列 用例中可能发生的非常见的其他合理场景 在非预期的错误条件发生时,系统对外界进行响应的交互行为序列 记录和该用例存在关系的其他用例。关于用例之间的关系见10.4.4 可能会影响用例执行的业务规则 和用例相关的其他特殊需求,尤其是非功能性需求 在建立用例时所做的假设 一些当前的用例描述还没有解决的问题

软目标(Soft Goal)和硬目标(Hard Goal) 实现目标(Achieve Goal,又称为终止目标Cease Goal)、维护目标(Maintain Goal,又称为避免目 标Avoid Goal)和优化目标(Optimize Goal)

423南京大学软件工程期末复习汇总

423南京大学软件工程期末复习汇总

一、软件过程1(掌握软件生命周期的几个活动a)目标b)任务c)输出例子:解释软件生命周期中的“设计〞活动)软件开发活动:(1)需求分析〔需求工程〕目的:根据描述明确问题域特性E,构建定义良好的系统行为S,使得E 通过S,到达预期的需求R需求工程的主要工作:(a)研究问题背景,描述问题域特性E(b)需求开发,确定R(c)构建解系统,描述解系统行为S,使得E, S R理解现实为第一目的,保证S 的质量为第二目的结果: SRS (Software Requirements Specification) 用户需求规格说明(2)设计:目的:以软件实体为根底建立软件结构即整个将要开发的系统的模型或设计表示任务:(a)体系结构设计(b)细节设计(c)用户界面设计=(HCI)?结果:模型:体系结构模型,系统模型规格说明书:体系结构说明,系统构件说明,界面设计文档设计决策会极大的影响系统质量,所以要有多种选择和折中(3)实现目的:用编程语言实现系统中单独的组件任务:程序设计、编程、调试结果:可执行的程序(4)测试目的:验证和确认软件质量任务:测试设计、单元测试、集成测试、系统测试|、确认测试、回归测试结果:发现的缺陷和错误测试不一定要在实现结束后进行,可能并行进行,如果测试用例从需求确认中直接得出,可能影响需求分析(5)安装与维护目的:在系统向用户发布后保持系统的运行,包括完善型(Perfective)、调整型(Adaptive)、修正型(Corrective)、防止型维护(Preventive)任务:安装,培训,维护输出:正常运转的系统软件过程模型:2(要求特征描述优点缺点例子:解释软件开发的瀑布模型,并说明其优缺点比拟瀑布模型和螺旋模型)(1)Build-fix(2)瀑布模型特征:没有方案和分析可工作的程序是唯一的产品优点:适用于单个人写的小程序缺点:随着软件规模的扩大,可理解性,可维护性迅速降低、非常不令人满意,需要一个软件周期模型又被称为“经典生命周期〞,它提出了一个系统的、顺序的软件开发方法,从用户需求规格说明开始,通过筹划、建模、构建和部署的过程,最终提供一个完整的软件并提供持续的技术支持。

《软件工程》南京大学计算机专业课程教材

《软件工程》南京大学计算机专业课程教材
序及其有关文件。 • 程序 计算任务中的处理对象和处理规则的描 述。 • 文件 为了便于了解程序所需的资料说明。
Basic Concepts
Software Characteristics
• Software is developed or engineering, it is not manufactured in the classical sense. 软件是由开发或工程化而形成的,而不是传统意义上由制造 产生的。 • Software doesn’t “wear out”. 软件不会“磨损”。 • Although the industry is moving toward component-based assembly, most software continues to be custom build. 大多数软件是自定的,而不是通过已有的构件组装起来的。
System Engineering
What is it?
Before software can be engineered, the “system” in which it resides must be understood. To accomplish this,
Software Engineering 软 件 工 程
李 宣 东 南京大学计算机科学与技术系
/people/lixuandong/softE.html
Contents
• Conventional Methods for Software Engineering 传统软件工程方法 • Object-Oriented Software Engineering 面向对象软件工程 • Software Process, Management, and Quality 软件过程、管理与质量

基于Python的三维模型规范检查插件的设计与开发

基于Python的三维模型规范检查插件的设计与开发

基于Python的三维模型规范检查插件的设计与开发[摘要]本文提出了一种基于Python的三维模型规范检查插件的设计与开发方法,旨在为用户提供一个灵活、可扩展和友好的三维模型规范检查解决方案。

该插件可以对三维模型进行自动检查,包括检查模型的大小、法线的方向、几何形状和名称等方面。

如果模型不符合规范,该插件将输出错误消息并指出问题所在。

[关键词]三维模型;规范检查;Python For Maya;插件开发1 绪论随着三维建模技术的不断发展,越来越多的人开始使用三维模型来创建虚拟世界、游戏、影视、建筑等等。

然而,由于三维模型的复杂性,设计师们往往会犯错或者忽略一些细节,导致最终的三维模型不符合规范和标准。

这些错误和缺陷可能会影响产品的质量、用户体验、甚至造成成本和时间的浪费。

因此,如何快速、准确地检查三维模型的规范性成为了一个重要的研究方向。

为了解决这个问题,研究者们提出了各种各样的方法和工具来检查三维模型的规范性,如人工检查、自动化检查、规则检查等。

然而,这些方法和工具都存在一些缺陷和限制,如人工检查效率低、自动化检查难以精确识别问题、规则检查需要手动编写规则等。

因此,本研究旨在开发一种基于Python的三维模型规范检查插件,以提高三维模型检查的效率和准确性,为三维模型设计师提供更好的工作方式。

2 需求描述与分析其实Maya软件本身提供了一些简单一点的模型检查功能,但是并不能完全满足艺术家在实际生产中遇到的复杂的问题,通过我自己在Maya相关制作过程中的切身感受,加之在实习时与一些参与到实际生产项目的美术同事的询问调查,总结出以下几个常见的问题:模型是否有重叠的现象;多边形的面在进行跨软件操作时常常出现法线方向错误的问题;由于艺术家的疏忽或误操作等其他一些原因导致模型的面出现丢失或者重叠的现象;在某些大场景动画制作中,由于各种命名不规范,导致的制作流程出现不必要的人力资源以及时间成本的浪费;模型的UV分布不符合规范,出现在错误的象限。

软件工程过程模型和测试

软件工程过程模型和测试

软件工程过程模型和测试摘要:随着信息化的逐步发展和计算机软件的广泛应用,选择的软件将为信息化的成功实现打下坚实的基础,而科学、实用、客观的选型方法将直接影响所选软件的契合程度。

在软件工程实践中,有许多专家致力于过程模型的研究。

像瀑布模型、原型模型、快速应用开发模型、螺旋模型、敏捷过程模型、开发模型等。

下面谈谈几种主要过程模型。

关键词:瀑布模型螺旋模型原型模型中图分类号:tp 文献标识码:a 文章编号:1007-0745(2013)05-0213-01瀑布模型/改进的瀑布模型在软件开发模型中,瀑布模型可以说是最早的了,因此瀑布模型在软件工程中占据重要地位,利用这种模型可以做出软件工程的框架。

例如:将接活动的工作人员作为输入,利用这个输入完成活动的内容,得出活动的结果,并将此结果作为输出传给下一项活动,同时要对活动的过程给与评审,若确认,就进行下一项活动;否则返回前面的活动。

对于经常变化的项目而言,瀑布模型毫无价值。

采用瀑布模型可以保证系统在整体上的充分把握,使系统具备良好的可维护性和扩展性。

如果对于前期需求不明确,且很难短时间了解清楚的项目则很难充分地利用瀑布模型。

此外对于中小型的项目,要求设计和开发人员往往在项目开始后就会全身心的投到项目中,而不是分阶段投人,因此采用爆布模型会出现项目人力资源过多的闲置的情况,这也是必须要认真考虑的问题。

架构设计在软件开发中是非常重要的。

架构设计的目的是将系统分为若干个子系统和功能模块。

在每个功能模块间的接口定义清楚的前提下,当一个模块的设计完成后一般就不用等到其他模块设计完成后才开始编码,因此在架构设计完成后就可以将系统分为若干个模块同时开发,当然每个模块必需遵循编码测试和先设计的瀑布模型。

这是瀑布模型的一种最重要的改进思路。

当一个新系统的开发存在多个完全不相关且独立需求的功能开发的时候,就可以将整个开发过程按独立的需求分为多个小瀑布进行操作。

此种方式的最大弊端就是没有一个完全的总体设计,架构设计人员不能在了解了所有需求后从系统的可扩展性,等方面做出总体规划。

2021年南京大学软件工程专业《计算机组成原理》科目期末试卷B(有答案)

2021年南京大学软件工程专业《计算机组成原理》科目期末试卷B(有答案)

2021年南京大学软件工程专业《计算机组成原理》科目期末试卷B(有答案)一、选择题1、某一计算机采用主存Cache存储层次结构,主存容量有8个块,Cache容量有4个块,采取直接映射方式。

若主存块地址流为0,1,2,5,4,6,4,7,1,2,4,1,3,7,2,一开始Cache为空,此期间Cache的命中率为()。

A.13.3%B.20%C.26.7%D.33.3%2、关于Cache的3种基本映射方式,下面叙述中错误的是()。

A.Cache的地址映射有全相联、直接和多路组相联3种基本映射方式B.全相联映射方式,即主存单元与Cache单元随意对应,线路过于复杂,成本太高C.多路组相联映射是全相联映射和直接映射的一种折中方案,有利于提高命中率D.直接映射是全相联映射和组相联映射的一种折中方案,有利于提高命中率3、float 型数据常用IEEE754单精度浮点格式表示。

假设两个float型变量x和y分别存放在32位寄存器fl和f2中,若(fl)=CC900000H,(f2)=BOC00000H,则x和y之间的关系为()。

A.x<y且符号相同B.x<y符号不同C.x>y且符号相同D.x>y且符号不同4、在补码加减交替除法中,参加操作的数和商符分别是()。

A.绝对值的补码在形成商值的过程中自动形成B.补码在形成商值的过程中自动形成C.补码由两数符号位“异或”形成D.绝对值的补码由两数符号位“异或”形成5、有如下C语言程序段:()short si=-32767;unsigned short usi=si;执行上述两条语句后,usi的值为A.-32767B.32767C.32768D.327696、在()结构中,外部设备可以和主存储器单元统一编址。

A.单总线B.双总线C.三总线D.以上都可以7、在计数器定时查询方式下,正确的描述是()。

A.总线设备的优先级可变B.越靠近控制器的设备,优先级越高C.各设备的优先级相等D.对硬件电路故障敏感8、下列关于计算机操作的单位时间的关系中,正确的是()。

突破重难点江苏省考研软件工程知识点总结

突破重难点江苏省考研软件工程知识点总结

突破重难点江苏省考研软件工程知识点总结软件工程是现代信息技术领域的一个重要学科,它研究软件开发过程中的原理、方法和工具,旨在提高软件开发的效率和质量。

江苏省考研中的软件工程是一个较为重要的科目,其中涉及的知识点众多且复杂。

为了帮助考生突破重难点,我们将对几个核心的软件工程知识点进行总结和梳理,希望能为考生提供一些帮助。

一、软件工程概述软件工程是研究和应用一整套与开发、维护和演化软件相关的原理、方法和工具的学科。

它通常包括软件开发过程、软件开发模型、需求工程、软件测试、配置管理等多个方面的内容。

1. 软件开发过程软件开发过程是软件工程的核心,涉及从需求定义、设计、编码、测试到发布的一系列过程。

常见的软件开发过程包括瀑布模型、迭代模型、敏捷开发等,考生需要了解各种开发过程的优缺点和适用场景。

2. 软件开发模型软件开发模型是软件开发过程的具体实现方式,常见的开发模型包括瀑布模型、迭代模型、螺旋模型等。

考生需要了解各种模型的基本原理、特点和适用场景,并能够根据实际情况选择合适的模型。

3. 需求工程需求工程是软件开发过程中的一个关键环节,它主要涉及从需求获取、需求分析到需求规格的一系列活动。

考生需要了解需求工程的基本概念和方法,掌握需求获取和分析的技术和工具。

4. 软件测试软件测试是保证软件质量的重要手段,它主要涉及对软件进行各种测试活动,以发现和修复软件中的错误和缺陷。

考生需要了解软件测试的基本理论和方法,能够设计和执行测试用例,并掌握软件测试工具的使用。

5. 配置管理配置管理是软件开发过程中的一个重要环节,它主要涉及对软件配置项进行管理和控制。

考生需要了解配置管理的基本概念和方法,包括配置项标识、版本控制、变更管理等内容。

二、软件需求工程软件需求工程是软件工程的重要分支,它主要涉及从需求获取、需求分析到需求规格的一系列活动。

掌握软件需求工程的知识对于理解软件开发过程和设计高质量的软件至关重要。

1. 需求获取需求获取是软件需求工程的第一步,它主要涉及与用户沟通、观察用户行为、研究现有文档等一系列活动。

精化 UML 模型 - 东南大学软件学院

精化 UML 模型 - 东南大学软件学院

精化UML模型杨静1张明义2刘志明3(贵州大学计算机科学与工程学院贵阳550025)1(贵州科学院贵阳550002)2(澳门联合国大学国际软件研究所P. O. BOX 3058)3摘要本文通过融合UML用例图、类图、顺序图和状态图,得到一个软件系统的需求模型和设计模型,给出了需求模型和设计模型的协调性条件及精化规则。

这样,我们可以从软件开发的需求分析和设计阶段检查模型的协调性,通过协调地精化模型后生成代码。

用这种方法,我们可在软件设计的早期阶段发现不协调问题,减少生成代码后除错所产生的代价。

关键词UML,用例图,类图,顺序图,状态图,需求模型,设计模型,协调性,精化Refining UML ModelsYANG Jing1ZHANG Ming-Yi2LIU Zhi-Ming3(Computer Science and Engineering College, Guizhou University, Guiyang 550025)1(Guizhou Science Academy, Guiyang 550002)2(International Institute for Software Technology the United Nations University, P.O.BOX 3058)3AbstractKeywords1引言在基于UML的软件开发过程中,如RUP[1],几种UML模型可以用来描述和分析系统开发过程中每个阶段得到的制品。

在UML的这种多重视野的观点下,软件开发者可以把一个系统设计分解成较小规模的可控制的模块,因此软件开发者必须保证各种模型相互间在语法和语义上都是相容的。

近几年来,UML模型的协调性检查及形式化分析是研究UML的热点之一[2, 3, 4, 6, 7, 10],其中绝大部分工作主要是形式化UML的单个图(比如状态图)并仅仅处理一种图或二种图间的协调性。

本文目的是构建一个基于UML的软件开发的需求模型和设计模型,分析这两个模型的协调性,给出这两个模型的精化规则,通过精化模型从而构建形式良好的需求模型和设计模型。

南京大学软件工程专业本科教程——附录B专业基础核心课程描述1

南京大学软件工程专业本科教程——附录B专业基础核心课程描述1

a
E
1
SEF-VV.tst.0
测试
1
SEF-VV.tst.1
单元测试
a
E
1
SEF-VV.par.0
问题分析和报告
1
SEF-VV.par.2
调试/错误隔离技术
a
E
1
STP-PL.c.0
C 语言
10
STP-PL.c.1
词法与关键字
a
E
2
STP-PL.c.2
表达式和语句
a
E
1
STP-PL.c.3
声明、类型
1
a
E
1
5 教学补充事项
5.1 对前驱课程的教学需求

5.2 本课程的教学考虑
为了给大一新生建立起计算系统的概念,本课程采取:1)自底向上的教学模式,逐层构建计 算系统;2)围绕一个假想的简单的计算机进行从比特到 C 语言的全面、系统的介绍。
5.3 对后续课程的教学建议
《计算与软件工程 II》课程对结构化分析、设计的介绍从程序级别提升到建模级别;本课程 只介绍《计算机组成原理》、《数据结构与算法》、《操作系统》等课程的基本概念,更深入的知识 将在这些课程中进行介绍。
描述 数字逻辑和数字系统 计算机发展历史回顾 计算机的基本组成,硬件结构,软件的分类,计 算机语言及其编译 逻辑表达式 计算机的工作过程 计算机系统结构的概念 数据的机器级表示 数值表示和数制 定点数和浮点数系统 有符号数的表示方法和基本运算方法 非数值数据的表示 汇编级机器组织 指令格式 数据的存储方式与寻址方式 指令集及其分类(数据操作、控制、输入/输出) 子程序调用和返回机制 汇编语言和机器语言编程基础 存储系统组织和结构 主存储器的组织和操作 接口和通信 输入/输出基本原理 程序控制 I/O,中断驱动 I/O 程序设计基本结构 变量、类型、表达式和语句 高级语言的基本语法和语义 输入和输出基础 顺序、条件和循环控制结构 函数定义、函数调用和参数传递 程序结构分解基础 基本数据结构 记录

2022年南京大学软件工程专业《计算机组成原理》科目期末试卷A(有答案)

2022年南京大学软件工程专业《计算机组成原理》科目期末试卷A(有答案)

2022年南京大学软件工程专业《计算机组成原理》科目期末试卷A(有答案)一、选择题1、下述说法中正确的是()。

I.半导体RAM信息可读可写,且断电后仍能保持记忆Ⅱ.动态RAM是易失性RAM,而静态RAM中的存储信息是不易失的Ⅲ.半导体RAM是易失性RAM,但只要电源不断电,所存信息是不丢失的IV.半导体RAM是非易失性的RAMA.I、ⅢB.只有ⅢC.Ⅱ、IVD.全错2、对36位虚拟地址的页式虚拟存储系统,每页8KB,每个页表项为32位,页表的总容量为()。

A.1MBB.4MBC.8MBD.32MB3、在计算机系统中,表明系统运行状态的部件是()。

A.程序计数器B.指令寄存器C.程序状态字D.累加寄存器4、假定编译器对高级语言的某条语句可以编译生成两种不同的指令序列,A、B和C三类指令的CPl和执行两种不同序列所含的三类指令条数见下表。

则以下结论错误的是()。

I.序列一比序列二少l条指令Ⅱ.序列一比序列二的执行速度快Ⅲ.序列一的总时钟周期数比序列二多1个Ⅳ.序列一的CPI比序列二的CPI大A.I、llB.1、ⅢC. ll、1VD.Ⅱ5、下列选项中,能缩短程序执行时间的措施是()。

1.提高CPU时钟频率Ⅱ.优化数据通路结构ll.对程序进行编译优化A.仪I、ⅡB.仅I、ⅢC.仅Ⅱ、ID.I、Ⅱ、Ⅲ6、下列关于总线说法中,正确的是()I.使用总线结构减少了信息传输量II.使用总线的优点是数据信息和地址信息可以同时传送III.使用总结结构可以提高信息的传输速度IV.使用总线结构可以减少信息传输线的条数A.I,II,IIIB.II,III,IVC.III,IVD.只有I7、内部总线(又称片内总线)是指()。

A.CPU内部连接各寄存器及运算部件之间的总线B.CPU和计算机系统的其他高速功能部件之间互相连接的总线C.多个计算机系统之间互相连接的总线D.计算机系统和其他系统之间互相连接的总线8、关于微指令操作控制字段的编码方法,下面叙述正确的是()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

缺点
对文档的过高期望具有局限性。
一方面会耗费很大的工作量和成本 另一方面很难为经常变化的需求建立完备可靠的文档。
对开发活动的线性顺序假设具有局限性。
ห้องสมุดไป่ตู้典型的软件生命周期
可以有不同的生命周期划分方式
例如第21章的软件演化生命周期模型
主要内容
软件开发各典型阶段 软件生命周期模型 软件过程模型
构建-修复模型 瀑布模型 增量迭代模型 演化模型 原型模型 螺旋模型 Rational 统一过程 敏捷过程
度)保障
交付的有效 性
变更时控制 效益和质量 的综合平衡
软件设 计方案
结构化程序 设计;
面向对象程 序设计
编程、集成、 测试与调试

程序 员
源代码
可执行程 序
测 单元测 程序
软件需
试 试 员或

设 集成测 测试 测试报告
软件设 黑盒、白盒 计、 试 人员 通过测试
计 等测试方法 执 系统测
的软件产
程序代
设计
体系结 构师
设计师
人机交互 设计师
原型、体 系结构模 型和文档
软件详细 设计模型
和文档
界面原型
第4~21章开发活动总结

件 构建软 构件 造
软 件 测 试
保障软 件产品 的质量
软 件 交 付
将软件 交付给
用户
软 产品终
件 结前的
维 正常使
护用
程序的质量 (可读、可 靠、性能、 可维护等)
质量(程序 正确性和对 需求的符合
软件开发各典型阶段 软件生命周期模型 软件过程模型
构建-修复模型 瀑布模型 增量迭代模型 演化模型 原型模型 螺旋模型 Rational 统一过程 敏捷过程
瀑布模型
[Royce1970]通过分析早期(1960s)的软件开 发活动后发现,如果将软件开发活动划分为不同 的阶段,并且保障每一个阶段工作的正确性和有 效性(尤其是重视分析和设计阶段),那么会取 得比构建-修复方式好得多的表现,包括更高的 质量、更低的成本和更小的风险。
客户、 用户、 环境等
需求基 线
结构化分析 (DFD、ERD 等);面向对 象分析(用例 图、概念类图、 顺序图、状态
图等)
系统 需 需求 求 开发 开 软件 发 需求
开发
需求管理
需求工 程师
所有开 发人员
需求分析 模型与需
求文档
整体功能组织
模块结构
体系结构
软 件 设 计
建立 由抽 象软 件实 体组 成的 软件 结构
行 试 测试 品

测试计划 人员
测试报告
可执行 程序
安装与部署、 用户培训、
文档支持
专门 人员
用户使用 手册
已交付软 件产品
已交付 软件产

软件演化方
法(重构、 重复上述各 逆向工程、 阶段任务
再工程)
维护 人员
主要内容
软件开发各典型阶段 软件生命周期模型 软件过程模型
软件生命周期
人们将软件从生产到报废的生命周期分割为不同阶段, 每段阶段有明确的典型输入/输出、主要活动和执行人, 各个阶段形成明确、连续的顺次过程,这些阶段划分 就被称为软件生命周期模型。
《软件工程与计算II 》 ch22 软件开发过程模型
丁二玉 南京大学软件学院
主要内容
软件开发各典型阶段 软件生命周期模型 软件过程模型
第4~21章开发活动总结
阶 段
目标
关注点
工作基 础
方法
主要任务 执行者 制品
需 求 工 程
建立 解决 方案
理解现实;制 定解决方案
(成本效益比 有效)
软 件


测试
与调试、构建等



计划



源代码、可执行程序

单元测

主要内容
软件开发各典型阶段 软件生命周期模型 软件过程模型
构建-修复模型 瀑布模型 增量迭代模型 演化模型 原型模型 螺旋模型 Rational 统一过程 敏捷过程
构建-修复模型
最早也是最自然产生的软件开发模型 不能算是一个软件过程模型,因为它对软件开
与质量特征 (各种质量属
性)
模块内部的结 构及质量(易 开发、可复用、
可维护等)
人机交互质量
系统需 求
软件体 系结构 软件需

软件需
(UML: 包图、 构件图、部署
图)
结构化方法 (结构图); 面向对象方法 (包图、类图、
顺序图等)
人机交互设计
软件体系 结构设计
软件详细 设计
人机交互
(易用性) 求
方法
软件过程模型
软件过程模型在生命周期模型的基础则进一步详 细说明各个阶段的任务、活动、对象及其组织、 控制过程。
与简略的软件生命周期模型不同,软件过程模型 可以被看作是网络化的活动组织
不同的生命周期模型有不同的软件过程模型
阶段划分不一样
同一个生命周期模型也会有多个不同的软件过程 模型
虽然阶段划分一样,但是各个阶段的时间安排、先后 衔接等执行过程不一样
本书案例适用的软件过程模型
开开始始 生生产产
客户、用户、外部环境等

系统需求
软件需求

开发
开发


需求分析模型与需求文档、需求基线

人机交互 设计
体系结构 设计
详细设计
件 设

系 统
软件设计模型、原型与文档



集成 编程、集成、测试
瀑布模型
需求开发
允许活动出现反 复和迭代
重点在于要求每 个活动的结果必 须要进行验证
文档驱动
软件设计 软件实现 软件测试 软件交付
软件维护
优点
为软件开发活动定义了清晰的阶段划分(包括 了输入/输出、主要工作及其关注点),这让开 发者能够以关注点分离的方式更好地进行那些 复杂度超越个人能力的软件项目的开发活动。
发活动没有任何规划和组织,是完全依靠开发 人员个人能力进行软件开发的方式。
构建(Build) 第一个版本
修复(Fix)
维护
缺点
在这种模型中,没有对开发工作进行规范和组织,所以 随着软件系统的复杂度提升,开发活动会超出个人的直 接控制能力,构建-修复模型就会导致开发活动无法有 效进行而失败;
没有分析需求的真实性,给软件开发带来很大的风险; 没有考虑软件结构的质量,使得软件结构在不断的修改
中变得质量越来越糟,直至无法修改; 没有考虑测试和程序的可维护性,也没有任何文档,软
件的维护十分困难。
适用性
软件规模很小,只需要几百行程序,其开发复 杂度是个人能力能够胜任的;
软件对质量的要求不高,即使出错也无所谓; 只关注开发活动,对后期维护的要求不高,甚
至不需要进行维护。
主要内容
相关文档
最新文档