软件工程重点整理.docx
- 文档编号:5841062
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:12
- 大小:90.17KB
软件工程重点整理.docx
《软件工程重点整理.docx》由会员分享,可在线阅读,更多相关《软件工程重点整理.docx(12页珍藏版)》请在冰豆网上搜索。
软件工程重点整理
软件工程重点
红色的是重点中的重点
前而数字是课本页码
第一章概论
1什么是计算机软件
计算机软件指计算机系统中的程序及其文档
3软件的特点
(1)软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算
(2)软件是被开发的或被设计的,它没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大
(3)软件的使用没有硬件那样的机械磨损和老化问题
4软件的分类
(1)系统软件(如操作系统、编译程序等)、
(2)支持软件(如数据库管理系统、网络软件、软件开发环境等)、
(3)应用软件(如实时软件、嵌入式软件、科学和工程计算软件、事务处理软件、人工智能软件等)
6软件工程定义
软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程
7生存周期
软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。
这个过程即为计算机软件的生存周期
软件生存周期大体可分为如下几个活动:
计算机系统工程、需求分析、设计、编码、测试、运行和维护
12能力成熟度模型CMM(了解一下)
初始级、可重复级、已泄义级、已管理级、优化级
18瀑布模型(重》
系统工程、需求分析与规约、设计与规约、编码与单元测试、集成测试系统测试、运行与维护
第二章系统工程
41系统工程的任务
(1)识别用户的要求,确泄待开发软件的总体要求和范围,
(2)系统建模和模拟
(3)进行成本估算,做出进度安排
(4)进行可行性分析,即从经济、技术、法律等方而分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中作出选择。
(5)生成系统规格说明书
42可行性分析
(1)经济可行性(成本、效益、货币的时间价值、投资回收期、纯收入)
(2)技术可行性(风险分析、资源分析、技术分析)
(3)法律可行性
第三章需求工程
48软件需求
指用户对目标软件系统在功能、行为、性能、设计约朿等方而的期望。
包括:
功能需求、性能需求、用户或人的需求、环境需求、界而需求、文档需求、数据需求、资源使用需求、安全保密要求、可靠性需求、软件成本消耗与开发进度需求、其他非功能需求
50需求获取方法与策略(重)
建立顺畅的通信途径、访谈与调查、观察用户操作流程、组成联合小组、用况
51图3.2
53创建用况模型的主要步骤
(1)确左谁会直接使用该系统,即参与者(Actor)
(2)选取其中一个参与者
(3)泄义该参与者希望系统做什么,参与者希望系统作的每件事将成为一个用况
(4)对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用况的基本过程
(5)描述该用况的基本过程
54需求分析原则(重)
1.必须能够表示和理解问题的信息域
2.必须能够定义软件将完成的功能
3.必须能够表示软件的行为(作为外部事件的结果)
4.必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细巧
5.分析过程应该从要素信息移向细节信息
第四章结构化分析与设汁
62第三段第一句概念(重)
软件设汁是把软件需求变换成软件表示的过程,主要包含两个阶段:
软件体系结构设计阶段和部件级设计阶段
64软件设计的过程(重)
制左规范、体系结构和接口设讣、数据/类设计、部件级(过程)设计、编写设计文档、设计评审
65设计的原则
抽象与逐步求精、模块化、信息隐藏、模块独立(高内聚低耦介)
68内聚耦合
内聚是一个模块内部各个元素彼此结合的紧密程度的度量
耦合是模块之间的相对独立性(互相连接的紧密程度)的度量
76图形表示法(重)
程序流程图、N-S图、PAD
81PDL的例子(重重重重重,有编程大题,可用中文写)
PROCEDUREspellcheckIS查找错拼的单词
BEGIN
splitdocumentintosinglewords
把整个文档分离成单词
loodupwordsindictionary
在字典中查这些单词
displaywordswhicharenotindictionary
显示字典中查不到的单词
createanewdictionary造一新字典
ENDspellcheck
外语法(关键字)、内语法(自然语言)
第五章结构化分析与设计(重点章)
86抽象和分解
抽象:
从作为整体的软件系统开始(第一层),每一抽象层次上只关注于系统的输入输岀分解:
将系统不断分解为子系统、模块……
随着分解层次的增加,抽象的级别越来越低,也越接近问题的解(算法和数据结构)自顶向下逐层分解充分体现了分解与抽象的原则
87图5.2
数据
字典
状态转换图
粗制规幼
88数据流图(DFD)(重重)
数摇流(dataflow),由一组固定成分的数据组成,代表
数摇的流动方向
C加工(process):
描述了綸入数据溢到输出数据溢的变
换,即将输入数据流加工成输出数据流
—文件(file):
使用文件、数据库等保存某些数据结果供以
—后使用
II源或宿(sourceorsink)*由Tfl固定成分的数拯组成,
1~'代表数摇的滾动方向
91数据流图画法
1画出系统的输入和输岀(顶层图)
2画岀系统内部(0层图)
3画出加工内部(l~n层图)
4重复第3步,直至每个尚未分解的加工都足够简单(即不必再分解)
97分层DFD的一致性和完整性
一致性:
父图与子图平衡、数据守恒.局部文件
完整性:
1每一个加工至少有一个输入数据流和一个输出数据流
2在整套分层数据流中,每个文件应至少有一个加工读该文件,有另一个加工写该文件
3分层DFD中的每个数据流和文件都必须命名(除了流入或流出文件的数据),并保持与数据字典一致
4分层DFD中的每个基本加工都应该有一个加工规约
115结构图
名词解释:
SA结构化分析SD结构化设计SP结构化程序设计
结构图的基本成分有:
模块、调用和数拯
模块是指具有一左功能的可以用模块爼调用的一组程序语句,如函数、子程序等
它们是组成程序的基本单元
一个模块具有其外部特征和内部特征
在SD中,我们只关注模块的外部特征,而忽略其内部特征
调用(call):
用从一个模块指向另一个模块的箭头来表示,其含义是前者调用了后者为了方便,有时常用直线替代箭头,此时,表示位于上方的模块调用位于下方的模块数据(data):
模块调用时需传递的参数可通过在调用箭头旁附加一个小箭头和数据名来表示
深度:
程序结构图中控制的层数,例如图中所示的结构图的深度是5
宽度:
程序结构图中同一层次上模块总数的最大值,例如图中所示的结构图的宽度为7扇出(fanout):
该模块直接调用的模块数目。
例如,例如图中模块M的扇岀是3,模块A的是2,模块B的扇岀是1
扇入(fanin):
能直接调用该模块的模块数目。
例如图中模块G的扇入是1,模块I的扇入是2,模块R的扇入是4
要会画初始结构图
方法:
将整个软件看作一个大的功能模块,通过功能分解不断将苴分解成若干个较小的功能模块,直至得到一组不必再分解的模块(结构图中的底层模块)
第七章面向对象的分析与设计(重点章)
149面向对象的基本槪念
面向对象=对象(object)
+分类(classification)
+继承(inheritance)
+通过消息的通信(communicationwithmessages)
可以说,采用这四个概念开发的软件系统是而向对象的
对象是指一组属性以及这组属性上的专用操作的封装体。
类是一组具有相同属性和相同操作的对象的集合。
一个类中的每个对象都是这个类的一个实例(instance)0
继承是类间的基本关系,它是基于层次关系的不同类共享数据和操作的一种机制。
消息传递是对象间通信的手段,一个对象通过向另一个对象发送消息来请求其服务。
151多态性和动态绑定
多态性是指同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果。
动态绑定是指在程序运行时才将消息所请求的操作与实现该操作的方法连接起来。
159UVIL记10种图(重,要记)
类图、内部结构图.协作图、构件图、用况图、状态机图、活动图、顺序图、通信图、部署图、包图
172表7.2
关系
说明
记号
关联
执行者与他所参与的一个用况之间的通信路径
扩展
扩展的用况到基本用况的一种关系,指出扩展的用况所左义的行为如何插入到基本用况所左义的行为中。
扩展的用况通过模块化方式增量地修改基本用况
扩展
>
包含
从基本用况到另一个用况(也称包含用况)的一种关系,指出包含左义的行为被包含在基本用况所立义的行为中。
基本用况能看到包含用况,并依赖于执行包含用况的结果,但两者相互间不能访问其他属性
包含
>
用况泛化
一个一般用况与一个更特殊的用况之间的关系,特殊用况课继承一般用况的特征
——>
182关联
关联描述了系统中对象或其他实例的连接。
关联主要有二元关联、多元关联、受限关联、聚集和组合
第九章人机界面设计
243黃金原则(重)
1•让用户拥有控制权
2•减少用户的记忆负担
3•保持界面一致第十一章软件测试
263软件测试的目的(重)
软件测试是为了证明程序是正确的(X)
测试是发现软件中的错误,而不能证明软件中没有错误。
测试的目的:
1测试是一个为了发现错误而执行程序的过程
2—个好的测试用例是指很可能找到迄今为至尚未发现的错误的测试用例
3—个成功的测试是指揭示了迄今为至尚未发现的错误的测试
265黑盒和白盒
测试用例的设汁方法大体可分为两类:
白盒测试和黑盒测试,也称白箱测试和黑箱测试白盒测试(又称为结构测试)把测试对象看作一个透明的盒子,测试人员根据程序内部的逻借结构及有关信息设计测试用例,检查程序中所有逻借路径是否都按预定的要求正确地工作。
白盒测试主要用于对模块的测试
黑盒测试(又称行为测试)把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求。
黑盒测试可用于各种测试
266白盒测试
常用的白盒测试方法有:
逻辑覆盖测试、基本路径復盖测试、数据流测试、循环测试逻辑覆盖测试是一种基本的白盒测试方法
覆盖标准:
语句覆盖、判立覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖
2力黑盒测试
黑盒测试是依据软件的需求规约,检査程序的功能是否符合需求规约的要求。
定要的黑盒测试方法有:
等价类划分、边界值分析、比较测试、错误猜测、因果图
边界值分析要掌握(匝)
1.如果输入条件规立了值的范I科,则选择刚刚达到这个范围的边界的值以及刚刚超出这个范围的边界的值作为测试输入数据。
例如,规左输入的考试成绩在0〜100之间,则取0,100,-1,101作为测试输入数据。
2.如果输入条件规泄了值的个数,则分别选择最大个数、最小个数、比最大个数多1、比最小个数少1的数据作为测试输入数据。
例如,规立一个运动员的参赛项目至少1项,最多3项,那么,可选择参赛项目分別是1项、3项、0项、4项的测试输入数据。
288单元测试
单元测试又称模块测试,它着重对软件设计的最小单元(软件构件或模块)进行验证
单元测试通常采用白盒测试,并且多个构件或模块可以并行进行测试
模块本身不是一个独立的程序,在测试模块时,必须为每个被测模块开发一个驱动(driver)程序和若干个桩(stub)模块。
289集成测试
经单元测试后,每个模块都能独立工作,但把它们放在一起往往不能正常工作。
集成测试又称组装测试,经单元测试后的模块需要集成为软件系统,集成测试是对集成后的软件系统进行测试,主要用来揭密设计•阶段产生的错误。
集成的方式有两种:
非增量集成测试、增量集成测试
290自顶向下自底向上
增量集成测试分为自顶向下集成测试盒自底向上集成测试
293a测试和卩测试(重垂)
«测试是由一个用户在开发者的场所进行的,软件在开发者对用户的"指导下”进行测试。
经«测试后的软件称为P版软件。
B测试是由软件的最终用户在一个或多个用户场所进行的,与a测试不同,开发者通常不在测试现场,因此,B测试是软件在一个开发者不能控制的环境中的“活的”应用,用户记录所有在0测试中遇到的(真正的或想象的)问题,并左期把这些问题报告给开发者,在接到
B测试的问题报告后,开发者对软件进行最后的修改,然后着手准备向所有的用户发布最终的软件产品。
第十三章软件维护与再工程
323软件可维护性
可维护性:
指理解、改正、调整和改进软件的难易程度。
对软件可维护性影响的主要因素有:
可理解性、可测试性、可修改性和可移植性提高软件可理解性的措施:
采用模块化的程序结构:
书写详细正确的文档;采用结构化程序设计;书写源程序的内部文档:
使用良好的编程语言;具有良好的程序设讣风格等
第十四章软件项目管理
338软件度槓(重)
软件度量是指计算机软件范围内的测量,主要是为产品开发的软件过程和产品本身定义相关的测量方法和标度
对软件开发过程度量的目的是为了对过程进行改进
对产品进行度量的目的是为了提高产品的质量,
度量的作用是为了有效地采用立量的方式来进行管理
管理人员利用度量来了解软件工程过程的执行情况和产品质量
需要考虑:
合适的度量是什么
所收集的数据如何使用
用于比较个人、过程或产品的度量是否合理
340软件度量
度量对象:
软件产品、软件过程、资源
软件产品、软件过程、资源都具有外部属性和内部属性。
外部属性:
而向管理者和用户的属性
内部属性:
软件产品或过程本身的属性
软件度量有两种分类方法:
第一种:
r而向规模的度戢(代码行或千行代码来衡量)
软件度量<而向功能的度量
I而向人的度量
第二种:
‘生产率度量
软件度质疑度量
.技术度量
346软件质量模型
355软件项目估算(重)
项目估算是制定项目计划的基础
项目所需的人力(以人为单位)、项目持续时间(以年份或月份为单位)、成本(以元为单位)
代码行、功能点和工作量是最基本的项目估算内容
常用的估算方法:
1基于已经完成的类似项目进行估算,这是一种常用的也是有效的估算方法
2基于分解技术进行估算
问题分解是将一个复杂问题分解成若干个小问题,通过对小问题的估算得到复杂问题的估算
过程分解指先根据软件开发过程中的活动(分析、设计、编码、测试等)进行估算,然后得到整个项目的估算值。
3基于经验估算模型的估算。
典型的警尬估算模型有IBM估算模型、CoCoMo模型和Putnam模型。
371风险管理(重)
风险因素
1事件(不希望发生的变化)
2事件发生的概率(事件发生具有不确立性)
3事件的影响(后果)
4风险的原因
现代项目管理与传统项目管理的不同之处就是引入了风险管理技术
风险管理就是识別评估风险,建立、选择、管理和解决风险的可选方案和组织方法
风险管理包括了风险标识、风险预测、风险评估和风险管理与监控四个活动
风险的类别:
项目风险、技术风险、商业风险
影响软件风险的因素:
性能、成本、支持和进度
379软件质量管理条件
1满足软件需求泄义的功能和性能
2文档符合事先确泄的软件开发标准
3软件的特点和属性遵循软件工程的目标和原则
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 重点 整理