当前位置:首页 > 软件工程导论期末复习提纲(精)
确定对系统的综合要求:1. 功能需求:这方面的需求指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能2. 性能需求:性能需求指定系统必须满足的定时约束或容量约束,通常包括速度(响应时间、信息量速率、主存容量、磁盘容量、安全性等方面的需求3. 可靠性和可用性需求:可靠性需求定量地指定系统的可靠性4. 出错处理需求:这类需求说明系统对环境错误应该怎样响应5. 接口需求:接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求6. 约束:设计约束或实现约束描述在设计或实现应用系统时应遵守的限制条件。常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台7. 逆向需求:逆向需求说明软件系统不应该做什么8. 将来可能提出的要求:应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。分析系统的数据要求:分析系统的数据要求,这是软件需求分析的一个重要任务。分析系统的数据要求通常采用建立数据模型的方法(ER图—考点、数据字典、层次方框图、Wariner图等工具导出系统的逻辑模型:综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。修正系统开发计划:根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。
需求获取的常用方法:1.客户访谈:发放调查表和情景分析2. 面向数据流自顶向下求精:数据字典、数据流图3.简易的应用规格说明:面向团队需求收集法4.快速建立原型:要点:建立用户看的见得功能、快速、易修改
需求建模:所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。模型化或模型方法是通过抽象、概括和一般化,把研究的对象或问题转化为本质(关系或结构相同的另一对象或问题,从而加以解决的方法。
需求分析的模型(结构化分析:数据模型ER图;功能模型数据流图P41;行为模型状态转换图
数据字典(DD,DataDictionaryDD是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算有共同的理解。数据词典是结构化分析方法中采用的表达数据元素的工具。它对数据流图中所有自定义的数据元素、数据结构、数据文件、数据流等进行严密而精确的定义。
加工说明:在数据流图中,每一个加工框中只是简单地赋予了一个加工名,这显然不能表述加工的全部内容。一个软件系统的功能就是由这些加工的协同配合才得以实现的。因此,需求分析中必须对每一个加工进行说明。描述加工逻辑的工具:结构化语言:介于自然语言和形式语言之间的语言特点:无确定语法、可分层、嵌套
判定表:描述多条件、多目标动作的形式化工具判定树:由条件1、条件2得到结果
第四章软件设计
软件设计分为两个阶段:(1概要设计(总体设计确定软件的结构以及各组成成分(子系统或模块之间的相互关系。分为:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构。设想供选择的方案、选取合理的方案、推荐最佳方案、功能分解、设计软件结构、设计数据库、制定测试计划、书写文档、审查和复查(2详细设计确定模块内部的算法和数据结构,产生描述各模块程序过程的详细文档。
软件设计遵循的原则:模块化(模块是数据说明、可执行语句等程序对象构成并执行相对独立功能的逻辑实体,它可以单独命名而且可以实现按名访问。例如,过程、函数、子程序、宏等等都可以看作模块。模块化是指把大型软件按照规定的原则划分为一个个较小的,相对独立但又相关的模块。模块化是一种―分而治之,各个击破‖式的问题求解方式,它降低了问题的复杂程度,简化了软件的设计过程、抽象(软件系统进行模块设计时,可有不同的抽象层次。抽象是人类特有的一种思维方法,其原理是从事物的共性中抽取出所关注的本质特征而暂时忽略事物的有关细节、逐步求精(为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。事实上,可以把
它看做是一项把一个时期内必须解决的种种问题按优先级排序的技术、信息隐藏和局部化(模块所包含的信息,不允许其它不需要这些信息的模块访问,独立的模块间仅仅交换为完成系统功能而必须交换的信息。目的:提高模块的独立性,减少修改或维护时的影响面。把关系密切的软件元素物理地放得彼此靠近。优点:可维护性好、可靠性好、可理解性好、模块独立(所谓模块独立性是指模块完成它自身规定的功能而与系统中其它的模块保持一定的相对独立。含义:模块完成独立的功能、符合信息隐蔽和信息局部化原则、模块间关联和依赖程度尽量小
模块独立性的度量:模块独立性取决于模块的内部和外部特征。SD方法提出的定性的度量标准:模块之间的耦合性、模块自身的内聚性。耦合是模块之间的互相连接的紧密程度的度量。内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度的度量。模块独立性比较强的模块应是高内聚低耦合的模块。耦合由低到高依次:无直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。耦合是影响软件复杂程度和设计质量的重要因素。目标:建立模块间耦合度尽可能松散的系统如何降低模块间耦合度:(1 尽量使用数据耦合、少用控制耦合、限制公共耦合的范围、坚决避免使用内容耦合!!(2 降低接口的复杂性模块的内聚性类型:偶然内聚(巧合内聚:模块内各部分间无联系0分......功能内聚10分功能内聚模块仅包括为完成某个功能所必须的所有成分。(模块所有成分共同完成一个功能,缺一不可内聚性最强内聚与耦合密切相关,同其它模块强耦合的模块意味者弱内聚,强内聚模块意味着与其它模块间松散耦合.设计目标:力争强内聚、弱耦合!!耦合、内聚与模块独立性关系:耦合是直接的主导因素,内聚则辅助耦合共同对模块独立性进行衡量。
启发规则:1.改进软件结构提高模块独立性2.模块规模应该适中3.深度、宽度、扇出和扇入都应适当。其中,扇入:表明有多少个上级模块直接调用它,扇入越大则共享该模块的上级模块数目越多。越多越好,但不能作死。扇出:是一个模块直接控制或调用的模块数。扇出过大意味着模块过分复杂,需要控制和协调过多的下级模块。不大不小正好。深度:表示软件结构中控制的层数,它能粗略的标志一个系统的大小和复杂程度。宽度:是软件结构内同一个层次上的模块总数的最大值。
4.模块的作用应该在控制域之内:模块的作用域是受该模块内一个判定影响的所有模块的集合。
5.力争降低模块结构的复杂程度 6.设计单入口、单出口的模块 7.模块功能应该可以预测
面向数据流的设计方法:数据流图可分为两种类型:变换型数据流:信息沿输入通路进入系统;进入系统的信息通过变换中心;经加工处理以后再沿输出通路离开软件系统;当数据流图具有这些特征时,这种信息流就叫做变换流。事务型数据流:当数据流经过一个具有―事务中心‖特征的数据处理时,它可以根据事务类型从多条路径的数据流中选择一条活动通路。
这种具有根据条件选择处理不同事务的数据流,就是事务型数据流,简称事务流。
详细设计:工具:程序流程图、盒图【用方框图代替传统的流程图(1顺序型(2选择型(If–then–else(3多分支选择型(CASE型(4 WHILE重复型(先测试循环(5UNTIL重复型(后测试循环(6并行结构】、
PAD图【基本控制结构:(1顺序结构(2选择结构(3重复结构(先测试循环(后测试循环(4 多分支选择型(CASE型】、判定表、判定树、过程设计语言
面向数据结构的设计方法:复杂度计算:McCabe方法P137(1流图中的区域数等于环形复杂度(2流图G的环形复杂度V(G=E-N+2,其中E是流图中边的条数,N是结点数(3流图G的环形复杂度V(G=P+1,其中P是流图中判定结点的数目
第七章软件测试
软件测试:(1 测试是程序的执行过程,目的在于发现错误(2 一个好的测试用例在于极可能发现至今未发现的错误(3 一个成功的测试是发现了至今未发现的错误的
共分享92篇相关文档