软件工程知识点总结(科大)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.计算机软件是一种特殊的逻辑产品,其为在计算机上运行的各种程序、数据及其说明程序的各种文档。
2.软件承担着双重角色,软件是一个产品,同时又是产品交付使用的载体。
3.软件测试目的,就是在系统交付客户之前能够发现(和改正)尽可能多的错误
4.白盒测试又称“玻璃盒测试”,白盒测试注重于程序控制结构。
5.黑盒测试也称为行为测试,黑盒测试注重于确认功能需求。
6.用户界面可以说是基于计算机的系统或产品的最重要的元素。如果界面的设计很糟糕,可能会严重的阻碍用户使用系统的计算处理能力。
7.一个弱的界面可能导致一个很好地设计和可靠实验的应用的失败。
8.三个重要的原则指导有效的用户界面设计:置系统与用户控制之下、减少用户的记忆负担和保持界面一致。
9. ★程序流程图
10.结构化程序设计:逻辑构成元素的顺序、条件和重复构成了结构化程序设计的基础。
顺序---实现了算法规约中的核心处理功能。
条件---允许根据逻辑情况选择处理的方式。
重复---提供了循环
11.图形设计符号:流程图和盒状图
12.程序设计语言PDL:结构化的英语或伪代码
13.构件级设计也称为过程设计,它在数据设计、体系结构设计和接口设计之后进行,其意图是将设计模型翻译为可以运行的软件。
14.构件级设计是使用某些能够容易翻译成源代码的中间表示来表示过程设计。
15.构件级设计的目的是要保证不仅能够完成翻译任务而且能够不在开始时引入错误,即在过程设计中避免错误的产生。16.★17. ★18. ★19. ★应用CAD系统工程常用数学计算工具软件体系结构设计
20. ★数据字典21. ★数据设计22.软件体系结构提供了待建造软件系统的整体视图,其描述软件构件的结构、组织、性质、以及它们之间的联系
23.软件结构包括模块和程序操作的各种数据表示
24.数据设计是软件体系结构设计的一个有机组成部分
25.体系结构关注与早期设计决策,并提供了可选择的系统结构体制
26.设计概念:抽象求精模块化
27.设计原则:(10个原则)
设计过程不应该受“隧道视野”的限制
设计对于分析模型应该是可跟踪的
设计不应该从头做起
设计应该缩短软件和现实世界中问题的“智力距离”
设计应该表现出一致性和集成性
设计的构建应该适合变更
设计的构建,应该使得即使遇到异常的数据、事件或操作条件时也能够平滑、轻巧地降级
设计不是编码,编码也不是设计
创建设计时就应该能够评估质量,而不是在事情完成以后
应该评审设计以减少概念性错误
28.软件设计的内容:数据设计体系结构设计接口设计构件级设计
29.设计过程:设计过程的目标评价设计质量的指导性原则设计任务集合
30.设计时将建造的某种事物的有意义的工程表示。软件设计创建软件的表达或模型,提供了软件数据结构、体系结构、接口和软件构件的设计细节---提供了软件系统实现所必须的工作基础。
31.对设计良好的软件而言,坚固是指程序不应含有任何妨碍其功能的缺陷,适用则是程序符合开发目标,赏心悦目意味着适用程序的体验是愉快的
32.★★★33.数据建模 1.数据对象描述-----数据字典(名称别名何处使用如何使用内容描述补充信息)2数据建模(数据对
象、属性和关系基数数据模型:
实体——关系图ERD)34. ★35.分
析建模的原则一.描述和理解问题
的信息领域;二.定义软件将实现的功
能;三.作为外部事件的结果,描述
软件的行为;四.通过问题的划分,描
述信息功能和行为的模型,逐渐以层
次的方式揭示细节。36.分析建模
的任务集合(评审需求扩展和细化
用户的场景数据建模功能建模)
分析建模使用文本和图表形式的组
合,以相对容易理解的方式描绘数据、
功能和行为的需求,并直接评审其正
确性、完整性、一致性。37. 用户
场景与分析建模一.用户场景
(use-case及其参与者开发
use-case)
二.构件分析模型(数据建模功能建
模行为建模)38.需求确认与规约
(协商需求确认需求规约需求)
39★40.软件需求的导出一.质量
功能部署(正常的需求期望的需求
令人兴奋的需求)二.功能性需求与
非功能性需求(功能性需求---描述系
统为用户或其他系统提供的服务
非功能性需求----系统开发过程中必
须遵守的约束:1.反映了软件的质量
属性 2.约束了系统的环境和技术 3.
约束了项目计划和开发方法)41.
软件的需求诱导(需求诱导的原则:
倾听有准备的沟通需要有人推动
最好当面沟通记录所有决定)
(软件需求的过程启动)42.软件
需求分析软件需求分析的作用和
目的(软件开发人员对软件需求分析
认识的误区缺乏可靠和有效的软
件需求分析的后果需求分析是连接
软件设计和构造的桥梁)软件需求分
析的工作活动
1.软件需求工程概述1发现领域
过程理解客户需要业务领域和
希望解决的问题理解客户业务
过程获取业务领域的专业词汇
建模客户业务过程 2.领域分析
领域分析是软件工程师了解背
景信息的过程业务领域与领域
专家领域分析的目标领域分
析信息归档3识别协作系统4.
发现系统需求 5.将结果提交客
户
2.基于计算机的系统工程 1.1.基
于计算机的系统定义:元素的
集合或排列,这些元素被组织在
一起通过处理信息完成某些预
定的目标2目标:支持某些业务
功能或开发可以被销售以生产
业务收入的产品。2.系统元素包
括软件、硬件、人员、数据库、
文档、规程
3.软件工程实践 1.软件工程实践
的精髓 1.理解问题(交流和分
析)2.计划解决方案(计划于建
模——软件设计)3.实施解决方
案(构造——代码生成)4.检查
结果的精确度(构造与部署——
软件测试、质量保证、用户技术
支持)2.软件工程实践的核心原
则包括存在价值、保持简洁、维
护视图、生产者要让消费者理解
★★★★
4.软件工程过程模型,是指能够覆
盖软件工程的过程、方法和工具
以及软件工程的一般阶段的开
发策略。过程模型的选择待建造
软件的特点,所采用的方法与工
具、以及需要的控制和交付的产
品。1.瀑布模型2.增量过程模型
——增量模型、RAD模型3.演
化过程模型——原型模型、螺旋
模型 4.面向对象软件工程过程
模型——统一软件开发过程★
5.软件工程过程:是一个为建造高
质量软件所需要完成的任务的
框架,是建造软件产品的一组活
动及其结果。通用过程框架活
动:1.交流——项目启动、需求
获取及其任务集合 2.计划—项
目评估、进度安排、项目跟踪等
3.建模——分析模型和设计模型
4.构造——代码生成和软件测试
5.部署——产品交付、技术支持、
用户反馈等及其相应的任务集
合
6.软件工程的定义:建立和使用一
套合理的工程原则,以便获得经
济的软件,这种软件是可靠地,
可以在实际及其上高速的运行。
1.定义A:软件工程是:1.将系
统化的、严格约束的、可量化的
方法用于软件的开发、运行和维
护,即将工程化应用与软件。2.
在1中所述方法的研究。2.定义
B:软件工程是在成本、时间及其
他约束条件下,通过对大型、高
质量的软件系统的系统化的开
发与演化,从而解决客户问题的
过程。
7.软件工程师由有创造力的,有组
织的人在定义好的,成熟的软件
过程中进行的,该过程适合于软
件开发人员建造的产品和产品
的市场需求。
8.软件工程的定义:建立和使用一
套合理的工程原则,以便获得经
济的软件,这种软件是可靠地,
可以在实际机器上高校地运行。
9.软件开发的工程化:各种形式、
各个应用领域的软件开发都需
要工程化,即通过采用软件工程
技术实现。
10.由于软件产品的特殊性,软件工
程从业人员的职业道德和行为
准则显得更加重要。
11.软件产品的分类方法:由软件产
品的角度分类:通用软件产品、
定制软件产品、嵌入式软件。由
软件的应用领域:系统软件、应
用软件、工程科学软件、嵌入式
软件、产品线软件、Web应用软
件、人工智能软件、开放计算、
网络资源、开源软件。
12.计算机软件是一种特殊的逻辑
产品,其为计算机上运行的各种
程序、数据及其说明程序的各种
文档。软件承担着双重的角色,
软件是一个产品,同时又是产品
交付使用的载体。
13.软件是逻辑的而不是有形的,软
件是基于计算机的系统元素,因
此软件具有与硬件完全不同的
特征。
14.软件是被开发或设计的,而不是
传统意义上的被制造;软件不会
“磨损”;虽然软件产品正在向
基于构件的组装方向发展,但是
大多数软件仍是定制的
15.测试原则:a所有的测试都应可
以追溯到客户需求。B应该在测
试工作真正开始之前较长时间
就进行测试计划。
16.测试目的:a用最少的实践和工
作量,系统地揭示不同的错误;
b证实软件依据规约所应具有的
功能和性能。
17.测试注意问题:a没有找到错误
的测试并不一定是成功的测试;
b测试无法证明错误和缺陷不存
在,只能表示其已经出现;在软
件开发的早、中期,软件开发人
员视图由抽象概念到具体实现
来创建软件系统;在测试阶段,
软件测试人员试图“摧毁”已完
成的软件系统;但是测试是为了
发现错误,而非真正刻意的通过
各种手段将已完成的系统摧毁。
18.软件测试是软件质量保证的关
键元素,并代表了规约、设计和
编码的最终评审。通常,软件开
发者将30%—40%的项目工作
量花费在测试上,在一些非常重
要的软件项目上所花费的测试
时间可能是一般项目的3—5倍.
19.措施:a测试试图努力去“破坏”
软件;b以严格的方式设计测试
案例并评审其完全性。
20.重要性:a当程序执行时,用户
在使用系统的同时实际上也是
测试B必须在程序交付用户之
前,已消除错误的意图去执行。
C为了发现最大可能数量的错
误,测试必须被系统的进行,并
且测试案例必须用严格的技术
来设计。
21.步骤:软件的测试通常从两个不
同的视角进行;a使用“白盒”
测试技术测试内部程序逻辑b使
用“黑盒”测试技术测试软件需
求。
22.@
23.构件及设计内容a概念:构件级
设计建立对数据结构的操纵;确
定通过软件构件的接口实现的
通信;实现每个构件处理算法所
需的算法细节。
24.步骤:a用户界面的设计从标示
用户、任务和环境需求开始;b
一旦标示出用户任务,则创建和
分析用户场景;c定义一组界面
对象和动作,并创建屏幕布局。
D屏幕布局描述图形化的设计
构思和各种图示位置,定义屏幕
描述性文本,窗口命名与规格说
明。
25.a用户界面是基于计算机的系统
或产品的重要的元素之一。B如
果界面的设计很糟糕,可能会严
重的阻碍用户使用系统的计算
处理能力。C一个弱的界面,可
能导致一个设计很好和实现可
靠的应用系统的失败。
26.三个重要的原则指导有效的用
户界面设计:a置系统于用户控
制之下;b减少用户的记忆负担;
c保持界面一致。
27.界面确认着重于:a界面正确地
实现每个用户任务的能力、适应
所有任务变更的能力以及达到
所有一般用户需求的能力b界面
容易使用和学习的程度。C用户
接受界面作为他们工作中有用
工作的程度。
28.通常提供如下机制:a 管理输入
设备b确认用户输入c处理错
误和显示出错消息d提供反馈
f提供帮助和提示g处理窗口、
域和窗口内的滚动h建立应用
软件和界面间的连接i允许用
户定制界面
29.界面构造a构建用户界面原型,
由用户进行检查,然后根据用户
的意见进行修改b许多高级语
言或专用开发工具提供用户界
面的开发功能,他们为简化窗
口、菜单、设备交互、出错消息、
命令以及很多其他交互环境元
素的创建提供了各种构件和对
象
30.命令标记----许多高级用户喜欢
面向命令的交互方式,提供命令
交互时,应考虑:a每一个菜单
选项是否都有对应命令b以何
种方式提供命令---控制序列、功
能键和输入命令c学习和记忆
命令的难度如何,忘记命令怎么
办?d用户是否可以定制和缩
写命令
31.常见界面设计问题:a系统响应
时间---用户从开始执行动作到
软件给出预期的响应,其属性包
括长度和可变性b用户帮助设
施---集成的帮助设施和附加的
帮助设施。帮助设施的构造涉
及:1提供全部或部分功能的帮
助2用户采用帮助菜单、特殊功
能键或HELP命令请求帮助3
在另一个窗口、或屏幕待定位置
的简单提示表示帮助4通过返
回、功能键或控制序列回到正常
的交互状态5采用平面式、分层
式或超文本构造帮助信息
32.定义界面对象和动作:a界面设
计中的一个重要步骤是定义界
面对象和作用于它们之上的动
作b当所有的重要对象和动作
被定义,开始进行屏幕布局,包
括图符的图形设计和放置、描述
性屏幕文字的定义、窗口的规约
和命令、各种菜单项的定义等
33.界面设计工程:a建立任务的目
标和意图b为每个目标或意图
制定特定的动作序列c按在界
面上执行的方式对动作序列进
行规约d指明系统状态,即执行
动作时的界面表现f定义控制
机制,即用户可用的改变系统状
态的设备和动作g指明控制机
制如何影响系统状态h指明用
户如何通过界面上的信息解释