软件工程笔记Word下载.docx
- 文档编号:6996758
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:29
- 大小:104.32KB
软件工程笔记Word下载.docx
《软件工程笔记Word下载.docx》由会员分享,可在线阅读,更多相关《软件工程笔记Word下载.docx(29页珍藏版)》请在冰点文库上搜索。
(1)软件工程关注于大型程序的构造
(2)软件工程的中心课题是控制复杂性
(3)软件经常变化
(4)开发软件的效率非常重要
(5)和谐地合作是开发软件的关键
(6)软件必须有效地支持它的用户
(7)在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品
10.软件工程的基本原理
(1)用分阶段的生命周期计划进行严格管理
(2)坚持进行阶段评审
(3)实行严格的产品控制
(4)采用现代程序设计技术
(5)结果应能清楚地审查
(6)开发小组的人员应该少而精
(7)承认不断改进软件工程实践的必要性
11.软件工程方法学
通常把在软件生命周期全过程中使用的一整套技术的集合称为方法学(methodology),也称
为范型(paradigm)。
1)传统方法学(结构化方法学):
SA,SD,SP,ST
2)面向对象方法学:
OOA,OOD,OOP,OOT
S:
结构化,structured
00:
面向对象,ObjectOrientedA:
分析,Analysis
D:
设计,Design
P:
编程,Programming
T:
测试,Test
12.软件工程方法学三要素,这就是方法、工具和过程。
其中:
1)方法是完成软件开发任务的技术方法,回答“如何做”的问题;
2)工具是为方法的运用提供自动的或半自动的软件支撑环境;
3)过程规定了完成各项任务的工作阶段、工作内容、产品、验收的步骤和完成准则
第二章软件过程
1.过程(process):
ISO9000把过程定义为,把输入转化为输岀的一组彼此相关的资源和活动
2.软件过程(SoftwareProcess):
是为了获得高质量软件所需要完成的一系列任务的框架
(Framework),它规定了完成各项任务的工作步骤。
3.软件生命周期
软件生命周期由软件定义、软件开发、和运行维护三个时期组成,每个时期又可进一步划分成若干个阶段。
(三个时期八个阶段)
三个时期八个阶段:
三个时期:
软件定义、软件开发、运行维护
八个阶段:
(1)问题定义
(2).可行性研究(3).需求分析(4).概要设计(5).详细设计
(6).编码和单元测试(7).综合测试(8).软件维护
4.软件开发模型(在课本的14—33页,了解一下)
1)瀑布模型(Waterfall)
2)快速原型模型Prototype
3)增量模型(IncrementalModels)
4)喷泉模型
5)螺旋模型
6)统一过程(rationalunifiedprocess,RUP)
7)敏捷过程
8)极限编程(extremeprogramming,XP)
9)能力成熟模型(capabilitymaturitymodel,CMM)
第三章结构化的分析(SA)
1.需求分析:
发现、求精、建模、规格说明、复审的过程发现:
获取需求,完备、正确、有效
求精:
细节
建模:
形式化描述
规格说明:
详述
复审:
批准
2.需求分析的准则
1)必须理解和表示问题的信息域,根据这条准则应该建立数据模型。
2)必须定义软件应完成的功能,这条准则要求建立功能模型。
3)必须表示作为外部事件结果的软件行为,这条准则要求建立行为模型。
4)必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节页脚
3.需求获取的方法
1)访谈
正式的:
事先准备好的
非正式的访谈:
开放的,头脑风暴,情景分析
2)面向数据流自顶向下求精
3)简易的应用规格说明技术
4)快速建立软件原型
4.分析建模
结构化分析实质上是一种创建模型的活动。
通过需求分析而建立的模型必须达到下述的三个基本目标:
描述用户的需求。
为软件设计工作奠定基础。
定义一组需求,一旦开发岀软件产品之后,就可以用这组需求为标准来验收该产品。
5•模型(Model):
是为了理解事物而对事物作岀的一种抽象,是对事物的书面上的无歧义文字或图形的描述.
5.1.模型是对问题的简化。
5.2.要从多个角度认识事物。
6.分析模型:
数据模型(实体联系图)、功能模型(数据流图)、行为模型(状态转换图)
需求分析成果:
软件需求规格说明7.)
要求会画(P41,ER联系图(图,entity-relationshipdiagram)-8.实体)数据模型的主要成分:
数据对象,数据对象的属性,数据对象彼此间相互连接的1(关系数据对象:
对软件必须理解
的复合信息的抽象。
页脚
属性:
定义了数据对象的性质。
联系:
数据对象彼此之间相互连接的方式称为联系,也称为关
系。
类型:
一对一联系、一对多联系、多对多联系。
联系也可以有属性。
2)实体-联系图的符
号表示:
(
实体
属性
联系
9.数据流图(DFD,DataFlowDiagram):
描绘信息流和数据从输入移动到输岀的过程中所经受的变换
(书本P43—47,要会画)
10.数据字典(DD:
DataDictionary):
是关于数据的信息的集合,是对数据流图中包含的所有元素的定义的集合
(书本P49—51,要会画)
11.状态转换图(SD,StateDiagram):
通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。
用于建立行为模型。
状态:
是任何可以被观察到的系统行为模式。
状态规定了系统对事件的响应方式
事件:
是在某个特定时刻发生的事情,是引起系统做动作或(和)转换状态的控制信息。
(书本P47—49)
第四章结构化设计
性能
DFD
将来分析
环境功能
过程设计
接口
ERDDD
STD数据
(五大需求)
架构
数据
(四大设计)
DS内存
DB
外存
file
四大设计
C/S,B/S
构件之间的接口
人一机接口
Process
过程
Procedure(步骤)
三型两化
行为模型
功能模型三型
数据模型
系统化
两化
层次化
如何设计:
必须依据原理、原则、规则、准则模块:
是由边界元素限定的相邻的程序元素的序
列,而且有一个整体标识符来代表它。
把这就是把程序划分成可独立命名且独立访问的模块,每
个模块完成一个子功能,模块化:
些模块集成起来构成一个整体,可以完成指定的功能满足用
户的需求。
一组相邻元素)(1
)一个边界
(2))(3一个名字(标识符ID
Why模块化?
降低复杂度1)有利于团队分工协作)2Howto模块化?
5模块化Meyer
标准页脚
模块可分解性(降低复杂性)1)reuse))模块可组装性(可重用,2)(易于维护)模块可
理解性3模块连续性(副作用小)4)模块保护性(屏蔽异常)5):
抽出事物的本质特征,
而暂时不考虑它们的细节抽象(abstract)找共性,略特性
抓主要,略次要
有效降低模块数量
逐步求精:
为了集中精力解决主要问题而尽量推迟对问题细节的考虑。
大小
粗细
Miller法则:
一个人在任何时候都只能把精力集中在7士2个知识块上。
7士2
全局变量
信息隐藏
局部变量
块内:
高内聚,一个模块只做一件事
模块独立
参数少
块间:
低耦合,KIS(keepitsimple)
类型简单
结构化设计原理:
1)模块化
2)抽象
3)信息隐藏
4)逐步求精
启发原则:
1)改进软件结构提高模块独立性
2)模块规模应该适中(LOC<
30)LOC:
linesofcodenote>
code
3)深度、宽度、扇岀和扇入都应当适中(7士2原则)
4)模块的作用域应该在控制域之内
5)力争降低模块接口的复杂度(接口KIS)
6)设计单岀口单入口的模块
7)模块的功能应该可以预测
设计结果描述工具:
建模工具
软件工具
工具建模工具
开发工具
IPO图(InputProcessOutput):
描述模块(总体)
C/S,B/S,层次架构表示:
=HIPO图层次图+IPO图
P76)结构图:
(Yourdon提岀的结构图是进行软件结构设计的另一个有力工具面
向设计流的设计方法
三种设计方法面向数据结构的设计方法
面向对象的设计方法
设计优化:
无有好优精
人一机界面设计问题
MICUIGUIAUIMMI
1.
系统响应时间(长度、易变性)
集成式(内含,开始就设计在软件中)
2.
用户帮助措施
嵌入式/附加式(联机文档)
1)
完备性
2)
选择性(menu,F1
help)
3)
如何显示帮助信息
4)
返回/退岀(ESC
escape,按钮)
平面
5)
怎样组织帮助信息
层次结构(导航)
Web页(超链接)
3.
出错信息处理
可理解性
建设性
警示性
视听性
友好性
4.
命令交互
UI设计的重要性:
1)用户评价产品的依据
2)占总设计量的50%以上
3)涉及到美学、人一机工程学、心理学
4)UI工程师成为一种岗位
UI设计原则:
以人为本、人性化、美、方便
和谐
美一致
对称
人一机界面设计过程:
UML的状态图)
建立原型(powerpoint,dreamvever)
试用
评估
界面设计指南(看看微软的界面设计)
1)一般交互
2)信息显示
3)数据输入
结构化方法学
SASDSPST
1965
GOTO语句1968(书本P89)
1972
如果一个程序的代码块仅仅通过顺序、选择和循环这三种控制结构进行连接,并且每代码块只有一个入口和一个岀口,则称这个程序是结构化的。
1)顺序
2)选择(单路、双路、多路、多重)
3)循环(for、当型循环、直到型循环、枚举)过程设计工具
程序流程图
N-S盒图
PAD图
UML活动图
判定树
判定表表
伪码语言语言
(要会画这些图,会根据伪码语言转化为上述各种图,还要掌握几种图之间的转换)数据的三类逻辑结构
2)选择
3)重复
第五章结构化实现测试定义:
为了发现错误而执行程序的过程
错误编写时产生的
故障运行时发生的
保证质量的
测试具有破坏性,而其它的环节都是建设性的。
但是其破坏时为了更好的建设,
有效途径
测试的目标(G.Myer)
1)定义:
测试是为了发现程序中的错误而执行程序的过程
2)好的测试:
好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案
3)成功的测试:
成功的测试是发现了至今为止尚未发现的错误的测试
目的
测试方案一组输入
一组输岀(预期的结果)
测试的准则
1)追溯到需求:
所有的测试都应该能追溯到用户的需求
2)及早计划:
应该在测试之前的相当长时间,就指定岀测试计划
3)2、8定律:
把Pareto原理应用于软件测试。
Pareto原理告诉我们,测试发现的错误中的80%很可能是由程序中20%的模块造成的
4)从小到大:
测试应该从“小模块”开始,并逐步进行“大模块”测试
5)不可穷尽:
穷举测试是不可能的
6)第三方(丙方)测试:
为了达到最佳的测试效果,应该由独立的第三方来从事测试工作所谓最佳效果,就是指最大可能性发现错误的测试,这也是测试的基本目标
黑盒测试:
接口处、功能测试
测试方法
白盒测试:
结构测试
流图P110(要会根据程序流程图转化)
体现了程序判断的节点
白盒测试技术:
1)逻辑覆盖
2)路径覆盖
程序的复杂度度量(P115,要会根据流图,计算出程序的复杂度)
流图中的区域数=环形复杂度
3种方法流图中的环形复杂度=流图中的边数-图中节点数+2
流图中的环形复杂度=图中判定节点的数目+1
复杂:
指人的体力和脑力受到挑战
P115)独立路径(定义:
是指至少引入程序的一个新处理语句集合或一个新条件的路径
自顶向下
从左向右找法逐步增加黑盒测试技术(P120)
等价类划分
边界值分析
错误预测
测试步骤(从小到大)
单元子系统系统验收平行运行
集成测试一边运行新系统,一边运行旧系统
集成测试的策略深度优先
宽度优先
自底向上
软件的可靠性
可靠性:
时间段,在规定的时间段内,成功运行程序的概率可用性:
时间点,在一个时间点上,成功运行程序的概率
MTTF:
MeanTimeToFailure,平均无故障时间
MTTR:
MeanTimeToRepair,平均维修时间
测试
发现bug质量
排除bug
可靠性
第六章面向对象方法学导论面向
观点、世界观、软件观
System?
1)若干部件的集合
2)部件具有独立的功能和边界
3)部件之间具有相互联系,这些联系构成结构
4)部件间相互作用,构成运动
对象(P151)
在研究或解决问题的过程中关注的人、事物、概念
00(ObjectOriented,面向对象)起源
学习、掌握、运用
面向对象方法学的四个要点:
面向对象=对象+类+继承+通信
1)认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成
2)把所有对象都划分成各种对象类,每个对象类都定义了一组数据和一组方法。
3)按照子类与父类的关系,把若干个对象类组成一个层次结构的系统
4)对象彼此之间仅能通过传递消息互相通信
面向对象方法学的优点
1)与人类习惯的思维方法一致
2)稳定性好
3)可重用性好
4)较易开发大型软件产品
5)可维护性好
面向对象的一些概念
1.对象:
是封装了数据结构以及可以施加在这些数据结构上的操作的封装体,这个封装体有可以唯一标识它的名字,而且向外界提供一组服务。
2.类:
就是对具有相同数据和相同操作的一组相似对象的定义
3.实例:
就是有某个特定的类所描述的一个具体的对象
4.消息:
就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明书
5.方法:
就是对象所能执行的操作,也就是类中所定义的服务
6.属性:
类中说定义的数据,它是对客观世界实体所具有的性质的抽象
7.封装:
就是把某个事物包起来,使外界不知道该事物的具体内容
8.继承:
是指能够直接获取已有的性质和特征,而不必重复定义他们
9.多态性:
是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类也可以发送给子类对象。
10.重载:
函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字
面向对象的三种关系:
关联
(这个箭头是空心的)
子类子类
对象的特点:
)以数据为中心(1
(2)实现了封装
(3)本质上具有并行性
(4)模块独立性好
面向对象建模:
功能模型
类
三种模型的建模工具:
对象模型:
类图
功能模型:
用例图(用况图)动态模型:
状态图,时序图对象模型
动态模型
(面向对象模型)
面向对象的建模步骤:
系统观点啥们种图的9UML对象模型:
最基本、最核心、最重要
状态图:
描述了单一对象,在其生命周期内的变化规律
瞬间的
事event
时间状态
时序图:
多个对象的交互。
时序图的每个对象有各自对应一个状态图
章第7&
8
九个图
架构成中心
用况驱动
设计
分析
增量与迭代
For人
for计算机
3型5p166)层(课本的对象模型
功能模型3型
逐步求精5层
啥们之序
面向对象(00A)的任务与过程分析:
搞清楚、弄明白软件的需求,并根据需求建模
研究需求
识别对象
建立模型
面向对象分析的策略:
三型五层:
自顶向下、逐步求精五层:
主题层、类与对象层、结构层、
属性层、服务层
P167
需求陈述用户提供、表现多样内容:
范围、需求、假设问题:
歧义、矛盾对策:
甲乙共
商,原型化需求
P167)例子ATM(课本
关系:
partof
with
词法分析属性:
量词(重量、身高、年龄)、形容词
方法:
动词
候选筛选确定优化
UC矩阵usercustomer
建立动态模型
顺序图状态图
(多对象)(单一对象)
需求陈述
编写脚本
画顺序图
案例研究:
电梯系统(课本的P186——P190)
00A00DOOP
型4图)(3型(34图)
实现for机器/需求for
图:
3型4类图对象模型
用例图功能模型
顺序图、状态图动态模型
P192
OOD(面向对象设计)准则:
模块化1.抽象2.
3.信息隐藏弱耦合4.5.强内聚页脚
可重用6.
启发规则:
设计结果应该清晰易懂1.
特殊结构的深度应适当一般/2.设计简单的类3.
使用简单的协议4.
使用简单的服务5.
把设计变动减至最小6.
章(老师没讲)第9
种图)(自己看,一定要会画9第10章UML(P232)
计划章第11管理:
就是通过计划、组织和控制等一系列的活动,合理的配置和使用各种资源,以达到既定
目标的过程。
软件项目管理:
就是通过计划、组织、控制等一系列的活动,合理的配置和使用各种资源,以
便在预定成本和期限内开发符合客户需要的软件的过程
(类)工程:
大的、复杂的、由众多人一起完成的(对象)项目:
一个具体的工程是项目
人
财
估量工作量物
(代码行)时
软件配置:
程序、文件、数据
对软件的配置进行管理的原因:
需求的变更是不可避免的
风险(risk):
导致失败的因素识别
避免
估算代码行:
估概预决
代码行LOCKLOC
估算量
功能点FP(functionpoints)
FP技术:
(具体的计算方法P253)
程序量
工作量进度
(KLOCFP)(人月)
(人员)
人月神话Brooks
1.劳动密集型
2.智力VS体力
工作量(课本的
P254)
E=f(KLOC)
E=f(FP)
静态单变量模型
三种方法
动态多变量模型
构造性成本模型
进度计划:
分解,分而治之;
大事化小,小事化了
P254---P264要精读
指导软件项目进度安排的基本原则:
1.划分
2.相互依赖性
3.时间分配
4.工作量确认
5.定义责任
6.定义结果
7.定义里程碑
工程网络图(P260——P262):
要掌握的内容:
最早时刻、最迟时刻、最短路径、关键路径、关键事件
第13章控制
软件风险的特点:
1.不确定性
2.损失
软件风险的分类:
1.按风险的影响范围分类:
(1)项目风险
(2)技术风险
(3)商业风险
2.按风险的可预测性分类:
(1)已知风险
(2)可预测风险
(3)不可预测风险
风险因素:
性能风险、成本风险、支持风险、进度风险
(P280表13.1)
质量:
满足用户需求的程度
软件质量:
软件与明确规定地和隐含地定义的需求相一致的程度
质量保证很重要:
1.召回
2.市场占有
3.生命力
质量保证:
Test
文档
管理
审查、复查
规则、原则、准则
质量因素:
哪些方面——
如何度量——
)(P283,图13.13方面13因素(3方13条)
P284表13.3)软件质量因素的定义(XX性:
XX的难易程度。
可
(284)软件质量保证措施:
P)技术复审1)走查2审查3)测试4)
软件配置管理变更
版本(vers
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 笔记