昆明理工大学软件工程期末考试考点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
昆明理工大学软件工程
期末考试考点
文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-MG129]
概论
软件:
计算机软件指计算机系统中的程序及其文档
软件的特点:
•软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算
•软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大
•软件的使用没有硬件那样的机械磨损和老化问题
软件工程定义:
软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的
软件工程的框架:
•目标:
生产具有正确性、可用性以及价格合宜的产品
正确性反映软件产品实现相应功能规约的程度
可用性反映软件的基本结构、实现及其文档为用户可用的程度
价格合宜反映软件开发与运行的总代价满足用户要求的程度
•过程
生产一个最终满足需求且达到工程目标的软件产品所需要的步骤
软件工程过程包括:开发过程、运作过程、维护过程、管理过程、支持过程、获取过程、供应过程、剪裁过程等
•原则
选取适宜的开发模型
采用合适的设计方法
提供高质量的工程支持
重视软件工程的管理
软件生存周期:
计算机系统工程、需求分析、设计、编码、测试、运行和维护
系统工程
计算机系统的元素:
软件、硬件、人员、数据库、文档和规程
系统工程的任务:
•识别用户的要求
•系统建模和模拟
•成本估算及进度安排
•可行性分析
•生成系统规格说明
可行性分析:
开发一个基于计算机的系统通常都受到资源(人力、财力、设备等)和时间上的限制,可行性分析主要从经济、技术、法律等方面分析所给出的解决方案是否可行,能否在规定的资源和时间的约束下完成
需求工程
软件需求:
用户对目标软件系统在功能、行为、性能、设计约束等方面的期望
软件需求的分类:
功能需求、性能需求、用户或人的因素、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密要求、可靠性需求、软件成本消耗与开发进度需求、其他非功能性要求
需求工程的主要活动:
需求获取、需求分析、协商与建模、需求规约与验证、需求管理
需求获取方法与策略:
建立顺畅的通信途径、访谈与调查、观察用户操作流程、组成联合小组、用况
设计工程
软件设计的目标、任务:
软件设计过程则解决“怎么做”的问题
使用一种设计方法,软件分析模型中通过数据、功能和行为模型所展示的软件需求的信息被传送给设计阶段,产生数据/类设计、体系结构设计、接口设计、部件级设计
软件设计原则:抽象化与逐步求精
抽象:是在软件设计的规模逐渐增大的情况下,控制复杂性的基本策略。
•抽象的过程是从特殊到一般的过程,上层概念是下层概念的抽象,下层概念是上层概念的精化和细化。
•软件设计中主要抽象手段有:过程抽象和数据抽象
逐步求精:把问题的求解过程分解成若干步骤或阶段,每步都比上步更精化,更接近问题的解法
抽象使得设计者能够描述过程和数据而忽略低层的细节,而求精有助于设计者在设计过程中揭示低层的细节
模块化:即把软件按照规定原则,划分为一个个较小的,相互独立的但又相互关联的部件,实际上是系统分解和抽象的过程。
模块:是数据说明、可执行语句等程序对象的集合,它是单独命名的,并且可以通过名字来访问
信息隐藏:
•每个模块的实现细节对于其它模块来说应该是隐蔽的
•块中所包含的信息不允许其它不需要这些信息的模块使用
•通过信息隐蔽,则可定义和实施对模块的过程细节和局部数据结构的存取限制
内聚:是一个模块内部各个元素彼此结合的紧密程度的度量
耦合:是模块之间的相对独立性(互相连接的紧密程度)的度量•模块之间的连接越紧密,联系越多,耦合性就越高,而其功能独立性就越弱
•一个模块内部各个元素之间的联系越紧密,则它的内聚性就越高
•功能独立性比较强的模块应是高内聚低耦合的模块
软件测试
白盒测试:把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,检查程序中所有逻辑路径是否都按预定的要求正确地工作
白盒测试主要用于对模块的测试:程序模块中的所有独立路径至少执行一次、对所有逻辑判定的取值都至少测试一次、在上下边界及可操作范围内运行所有循环、测试内部数据结构的有效性等
黑盒测试:把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求
黑盒测试可用于各种测试:不正确或遗漏的功能、接口错误,如输入/输出参数的个数、类型等、数据结构错误或外部信息(如外部数据库)访问错误、性能错误、初始化和终止错误
程序设计语言和编码
程序设计语言的3种评价观点:
心理特性
在维持现有机器的效率、容量和其它硬件限制条件的前提下,程序员总希望选择简单易学、使用方便的语言,以减少程序出错率,提高软件可靠性,从而提高用户对软件质量的可信度
工程特性
程序设计语言的特性影响人们思考程序的方式,从而也限制了人们与计算机进行通信的方式。为满足软件工程的需要,程序设计语言还应该考虑:将设计翻