昆明理工大学软件工程期末考试考点

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

昆明理工大学软件工程

期末考试考点

文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-MG129]

概论

软件:

计算机软件指计算机系统中的程序及其文档

软件的特点:

•软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算

•软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大

•软件的使用没有硬件那样的机械磨损和老化问题

软件工程定义:

软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的

软件工程的框架:

•目标:

生产具有正确性、可用性以及价格合宜的产品

正确性反映软件产品实现相应功能规约的程度

可用性反映软件的基本结构、实现及其文档为用户可用的程度

价格合宜反映软件开发与运行的总代价满足用户要求的程度

•过程

生产一个最终满足需求且达到工程目标的软件产品所需要的步骤

软件工程过程包括:开发过程、运作过程、维护过程、管理过程、支持过程、获取过程、供应过程、剪裁过程等

•原则

选取适宜的开发模型

采用合适的设计方法

提供高质量的工程支持

重视软件工程的管理

软件生存周期:

计算机系统工程、需求分析、设计、编码、测试、运行和维护

系统工程

计算机系统的元素:

软件、硬件、人员、数据库、文档和规程

系统工程的任务:

•识别用户的要求

•系统建模和模拟

•成本估算及进度安排

•可行性分析

•生成系统规格说明

可行性分析:

开发一个基于计算机的系统通常都受到资源(人力、财力、设备等)和时间上的限制,可行性分析主要从经济、技术、法律等方面分析所给出的解决方案是否可行,能否在规定的资源和时间的约束下完成

需求工程

软件需求:

用户对目标软件系统在功能、行为、性能、设计约束等方面的期望

软件需求的分类:

功能需求、性能需求、用户或人的因素、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密要求、可靠性需求、软件成本消耗与开发进度需求、其他非功能性要求

需求工程的主要活动:

需求获取、需求分析、协商与建模、需求规约与验证、需求管理

需求获取方法与策略:

建立顺畅的通信途径、访谈与调查、观察用户操作流程、组成联合小组、用况

设计工程

软件设计的目标、任务:

软件设计过程则解决“怎么做”的问题

使用一种设计方法,软件分析模型中通过数据、功能和行为模型所展示的软件需求的信息被传送给设计阶段,产生数据/类设计、体系结构设计、接口设计、部件级设计

软件设计原则:抽象化与逐步求精

抽象:是在软件设计的规模逐渐增大的情况下,控制复杂性的基本策略。

•抽象的过程是从特殊到一般的过程,上层概念是下层概念的抽象,下层概念是上层概念的精化和细化。

•软件设计中主要抽象手段有:过程抽象和数据抽象

逐步求精:把问题的求解过程分解成若干步骤或阶段,每步都比上步更精化,更接近问题的解法

抽象使得设计者能够描述过程和数据而忽略低层的细节,而求精有助于设计者在设计过程中揭示低层的细节

模块化:即把软件按照规定原则,划分为一个个较小的,相互独立的但又相互关联的部件,实际上是系统分解和抽象的过程。

模块:是数据说明、可执行语句等程序对象的集合,它是单独命名的,并且可以通过名字来访问

信息隐藏:

•每个模块的实现细节对于其它模块来说应该是隐蔽的

•块中所包含的信息不允许其它不需要这些信息的模块使用

•通过信息隐蔽,则可定义和实施对模块的过程细节和局部数据结构的存取限制

内聚:是一个模块内部各个元素彼此结合的紧密程度的度量

耦合:是模块之间的相对独立性(互相连接的紧密程度)的度量•模块之间的连接越紧密,联系越多,耦合性就越高,而其功能独立性就越弱

•一个模块内部各个元素之间的联系越紧密,则它的内聚性就越高

•功能独立性比较强的模块应是高内聚低耦合的模块

软件测试

白盒测试:把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,检查程序中所有逻辑路径是否都按预定的要求正确地工作

白盒测试主要用于对模块的测试:程序模块中的所有独立路径至少执行一次、对所有逻辑判定的取值都至少测试一次、在上下边界及可操作范围内运行所有循环、测试内部数据结构的有效性等

黑盒测试:把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求

黑盒测试可用于各种测试:不正确或遗漏的功能、接口错误,如输入/输出参数的个数、类型等、数据结构错误或外部信息(如外部数据库)访问错误、性能错误、初始化和终止错误

程序设计语言和编码

程序设计语言的3种评价观点:

心理特性

在维持现有机器的效率、容量和其它硬件限制条件的前提下,程序员总希望选择简单易学、使用方便的语言,以减少程序出错率,提高软件可靠性,从而提高用户对软件质量的可信度

工程特性

程序设计语言的特性影响人们思考程序的方式,从而也限制了人们与计算机进行通信的方式。为满足软件工程的需要,程序设计语言还应该考虑:将设计翻

相关文档
最新文档