- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-MG129]
文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-MG129]
昆明理工大学软件工程期末考试考点
概论
软件:
计算机软件指计算机系统中的程序及其文档
软件的特点:
软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算
软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大
软件的使用没有硬件那样的机械磨损和老化问题
软件工程定义:
软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的
软件工程的框架:
目标:
生产具有正确性、可用性以及价格合宜的产品
正确性反映软件产品实现相应功能规约的程度
可用性反映软件的基本结构、实现及其文档为用户可用的程度
价格合宜反映软件开发与运行的总代价满足用户要求的程度
过程
生产一个最终满足需求且达到工程目标的软件产品所需要的步骤
软件工程过程包括:开发过程、运作过程、维护过程、管理过程、支持过程、获取过程、供应过程、剪裁过程等
原则
选取适宜的开发模型
采用合适的设计方法
提供高质量的工程支持
重视软件工程的管理
软件生存周期:
计算机系统工程、需求分析、设计、编码、测试、运行和维护
系统工程
计算机系统的元素:
软件、硬件、人员、数据库、文档和规程
系统工程的任务:
识别用户的要求
系统建模和模拟
成本估算及进度安排
可行性分析
生成系统规格说明
可行性分析:
开发一个基于计算机的系统通常都受到资源(人力、财力、设备等)和时间上的限制,可行性分析主要从经济、技术、法律等方面分析所给出的解决方案是否可行,能否在规定的资源和时间的约束下完成
需求工程
软件需求:
用户对目标软件系统在功能、行为、性能、设计约束等方面的期望
软件需求的分类:
功能需求、性能需求、用户或人的因素、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密要求、可靠性需求、软件成本消耗与开发进度需求、其他非功能性要求
需求工程的主要活动:
需求获取、需求分析、协商与建模、需求规约与验证、需求管理
需求获取方法与策略:
建立顺畅的通信途径、访谈与调查、观察用户操作流程、组成联合小组、用况
设计工程
软件设计的目标、任务:
软件设计过程则解决“怎么做”的问题
使用一种设计方法,软件分析模型中通过数据、功能和行为模型所展示的软件需求的信息被传送给设计阶段,产生数据/类设计、体系结构设计、接口设计、部件级设计
软件设计原则:抽象化与逐步求精
抽象:是在软件设计的规模逐渐增大的情况下,控制复杂性的基本策略。
抽象的过程是从特殊到一般的过程,上层概念是下层概念的抽象,下层概念是上层概念的精化和细化。
软件设计中主要抽象手段有:过程抽象和数据抽象
逐步求精:把问题的求解过程分解成若干步骤或阶段,每步都比上步更精化,更接近问题的解法
抽象使得设计者能够描述过程和数据而忽略低层的细节,而求精有助于设计者在设计过程中揭示低层的细节
模块化:即把软件按照规定原则,划分为一个个较小的,相互独立的但又相互关联的部件,实际上是系统分解和抽象的过程。
模块:是数据说明、可执行语句等程序对象的集合,它是单独命名的,并且可以通过名字来访问
信息隐藏:
每个模块的实现细节对于其它模块来说应该是隐蔽的
块中所包含的信息不允许其它不需要这些信息的模块使用
通过信息隐蔽,则可定义和实施对模块的过程细节和局部数据结构的存取限制
内聚:是一个模块内部各个元素彼此结合的紧密程度的度量
耦合:是模块之间的相对独立性(互相连接的紧密程度)的度量
模块之间的连接越紧密,联系越多,耦合性就越高,而其功能独立性就越弱
一个模块内部各个元素之间的联系越紧密,则它的内聚性就越高
功能独立性比较强的模块应是高内聚低耦合的模块
软件测试
白盒测试:把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,检查程序中所有逻辑路径是否都按预定的要求正确地工作
白盒测试主要用于对模块的测试:程序模块中的所有独立路径至少执行一次、对所有逻辑判定的取值都至少测试一次、在上下边界及可操作范围内运行所有循环、测试内部数据结构的有效性等
黑盒测试:把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求
黑盒测试可用于各种测试:不正确或遗漏的功能、接口错误,如输入/输出参数的个数、类型等、数据结
文档评论(0)