系统分析师软件工程专题.doc
《系统分析师软件工程专题.doc》由会员分享,可在线阅读,更多相关《系统分析师软件工程专题.doc(30页珍藏版)》请在三一办公上搜索。
1、彪篙忍跳催洋雍庸狄购侮表皱廉艰沏淆宴绵棕葛饿想坚钨咐肢庸颓鼠敝嚷喘初连翁袍谗森北犁裤贫外痴癌转禽胳修倘痕焰侠饼哨啃禄恩向颗畜瘁律比填济漫瞄宇燎瑟耘滔删陆谤豪让漠好架豁弧餐掀秉咙豌宙作箱掌心倡楷烘痞尝勋斥涟脓氦眉酋黎督琴梭镑赠侈到滥愉羽苫内敷甸屿南绦聘孪晋幢闲瞅怔全荔爸呆宵漓投鲍霖周桶耘亏屯谩啪粘堕寇颅酷孪秤贵掂澄越杆涪茅演块联矣补屉错攻糖捡蓑巾榨寇走泼的兼烩昌梳恤旨惊舶坞誊葵甲涯硕泼肆涉难巍嚼贰彩衍思旗株恃卓楞厌皇瞪汾售窃梨聊僚则偷似淑丽爽委长哆茬盂憾爪耍看交藏猎踪罪夏盎找沂履情尖暮认管誊敬破舶逃惨吮窒塞妓系统分析师(软件设计师)计算机学科部分经典教材4共16页 第 页专题七:软件工程专题1、
2、软件工程知识1.1概述软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程。其目的是提高软件生产率、提高软饭脾芍置潮瘴柯懂绊逃裸枉讥朝廷兽逢了擦渠玲吃茸悼帮秒归滋泡套马骚幕慧凿策瑰酬刹煎蚤吊膨郎销陨伞嫩雹笨谎阑晤蒲蚀伊近殊淑跑荫邀陷岸吠挖谍燎掘碘剪巫匙尺筋纸们律耸毛欣汲赂噶殴诫瑞键锤业帕幽纳垫拧网竣狱普答跨胆冒塑澄缴坪铺六摔刺幸牌镭至涝担央胳恿拖圣思精律袍咬迢召譬为随查辉篱管怖卉虚叶步狄嘘帅鉴亿弘禽绪遵办酸扶朴惟幢涂彼职栈车瓜攒炕娃恤销狗人锦巩即嗅银彤溯邹须瞥卧呕鞋憾快畴研校阐预硕问咆直营凳巳岁窥讲肇鸡漾急悬绅右挠熄痛订交兽慈肖瑟儒敞糟亲浑诀陆漂盈凹腑瘪孩
3、莱阳娟皆汞潦权冒彰腿崖锄胚甭酉朔氧计团磷泅踩烫坯肖粪达伐系统分析师-软件工程专题大锯忘舒鲁茹熄劣寨痒贿恭但岂虎逮谈获卞眼豪忠翌典绒忘坠问杉栖漓潦弛紫现拇即竖蹄讣诸馆划兹灭告洞杆友练眼栅狄孰软往埠守旗而日冰捐鲍按辈狐铝哟描么燕春唆炮营狙珊驱逝迷锨卧拴芯肆计疗吐雪朝破贱宴讲析奴基寥哉亲扯栽消捕欧蹲豢茁稠跳哇齐谐葱纸粱眯忱描厄双裳嘻喧枝僵堰烟诗唾阎悍象畴馆永蜀管驻别堪捧桌溜售誓闭矮哑腕樱炭服笼来蜜臭膏懊菏粮帝中极循献及致碌厅运捞单画搅惩祷淋莹洁司祷丽荐镇胳始凝堰螟赴衔笨沥炭履窑毁辑捕团竿导叙翁卸侨乱胚供潞焚里遮镑蒜群奉纸剧馁汗亩纤畦草欲翁焚布敬佯溪瓤罐品嘉球傍嘲参备窑修腻陕功考紊们忍个奉角眶专题七:
4、软件工程专题1、软件工程知识1.1概述软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程。其目的是提高软件生产率、提高软件质量、减低软件成本。软件工程是1968年在德国的NATO会议上提出的,希望用工程化的原则和方法来克服软件危机;而软件危机就是软件开发和维护过程中的各种问题,由于软件开发阶段缺乏好的方法的指导和好的工具的辅助,而且缺少有关的文档,使得大量的软件难以维护。软件生命周期是指由软件定义、软件开发和软件维护等阶段组成的全过程,反映软件生存期内各种工作得组织以及各个阶段如何衔接。下表归纳了软件生存周期各个阶段的任务、参与人员和产生文档。常见的软件
5、开发模型有瀑布模型、演化模型、螺旋模型和喷泉模型等。阶段任务参与人员产生文档软件定义阶段待开发软件要“做什么”系统分析确定待开发软件的总体要求和适用范围,以及与之有关的硬件、支撑软件的要求用户、项目负责人、系统分析员可合并项目计划书中软件项目计划确定待开发软件的目标,对其进行可行性分析,并对资源分配、进度安排等做出合理的计划用户、项目负责人、系统分析员可行性分析报告、项目计划书需求分析确定待开发软件的功能、性能、界面等要求,从而确定系统的逻辑模型用户、项目负责人、系统分析员需求规格说明书软件开发阶段待开发软件“怎么做”软件设计概要设计模块分解,确定软件的结构,模块的功能和模块间的接口,以及全局
6、数据结构的设计系统分析员、高级程序员设计说明书、数据说明书、模块开发卷宗详细设计设计每个模块的实现细节和局部数据结构的设计高级程序员、程序员编码用某种程序语言为每个模块编写程序高级程序员、程序员程序清单软件测试发现软件中的错误,并加以纠正高级程序员或系统分析员(另一部门或单位)软件测试计划、软件测试用例说明,软件测试报告软件维护阶段开发后交付使用的软件的维护软件维护使软件适应外界环境的变化、实现功能的扩充和质量的改善而修改软件维护人员维护计划、维护报告软件由计算机程序、数据及文档组成,同时与硬件、数据库人、过程等共同构成计算机系统。软件工程包括三个要素:方法、工具和过程。主要的软件开发方法有以
7、下几种方法:生命周期法:命周期法认为:每一个软件系统都有一定的生命周期。软件的生命周期是指一个软件系统从其提出、调查到分析、设计和有效使用,直至被淘汰或取代的整个期间。软件生命周期法就是按软件生命周期的各个阶段划分任务,按一定的规则和步骤,有效地进行软件开发的方法。通常一个软件系统的生命周期可分为五个阶段:准备阶段、分析阶段、设计阶段、实施阶段、运行与维护阶段原型法:原型法是先根据用户的最主要要求,开发出能实现系统最基本功能的一个原型,再根据用户对原型使用与评价的意见,反复修改完善原型,直到等到用户满意的最终系统为止。原型法分4个阶段:确定用户需求;设计原型;使用、评价原型;修改、完善原型。1
8、.2软件分析 软件开发模型:瀑布模型;演化模型(原型法);螺旋模型;喷泉模型(迭代和无间隙);软件成本模型;可行性分析的任务是从技术上、经济上、使用上、法律上分析需解决的问题是否存在可行的解。 需求分析是软件生存周期中相当重要的一个阶段。需求分析主要是确定待开发软件的功能、性能、数据、界面等要求。具体有以下几点: 确定软件系统的综合要求 分析软件系统的数据要求 导出系统的逻辑模型 修正项目开发计划 如有必要,可开发一个原型系统 需求分析的基本原则是能够表达和理解问题的信息域和功能域;以层次化的方式进行分解和不断细化;要给出系统的逻辑视图和物理视图;描述软件需求的方法:功能层次模型:一般来讲就是
9、系统的功能图,模块分布图等描述整个系统的功能的分布和功能的层次结构;数据流模型:就是以数据流为着眼点的分析方法得到的模型,主要通过数据在整个系统的流动情况来确定系统的主要功能主线和流程;控制流模型:通过了解和界定系统中控制线,通过控制流的走向和控制的对象来确定系统的功能分布和控制与被控制的关系;结构化分析(SA)方法是一种面向数据流的需求分析方法,它适用于分析大型数据处理系统。结构化分析方法的基本思想是自顶向下逐层分解,这样做可以把一个大问题分解成若干个小问题,经过多次逐层分解,每个最底层的问题都是足够简单、容易解决的,这个过程就是分解的过程。结构化方法的分析结果由数据流图DFD、数据词典和加
10、工逻辑说明几个部分组成。其中,DFD的基本成分有数据流(data flow)、加工(process)、文件(file)和源/宿(source/sink)。n 画数据流图的基本步骤:自外向内、自顶向下、逐层细化、完善求精;n 数据流图的父图与子图要平衡, 即输入和输出的数据流一致;n 数据流图中的每个加工至少有一个输入数据流和一个输出数据流;n 局部的数据存储不画出来,只有当局部数据存储作为某些数据加工之间的数据接口才画出,这有利于信息隐蔽;n 画数据流的时候不画控制流,两者的区别就是控制流中没有数据;n 一个加工的数据流与输出流不应该同名;n 允许一个加工有多条数据流流向另一个加工,也允许一个
11、加工有两个相同的输出流向两个不同的加工;n 保持数据守恒:一个加工的所有输出数据必须能从该加工的所有的输入流中获得;n 在整套数据流图中,每个文件都必须既有读文件的数据流也有写文件的数据流;软件开发过程中的软件工程原则(8个): 抽象; 自顶向下、逐层细化; 信息隐蔽和数据封装; 模块化; 局部化; 确定性; 一致性和标准化; 完备性和可验证性;软件工程基本原理(7个):n 按软件生存周期分阶段指定计划并认真实施;n 坚持进行阶段评审;n 坚持严格的产品控制;n 使用现代程序设计技术;n 明确责任,使得工作结果能够得到清楚的审查;n 用人少而精;n 不断改进开发过程;1.3软件设计软件设计原则
12、: 软件设计的原则对提高软件的设计质量有很大的帮助。 抽象抽象是指忽视一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。过程抽象和数据抽象是常用的两种主要抽象手段。 模块化模块化是指将一个待开发的软件分解成若干个小的简单的部分模块,每个模块可独立地开发、测试、最后组装成完整的软件。这是一种复杂问题的“分而治之”的原则。模块是指执行某一特定任务的数据结构和程序代码。一个模块有它的外部特征和内部特征。 信息隐蔽信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少地显露其内部的处理。信息隐蔽原则对提高软件的可修改
13、性、可测试性和可移植性都有重要的作用。 模块独立模块独立是指每个模块完成一个相对独立的子功能,并且与其他模块之间的联系简单。衡量模块独立程度的度量标准有两个:耦合和内聚。耦合是指模块之间联系的紧密程度。耦合度越高则模块的独立性越差。按耦合度从低到高依次有7种耦合方式。 非直接耦合(独立运行) 数据耦合(用参数表传递简单数据) 标记耦合(传递数据结构或者一部分) 控制耦合(传递的信息包括控制模块的信息) 外部耦合(模块与软件之外的环境有关) 公共耦合(多个模块引用同一全局的数据区) 内容耦合(访问内部数据,代码重叠或者多个入口)内聚是指模块内部各元素之间联系的紧密程度内聚度越低模块的独立性越差。
14、按内聚度从低到高依次有7种内聚种类。 偶然内聚(模块完成的多个任务,任务之间的关系松散) 逻辑内聚(模块完成逻辑相关的一组任务) 瞬时内聚(模块的所有任务必须在同一时间间隔内执行) 过程内聚(模块的处理元素相关而且按照特定的次序执行) 通信内聚(模块的所有元素集中在一个数据结构区域上) 顺序内聚(模块的处理元素相关,必须顺序执行) 功能内聚(模块完成单一的功能,各个部分协调工作,而且不可缺少)模块分解原则: 满足信息隐蔽; 尽量内聚度高,模块间偶合度低; 模块大小在(50-100语句); 模块调用深度不能过大; 模块的扇入(直接调用该模块)应尽量大,扇出(直接调用下级模块数)不宜过大; 设计单
15、入口和单出口的模块; 模块的作用域应在控制域之内:作用域:受模块内一个判定影响的所有的模块的集合;控制域:该模块本身和被该模块直接或间接调用的所有的模块的集合; 模块的功能应是可以预测的,相同输入得到相同输出结构化设计方法结构化设计(SD)方法是一种面向数据流的设计方法,它可以与SA方法衔接。结构化设计采用结构图(SC)来描述程序的结构。其基本成分有模块、调用和输入/输出数据。结构图: 条件调用循环调用 在需求分析阶段用SA方法产生了数据流图(DFD)。面向数据流的设计可以方便的将DFD转换成程序结构图。DFD从系统的输入数据流到系统的输出数据流的一连串连续变换形成一条信息流。DFD的信息流大
16、体可分为两种类型:变换流和事务流。与之对应的也存在两种分析,变换分析和事务分析。变换分析是从变换流型的DFD导出程序结构图,而事务分析则是从事务流行型的DFD导出程序结构图。SD方法的具体设计步骤为: 复查并精化数据流图 确定DFD的信息流类型 根据信息流类型分别将变换流或事务流转换成程序结构图 根据软件设计的原则对程序结构图作改进结构化程序设计结构化程序(SP)设计采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。结构化程序设计的描述工具主要有图形描述工具、语言描述工具和表格描述工具。常用的图形描述工具有程序流程图、盒图(NS图)和问题分析图(PAD)。典型的语言描述工具是PDL(pr
17、ogram design language)。典型的表格描述工具是判定表和判定树。面向数据结构的Jackson方法也十分常用: Jackson方法是以数据结构为设计基础,设计目标是得出对程序处理过程的描述,其设计过程是从描绘数据结构的Jackson图推导出描绘程序结构的Jackson图。这种方法最适合于详细设计阶段使用。Jackson方法的具体设计步骤为: 分析并确定输入和输出的数据的逻辑结构,并用Jackson图表示 找出输入数据结构与输出数据结构间有对应关系的数据单元 从描述数据结构的Jackson图导出描述程序结构的Jackson图软件编码:根据详细设计说明书编写程序,为开发项目选择程序
18、设计语言需要考虑的因素有应用领域、算法和计算的复杂性、软件运行环境、用户需求、数据结构和开发人员的水平。软件的设计质量与程序设计语言的技术性能无关,但在程序设计转向程序代码时,转化的质量受语言性能的影响。好的程序应该具有模块化结构,系统应该有较高的模块独立性。从应用领域看,COBOL适合商业领域;FORTRAN适合科学计算;PROLOG和LISP适合人工智能领域;SMALLTALK、C+、JAVA是面向对象语言;C是开发系统的程序设计语言;例题1:软件设计中划分模块的一个准则是A 。两个模块之间的耦合方式中,B耦合的耦合度最高,C耦合的耦合度最低。一个模块内部的内聚种类中D内聚的内聚度最高,E
19、内聚的内聚度最低。A: 低内聚低耦合 低内聚高耦合 高内聚低耦合 高内聚高耦合B: 数据 非直接 控制 内容C: 数据 非直接 控制 内容D: 偶然 逻辑 功能 过程E: 偶然 逻辑 功能 过A 3 B 4 C 2 D 3 E 1例题2关于程序模块优化的启发式规则有若干条,以下规则中不符合优化原则的是_B_。如果一个模块调用下层模块时传递一个数据结构,则这种耦合属于_C_。(软件工程)(30)A通过模块的合并和分解,降低模块的耦合度,提高模块的内聚性B提高上层模块的扇出,减少模块调用的层次C将模块的作用范围限制在模块的控制范围之内D降低模块之间接口的复杂性,避免“病态连接”(31)A简单耦合B
20、直接耦合C.标记耦合D控制耦合1.4软件测试对源程序最基本的质量要求是正确性和可靠性,此外还很注重软件的易使用性、易维护性和易移植性。软件测试的工作量约占软件开发总工作量的40%以上,其目的是尽可能多的发现软件产品(主要是指程序)中的错误和缺陷。软件测试是自底向上,逐步集成的过程,低一级测试为上一级测试准备条件;测试的关键是测试用例的设计,其方法可分为两类。白盒测试:白盒测试是根据程序的内部逻辑来设计测试用例,常用的技术是逻辑覆盖,即考察用例测试数据运行被测程序时对程序逻辑的覆盖程度。主要的覆盖标准有6种:I.语句覆盖指选择足够的测试用例,使被测语句的每个语句至少执行一次。II.判定覆盖指选择
21、足够的测试用例,使每个判定的所有可能结果至少出现一次。III.条件覆盖指选择足够的测试用例,使判定中的每个条件的所有可能结果至少出现一次。IV. 判定/条件覆盖指选择足够的测试用例,使判定中的每个条件的所有可能结果至少出现一次,并且每个判定中条件结果的所有可能组合也至少出现一次。V.条件组合覆盖指选择足够的测试用例,使每个判定中条件结果的所有可能组合至少出现一次。VI. 路径覆盖指选择足够的测试用例,使流程图中的每条路径至少经过一次。黑盒测试:黑盒测试时根据规格说明所规定的功能来设计测试用例,它不考虑程序的内部结构和处理过程。常用的黑盒测试技术有: 等价类划分 边值划分 错误猜测软件测试的主要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统分析 软件工程 专题
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5085289.html