还剩44页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
软件工程导论考试总复习全考点重点总结第章软件工程学概述1软件危机
1.1软件危机的介绍
1.
1.1软件危机软件萧条、软件困扰是指在计算机软件的开发和维护过程中所遇到的一系列严重问题软件危机包含下述两方面的问题如何开发软件,满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件软件危机的典型表现对软件开发成本和进度的估计常常很不准确;1用户对已完成的软件系统不满意的现象经常发生;2软件产品的质量往往靠不住;3软件常常是不可维护的;4软件通常没有适当的文档资料;5软件成本在计算机系统总成本中所占的比例逐年上升;6软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势7由两个主要阶段组成系统设计阶段,确定系统的具体实现方案设想供选择的方案选取合理的方案推荐最佳方案结构设计阶段,确定软件结构:功能分解设计软件结构设计数据库制定测试文档书写文档审查和复查设计原理
5.2模块化
5.
2.1模块化的作用采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解模块化使软件容易测试和调试,因而有助于提高软件的可靠性模块化能够提高软件的可修改性模块化也有助于软件开发工程的组织管理抽象
5.
2.2逐步求精
5.
2.3信息隐藏和局部化
5.
2.4模块独立
5.
2.5尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合七种内聚的优劣评分结果高内聚功能内聚顺序内聚中内聚通信内聚过程内聚低内聚时间内聚逻辑内聚偶然内聚启发规则
5.2改进软件结构提高模块独立性
1.模块规模应该适中
2.深度、宽度、扇出和扇入都应适当
3.模块的作用域应该在控制域之内
4.力争降低模块接口的复杂程度
5.设计单入口单出口的模块
6.模块功能应该可以预测
7.描绘软件结构的图形工具
5.4层次图和图
5.
4.1HIPO层次图(图)层次图用来描绘软件的层次结构很适于在自顶向下设计软件的过程中使用
1.H图
2.HIPO结构图
3.
4.2面向数据流的设计方法
5.4结构化设计方法(简称方法),也就是基于数据流的设计方法SD面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法信息流有两种类型变换流事务流第章详细设计6结构程序设计
6.1经典的结构程序设计只允许使用顺序、型分支和型循环这种基本控制结构;扩展的结IF-THEN-ELSE DO-WHILE3构程序设计如果除了上述种基本控制结构之外,还允许使用型多分支结构和型循3DO-CASE DO-UNTIL环结构;修正的结构程序设计再加上允许使用(或)结构LEAVE BREAK人机界面设计
6.2设计问题
6.
2.1设计人机界面过程中会遇到的个问题系统响应时间长度易变性用户帮助设施集成的帮4助设施附加的帮助设施出错信息处理命令交互人机界面设计指南一般交互指南信息显示指南数据输入指南过程设计的工具
6.3程序流程图(程序框图)
6.
3.1程序流程图的主要缺点程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制程序流程图不易表示数据结构盒图(图)
6.
3.2N-S盒图具有下述特点功能域明确不可能任意转移控制很容易确定局部和全程数据的作用域很容易表现嵌套关系,也可以表示模块的层次结构图
6.
3.3PAD它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易图的主要优点如下使用表示结构化控制结构的符号设计出来的程序必然是结构化PAD PAD程序图所描绘的程序结构十分清晰图表现程序逻辑易读、易懂、易记容易将PAD PAD图转换成高级语言源程序这种转换可用软件工具自动完成即可表示程序逻辑,也可描绘PAD数据结构图的符号支持自顶向下、逐步求精方法的使用判定表PAD判定表却能够清晰地表示复杂的条件组合与应做的动作之间的对应关系所有条件条件组合矩阵所有动作条件组合对应的动作判定表的缺点判定表的含义不是一眼就能看出来的初次接触这种工具的人理解它需要有一个简短的学习过程当数据元素的值多于两个时,判定表的简洁程度也将下降判定树
1.
1.5判定树的优点它的形式简单,一眼就可以看出其含义,因此易于掌握和使用判定树的缺点简洁性不如判定表,数据元素的同一个值往往要重复写多遍,而且越接近树的叶端重复次数越多画判定树时分枝的次序可能对最终画出的判定树的简洁程度有较大影响过程设计语言(伪码)
1.
1.6伪代码的基本控制结构:简单陈述句结构避免复合语句判定结构或结构IF_THEN_ELSE CASE_OF选择结构或结构WHILE_DO REPEATJJNTIL的优点PDL可以作为注释直接插在源程序中间有助于保持文档和程序的一致性,提高了文档的质量可以使用普通的正文编辑程序或文字处理系统,很方便地完成的书写和编辑工作PDL已经有自动处理程序存在,而且可以自动由生成程序代码PDL的缺点PDL不如图形工具形象直观,描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简单面向数据结构的设计方法
6.4面向数据结构的设计方法的最终目标是得出对程序处理过程的描述由、、个元素顺序组成根据条件是或或中的某一个由出现次A BC D3A BC DA BN组成N20改进的图
6.
4.1Jackson方法
6.
4.2Jackson程序复杂程度的定量度量
6.5方法
6.
5.1McCabe流图程序图
1.计算环形复杂度的方法
2.浪图中的区域数VG£VG=E-N+2其中是流图中的边数,是结点数E NVG=P+1其中是流图中判定结点的数目P方法
6.
5.2Halstead令为程序中运算符出现的总次数,为操作数出现的总次数,程序长度定义为N1N2NN=N1+N2程序中使用的不同运算符(包括关键字)的个数以及不同操作数(变量和常数)的个数预nl n2o测程序长度的公式如下H=nl Iog2nl+n2Iog2n2预测程序中包含错误的个数的公式如下()E=N Iog2nl+n2/3000第章实现7编码和测试统称为实现编码
7.1选择程序设计语言
7.
1.1主要的实用标准系统用户的要求可以使用的编译程序可以得到的软件工具工程规模程序员的知识软件可移植性要求软件的应用领域编码风格
7.
1.2程序内部的文档:恰当的标识符适当的注解程序的视觉组织
1.数据说明
2..语句构造3输入输出
4.效率:程序运行时间存储器效率输入输出的效率
5.软件测试基础
7.2软件测试的目标
7.
2.1测试是为了发现程序中的错误而执行程序的过程;好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;成功的测试是发现了至今为止尚未发现的错误的测试测试方法
7.
2.3黑盒测试(功能测试)把程序看作一个黑盒子;完全不考虑程序的内部结构和处理过程;是在程序接口进行的测试白盒测试(结构测试):把程序看成装在一个透明的盒子里;测试者完全知道程序的结构和处理算法;按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作测试步骤
7.
2.4模块测试(单元测试)
1.保证每个模块作为一个单元能正确运行;发现的往往是编码和详细设计的错误子系统测试
2.把经过单元测试的模块放在一起形成一个子系统来测试;着重测试模块的接口系统测试
3.把经过测试的子系统装配成一个完整的系统来测试;发现的往往是软件设计中的错误,也可能发现需求说明中的错误;不论是子系统测试还是系统测试,都兼有检测和组装两重含义,通常称为集成测试产生软件危机的原因与软件本身的特点有关1与软件开发与维护的方法不正确有关2消除软件危机的途径对计算机软件有正确的认识认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索应该开发和使用更好的软件工具总之,为了解决软件危机,既要有技术措施方法和工具,又要有必要的组织管理措施
1.2软件工程的介绍
1.
2.1软件工程是指导计算机软件开发和维护的一门工程学科采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程期中考软件工程的本质特性软件工程关注于大型程序的构造.验收测试(确认测试)4把软件系统作为单一的实体进行测试;它是在用户积极参与下进行的,而且可能主要使用实际数据(系统将来要处理的信息)进行测试;发现的往往是系统需求说明书中的错误平行运行
5.测试阶段的信息流
6.
2.5输入信息有两类软件配置,包括需求说明书、设计说明书和源程序清单等;测试配置,包括测试计划和测试方案单元测试
7.3单元测试集中检测模块;单元测试和编码属于软件过程的同一个阶段;可以应用人工测试和计算机测试这样两种不同类型的测试方法;单元测试主要使用白盒测试技术,对多个模块的测试可以并行地进行模块接口局部数据结构重要的执行通路出错处理通路边界条件代码审查
7.
3.2由审查小组正式进行测试称为代码审查;一次审查会上可以发现许多错误,可以减少系统验证的总工作量计算机测试
7.
3.3驱动程序是一个主程序,它接收测试数据,传送给被测试的模块,并且印出有关的结果存根程序代替被测试的模块所调用的模块它使用被它代替的模块的接口,可能做最少量的数据操作,印出对入口的检验或操作结果,并且把控制归还给调用它的模块集成测试
7.4集成测试是测试和组装软件的系统化技术,主要目标是发现与接口有关的问题由模块组装成程序时有两种方法不同集成测试策略的比较
7.
4.2混合策略:改进的自顶向下测试方法混合法回归测试
7.
4.3确认测试
7.5确认测试也称为验收测试,它的目标是验证软件的有效性和测试
7.
5.3Alpha Beta测试是在受控的环境中进行的Alpha测试是软件在开发者不能控制的环境中的“真实应用Beta接口测试
1.路径测试
2.功能测试
3..健壮性测试
4.性能测试
5.信息安全测试7压力测试
8.可靠性测试
9.安装/反安装测试确认测试也称为验收测试,它的目标是验证软件的有效性
10.测试是在受控的环境中进行的Alpha测试是软件在开发者不能控制的环境中的真实应用Beta.接口测试4路径测试
5.功能测试
6..健壮性测试
7.性能测试8用户界面测试
9.信息安全测试10压力测试11可靠性测试12安装/反安装测试
13.白盒测试技术
7.6逻辑覆盖
7.
6.1语句覆盖判定覆盖比语句覆盖强,但对程序逻辑的覆盖程度仍不高条件覆盖判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖判定/条件覆盖有时判定/条件覆盖也并不比条件覆盖更强条件组合覆盖条件组合覆盖标准的测试数据并不一定能使程序中的每条路径都执行到.点覆盖(语句覆盖标准相同)6边覆盖(判定覆盖一致)
7.路径覆盖
8.控制结构测试覆盖
9.
6.2基本路径测试
1.基本路径测试是提出的一种白盒测试技术Tom McCabe首先计算程序的环形复杂度;以该复杂度为指南定义执行路径的基本集合;.条件测试2从该基本集合导出的测试用例可保证程序中的每条语句至少执行一次,而且每个条件在执行时都将分别取真、假两种值循环测试
3.循环测试是一种白盒测试技术,它专注于测试循环结构的有效性在结构化的程序中通常只有种循环,即简单循环、串接循环和嵌套循环3黑盒测试技术
4.7等价划分
7.
7.1边界值分析
7.
7.2错误推测773可靠性
7.
7.3基本概念软件可靠性程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率软件的可用性:程序在给定的时间点,按照规格说明书的规定,成功地运行的概率第章维护8软件工程的目的是要提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本软件维护的定义
8.1软件维护在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程可分为项活动4改正性维护适应性维护完善性维护预防性维护软件维护的特点
8.2结构化维护与非结构化维护差别巨大
8.
2.1维护的代价高昂
8.
2.2维护的问题很多
8.
2.3软件维护过程
8.
3.维护组织.维护报告.维护的事件流.保存维护记录.评价维护活动12345软件的可维护性
8.4决定软件可维护性的因素主要有个7可理解性可测试性可修改性可靠性可移植性可使用性效率第章面向对象方法学引论9面向对象方法学概述
9.1面向对象方法学要点
9.
1.1认为客观世界是由各种对象组成的,任何事物都是对象1把所有对象都划分成各种类对象,每个对象类都定义了一组数据和一组方法2按照子类和父类的关系,把若干个对象类组成一个层次结构的系统3对象彼此之间仅能通过传递消息相互联系4面向对象开发方法
9.
1.2面向对象=对象+类+继承+通信面向对象方法组成
9.
1.4面向对象的分析面向对象的设计面向对象的程序设计面向对象方法的优点
9.
1.
6.与人类习惯的思维方式一致1稳定性好
2.可重用性好
3.可维护性好
4.较易开发大型软件产品5面向对象的概念
6.2对象是客观事物或概念的抽象表述,即对客观存在的事物的描述统称为对象,对象可以
9.
2.1是事、物、或抽象概念,是将一组数据和使用该数据的一组基本操作或过程封装在一起的实体对象的特点以数据为中心1对象是主动的2实现了数据封装3本质上具有并行性4模块独立性好5类
9.
2.2是一组具有相同属性和相同操作的对象的集合实例
9.
2.3由某个特定的类所描述的一个具体的对象消息
9.
2.4向对象发出的服务请求互相联系、协同工作等一个消息包含个部分接收消息的对象,3消息名,消息变元方法
9.
2.5方法就是对象所能执行的操作,也就是类中所定义的服务软件工程的中心课题是控制复杂性软件经常变化开发软件的效率非常重要和谐地合作是开发软件的关键软件必须有效地支持它的用户在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品软件工程的基本原理用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性属性属性就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象封装
9.
2.7对象封装了对象的数据以及对这些数据的操作继承
9.
2.8I继承是子类自动地共享基类中定义的数据和方法的机制单重继承子类仅从一个父类继承属性和方法多重继承子类可从多个父类继承属性和方法多态性
9.
2.9重载
9.
2.10面向对象建模
9.3II面向对象开发软件,需要建立种形式的模型3对象模型描述系统数据结构一数据结构动态模型描述系统控制结构一执行操作功能模型描述系统功能一数值变化类图的基本符号I定义类
1.定义属性
2.可见性属性名类型=缺省值{性质串}可见性表示该属性对类外的元素是否可见visibility分为公有的,即模型中的任何类都可以访问该属性public+私有的,表示不能被别的类访问private-受保护的,表示该属性只能被该类及其子类访问protected#如果可见性未申明,表示其可见性不确定定义操作
3.可见性操作名参数表返回类型{性质串}表示关系的符号
4.
4.2I关联
9.
4.
2.1I关联表示两个类的对象之间存在某种语义上的联系普通关联1递归关联一个类与本身有关联关系限定关联3关联类4聚集I共享聚集1如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为组合聚集2如果部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消失,则该聚集称为组合聚集泛化⑴普通泛化1受限泛化2预定义的约束有种多重、不相交、完全和不完全4依赖
1.
1.
2.4细化
1.
2.
2.5动态模型
9.5功能模型
9.6用例图
9.
6.1模型元素系统、行为者、用例及用例之间的关系扩展关系、使用关系用例的实例是脚本第章面向对象分析10面向对象分析的基本过程
10.1面向对象分析抽取和整理用户需求并建立问题域精确模型的过程.理解---用户、分析员和领域专家表达---需求规格说明书(对象模型、动态模型、功能模型)验证--二义性,完善性对象模型最基本、最重要、最核心静态结构(对象模型)个子模型交互次序(动态模型)3数据变换(功能模型)复杂问题的对象模型的个层次5面向对象分析的过程寻找类与对象识别结构识别主题定义属性建立动态模型建立功能模型定义服务需求陈述
10.2需求陈述是阐明做什么,而不是怎样做问题范围功能需求性能需求应用环境假设条件第章面向对象设计11面向对象设计的准则
11.1模块化.抽象.信息隐藏
1.23弱耦合
4.耦合指不同对象之间相互关联的紧密程度对象之间的耦合分两类交互耦合如果对象之间的耦合通过消息连接来实现,则这种耦合就是交互耦合交互耦合应尽可能松散继承耦合与交互耦合相反,应该提高继承耦合程度强内聚
5.在面向对象设计中存在下述种内聚3服务内聚一个服务应该完成一个且仅完成一个功能类内聚一个类应该只有一个用途,它的属性和服务应该是高内聚的一般-特殊内聚设计出的一般-特殊结构,应该符合多数人的概念可重用
6.启发规则
71.2设计结果应该清晰易懂
1.一般-特殊结构的深度应适当
2.设计简单的类
3..使用简单的协议
4.使用简单的服务
5.把设计变动减至最小6第章软件项目管理13估算软件规模
13.1代码行技术
13.
1.1估算方法由多名有经验的软件工程师分别做出估计每个人都估计程序的最小规模、最大规模和最可能的规模a bm,分别算出这种规模的平均值之后,再用下式计算程序规模的估计值3单位或LOC KLOCo代码行技术的优点代码是所有软件开发项目都有的“产品,而且很容易计算代码行数;有大量参考文献和数据代码行技术的缺点源程序仅是软件配置的一个成分,由源程序度量软件规模不太合理;用不同语言实现同一个软件所需要的代码行数并不相同;不适用于非过程性语言功能点技术
13.
1.2功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模这种方法用功能点为单位度量软件规模FP.信息域特性1输入项数、输出项数、查询数、主文件数、外部接口数Inp OutInq MafInf每个特征根据其复杂程度分配一个功能点数,即信息域特征系数al,a2,a3,a4,a
5.估算功能点的步骤2计算未调整的功能点数1UFPUFP=alxInp+a2xOut+a3xInq+a4xMaf+a5xInf计算技术复杂性因子2TCF技术因素对软件规模的综合影响程度DI:技术复杂性因子由下式计算TCFTCF=
0.65+
0.01x DI因为的值在之间,所以的值在之间DI0~70TCF
0.65~
1.35计算功能点数3FPFP=UFP xTCF功能点技术优点与所用的编程语言无关,比代码行技术更合理功能点技术缺点在判断信息域特性复杂级别和技术因素的影响程度时主观因素较大,对经验依赖性较强工作量估算
13.2静态单变量模型
13.
2.1E=A+B xev C是估算变量或ev KLOCFP动态多变量模型
13.
2.2动态多变量模型也称为软件方程式,该模型把工作量看作是软件规模和开发时间这两个变量的函数E=LOCxB
0.333/P3xl/t4模型构造性成本模型
13.
2.3C0C0M02个层次的估算模型:3软件工程方法学软件工程包括技术和管理两方面的内容软件工程方法学要素方法、工具、过程
3.传统方法学(生命周期方法学或结构化范型)——强调自顶向下1面向对象方法学——强调主动地多次反复迭代
2.面向对象方法学个要点对象、类、继承、消息4软件生命周期(必考)13三个时期八个阶段软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)三个时期组成,每个时期又进一步划分成若干个阶段软件过程
1.4瀑布模型
1.
4.1快速原型模型
1.
4.2增量模型
1.
4.3螺旋模型
1.
4.4喷泉模型
1.
4.5应用系统组成模型这个模型主要用于估算构建原型的工作量,模型名字暗示在构建原型时大量使用已有的构件早期设计模型这个模型适用于体系结构设计阶段后体系结构模型这个模型适用于完成体系结构设计之后的软件开发阶段使用的个分级因素项目先例性、开发灵活性、风险排除度、项目组凝聚力、C0C0M025过程成熟度进度计划
13.3估算开发时间
13.
3.1规律向一个已经延期的项目增加人力,只会使得它更加延期Brooks图
13.
3.2Gantt图的主要优点Gantt图能很形象地描绘任务分解情况,以及每个子任务(作业)的开始和结束时间Gantt具有直观简明和容易掌握、容易绘制的优点图的个主要缺点Gantt3不能显式地描绘各项作业彼此间的依赖关系;进度计划的关键部分不明确,难于判定哪些部分应当是主攻和主控的对象;计划中有潜力的部分及潜力的大小不明确,往往造成潜力的浪费工程网络
13.
3.3工程网络是系统分析和系统设计的强有力的工具估算工程进度
13.
3.4计算最早时刻使用下述条简单规则EET3考虑进入该事件的所有作业;对于每个作业都计算它的持续时间与起始事件的之和;EET选取上述和数中的最大值作为该事件的最早时刻EET计算最迟时刻使用下述条规则LET3考虑离开该事件的所有作业;从每个作业的结束事件的最迟时刻中减去该作业的持续时间;选取上述差数中的最小值作为该事件的最迟时刻LET关键路径
13.
3.5关键事件EET=LET机动时间结束-开始-持续时间
13.
3.6=LET EET二右下角-左上角-持续时间人员组织
13.4民主制程序员组
13.
4.1如果小组内有个成员,则可能的通信信道共有()条n nn-l/2主程序员组
13.
4.2主程序员组的两个重要特性专业化、层次性现代程序员组
13.
4.3质量保证
13.5软件质量
13.
5.1软件质量保证措施
13.
5.2软件配置管理
13.6基于非执行的测试(复审或评审),主要用来保证在编码之前各阶段产生的文档的质量;基于执行的测试(软件测试),需要在程序编写出来之后进行,它是保证软件质量的最后一道防线;程序正确性证明,使用数学方法严格验证程序是否与对它的说明完全一致走查:参与者驱动法、文档驱动法
2.审查综述准备审查返工跟踪
3.程序正确性证明
4.软件配置管理是在软件的整个生命期内管理变化的一组活动具体地说,这组活动用来
①标识变化;
②控制变化;
③确保适当地实现了变化;
④向需要知道这类信息的人报告变化软件配置管理的目标使变化更正确且更容易被适应,在必须变化时减少所需花费的工作量软件配置.软件过程的输出信息(软件配置项)1计算机程序(源代码和可执行程序);描述计算机程序的文档(供技术人员或用户使用);数据(程序内包含的或在程序外的)基线
2.基线就是通过了正式复审的软件配置项软件配置管理过程软件配置管理主要有项任务:5标识软件配置中的对象基本对象、聚集对象
1..版本控制2变化控制
3.配置审计
4.状态报告
5.能力成熟度模型
63.7初始级
1.软件过程的特征是无序的,有时甚至是混乱的可重复级
2.软件机构建立了基本的项目管理过程(过程模型),可跟踪成本、进度、功能和质量已定义级
3.软件机构已经定义了完整的软件过程(过程模型),软件过程已经文档化和标准化已管理级
4.软件机构对软件过程(过程模型和过程实例)和软件产品都建立了定量的质量目标,所有项目的重要的过程活动都是可度量的软件机构集中精力持续不断地改进软件过程这一级的软件机构是一个以防止出现缺陷为目标的机构,它有能力识别软件过程要素的薄弱环节,并有足够的手段改进它们第章可行性研究2可行性研究的任务
2.1可行性研究的目的不是解决问题,而是确定问题是否值得去解决可行性研究的实质进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程可行性研究的内容首先进一步分析和澄清问题定义,导出系统的逻辑模型;然后从系统逻辑模型出发,探索若干种可供选择的主要解法(即系统实现方案);对每种解法都研究它的可行性,至少应该从三方面研究每种解法的可行性主要方面技术可行性,经济可行性,操作可行性,其他方面运行可行性,法律可行性,可行性研究过程
2.2复查系统规模和目标
1.研究目前正在使用的系统
2.导出新系统的高层逻辑模型进一步定义问题导出和评价供选择的解法.推荐行动方针
3.
4.
5.6草拟开发计划书写文档提交审查系统流程图
7.
8.
2.3系统流程图是概括地描绘物理系统的传统工具表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程符号基本符号数据存储数据存储是处于静止状态的数据;数据流数据流是处于运动中的数据附加符号星号(*):表示与关系加号(+):表示或关系异或()表示互斥关系㊉数据字典
2.5数据流图和数据字典共同构成系统的逻辑模型数据字典的内容数据字典的组成数据流数据流分量(即数据元素)数据存储处理定义数据的方法
2.
5.2方法对数据自顶向下分解数据组成方式(三种基本类型)顺序选择重复附加类型可选符号=意思是等价于(或定义为);+意思是和(即,连接两个分量);[]意思是或(即,从方括弧内列出的若干个分量中选择一个),通常用号隔开供选择的分量;{}意思是重复T(即,重复花括弧内的分量);常常使用上限和下限进一步注释表示重复的花括弧()意思是可选(即,圆括弧里的分量可有可无)数据字典的实现
2.
5.3计算机实现人工实现成本/效益分析
2.5成本估计.代码行技术.任务分解技术自动估计成本技术
2.
6.
1123.成本/效益分析的方法
2.
6.2成本/效益分析涉及的个概念货币的时间价值.投资回收期纯收入投资回收率41,
23.
4.P=Fl/1+j+F2/1+j2+...+Fnl+jn第章需求分析3需求分析的任务需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答系统必须做什么”这个问题确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求系统分析员应该写出软件需求规格说明书,以书面形式准确地描述软件需求需求分析的任务
3.1确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统开发计划确定对系统的综合要求
3.
1.1功能需求
1..性能需求可靠性和可用性需求出错处理需求.接口需求约束逆向需求将来可能
23.
4.
56.
7.
8.提出的要求建立数据模型——图描绘数据结构——层次方框图和图数据结构规范化ER Warnier与用户沟通获取需求的方法
3.2访谈正式访谈非正式访谈调查表情景分析技术
1.
2.
3.
4.面向数据流自顶向下求精简易的应用规格说明技术快速建立软件原型第四代技术1可重用的软件构件形式化规格说明和原型环境4GL23分析建模与规格说明
3.3分析建模
3.
3.1需求分析过程应该建立种模型数据模型功能模型行为模型数据字典是分析模型的核3心实体-联系图用于建立数据模型的图形数据流图是建立功能模型的基础状态转换图是行为建模的基础实体-联系图
3.4数据模型中包含种相互关联的信息数据对象、数据对象的属性、数据对象彼此间相互3连接的关系状态转换图
3.5状态图分类表示系统循环运行过程通常不关心循环是怎样启动的表示系统单程生命期,需要标明初始状态和最终状态事件
3.
6.2事件就是引起系统做动作或(和)转换状态的控制信息符号
3.
6.3图形工具
3.
6.4层次方框图
3.
7.1图
3.
7.2Warnier图
3.
7.3IPO验证软件需求(重点)
3.7从哪些方面验证软件需求的正确性
3.
8.1一致性完整性现实性有效性第五章总体设计。