当前位置:文档之家› 软件工程复习 ()

软件工程复习 ()

软件工程复习 ()
软件工程复习 ()

1.什么是软件工程?他的基本原理是什么?

1)软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济地开发出高质量的软件并有效地维护它。

2)用分阶段的生命周期计划严格管理、坚持进行阶段评审、实行严格的产品控制、采用现代程序设计技术、结果应能清楚的审查、开发小组的人员应该少而精、承认不断改进软件工程实践的必要性。

2. 是什么导致了软件工程?

主要是软件危机的出现导致了软件工程

3. 通常我们所见的软件工程模型有哪些?

瀑布模型、快速原型模型、增量模型(渐增模型)、螺旋模型、喷泉模型。

21.软件危机的现象:

1)经费超出预算,项目一再拖延。

2)不重视需求,开发的软件不能满足用户的要求,项目成功率低。

3)没有规范的软件工程方法,软件可维护性差,软件质量差,可靠性差。

3)开发工具落后,手工方式,开发效率低。

22.软件工程的三要素

1)“过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质量开发出软件。

2)“方法”为软件开发提供“如何做”的技术。它涵盖了项目计划、需求分析、系统程序()实现、测试与维护灯一系列活动的做法。

3)“工具”可为过程和方法提供自动的或半自动的支持。这些工具既包括软件,也包括硬件,软件工具包括编程、建模、管理等开发工具。通过网络环境把这些软件工具集成起来搭建一个能够支持团队开发的平台,称为计算机辅助软件工程,即CASE。CASE集成了软件、硬件和()存放开发过程信息的软件工程数据库,形成了一个软件工程环境。

23.简述软件工程的目标,过程和原则

1)目标、过程和原则是一切工程的三维框架,,这里是以工程的观点来看待软件开发。

软件工程的目标:降低成本,及时交付高质量的软件产品。

实现目标的过程即完成产品加工的过程:包括:基本过程、支持过程和组织过程

进行过程应遵守的原则:原则就是过程中的轨道约束,包括:选取适宜的开发范型、适合的设计方法、提供高质量的工程支持、重视开发过程的管理。

24.对比瀑布模型,原型模型,增量模型和螺旋模型

1)瀑布模型:主要体现了分阶段、有控制的思想。活动间强调按顺序、文档化;存在的问题是过于理想化,每一步的工作必须完整准确,否则无法进行下一步工作

2)原型模型:需求分析入手快速、表达直观、容易交流。重点解决瀑布模型的需求分析入手难的问题。

3)增量模型:对于需求复杂的系统,采用分块开发、逐步集成的开发策略。增量体现了演进、迭代思想,每一块就是一个增量。每个增量试一次迭代。增量模型的新版本叫做“极限编程

(XP)”。

4)螺旋模型:融合了上述3种模型,融进了循环往复、强化了演进迭代的思想,增加了风险控制环节。但是,风险分析的正确性是左右软件演进的关键因素。

25. 当需求不能一次搞清楚,且系统需求较复杂时应选用什么模型?

开发模型不是孤立或排斥的,他们之间需要相互借鉴和参考。螺旋模型是一种综合性的模型,适合于鼻尖复杂的系统。

26.XP(极限开发)是一种什么样的模型?

XP是现代版的增量模型,特点是你客户参与、适应变化、测试驱动、以代码为核心。实行XP的条件如下。

1)企业具有较高的能力成熟度,具有团队开发环境和配套的测试工具。

2)软件结构是开放的,增量可随意整合。

3)开发团队拥有“系统隐喻”。

27.敏捷方法的核心价值观有哪些?它对传统方法的”反叛“体现在哪些方面?

1)①注重个人与交互

②重点关注可以工作的软件。

③提高客户参与程度。

④以积极的心态响应需求变化。

敏捷联盟强调的价值观是这一流派的核心。认识受价值观驱使的,敏捷项目管理因而也是以价值观为推动力的。一个团队可以采用敏捷做法,但如果它不接受敏捷价值观,它将不能得

到敏捷方法的潜在好处。

2)敏捷方法对传统方法的”反叛“体现在以人为中心,不再依靠文档来控制过程,认为传统过程过于僵化、文档繁烦,主张对传统过程瘦身,在上述价值观的支配下,做到能够为准

28.简述CMM(成熟度等级)软件过程成熟度的5个级别,以及每个级别对应的标准。

1)初始级的软件过程是无秩序的,它几乎处于无步骤可循的状态。管理是随机的,软件产品的成功往往取决于个人。

2)可重复级,已建立了基本的项目管理过程,对成本、进度和功能特性进行跟踪,并且在借鉴以往经验的基础上制定了必要的规范。

3)已定义级,用于管理和工程两个方面的过程均已文档化、标准化,并形成了整个软件组织的标准软件工程。所有项目均使用经过批准、裁剪的标准软件过程来开发和维护软件。

4)已管理级的软件过程和产品质量有详细的度量标准并且得到了定量的认证和控制。

5)优化级的软件过程可以通过量化反馈和先进的新思想、新技术来不断地、持续性的过程改进。

29.RUP(统一过程)包含了那些核心工作流和那些核心支持工作流。

1)核心工作流包括:业务建模、需求、分析与设计、实现、测试、部署。

2)支持工作流包括:配置与变更管理、项目管理、环境。

30.如何进行结构化需求分析,其建模方法有哪些?

5. 传统方法学-结构化分析中,有哪几个主要步骤?每个步骤应该要做什么?画什么图?怎么画?

1)建立当前系统的”具体模型“:体统的”具体模型“就是现实环境的真实写照,这样到达与当前系统完全对应,用户容易理解。

2)抽象出当前系统的逻辑模型:分析系统的”具体模型“,抽象出其本质的因素,获得当前系统的”

逻辑模型“。

3)建立目标系统的逻辑模型:分析目标系统与当前系统逻辑上的差别,从而进一步明确目的系统”

做什么“,建立目标系统的“逻辑模型”。

4)为了对目标系统进行完整的描述,还需要考虑人机界面和其他一些问题。

建模方法:

数据流图、实体关系、控制流图、状态转换图。

31.为什么说需求过程是一个迭代过程?

由于人们对客观事物的认识是不断深化,因此需求过程是一个迭代过程,每次迭代都可提供更高质量和更详细内容的软件需求。这种迭代会给项目带来一定的风险,上一次迭代的设计实现可能会因为需求不足而被推翻。

32.简述可行性研究所研究的问题。

1)经济可行性:进行成本/效益分析那个。从经济角度判断系统开发是否“合算“。

2)技术可行性:进行技术风险评价。从开发者的技术实力、以往工作基础、问题的复杂性出发,判断系统开发在实践、费用等限制条件下成功的可能性。

3)法律可行性:确定系统开发可能导致的任何侵权、妨碍和责任。

4)方案的选择:评价系统或产品开发的几个可能的候选方案,最后给出结论意见。

33.简述数据流图的作用。

数据流图的作用:数据流图可以用来抽象地表示系统或软件。从信息传递和加工的角度它以图形的方式刻画数据流从输入到输出的移动变换过程,同时可以按自顶向下、逐步分解的方法表示内容不断增加的数据流和功能细节。因此,数据流图既提供了功能建模的机制,也提供了信息流建模的机制,从而可以建立其系统或软件的功能模型。

34.简述数据字典的作用!

数据字典的作用:分析建模种包含了对数据对象、功能和控制的表示。在每一种表示中数据对象和控制项都扮演一定的角色。为表示每个数据对象和控制项的特性,建立了数据词典。数据词典精确地、严格地定义了每一个与系统相关的数据元素,并以字典式顺序将它们组织起来,使得用户和分析员对所有的输入、输出、存储成分和中间计算有共同的理解。

35.简述在软件设计的过程中需要遵循的规则。

模块化、抽象化、逐步求精和信息隐藏。

36.为什么说“高内聚、低耦合”的设计有利于提高系统的独立性?

内聚和耦合往往密切相关,模块的高内聚通常意味着低耦合。低耦合因为模块之间的耦合成都越低,相互影响就越小,发生异常后产生连锁反应的概率就越低;在修改一个模块是,低耦合的系统就可以把修改范围尽量控制在最小的范围内;对一个模块进行维护是,其他模块的内部程序的正常运行不会受到较大的影响。

37.简述界面设计应该遵循的原则。

1)置界面与用户控制之下:以不强迫用户进入不必要的或不希望的动作的方式来定义交互模式;提供灵活的交互;允许用户交互可以被中断和撤销;当技能级别增长时可以使交互流水化并允许定制交互;使用户隔离内部技术细节;设计应允许用户和出现在屏幕上的对象直接交互。

2)减少用户的记忆负担:减少对短期记忆的要求;建立有意义的缺省;定义直觉性的捷径;界面的视觉布局应该基于真实世界的阴雨;以不断进展的方式解释信息。

3)保持界面一直;允许用户将当前的任务放入有意义的语境;在应用系列内保持一致性;如果过去的交互模式已经建立起了用户期望,不要改变它,除非有不得已的理由。

4. 传统方法学中,分几个主要步骤?

结构化分析,结构化设计,结构化实现。

6. 传统方法学-结构化设计的概念和原理是什么?

模块化、抽象、逐步求精、信息隐藏。

7. 传统方法学-结构化设计有哪些启发规则?

改进软件结构提高模块独立性,模块规模应该始终,深度、宽度、扇出和扇入都应适当,模块的作用域应该在控制域之内,力争降低模块接口的复杂程度,设计单入口单出口模块,模块功能应该可以预测

8. 传统方法学-结构化设计有哪几个主要步骤?每个步骤要做什么?需要绘制哪些图形图表,怎么画?

1)分析并确定输入数据和输出数据的逻辑结构,并用Jackson图庙会这些数据结构。

2)找出输入数据结构和输出数据结构中有对应刮泥的数据单元。

3)秒回数据结构的Jackson头到处描绘成结构的Jackson图。

怎么画:

1)为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序

结构图等响应层次化一个处理框。

2)根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为他们画上对应的处理框

3)根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。

4)列出所有操作和条件,并且把它们分配到程序结构图的适当位置。

5)用伪码表示程序。

9. 传统方法学-结构化设计中,什么是面向数据流的设计方法?

面向数据流的设计方法就是通常所说的结构化设计方法。它是以数据流图为基础,将DFD变换成软件结构的不同映射方法,以软件结构图(SC图)的形式表现。SC图描述软件系统的层次和分块结构的关系,体现模块与模块之间的联系与通讯,从而表达软件的体系结构。

10. 传统方法学-结构化实现中,所涉及到的测试有哪些?有哪些策略?以及测试有哪几个基本步骤?

1)测试基本步骤:单元测试、集成测试、确认测试、(高级测试)。

2)策略:逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖)、控制结构测试(基本路劲测试、条件测试、数据流测试、循环测试)。

11. 面向对象方法学中,其核心是对什么进行分析?

对象。

12. 面向对象的基本概念是什么?

对象,类,(实例,消息,方法,属性,)封装,继承,多态(重载)。

13. 与传统方法学相比,面向对象方法的区别是什么?

1)符合人类的思维习惯

2)可复用性好。

3)稳定性好。

4)可维护性好。

14. 什么是UML,UML的基本概念。

UML是一种书写软件蓝图的标准语言。是一种指定、构造和记录软件密集型系统的工作语言。15. 面向对象方法学-分析中,把问题分为了几个层次,几个子模型?是哪几个?

3个模型:静态结构(对象模型)、交互次序(动态模型)和数据变化(功能模型)。

5个层次:主题层(范畴层)、类与对象层、结构层、属性层和服务层。

16. 对象模型、动态模型、功能模型分别代表什么,是对什么的分析。

对象模型表示静态的、结构化的系统的“数据”性质。它是对模拟客观世界实体的对象以及对象彼此间的关系的映射。描述了系统的静态结构。

动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列。

功能模型表示变化的系统的“功能”性质,它指明了系统应该”做什么“,因此更直接地反映了用户对目标系统的需求。

17. 面向对象设计的启发规则有哪些?要考虑哪些子系统?如何设计?每个子系统应该考虑的东西有哪些?

启发规则:设计结果应该清晰易懂、一般/特殊结构的深度应适应、设计简单的类、使用简单的协议、使用简单的服务、把设计变动减至最小。

如何设计:模块化、抽象、信息隐藏、弱耦合、强内聚、可重用。3

子系统的考虑内容:应该综合考虑各种因素,以决定哪些子系统用硬件实现,哪些子系统用软件实现。在决定采用软件还是硬件的时候,必须综合权衡一致性、成本、性能等各种因素,还要

考虑未来的可扩充性和可修改性。

18. 面向对象实现需要考虑的因素有哪些?

将来能否占主导地位、可重用性、类库和开发环境、其他因素。

19. 面向对象的实现中,面向对象的测试与传统测试有哪些不一样?有哪些主要方法?面向对象的测试的着重点在哪里?为什么会产生如此的不同?

1)单元测试的不同:最小的可测试但愿是封装起来的类和对象。一个类可以包含一组不同的操作,而一个特定的操作也可能存在于一组不同的类中。一次,对于面向对象的软件来说,单元测试布恩那个再孤立地测试单个操作,而应该把操作作为类的一部分来测试。

2)集成测试的不同:面向对像有两种不同的策略

①基于线程的测试。

②基于使用的测试。

集群测试是面向对象软件集成测试的一个步骤。

3)确认测试的不同:面向对象确认测试不再考虑类之间相互连接的细节。和传统的确认测试一样,面向对象软件的确认测试也集中检查用户可见的动作和用户可识别的输出。为了到处确认测试用例,测试人员应该认真研究动态模型和描述系统行为的脚本,以确定最可能发现用户交互需求错误的情景。

不一样:1)二者都可以分为4个阶段进行。但传统测试的最小单元是模块,而在面对像环境下的最小的可测试单元是封装了的类或对象,而不是程序模块。

2)因为面向对象软件没有一个层次的控制结构,所以传统的自顶向下和自底向上的集成测试意义不大。一次记成一个操作到类中,通常是不可能的。因为在构成类的成分彼此间存在直接或间接的交互。

测试着重点:面向对象测试关注与设计适当的操作序列以检查类的状态。

测试方法:

随机测试、划分测试、基于故障的测试。

20. UML图的分析、设计与绘制。

分析:

UML设计原则:模块化、分层化、分区化、可扩展、可重用。

设计:

元元模型层、元模型层、模型层、用户模型层。

绘制:

UML由视图(view)、图(diagram)、模型元素(model element)、通用机制(general mechanism)。

软件工程课程表

软件工程专业本科教学计划 专业代码080611W (国家)0406 (学校) 一、培养目标和基本规格 (一) 培养目标 软件工程专业本科生的培养目标是:针对国民经济信息化建设和发展的需要,面向软件产业界对软件工程技术人才的需求,培养具有良好的综合素质、良好的职业道德、扎实的软件工程理论知识及较强的英语综合应用能力,掌握自然科学和与软件有关的法律基础知识、具有自主学习和使用先进软件开发技术和工具的能力,具有软件开发实践和项目组织的初步经验,具有创新、创业、竞争意识和团队精神。学生毕业后能从事大型软件项目的开发,具有软件企业所需要的较高层次的软件工程技术和管理人才的素质,能适应技术进步和社会需求变化对高素质软件工程专门人才的基本要求。 (二) 培养规格 本专业学生应掌握软件工程领域坚实的基础理论和宽广的专业知识,具有良好的系统分析、设计及软件工程项目的组织与管理能力,具备运用先进软件开发技术、方法和工具的能力,具备与软件有关的法律知识,具备独立工作能力和团队精神。 毕业生应获得以下几方面的知识和能力: 1、掌握软件工程专业的基本理论、基本知识和基本技能,特别是软件项目管理与开发技术、信息系统的分析与设计技术、网络数据库开发技术、网络信息安全和嵌入式软件开发技术; 2、熟练掌握需求分析和建模、软件设计和实现、软件评审与测试、软件过程改进与项目管理、设计人机交互界面的基本方法,能运用先进软件技术和开发工具进行软件系统的开发与维护工作。 3、掌握与软件有关的法律法规、国际惯例,具备自觉运用法律知识进行软件知识产权保护的素质。 4、具有创业意识、创新精神和良好的职业素质,具有良好的人际沟通能力和团队精神。 5、了解软件工程领域的最新成果、发展动态和法律法规; 6、具有良好的英语写作和交际能力,外语水平达到规定的等级要求。 二、学制:四年。 三、授予学位:工学学士。

软件工程实验报告最终版

合肥师范学院实验报告册 2012 / 2013 学年第一学期 系别计算机科学与技术系 实验课程软件工程 专业计算机科学与技术 班级2010级计算机应用 姓名马军福董国运李思贤 学号1010411024 1010411008 1010411076 指导教师范庆春

实验一:结构化方法建模的基本应用 1.实验目的 (1)了解Visio工具软件的功能特色、安装、工作环境和基本操作等基本知识; (2)掌握应用Visio工具的基本使用方法和基本绘图操作; (3)熟悉结构化分析建模的基本应用。 2.实验内容 (1)使用Visio 建立期刊管理系统的实体-关系图; (2)使用Visio 建立期刊管理系统的数据流图。 3. 实验要求 使用Visio 建立期刊管理系统的实体-关系图、数据流图。数据流图要绘 制三层。 4.实验结果和体会 (1)需求陈述 在图书管理系统中,管理员要为每个读者建立借阅账户,,账户内存储读者的个人信息和借阅记录信息。持有借阅卡的读者可以通过管理员借阅、归还期刊,读者可通过互联网或图书馆内查询终端查询期刊信息和个人借阅情况,以及续借期刊。 借阅期刊时,先输入读者的借阅卡号,系统验证借阅卡的有效性和读者是否可继续借阅图书,无效则提示其原因,有效则显示读者的基本信息。然后输入要借阅的书号,系统查阅图书信息数据库,显示图书的基本信息。最后提交借阅请求,若被系统接受则存储借阅纪录,并修改可借阅图书的数量。归还期刊时,输入读者借阅卡号和期刊号,系统显示读者和期刊的基本信息供管理员人工审核。如果有超期借阅或丢失情况,先转入过期罚款或期刊淘汰处理。然后提交还书请求,系统接受后删除借阅纪录,并登记修改可借阅期刊的数量。 期刊管理系统包括:1.读者信息管理a:借阅请求b归还请求c:查询请求d:修改自身信息2.期刊管理a:修改书目、出版日期、编辑b:增加书目数据、删除书目数据。3.期刊借阅a:增加所借读者信息b:删除所借读者信息4.期刊查询a:已借出图书列表b:未借出图书列表5.期刊的征订6.期刊内容登记题目、作者姓名、作者单位7.期刊内容查询

软件工程实验报告

软件工程实验报告 姓名:冯巧 学号 实验题目:实验室设备管理系统 1、系统简介: 每天对实验室设备使用情况进行统计,对于已彻底损坏的作报废处理,同时详细记录有关信息。对于有严重问题(故障)的要即时修理,并记录修理日期、设备名、修理厂家、修理费用、责任人等。对于急需但又缺少的设备需以“申请表”的形式送交上级领导请求批准购买。新设备购入后立即对新设备登记(包括类别、设备名、型号、规格、单价、数量、购置日期、生产厂家、购买人等),同时更新申请表的内容。 2、技术要求及限定条件: 采用C#语言设计桌面应用程序,同时与数据库MySql进行交互。系统对硬件的要求低,不需要网络支持,在单机环境下也能运行,在局域网环境下也能使用。方案实施相对容易,成本低,工期短。 一:可行性分析 1、技术可行性分析 计算机硬件设备,数据库,实验室设备管理软件与实验室设备管理系统的操作人员组成,能够实现实验室设备管理的信息化,提高工作效率,实现现代化的实验室设备管理。系统需要满足实验室设备管理(包括对实验设备的报废、维修和新设备的购买)、实验室设备信息查询(包括按类别进行查询和按时间进行查询)、实验室设备信息统计报表(包括对已报废设备的统计、申请新设备购买的统计和现有设备的统计)。这些功能框图如下图所示: 2、经济可行性分析 依据用户的现实需求、技术现状、经济条件、工期以及其他局限性因素等等因素,考虑到工期的长短、技术的成熟可靠、操作方便等因素,本方案具备经济可行性。

3、系统可选择的开发方案 ①方案A用C#开发系统的特点是:开发工具与数据库集成一体,可视化,开发速度较快,但数据库能够管理的数据规模相对较小。系统对硬件的要求低,不需要网络支持,在单机环境下也能运行,在局域网环境下也能使用。方案的实施相对容易,成本低,工期短。 ②方案B:以小型数据库管理系统为后台数据库,该前台操作与数据库分离,也能够实现多层应用系统。系统对硬件的要求居中,特别适合在网络环境下使用,操作方便。但系统得实现最复杂,成本最高,工期也较长。 二:软件需求分析 1.软件系统需求基本描述: 实验室设备管理系统是现代企业资源管理中的一个重要内容,也是资源开发利用的基础性工作。实验室设备在信息化之前,在用户系统管理、设备维修管理、设备的增删改查管理等方面存在诸多不利于管理的地方,不适应现代的企业管理形势和资源的开发利用。 2.软件系统数据流图(由加工、数据流、文件、源点和终点四种元素组成): 1)顶层数据流图 2)二层流程图 3)总数据流图

软件工程课程复习大纲

软件工程课程复习大纲 第一章软件工程概论 本章作为全书的概论,主要讲述了软件、软件工程概念和软件开发的目标和本质。 基本要求: 1、“软件”概念: “软件”一词具有三层含义: (1)一为个体含义,即指计算机系统中的程序及其文档; (2)二为整体含义,即指在特定计算机系统中所有上述个体含义下的软件的总称,亦指计算机系统中硬件除外的所有成分; (3)三为学科含义,即指在研究、开发、维护以及使用前述含义下的软件所涉及的理论、方法、技术所构成的学科。 2、“软件工程”概念: (1)一方面,软件工程是一类求解软件的工程。它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法、创建软件以达到提高质 量,降低成本的目的; (2)另一方面,软件工程也是一门指导计算机软件开发和维护的工程学科。 3、“模型”概念: 模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述,给出系统内各模型元素以及它们之间的语义关系。 重点要求: 1、软件开发的本质:实现问题域中的概念和处理逻辑到运行平台的概念和 处理逻辑的映射。 第二章软件过程 本章围绕软件过程这一主题,讲解了三方面的内容: 一:介绍了软件生存周期过程。按照承担软件开发工作的主体,软件生存周期过程分三类:基本过程、支持过程和组织过程。每类过程又包含一些确定的过程,每一过程又是由一组确定的活动定义的。 二:介绍了几种常用的软件生存模型:瀑布模型、增量模型、演化模型、螺旋模型和喷泉模型等,分析了这些模型的优缺点及它们的适用情况等。 三、讲解了一个软件项目生存周期过程的规划和监控。一个软件项目生 存周期过程规划包括三个阶段:第一阶段的目标是选取一个适合该项目特点

软件工程测试实验

淮海工学院计算机科学系实验报告书 课程名:《软件工程》 题目:软件测试实验 班级:软件121 学号:2012122722 姓名:朱德坤

软件测试验报告要求 1目的与要求: 1)系统学习和理解结构化软件工程实现阶段的基本概念、原理、技术和方法; 2)掌握软件测试的基本技术和方法,特别是白盒测试与黑盒测试技术和方法; 3)通过实验,要逐步提高白盒测试与黑盒测试技术的实际应用能力; 4)熟悉C++编程环境下编写、调试单元代码的基本操作技术和方法; 5)按照实验题目要求独立完成本次试验任务,严禁拷贝、抄袭他人设计成果; 6)认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例,测试结果分析等),并于5月5日以前提交。 2 实验内容或题目 1.选择结构化详细设计试验中自己设计的某一具有代表性控制结构模块(含有分支和循环结 构),并用C语言实现(提前准备好,每种测试用例分别写在作业本上,上机时带上检查),而后分别完成下述2、3、4各题测试用例设计和测试结果分析; 2.采用白盒测试技术中逻辑覆盖方法(至少包含语句覆盖、判定覆盖、条件覆盖、条件组合 覆盖)设计测试用例,完成测试(测试屏幕截图)和测试结果分析; 3.采用白盒控制结构测试技术的基本路径测试和边界测试方法设计相应测试用例,并完成测 试和测试结果分析; 4.采用黑盒测试技术中的等价类划分方法设计相应测试用例(可重选适合黑盒测试技术的模 块),并完成程序测试和测试结果分析; 3 实验步骤与源程序 程序流程图:

流图:

程序: //拥有超级用户superuser,密码zdk #include #include #include #include #include using namespace std; int PD; //全局判断执行码 void SetPos(int i,int j) //界面光标位置函数{ COORD pos= {i-1,j-1}; HANDLE Out=GetStdHandle(STD_OUTPUT_HANDLE);

软件工程实验报告(总)

信息工程学院软件工程实验报告 专业: 班级: 学号: 姓名: 指导老师:

实验一:软件开发的过程计划 实验课时:2课时 一、实验目的 项目计划的目的是为项目的研发和管理工作制定合理的行动纲领,以便所有相关人员按照计划有条不紊地开展工作。 ⑴估计项目的总体规模、工作量和成本。 ⑵制定项目计划,重点放在产品生命周期中的主要关键任务。 ⑶制定项目时间表和预算。 二、实验环境 1.硬件环境 P4以上的个人计算机环境,要求内存不少于512MB,硬盘不小于20G.。 2.软件环境 操作系统:Windows XP 数据库:Sql Server 2000以上或Access 2003以上 3.通用工具软件 通用绘图工具:MicroSoft Visio 2003以上 文本编辑工具:MicroSoft Word 2003以上 4.CASE工具 UML建模工具:Rational Rose 2000 三、实验要求、实验内容 1、实验要求: 在进行实验之前,必须掌握软件开发过程的一些基础知识,准备参考资料和阅读相关的过程模型的文档。 2、实验内容 熟悉RUP(Rational Unified Process)软件开发统一过程的思想,RUP(Rational Unified Process)是由Rational公司(现已是IBM公司的一部分)提出的过程模型,它软件工程史上最完整、最成熟、最优秀的过程模型之一。 学习软件开发的组织和管理,将项目开发各阶段的任务明确,掌握各阶段的里程碑,并熟悉相应的工具。

四、思考题 1、项目开发首先要做的事是什么? 答:进行需求分析和定义,了解客户或用户的需求,然后再进行后续。 2、你认为该软件应具备的最重要的特性是什么。 答:安全性、实用性、灵活性。 3、你认为怎样分工是最合理的? 答:该项目已经采取项目经理制,但是在具体开发过程中,情况也许会比预计的复杂,因此,在了解了各组员的工作风格的情况下,根据性格类型进行工作分配,比如:外向而且善于交流的,可以给他安排和客户交流沟通,让客户随时了解我们 的工作情况,并且反应客户的需求改变;为了让项目更好的组织和管理,可以采取 主程序员负责制;这样,在项目经理的带领下,内部安排主程序员和副程序员,工 作员有问题的话,内部自己解决,只要按时汇报工作就可以了。 五、实验内容: 项目背景 项目名称:银行计算机储蓄系统 随着社会经济的发展,XX银行的业务不断增长,传统的依靠手工的存取款业务办理方式已经不能满足不断增长的业务需求。其一,业务需求的增加需要消耗大量人力物力资源;其二,业务复杂化导致人工处理方式出错率增加,从而引起储户不满。一方面可以减轻银行业务员的工作量,另一方面可以减少工作的出错率,从而提高工作效率。现在计算机网络的告诉发现使越来越多的人更喜欢在网购物、在家存款取款。在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们越益增长的需求,急切需要建立一个新的、高效的、方便的、互联的计算机储蓄系统。为解决此问题,拟为其开发计算机储蓄系统。 项目进度: 项目在项目经理的制度下,在整个开发过程中,树立“里程碑”,而且严格按照计划进行,各阶段任务必须完成,现把任务进度历程绘制如下:

软件工程基础知识点总结

软件工程基础部分知识点总结 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素 3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件)

1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。 1)研究软件工程的主要目的就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、可移植、易维护等)。 2)软件工程的三个要素:方法、工具和过程。 ①方法:完成软件工程项目的技术手段;

软件工程实验报告

软 件 工 程 实 验 报 告 班级:计算机科学与技术1102班 学号:1108030209 姓名:蒙雨茹

实验一:使用Microsoft Visio 1.1实验目的: (1)熟悉Visio的工作环境及组成。 (2)掌握Visio软件绘制图表的基本操作。 (3)掌握基本流程图的设计方法。 1.2实验内容: 绘制基本流程图 1.3实验步骤: (1)打开一个模板,,在主菜单中依次选择【文件】->【新建】->【选 择绘图类型】,出现“选择绘图类型”窗口,在【类别】下,单击 【流程图】,在【模板】下,单击【基本流程图】。 (2)添加形状,将【形状】窗口中模具上的自己需要的形状拖到绘图页 面中合适的位置。并添加文本、连接不同形状,使流程图完整的显 现出来。 1.4实验结果:

实验二:数据流图 2.1 实验目的 (1)熟悉Visio的工作环境及组成。 ⑵掌握Visio软件绘制图表的基本操作。 ⑶掌握数据流图的设计方法。 2.2 实验内容 习题3-3,3-4,3-5 2.3 实验步骤 (1)打开模板 ①在主菜单中,依次选择【文件】——【新建】——【选择绘图类型】,出现“选择绘图类型”窗口。 ②在左侧【类别】下,单击【软件】。 ③在右侧【模板】下,单击【数据流模型图】。 (2)绘制顶层图 ①在顶层进程页面中添加、移动图形元素并调整其大小。将所需要元素用鼠标拖动到模板里,添加所需的元素符号。 接口:输入源点或输出终点,其中注明源点或终点的名称。 进程:即处理,输入数据在此进行变换产生输出数据,其中注明进程的名称。数据存储:用于代表系统中存储的信息,其中注明信息的名称。 数据流:被加工的数据及其流向。流线上注明数据名称,箭头代表数据流动方向。 ②向图形元素中添加文本,并修改数据流图中的文字和格式。 连接图形元素。 ③使用“数据流”连接线将“接口”、“进程”和“数据存储”等形状互相连接起来。 逻辑连接:将数据流起点、终点拖拽到进程或接口中央位置,进程或接口被红色框包围时松开鼠标,这时可看到数据流符号相应端点为红色方框。拖动进程或接口,可看到流据流的端点随着进程或接口的移动而移动。

软件工程课程安排

大一是网页制作,经典算法,c语言,军事理论,写作,高数1和高数2,离散1,中国近代史,思想道德,电子电路,英语1和2。大二是数据库原理,编译原理,离散2,数字电路,汇编语言,c++语言,mfc,计算机组成原理,英语3和4,日语1和2,马克思原理,毛邓。大三时jsp课程设计,sql server数据库,计算机体系结构,计算机网络,操作系统,计算机图形学,算法,日语3和4,人工智能,软件工程。大四我就不知道了。我刚读到大三。

《算法分析与设计》打下基础。 参考教材:《C++语言程序设计教程》谭浩强等编,高等教育出版社。 考核方式:考试。 3、04261050离散数学 《离散数学》是计算机科学与技术专业的必修课,主要学习集合论,图论,数理逻辑,形式语言等内容。本课程为学习计算机科学专业理论作好必要的准备知识,并为提高专业理论水平打下扎实的基础。 参考教材:《离散数学》朱一清编,电子工业出版社。 考核方式:考试。 4、04261060汇编语言程序设计 《汇编语言程序设计》是计算机科学与技术专业的必修课程,本课程的教学目的是:使学生掌握用汇编语言编写程序及上机运行的基本方法和技能,能用汇编语言设计实用程序,并了解与软、硬件有关课程的一些概念。 参考教材:《IBM PC汇编语言程序设计》沈美明、温科婵编,清华大学出版社。 考核方式:考试。 5、04261070数字逻辑 《数字逻辑》是计算机科学与技术专业的必修课。本课程是学习数字电路逻辑设计的理论和方法的一门课程。通过本课程的学习,使学生在深入理解理论的基础上,掌握数字电路组合网络和时序网络的分析与设计方法。前导课为《电路与电子技术》,后续课为《计算机组成原理》、《微机接口技术》、《计算机通信与网络》等课程。 参考教材:《数字逻辑与数字系统》王永军等编,电子工业出版社。 考核方式:考试。 6、04261080计算机组成原理 《计算机组成原理》是计算机科学与技术专业的必修主干课。本课程以《数字逻辑设计基础》及《汇编语言程序设计》为基础,主要讲授运算基础,运算器与运算方法;控制器与微程序设计;存储系统与辅助存储器;输入输出系统;计算机系统概述。通过本课程的学习,使学生能够较深入地理解与掌握计算机各功能部件的逻辑设计与实现,以及计算机整机各部件间的逻辑关系与连接。为后续课《微机接口技术》等奠定了理论与实验基础。

软件工程实验答案

实验一 实验内容: 1.上网了解查询软件工程网站和相关软件工程知识 2.了解软件工程环境概念、层次、组成和开发要求。 3.查询现有主流的软件工程工具及其功能、用途、特点及适用范围。 4.浏览CASE工具。通过互联网了解现有软件工程主流工具,完成表的内容。 表1-2软件工程工具分类

Firefly 开源奇葩: CVS 5、 1:自动化测试工具,其中有Web的,应用软件的,还有单兀测试的?以上具有代表]性常用的软件是: Sele nium, Watir, Winrunner, Loadr unner, Junit 等等 2:软件测试管理工具。代表性常用软件 有:Testdirector , ClearQuest 和bugzilla 等 6、版本控制工具;文档 分析工具;开发信 息库工具;逆向工 程工具;再工程工 具。 7、DbgView 调试信息查 看器 8、SFRE 9、gprof 上的存储目录以供客户端访问,这将带来 F /V 虫 定安全隐忠 Firefly服务器上的存储目录不用共享,对客户端不透明,客户端不可直接访问存储目录,使 系统更安全可靠 CVS采用C/S模式,不需要共享服务器上的存储目录,安全性较好 PVCS基于文件系统共享,而且需要以"可 写"的权限共享存储目录,存在较大的安全隐患VSS基于文件系统共享实现对服务器的访问,需要共享存储目录,这将带来一定安全隐患 5、提高测试人员的工作效率和质量 6、 7、bgView调试信息查看器不仅仅能作为调试信息输出,而且可以作为一个信息输出软件,监视您的软件运行,目前支持mfc和windows 下dos信息输出. &从整体上支持该分析阶段的再工程自动化工具 9、用gprof对程序进行分析主要分以下三个步 骤: l 用编译器对程序进行编译,加上-pg 参数。 l 运行编译后的程序。 l 用gprof命令查看程序的运行时信 息 1-3

软件工程实验内容

实验指导(Experiments) 实验题目:在以下范围内任选一道题目或自定一个题目。

题目医院病房监护系统 在医院的病房里,将病症监视器安置在每个病床,对病人进行监护。监视器将病人的病症信号(组合)实时地传送到中央监护系统进行分析处理。在中心值班室里,值班护士使用中央监护系统对病员的情况进行监控,监护系统实时地将病人的病症信号与标准的病诊信号进行比较分析,当病症出现异常时,系统会立即自动报警,并打印病情报告和更新病历。系统根 据医生的要求随时打印病人的病情报告,系统还定期自动更新病历。

实验内容 实验一软件需求分析 1.实验目的: 1) 根据所选定题目进行需求分析工作; 2) 通过实例掌握结构化数据流分析技术; 3) 进行业务需求分析、用户需求、功能需求、非功能需求分析; 2.实验要求: 要求做到使用结构化数据流分析技术分析课题需求,写出详细的数据流图和数据字典,数据流图的基本处理的个数不得少与2 个。 3.实验内容: 用结构化数据流分析技术进行软件系统需求分析,得出系统得数据流图和数据字典。 4.实验步骤: 1) 通过相关途径进行需求分析。 2) 综合利用Internet 网和相关书籍整理并完善需求分析。 3) 画出系统数据流图。 4) 得出系统数据字典。 5.实验学时:3学时。 6.实验结果:上交实验报告。 实验二软件设计 1.实验目的: 1) 建立初始结构图; 2) 对初始结构构图进行改进、优化; 2.实验要求: 用面向数据流的软件设计技术,对上一实验的数据流图和数据字典,进行总体设计;要求做到对上一实验的软件需求进行软件结构设计。 3.实验内容: 主要解决实现该系统需求的程序模块设计问题。(包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。) 4.实验步骤: 1.首先确定系统总体设计方案。 2.完成系统的模块结构图及模块的功能说明 3.完成系统的接口设计 4.完成系统的数据结构设计 5.实验学时:2 学时。 6.实验结果:上交实验报告。

软件工程实验课题

图书管理系统 组长:杨晓华 组员:巴雅尔图、那日苏、张天、 牛莉、杨宇婷 作业提交日期:二О一五年十月3三十日

作者简介 组长:杨晓华学号:120714241 学院:经济管理学院 组员:巴雅尔图学号:110412185 学院:生态环境学院那日苏学号:111710874 学院:兽医学院 张天学号:120714242 学院:经济管理学院 牛莉学号:120714767 学院:经济管理学院 杨宇婷学号:120715553 学院:经济管理学院

图书管理系统 摘要 简单介绍了图书管理系统数据库的设计和系统功能的实现过程。该系统是运行在学校网络上的网络图书管理系统,由图书编目,图书管理,读者管理,资料管理,Web查询等几个子系统组成,,实现了图书资料的计算机网络管理和Web查询功能。计算机技术的迅猛发展,特别是随着网络技术的出现标志着信息时代已经来临。信息化浪潮、网络革命在给社会带来冲击的同时,也使图书馆业务受到了强烈的冲击,图书馆传统的管理和服务方式已不能适应读者对日益增长的文献信息的需求,建设图书馆信息网络系统,是图书馆现代化建设的客观要求。建设以计算机为核心的图书馆信息网络,实现图书馆管理和服务的自动化,更好地为科技工作服务,是图书馆发展的必由之路。目前,国内大部分高校图书馆都实现了网络管理,目前图书馆都在在朝着这个方向发展。 关键词:图书,网络,数据库,管理系统,VC

一、系统可行性分析 1.总体功能设计 根据高校图书馆的实际情况和校园网网的现状,我们确定了网络图书系统应该具备8个方面的功能,它们是图书编目,图书采购,图书管理,读者管理,标准管理,资料管理,系统维护,Web查询。其中Web查询是该系统突出的特点,它的实现是因为有学校校园网的支持。系统组成和功能框图见图1。 图2 业务流程图 图3 读者

(完整)软件工程学习心得体会

(完整)软件工程学习心得体会 编辑整理: 尊敬的读者朋友们: 这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)软件工程学习心得体会)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。 本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)软件工程学习心得体会的全部内容。

软件工程学习心得体会 学习了这门课程,还有老师们的多元化教课,不但让我从理论上掌握软件工程,还有从不 同的实例,让理论和实践得到了很好的结合。整一个学期下来,总的来说还是学到了很多东西的,有很多地方是值得肯定的,其实在我看来,软件工程与其说是一门课程,不如说是一门思想。是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为 了一个综合的一个能够解决问题的思想集合. 要学习软件工程,学会如何系统的思考,以及养成良好的编码习惯,想学好软件工程,就 必须知道软件工程的目标、过程和原则:软件工程目标:生产具有正确性、可用性以及开销 合宜的产品。正确性指软件产品达到预期功能的程度. 可用性指软件基本结构、实现及文档为用户可用的程度.开销合宜是指软件开发、运行的 整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决 的问题,它们形成了对过程、过程模型及工程方法选取的约束. 软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件 工程过程主要包括开发过程、运作过程、维护过程.它们覆盖了需求、设计、实现、确认以及 维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统 结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可 用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行 的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求.维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培 训过程等. 软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须 遵循的原则。 pad图:它是用结构化程序设计思想表现程序逻辑结构的图形工具.pad也设置了五种基本 控制结构的图示,并允许递归使用。hipo图:hipo图是由一组ipo图加一张hc图组成。它是 美国ibm公司在软件设计中使用的主要表达工具.hc图既是层次图,用于表示软件的分层结构。hc图中的每一个模块,均可用一张ipo图来描述。ipo 图由输入、处理和输出三个框组成,需 要时还可以增加一个数据文件框,这种图形的优点,是能够直观地显示输入处理输出三者之间 的联系。还有测试方法:按照测试过程是否在实际应用环境中来分,有静态分析与动态测试。 测试方法有分析方法(包括静态分析法与白盒法)与非分析方法(称黑盒法).静态分析技术:不 执行被测软件,可对需求分析说明书、软件设计说明书、源程序做结构检查、流程分析、符号 执行来找出软件错误。动态测试技术:当把程序作为一个函数,输入的全体称为函数的定义域,输出的全体称为函数的值域,函数则描述了输入的定义域与输出值域的关系。还学习了其他很 多工具、语言、方法等,虽然不是都学得很透彻,但我相信在今后的学习中一定会慢慢的完善的。 软件工程对于初学者来说,知识基础较薄弱,对一些应用操作、概念、工具方法等理解起来较 为困难,要能从整体概念上较好地理解和把握、学好软件工程,不是仅仅把几本专业书籍细致 地看几遍,然后上机练习几次就可以成功,学习过程中要注意多看多练要注意结合实际,更要

(上课)软件工程实验一

实验指导书课程名称软件工程导论 学院信息工程学院 班级 学号 姓名 2018年 2 月 24 日

系统简介:某单位准备开发一个购买办公用品与设备的总务办公管理系统。办公用品的购买申请由各科室提出,由负责总务工作的办公室统一收集。其中,购买申请的金额低于500元(含500元)可以由总务办公室直接审批,而高于500元的购买申请由机构主管领导审批,批准的购买申请形成采购清单由采购员负责购买,同时应记录每次实际购买清单,进行入账。在提出购买申请时要包括下述数据:申请单位、物品名称、物品数量、预计价格、物品用途等。每次购买完成后应记录以下数据:物品名称、物品数量、价格、总金额、购买日期、经办人等。 案例二:火车票预订系统 系统简介:某高校后勤集团为了学生寒暑假返乡,办理代学生预订返乡火车票事务,订票必须提前三天办理,后勤订票处提前三天向火车站办理购票事务。订票处使用一台微机处理订票后购票事务,学生订票一次称为一个事务,由订票员将其输入在微机中,系统核实订单后,将订票信息记录放在订票库中。系统每天打印预订三天的购票单,并更新订票库。 请对以上系统进行业务流程分析后,绘制出该系统的系统流程图。 实验原理: 系统流程图就是描绘物理系统的传统工具。就是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等等)。表达的就是信息在系统各部件之间流动的情况,而不就是对信息进行加工处理的控制过程。 系统业务流程图的符号:

基本符号 系统符号实验过程与结果: 一、操作步骤: 1.运行Microsoft Office Visio 2010

2.选择流程图中的基本流程图模板 3.用鼠标选拉图标进行绘图 二、实验结果:

软件工程实验

软件工程实验 实验一结构化分析实验(2学时) 实验目的:通过此实验了解结构化分析的特点和步骤,以及结构化分析所采用的基本图形工具。 实验内容: 假设你在一所职业高中工作,负责该校信息系统的建设和维护。财务科长请你研究用学校拥有的pc机生成工资明细表和各种财务报表的可能性。 实验要求: 1.问题定义:请在这个阶段描述你需要解决的问题。包括用户面临的问题和预期的项目规模。最后生成一份问题定义报告书。 2.可行性研究:在这个阶段产生处理工资事务的大致过程,画出高层逻辑模型,并且画出相应的数据流图,建立数据字典。 3.对此系统进行成本效益分析。 实验二结构化设计实验(2学时) 实验目的:能够通过结构化分析的结构进行设计,了解设计过程中的模块化原理。 实验内容:在上一次实验已经用结构化分析方法详细地分析了这个工资支付系统,请从结构化分析所得到的结果(完整数据流图),判断为事务流或是变换流,采用模块化的方法,设计工资支付系统的结构。最终生成一个工资支付软件结构。 实验要求: 写出设计过程、画出工资支付软件结构,用层次图表现。 实验三软件测试实验(2学时) 实验目的:了解软件测试的基本概念,以及黑盒、白盒测试的基本过程。 实验内容: 设计测试下列函数的测试方案: 函数Search(somearray,size,value)的功能是,在一个整数数组somearray中搜索一个值为value的整数,如果数组中有这个数,则函数值等于该数的下标,否则函数值等于-1。数组的长度由参数size指定。假定数组第一个元素的下标为1。 实验要求: 1.采用黑盒测试的方法,写出相应的测试用例 2.用c语言实现此函数,并且由此设计白盒测试方案(选做)。 实验四面向对象分析(2学时) 实验目的:通过采用面向对象的方法对问题进行分析,建立系统的对象模型和功能模型。动

(完整版)软件工程课后答案

《软件工程》作业及答案 1-1 什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。软件危机典型表现:对软件开发成本和进度的估计常常很不准确。用户对“已完成的”软件系统不满意的现象经常发生。软件产品的质量往往靠不住。软件常常是不可维护的。软件通常没有适当的文档资料。软件成本在计算机系统总成本中所占的比例逐年上升。软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。管理和控制软件开发过程相当困难。软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。 1-2 假设你是一家软件公司的总工程师,当你把图1.1给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”你怎么反驳他? 1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机? 答:软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。 软件工程本质特性:1、软件工程关注于大型程序的构造;2、软件工程的中心课题是控制复杂性;3、软件经常变化;4、开发软件的效率非常重要;5、和谐地合作是开发软件的关键;6、软件必须有效地支持它的用户;7、在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。 消除软件危机的途径:为了消除软件危机,首先应该对计算机软件有一个正确的认识。必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早期发展阶段形成的一些错误概念和做法。应该开发和使用更好的软件工具。为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。 1-6 什么是软件过程?它与软件工程方法学有何关系? 答:软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件工程方法学包含软件过程。 1-7 什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。 答:生命周期模型简洁地描述软件过程,规定了把生命周期划分成哪些阶段及各个阶段执行顺序。 瀑布模型历史悠久、广为人知,它的优势在于它是规范的、文档驱动的方法;这种模型的问题是,最终开发出的软件产品可能并不是用户真正需要的。 快速原型模型正是为了克服瀑布模型的缺点而提出来的。它通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见的办法,获取用户的真实需求。 增量模型具有可在软件开发的早期阶段使投资获得明显回报和较易维护的优点,但是,要求软件具有开放的结构是使用这种模型时固有的困难。 风险驱动的螺旋模型适用于内部开发的大型软件项目,但是,只有在开发人员具有风险分析和排除风险的经验及专门知识时,使用这种模型才会获得成功。 快速原型模型:适合小型软件; 螺旋模型:适合内部开发的大规模软件项目。 2-1 在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性? 答:可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。至少应该从下述三方面研究每种解法的可行性:(1)技术可行性;(2)经济可行性;(3)操作可行性。 2-5 北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。 请用2.5.2小节讲述的定义数据的方法,定义上述的电话号码。 答:电话号码=[校内电话|本市电话|外地电话] 非零数字字符=[1|2|3|4|5|6|7|8|9] 校内电话=非零数字字符+3{数字}3 本市电话=0+非零数字字符+7{数字}7 外地电话=0+区码+非零数字字符+7{数字}7 3-1 为什么要进行需求分析?通常对软件系统有哪些需求? 答:为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来烦恼。 确定对系统的综合要求:1、功能需求;2、性能需求;3、可靠性和可用性需求;4、出错处理需求;5、

软件工程实验指导

软件工程实验指导书 适用专业:计算机科学与技术、软件工程、编写人: 信息技术学院 2012年8月

前言 软件工程实验是为计算机相关专业本科《软件工程》课程配套设置的,是《软件工程》课程讲授中一个重要的、不可或缺的实践环节。其目的是使学生能够针对具体软件工程项目,全面掌握软件工程管理、软件需求分析、软件初步设计、软件详细设计、软件测试等阶段的方法和技术,通过该课程设计使学生进一步理解和掌握软件开发模型、软件生命周期、软件过程等理论在软件项目开发过程中的意义和作用,培养学生按照软件工程的原理、方法、技术、标准和规范,进行软件开发的能力,培养学生的合作意识和团队精神,培养学生对技术文档的编写能力,从而使学生提高软件工程的综合能力,提高软件项目的管理能力。 按该课程的特点,实验内容包括软件开发的两大方法学的专题训练,即结构化(生命周期学)的方法学和面向对象的方法学,通过对一个简单项目,要求学生利用结构化软件开发技术或面向对象的软件开发技术完成对该项目的开发。因此设置五个实验项目,从项目发的准备工作,系统分析过程,系统设计过程,软件测试到系统实施,覆盖软件开发的整个过程,此外又引入我国国家《计算机开发规范》,以规范技术文档的书写标准,提高实验教学质量。 通过实验训练,达到如下目的: 使学生进一步了解和掌握软件工程原理,提高对实际项目的分析和设计能力,通过实验课程,熟悉和基本掌握软件工程方法学、软件开发的过程,文档资料的编写格式及规范,全面领会和贯通所学习的理论知识,从而培养学生综合运用所学课程知识,分析解决问题的能力,培养学生理论联系实际作风,实事求是,严肃认真的科学态度和良好的工作作风,为今后从事科学研究工作打下基础。

软件工程实验一

实验报告(一) 课程名称_ 软件工程 __ 共页系别__ 计算机________________ 实验 1 日期年月日专业班级____ 08计算机科学与技术___ 实验报告日期年月日 姓名_ 辛杰彪 _________学号 200841402238 ___ 实验名称: 一.实验目的 借助参考资料及INTERNET的搜索功能,在更大的范围内接触多种软件开发模型实例,学会根据系统的不同功能选择合适的软件开发模型。 二.实验任务 选择列举两个或两个以上且不同的软件开发模型实例并加以分析。 三.实验要求 1、所选实例不可与教材的内容相同 2、各实例所选择的软件开发模型应不相同 3、对实例进行说明,即每个实例的阐述应包括:第一,系统概况(包括系统主 要功能及系统流程图);第二,选用的开发模型(必须要分析选用原因) 4、书写“实验报告” 四.实验内容 案例一:基于模型设计的电池管理系统开发 1.功能分析: 功能需求:(1)对电池的电流电压、温度及模块电压进行测量; (2)对各种异常状况分级报警; (3)对电池组进行热管理; (4)与整车通过CAN进行总线通信;……

性能需求:(1)精确的计算电池的荷电状态,误差不超过10%(SOC, State of Charge); (2)总电压的检测范围是250-440V,测量精度不低于±2V;…… 非功能需求:(1)电压电流单体电压采样周期为10ms,温度采样周期1ms; (2)电池状态信息每隔100ms发送一次; (3)电池状态信息发送满足DFEV_CAN_02标准(企标);…… 领域需求:(1)要有很强的抗干扰能力,系统要有一定的自检、自诊断、自修复功能; (2)要在很宽的电压范围内(24—14伏)工作; (3)能在-20℃—85℃下正常工作;(4)具有防尘、防潮等功能;…… 2选择快速原型的原因: 由于电池管理对于系统的要求比较高,如果用瀑布模型,什么都做好了,但是精确度例如电压的范围,如果不达到标准,不符合要求,要重做,这样的成本比较大。如果用快速原型的话, 如果发现系统不达标也可以马上改,这时候成本就比较低了。所以保险起见,还是选择快速原型的比较好。 案例二:构造银行业务模型 1.功能 用例增量 增量1:支票和储蓄账户的存款和取款 增量2:查询和转账 增量3:透支 每个增量内进行迭代:乐观的,正常的,悲观的 2.选择增量模型的原因 答:因为这个银行的业务是可以很明确分开的, 软件的每个功能之间是没什么太大联系,可以分开来做,增加了 灵活性,还有开发的难度,几个功能还可以同时开始,加快完成 的时间,风险降低,一个功能出错并不会影响到别的部分。所以 说,这增量模型是比较好的选择。

相关主题
文本预览
相关文档 最新文档