当前位置:文档之家› 软件工程

软件工程

软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件生命周期:软件定义、软件开发和运行维护。

软件过程模型:软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

通常使用生命周期模型简洁地描述软件过程。

生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。

常见的过程模型有瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型等。

结构化程序设计:进行以模块功能和处理过程设计为主的详细设计的基本原则。

结构化程序设计是过程式程序设计的一个子集,它对写入的程序使用逻辑结构,使得理解和修改更有效更容易。

(选择、顺序和循环)
黑盒测试:一般用来确认软件功能的正确性和可操作性,目的是检测软件的各个功能是否能得以实现,把被测试的程序当作一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确性.
白盒测试:是指实际运行被测程序,通过程序的源代码进行测试而不使用用户界面。

这种类型的测试需要从代码句法发现内部代码在算法、溢出、路径和条件等方面的缺点或者错误,进而加以修正。

模块独立性:而模块化开发即将一个软件分解为若干个小的部分,称为模块。

每个模块都可以被独立的开发、测试,在最后才组装成完整
的程序。

使得整个程序的结构清晰、容易理解、测试和修改。

但若模块之间关系纠缠不清则反而会增加开发的难度。

因此提倡模块遵循高内聚、低耦合的原则,保证模块有一个较好的独立性。


软件工程:指导计算机软件开发和维护的一门工程学科。

软件质量:软件质量指的是软件系统或软件产品满足规定或需求的能力的特征与特性。

集成测试:也叫组装测试或联合测试。

在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。

实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。

程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。

测试重点是模块间的衔接以及参数的传递等。

软件维护:软件维护是在交付之后修改软件系统或其部件的活动过程,以修正缺陷、提高性能或其他属性、适应变化的环境。

回归测试:回归测试是指在发生修改之后重新测试先前的测试以保证修改的正确性。

理论上,软件产生新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再次出现。

用例:是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。

参与者:所有参与到软件工程中的人员都称为参与者。

模块的内聚:一个模块内各个元素彼此结合的紧密程度,他是信息隐藏和局部化概念的自然扩展。

(功能内聚、顺序内聚、通信内聚)状态图:用来描述一个特定对象的所有可能状态及其引起状态转移的
事件
软件配置管理:是在软件的整个生命周期内管理变化的一组活动。

目标是使变化更准确且更容易被适应,在必须变化时减少所需花费的工作量。

软件可靠性:是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。

总体设计应考虑哪些问题:设想供选择的方案;选取合理的方案;推荐最佳方案;功能分解;设计软件结构;设计数据库;制定测试计划;书写文档;审查和复审。

可行性研究的任务有哪些:1)分析和澄清问题(现实与期望的距离)定义;2)分析员应该导出系统的逻辑模型;3)探索若干种可供选择的主要解法(即系统解决方案);4)研究每种解法的可行性,给出选择建议。

三种面向对象模型的主要功能:1)对象模型:对象模型表示静态的、结构化的系统的“数据”性质。

对象模型是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。

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

即对象的动态行为。

用状态图来描绘对象的状态、触发状态转换的事件、以及对象的行为(对事件的响应)。

每个类的动态行为用一张状态图来描绘,各个类的状态图通过共享事件合并起来,从而构成系统的动态模型。

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

表示方法:功能模型也通常由一组数据流程图表示。

在面向对象方法中,数据流程图没有在结构化分析中重要,有时可以省略。

数据字典:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

什么是详细设计?详细设计的主要任务是什么:确定应该怎样具体地实现所要求的系统;主要任务是 1.为每个模块确定采用的算法。

2.确定每一模块使用的数据结构。

3.确定模块接口的细节。

4.要为每一个模块设计出一组测试用例。

什么是需求分析?需求分析阶段的基本任务是什么:需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题。

1)确定对系统的综合要求;2)分析系统的数据要求;3)导出系统的逻辑模型;4)修整系统开发计划。

就程序设计语言的工程特性而言,对程序编码有哪些要求:(1)可移植性(2)开发工具的可利用性(3)软件的可重用性(4)可维护性。

简述场景和用例之间的关系:用例与场景的关系(脚本与用例的关系)就像类与实例的关系,即用例是场景的抽象,场景是用例的一个实例。

请论述 UML 中顺序图和协作图的主要区别:协作图和顺序图都表示出了对象间的交互作用,协作图和顺序图都表示出了对象间的交互作用,协作图和顺序图都表示出了对象间的交互作用,但没有明确表示对象间的关系。

协作图清楚地表示了对象间的关系,但时间顺序必须
从顺序号获得。

顺序图常常用于表示方案,而协作图用于过程的详细设计。

相关主题