软件工程导论知识点总结(整理)
中国石油大学(华东)软件工程导论复习资料

软件工程的定义 :◆传统定义为了经济地获得可靠的和能在实际机器上有效运行的软件,确立并应用健全的工程原理◆ IEEE 定义软件工程是. 将系统的、规范的和可计量的方法应用于软件的开发、操作和维护,即将工程化应用于软件软件的构成要素 :软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。
程序:是按事先设计的功能和性能要求执行的指令序列;数据:是使程序能正常操纵信息的数据结构;文档:是与程序开发、维护和使用有关的图文材料。
软件的特点:1. 软件是一种逻辑实体,具有抽象性;2. 是开发的,而不是制造的3. 具有柔性4. 不磨损软件工程的范围:每个软件项目都是为某种商业需要而设计的已经成为基于计算机的系统和产品演变过程中的关键因素已经从专门问题的解决方案和分析信息的工具,转变为完整的结构良好的行业涉及广泛的技术和应用领域,然而所有软件的演变都遵循着 30 多年来一成不变的规律软件工程为构建高质量的软件提供基础框架软件工程的三个要素是方法、工具、过程。
瀑布模型的特点:1. 阶段间具有顺序性和依赖性2. 推迟实现的观点3. 质量保证的观点快速原型模型的特点:◆快速原型模型先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。
◆快速实现和提交一个有限的版本,可以应付市场竞争的压力。
螺旋模型的特点:◆对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;◆减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险;◆更重要的是,在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。
◆螺旋模型的主要优势在于它是风险驱动的,但这也是其一个弱点,要求开发人员具有丰富的风险评估经验和这方面的专门知识。
螺旋模型主要适用于内部开发的大规模软件项目增量模型的特点:◆采用瀑布模型和快速原形模型等开发软件时,目标都是一次就把一个满足所有需求的产品提交给用户。
(完整版)《软件工程导论》第五版张海藩编著总结

总结重点:❖∙Unit1❖∙软件危机包含两方面的问题:一是如何开发软件,怎样满足人们对软件日益增长的需求?二是如何维护软件,使它们持久地满足人们的要求。
❖∙软件工程学定义:把软件当作一种工业产品,采用工程学的原理来管理和组织软件的开发和维护,称为软件工程。
❖∙软件是指程序、数据和文档三者共同构成的配置。
❖∙包含与数据处理系统操作有关的程序、规程、规则以及相关文档的智力创作称为软件。
文档是描述程序开发过程的,是智力创作的真实记录,是创作活动的历史档案和结晶。
❖∙软件的描述性定义:软件由计算机程序,数据结构和文档组成。
❖∙软件质量定义为“与软件产品满足规定的和隐含的需求能力有关的特征和特性的全体”具体来说: 1)软件产品中能满足给定需求的性质和特性的总体;2)软件具有所期望的各种属性的组合程度。
❖∙将软件质量属性划分为六个特性(功能性、可靠性、易用性、效率、维护性和可移植性),这六个属性是面向用户的观点——面向管理的观点,且是定性描述的。
❖∙软件质量度量体系:内部度量可用于开发阶段的非执行软件产品,外部度量只能在生存周期过程中的测试阶段和任何运行阶段使用。
❖∙软件工程项目的基本目标:(1)低成本;(2)满足功能要求;(3)高性能;(4)易移植;(5)易维护。
❖∙软件工程方法学就是要从技术和管理上提供如何去设计和维护软件。
❖∙软件开发方法:面向数据流(约旦)方法、面向数据结构方法、面向对象方法。
❖∙结构程序设计是进行以模块功能和处理过程设计为主的详细设计的基本原则。
它的主要观点是采用自顶向下、逐步求精的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。
❖∙用来辅助软件开发、运行、维护、管理、支持等过程中活动的软件称为软件工具(CASE)。
❖∙软件生存周期定义:软件产品从形成概念开始,经过开发、使用和维护,直到最后不再使用的整个过程。
各阶段的任务彼此间尽可能的相对独立,同一阶段内各项任务的性质尽可能的相同。
《软件工程导论》期末复习题知识点

《软件工程导论》期末复习知识点第一章填空题1、软件是、及其说明程序的。
答案:数据、计算机程序、各种文档2、软件工程包括软件开发技术和两大部分内容。
答案:软件工程管理选择题1、软件危机出现于,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。
A50年代末B60年代初 C 60年代末 D 70年代初A运筹学 B 工程学C软件学D软件学答案:C B2、开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。
A 软件投机B软件危机C软件工程D软件产生答案:B3、产生软件危机的原因有如下几点,除了______。
A 软件开发过程未经审查B 软件开发不分阶段,开发人员没有明确的分工C 所开发的软件,除了程序清单外,没有其他文档D 采用工程设计的方法开发软件,不符合软件本身的特点答案:D4、软件产品的开发主要是( )。
A 复制B 再生产C 拷贝D 研制答案: D判断题1、文档是软件产品的一部分,没有文档的软件就不称其为软件。
()答案:√2、一个成功的项目唯一提交的就是运行程序。
()答案:×3、瀑布模型不适用于需求不确定的情况。
()答案:√名词解释1、软件工程答案:软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。
2、软件生存周期答案:软件产品从形成概念开始,经过开发、运行(使用)和维护直到退役的全过程称为软件生存周期,包括软件定义、开发、使用和维护三部分。
简答题1、简述软件危机发生的原因。
答案:(1)软件的规模加大、复杂性提高、性能增强;(2)软件是逻辑产品,尚未完全认识其本质和特点;(3)缺乏有效的、系统的开发、维护大型软件项目的技术手段和管理方法;(4)用户对软件需求的描述和软件开发人员对需求的理解往往存在差异,用户经常要求修改需求,开发人员很难适应;(5)软件开发的技术人员和管理人员缺乏软件工程化的素质和要求,对工程化的开销认识不足。
软件工程导论知识点

软件工程导论知识点软件是程序、数据及相关文档的完整集合。
其中,程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。
开发软件时,对于提高软件开发人员工作效率至关重要的是开发程序人员数量。
软件工程中描述软件生存周期的瀑布类型一般包括计划、需求分析、设计、编码、测试、维护等几个阶段。
其中,设计阶段在治理上可以依次分成概要设计和详细设计两个步骤。
在结构化的分析方法中,用以表达系统内数据的运行情况的工具有数据流图。
在结构化的分析方法中,用实体关系图表达系统中的对象及其进展,在实体关系图中,表达对象和实体关系之间的关联有三种类型:一对一联系,一对多联系,多对多联系。
软件需求分析的任务,不应包括结构化程序设计,进行需求分析可使用多种工具,但判定表是不适用的,在需求分析中,分析员要从用户那里解决的最重要的问题是要让软件做什么。
规格说明书的内容不应当包括对算法详细功能性描述,该文档在开发中具有重要的作用,但其作用不应包括软件可行性分析的依据。
原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于需求不确定性高的系统,它从用户界面的开发入手,首先形成系统界面原型,用户运行用户界面原型,并就同意什么和不同意什么提出意见。
一个模块的多个下属模块在系统结构图中所处的左右位置是无关紧要的。
一组语句在程序中多处出现,为了节省内存空间,把这些语句放在一个模块中,该模块的内聚性是偶然内聚的。
将几个逻辑上相似的成份,放在同一个模块中,通过模块入口的一个推断决定执行哪一个功能,该模块的内聚性是逻辑内聚的。
模块中所有成份引用共同的数据,该模块的内聚性是通信内聚的。
模块内的某成份的输出是另一些成份的输入,该模块的内聚性是顺序内聚的。
模块中所有成份结合起来完成一项任务,该模块的内聚是功能内聚。
模块化程序设计:1.便于由多人分工编制大型程序。
2.软件功能易于扩充。
软件工程导论重点内容

软件工程导论重点内容桃园文印室第一章软件工程概述重点掌握的内容:软件和软件工程的基本概念一.什么是软件?1.满足功能要求和性能的指令或计算机程序集合;2.处理信息的数据结构;3.描述程序功能以及程序如何操作和使用所要求的文档;软件的特点:软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。
软件是通过人们的智力活动,把知识与技术转换成信息的一种产品,是在研制、开发中被创造出来的在软件运行和使用的期间,没有硬件那样的机械磨损、老化问题软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性软件的开发至今尚未完全摆脱手工的开发方式软件的开发费用越来越高,成本相当昂贵。
二.软件危机以及产生软件危机的原因?1.软件开发生产率提高的速度,远远跟不上计算机迅速普及的趋势。
软件产品“供不应求”。
2.软件成本在计算机系统总成本中所占的比例逐年上升。
3.软件开发人员和用户之间的信息交流往往很不充分,用户对“已完成的”的软件系统不满足的现象经常发生。
4.软件产品的质量不容易保证。
5.软件产品常常是不可维护的。
6.软件产品的重用性差,同样的软件多次重复开发。
7.软件通常没有适当的文档资料。
产生软件危机的原因可归结为两个重要的方面:软件生产本身存在的复杂性;软件开发所使用的方法和技术。
三、软件危机1、软件危机定义:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2、软件危机的两个主要问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
3、软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。
(2) 用户对“已完成的”软件系统不满意的现象经常发生。
(3) 软件产品的质量往往靠不住。
(4) 软件常常是不可维护的。
1计算机科学学院软件工程(二)班软件工程导论复习资料2 星光二班桃园文印室(5) 软件通常没有适当的文档资料。
(6) 软件成本在计算机系统总成本中所占的比例逐年上升。
软件工程导论重点内容

第一章软件工程概述重点掌握的内容:软件和软件工程的基本概念一.什么是软件1.满足功能要求和性能的指令或计算机程序集合;2.处理信息的数据结构;3.描述程序功能以及程序如何操作和使用所要求的文档;软件的特点:软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性;软件是通过人们的智力活动,把知识与技术转换成信息的一种产品,是在研制、开发中被创造出来的在软件运行和使用的期间,没有硬件那样的机械磨损、老化问题软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性软件的开发至今尚未完全摆脱手工的开发方式软件的开发费用越来越高,成本相当昂贵;二.软件危机以及产生软件危机的原因1.软件开发生产率提高的速度,远远跟不上计算机迅速普及的趋势;软件产品“供不应求”;2.软件成本在计算机系统总成本中所占的比例逐年上升;3.软件开发人员和用户之间的信息交流往往很不充分,用户对“已完成的”的软件系统不满足的现象经常发生;4.软件产品的质量不容易保证;5.软件产品常常是不可维护的;6.软件产品的重用性差,同样的软件多次重复开发;7.软件通常没有适当的文档资料;产生软件危机的原因可归结为两个重要的方面:软件生产本身存在的复杂性;软件开发所使用的方法和技术;三、软件危机1、软件危机定义:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题;2、软件危机的两个主要问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件;3、软件危机的典型表现:1对软件开发成本和进度的估计常常很不准确;2用户对“已完成的”软件系统不满意的现象经常发生;3软件产品的质量往往靠不住;4软件常常是不可维护的;5软件通常没有适当的文档资料;6软件成本在计算机系统总成本中所占的比例逐年上升;7软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势;软件工程1、软件工程定义:软件工程是指导计算机软件开发和维护的一门工程学科;采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地、高效的开发出高质量的软件并有效地维护它,这就是软件工程;软件工程准则可以概括为7条基本原则:用分阶段的生命周期计划严格管理;坚持进行阶段评审实行严格的产品控制采用现代程序设计技术应能清楚地审查结果合理安排软件开发小组的人员承认不断改进软件工程实践的必要性3、软件工程方法学,三要素:方法、工具和过程4、软件生命周期概念、三时期,八阶段软件生命周期由软件定义、软件开发和运行维护也称为软件维护3个时期组成;软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析;软件开发时期分为4阶段:总体设计、详细设计、编码和单元测试、综合测试五、软件开发模型:软件开发模型是跨越整个软件生存周期的系统开发、运作、维护实施的全部工作和任务的结构框架;1瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开;特点阶段的顺序性和依赖性规范化推迟实现的观点系统化质量保证阶段评审存在问题不适合需求模糊的系统需求的迷糊性和不确定性适用于操作系统、编译系统、数据库管理系统等系统软件的开发快速原型模型:所谓快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集;快速原型模型的第一步是快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌3增量模型:是瀑布模型的顺序特征与快速原型法德迭代特征相结合的产物;这种模型把软件看成一系列相互联系的增量,在看法过程的各次迭代中,每次完成其中的一个增量;4喷泉模型5微软过程六、思考:你认为“软件就是程序”这一个观点正确吗如果不正确,请批驳之;1.请从以下几个方面结合自己的经验实例加以论述;软件就是程序的观点是不正确的,因为软件等于程序加文档加数据;1文档是软件的一个非常重要的组成部分,在软件的开发过程中起着非常重要的作用;2在软件开发的每一个阶段都应有相应的文档;它是开发人员与用户以及开发人员与项目管理人员之间交流的媒介3文档是软件在不同阶段的表现形式;4程序与文档必须一致,文档才有价值;5文档质量直接决定软件质量的高低;6文档也是软件测试和维护的依据;在没有文档或文档不全的情况下对大型软件进行测试与维护是不可思议的事情;7文档是软件可重用的依据;2、有人说:软件开发时,一个错误发现得越晚,为改正它所付出的代价就越大;对否请解释你的回答;答:对,第二章可行性研究重点掌握的内容:可行性研究的系统流程图一般内容:可行性研究的任务和步骤,成本效益分析一、可行使研究:1、可行性研究的任务:是用最小的代价在尽可能短的时间内确定问题是否能够解决;一般来说,应从经济可行性、技术可行性、运行可行性、法律可行性和开发方案等方面研究可行性可行性研究的目的:在明确了所要研究问题定义之后,分析员应该在明确目标系统所有限制和约束的前提下,去确定该问题是否值得去解决;或就是用最小代价在尽可能短的时间内确定问题是否能够解决;2、可行性研究过程:1)复查系统规模和目标2)研究目前正在使用的系统3)导出新系统的高层逻辑模型4)进一步定义问题5)导出和评价供选择的解法6)推荐行动方针7)草拟开发计划8)书写文档提交审查3、系统流程图的定义和作用:可行性研究对现有系统做概括的物理模型描述,如用图形工具表示则更加直观简洁;系统流程图是描绘物理系统的传统工具,它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件程序、文件、数据库、表格、人工过程等;系统流程图表达的是部件的信息流程,而不是对信息进行加工处理的控制过程;在可行性研究过程中,利用系统流程图来描述所建议系统的物理模型;4、数据流程图的定义和作用:数据流程图有两个特征:抽象性和概括性;抽象性指的是数据流程图把具体的组织机构、工作场所、物质流都去掉,只剩下信息和数据存储、流动、使用以及加工情况;概括性则是指数据流程图把系统对各种业务的处理过程联系起来考虑,形成一个总体5、数据流程图的组成元素数据流图可以用来抽象地表示系统或软件;它从信息传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程,同时可以按自顶向下、逐步分解的方法表示内容不断增加的数据流和功能细节;因此,数据流图既提供了功能建模的机制,也提供了信息流建模的机制,从而可以建立起系统或软件的功能模型;6、数据流程图的组成:外部实体外部实体是指系统之外的人或单位,它们和本系统有信息传递关系数据流,处理、数据存储;如何绘制数据流程图1识别系统的输入和输出,画出顶层图2画系统内部的数据流、加工与文件,画出一级细化图3加工的进一步分解,画出二级细化图4其它注意事项7、数据流程图的注意点1每个处理都必须有流入的数据流和流出的数据流,如果没有,是错误的;数据守恒2每个数据存储应该有流入的数据流和流出的数据流,如果缺了一种,是Warning的;缺两种就错了;3、数据流只能在处理与处理、数据存储或者外部实体之间流动;、数据存储到数据存储、外部实提到外部实体、外部实提到数据存储之间的数据流都是错误的;4、一个处理可以细分成多个子处理,分成若干个层次均匀分解5、良好命名系统流程图与数据流程图有什么区别答:1系统流程图描述系统物理模型的工具,数据流程图描述系统逻辑模型的工具;2系统流程图从系统功能的角度抽象的描述系统的各个部分及其相互之间信息流动的情况;3数据流程图从数据传送和加工的角度抽象的描述信息在系统中的流动和数据处理的工作状况;三、数据流图:1、组成符号:4中基本图形符号正方形、圆角矩形、开口矩形2、数据流图的基本要点是描绘“做什么”,而不是考虑“怎么做”;3、一套分层的的数据流图由顶层、底层、和中间层组成;4、画分层数据流图基本原则与注意事项:a.自外向内,自顶向下,逐层细化,完善求精;b.保持父图与子图的平衡;也就是说,父图中某加工的输入数据流中的数据必须与它的子图的输入数据流在数量和名字上相同;c.保持数据守恒;也就是说,一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据;d.加工细节隐藏;根据抽象原则,在画父图时,只需画出加工和加工之间的关系,而不必画出各个加工内部的细节;e.简化加工间关系;在数据流图中,加工间的数据流越少,各加工就越相对独立,所以应尽量减少加工间输入输出数据流的数目;f.均匀分解;应该使一个数据流中的各个加工分解层次大致相同;g.适当地为数据流、加工、文件、源/宿命名,名字应反映该成分的实际意义,避免空洞的名字;h.忽略枝节;应集中精力于主要的数据流,而暂不考虑一些例外情况、出错处理等枝节性问题;i.表现的是数据流而不是控制流;j.每个加工必须既有输入数据流,又有输出数据流.在整套数据流图中,每个文件必须既有读文件的数据流又有写文件的数据流,但在某一张子图中可能只有读没有写或者只有写没有读;小结:一个软件系统,其数据流图往往有多层;如果父图有N个加工Process,则父图允许有0~N张子图,但是每张子图只能对应一张父图;在一张DFD图中,任意两个加工之间可以有0条或多条名字互不相同的数据流;在画数据流图时,应该注意父图和子图的平衡,即父图中某加工的输入输出数据流必须与其输入输出流在数量和名字上相同;DFD信息流大致可分为两类:交换流和事务流;9、数据字典1.数据字典是在数据流程图的基础上,对数据流程图中的各个元素进行详细的定义与描述,起到对数据流程图进行补充说明的作用;2.数据字典的内容包括:数据流、数据流分量即数据元素、数据存贮、处理逻辑和外部实体;3.数据字典的作用是什么对用户来讲,数据字典为他们提供了数据的明确定义;对系统分析员来讲,数据字典帮助他们比较容易修改已建立的系统逻辑模型;数据字典的实现:P4910、成本效益分析:成本/效益分析的目的是要从经济角度分析开发一个特定的新系统是否可行,从而帮助使用部门负责人正确地做出是否投资与这项开发工程的决定;几种度量效益的方法:货币的时间价值、投资回收期、纯收入第三章需求分析一、重点掌握的内容那:需求分析的方法和面向数据流的分析方法二、一般掌握的内容:需求分析的任务和原则三知识点:1、为什么要做需求分析可行性分析研究阶段已经粗略的描述了用户的需求,甚至还提出了一些可行的方案,但是,许多细节被忽略了,在最终目标系统中是不能忽略、遗漏任何一个微小细节的,所以,可行性研究不能代替需求分析;2、需求分析的方法:需求分析方法由对软件的数据域和功能域的系统分析过程及其表示方法组成,它定义了表示系统逻辑视图和物理视图的方式,大多数的需求分析方法是由数据驱动的,也就是说,这些方法提供了一种表示数据域的机制,分析员根据这种表示,确定软件功能及其特性,最终建立一个待开发软件的抽象模型,即目标系统的逻辑模型;3、需求分析的任务:它的基本任务是准确地回答“系统必须做什么”这个问题;需求分析所要做的工作是深入描述软件的共能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求;需求分析的任务不是确定系统如何完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求;其实现步骤如下图所示:一般说来需求分析阶段的任务包括下述几方面:1)确定对系统的综合需求对系统的综合需求主要有:系统功能需求、系统性能需求、可靠性和可用性需求、错处理需求、接口需求、约束、逆向需求、将来可能提出的需求:2)分析系统的数据需求就是在理解当前系统“怎样做”的基础上,抽取其“做什么”的本质,明确目标系统要“做什么”,可以导出系统的详细的逻辑模型;具体做法:首先确定目标系统与当前系统的逻辑差别;然后将变化部分看作是新的处理步骤,对功能图一般为数据流图及对象图进行调整;最后有外及里对变化的部分进行分析,推断其结构,获得目标系统的逻辑模型;通常用数据流图、数字字典和主要的处理算法描述这个逻辑模型;3)导出系统的逻辑模型4)修正系统开发计划在经过需求分析阶段的工作,分析员对目标系统有了更深入更具体的认识,因此可以对系统的成本和进度做出更准确地估计,在此基础上应该对开发计划进行修正;5开发原型系统:使用原型系统的主要目的是,使用户通过实践获得关于未来的系统将怎样为他们工作的更直接更具体的概念,从而可以更准确地提出他们的要求;4、需求分析的步骤:1调查研究2分析与综合3书写文档4需求分析评审5、需求分析的原则:1、必须能够表达和理解问题的数据域和功能域2、按自顶向下、逐层分解问题3、要给出系统的逻辑视图和物理视图6、软件需求的验证:需求分析阶段的工作结果是开发软件系统的重要基础,大量统计数字表明,软件系统中15%的错误起源于错误的需求;为了提高软件质量,确保软件开发成功,降低软件开发成本,一旦对目标系统提出一组要求之后,必须严格验证这些需求的正确性;一般说来,应该从下述4个方面进行验证:1一致性所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾;2完整性需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能;3现实性指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的;对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性;4有效性必须证明需求是正确有效的,确实能解决用户面对的问题;7、状态转换图:指明了作为外部事件结果的系统行为;为此,状态转换图描绘了系统的各种行为模式称为“状态”和在不同状态间转换的方式;状态转换图是行为建模的基础;思考:利用DFD图进行需求分析:在结构化分析方法中,用以表达系统内数据的运动情况的工具有A;供选择的答案:A.数据流图B.数据词典C.结构化英语D.判定表与判定树在结构化分析方法中用状态―迁移图表达系统或对象的行为;在状态―迁移图中,由一个状态和一个事件所决定的下一状态可能会有A个;供选择的答案:多个D.不确定五、总体设计概要设计重点掌握的内容:概要设计的过程和方法一般掌握的内容:概要设计的文档和评审考核知识点:一、总体设计:1、总体设计的目的:总体设计的基本目的就是回答“概括地说,系统应该如何实现”这个问题,因此,总体设计又称为概要设计或初步设计;1、面向结构设计SD2、面向对象设计OOD2、总体设计的任务:1系统分析员审查软件计划、软件需求分析提供的文档、提出最佳推荐方案,用系统流程图,组成物理元素清单,成本效益分析,系统的进度计划,供专家沈顶峰,审定后进入设计2去顶模块结构,划分功能模块,将软件功能需求分配给所划分的最小单元模块;确定模块之间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略;3编写概要设计说明书,用户手册,测试计划,选用相关的软件工具来描述软件结构,结构图是经常使用的软件描述工具;选择分解功能与划分模块的设计原则,例如模块划分独立性原则,信息隐蔽原则等3、总体设计过程通常由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构;4、典型的总体设计过程包括下述9个步骤:1、设想功选择的方案2、选取合理的方案3、推荐最佳方案4、功能分解5、设计软件6、设计数据库7制定测试计划8、书写文档:系统说明、用户手册、测试计划、详细的实现计划、数据库设计结果;9、审查和复审二、设计原理分析模块化,在模块化程序设计中,按功能划分模块的原则是,模块化和软件成本关系:模块具有输入和输出参数传递、功能、内部数据结构局部变量和程序代码四个特性1、模块化:就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求.2、模块化的根据:把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了. 模块化和软件成本关系:根据总成本曲线,每个程序都相应地有一个最适当的模块数目M,,使得系统的开发成本最小.3、模块设计的准则:1改进软件结构,提高模块独立性:在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的内聚,降低藕合;2模块大小要适中:大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中;3软件结构图的深度、宽度、扇入和扇出要适当;一般模块的调用个数不要超过5个;4尽量降低模块接口的复杂程度;5设计单入口、单出口的模块;6模块的作用域应在控制域之内;4、抽象的概念:抽出事务的本质特性而暂时不考虑它们的细节.5、信息隐蔽:模块中所包括的信息不允许其它不需这些信息的模块调用信息局部化:是把一些关系密切的软件元素物理地放得彼此靠近6、什么是模块独立性答:模块独立性概括了把软件划分为模块时要遵守的准则,也是判断模块构造是不是合理的标准;7、模块独立性:是软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中的其它的模块接口是简单的;模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果;8、为什么模块的独立性很重要答:1有效的模块化的软件比较容易开发出来2独立的模块比较容易测试和维护;总之,模块独立是好设计的关键,而设计又是决定软件质量的关键环节;9、衡量模块独立的两个标准是什么它们各表示什么含义10、答:衡量模块的独立性的标准是两个定性的度量标准:耦合性和内聚性;1耦合性;也称块间联系;指软件系统结构中各模块间相互联系紧密程度的一种度量;模块之间联系越紧密,其耦合性就越强,模块的独立性则越差;模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息;2内聚性;又称块内联系;指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量;若一个模块内各元素语句之间、程序段之间联系得越紧密,则它的内聚性就越高;耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础;模块的高内聚、低耦合的原则称为模块独立原则,也称为模块设计的原则;10、启发规则:1)改进软件结构提高模块独立性2)模块规模应该适中3)深度、宽度、扇出、、和扇入都应适当深度表示软件结构中控制的层数,它往往能粗略地标志一个系统的大小和复杂程度;宽度是软件结构内同一个层次上的模块总数的最大值;一般来说,宽度越大系统越复杂;对宽度影响最大的因素是模块的扇出;一个模块的扇入是指直接调用该模块的上级模块的个数;一个模块的扇出是指该模块直接调用的下级模块的个数;设计原则:低扇出、高扇入;4)模块的作用域应该在控制域内5)力争降低模块接口的复杂程度6)设计单入口和单出口的模块7)模块功能应该可以预测三、概要设计的方法:1、面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法;面向数据流的设计要解决的任务,就是上述需求分析的基础上,将DFD图映射为软件系统的结构;2、数据流图的类型:交换型结构和事务型结构交换型结构:由3部分组成,传入路径,变换中心,输出路径系统的传入流经过变换中心的处理,变换为系统的传出流;事务型结构:有至少一条接受路径,一个事务中心与若干条动作路径组成;当外部信息沿着接受路径进入系统后,经过事务中心获得某个特定值,就能据此启动某一条动作路径的操作;四、结构化设计1、结构化设计方法:是一种面向数据流的设计方法,中心任务就是把用DFD图表示的系统分析模型转换为软件结构的设计模型,确定软件的体系结构域接口;2、结构化方法的步骤:1复审DFD图,必要时刻再次进行修改或细化:2鉴别DFD图所表示的软件系统的结构特征,确定它所代表的软件结构是属于变换型还是事务型;3按照SD方法规定的一组规则,吧DFD图转换为初始的SC图;变换型DFD图初始SC图事务型DFD图初始SC图3、结构设计的优化规则:1对模块分割、合并和变动调用关系的指导规则:以提高模块独立性为首要标准,除此之外,适当考虑模块的大小;2保持高扇/入低扇出原则3作用域/控制域规则:作用域不要超出控制域的范围;软件系统的判定,其位置离受它控制的模块越近越好;六、详细设计重点掌握的内容:详细设计的任务和方法一般掌握的内容:详细设计的原则和详细设计的规格与评审。
软件工程导论总结
复习全书重点(包含老师重点不包括第一章)软件开发生命周期每个阶段的任务:1、问题定义:要解决的问题是什么2、可行性分析:确定问题是否值得去解决3、需求分析:回答系统必须做什么4、总体设计:系统该如何实现5、详细设计:怎样具体实现所要求的系统6、编码和单元测试:编写软件程序,并对每一个模块进行单元测试7、综合测试:通过各种测试以及相应的调试,使软件达到预定的要求8、软件维护:过各种必要的维护活动使系统持久地满足用户的需要可行性研究目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。
研究方法:技术可行性、经济可行性、操作可行性。
可行性研究的最根本的任务:对以后的行动方针提供建议。
可行性研究过程:1、复查系统规模和目标2、研究目前正在使用的系统3、导出新系统的高层逻辑模型4、进一步定义问题5、导出和评价供选择的解法6、推荐行动方针7、草拟开发计划8、书写文档提交审查系统流程图:是概括的描绘物理系统的传统工具,表达的是数据在各个部件之间的流动情况,不对数据进行加工。
数据流图:是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经历的变换。
在数据流图中没有任何具体的物理部件,它只描绘数据在软件中流动和被处理的逻辑过程。
数据流图的4中成分:源点或终点、处理、数据存储、数据流数据流图是系统的逻辑模型。
画数据流图的目的是用它来作为交流信息、分析和设计的工具。
数据字典是关于数据信息的集合,也就是对数据流图中的所有元素的定义的集合。
提供关于数据的描述信息。
数据流图和数据字典共同构成系统的逻辑模型,没有数据字典,数据流图就不严格,没有数据流图,数据字典很难发挥作用。
数据元素组成数据的方式的3种基本类型:顺序、选择、重复(可选是增加的关系算符)“=”意为等价于“+”是和[]是或{}是重复()是可选需求分析应该建立的三种模型:数据模型、功能模型、行为模型实体-联系图(E-R图)是描绘数据对象及数据对象之间的关系是用于建立数据模型的图形。
软件工程导论重点内容
软件工程导论重点内容软件工程导论是计算机科学与技术专业的一门基础课程,旨在引导学生了解软件工程的基本理论和实践方法。
本文将介绍软件工程导论课程的重点内容,涵盖软件开发过程、软件需求、软件设计、软件测试等方面。
一、软件开发过程1. 瀑布模型:介绍瀑布模型的基本概念和各个阶段的任务,包括需求分析、系统设计、编码、测试与维护。
2. 增量模型:解释增量模型的概念和原理,强调其在大型软件项目中的优势和适用条件。
3. 敏捷开发:介绍敏捷开发方法,包括Scrum、极限编程(XP)等,着重强调其迭代、适应性和用户参与的特点。
二、软件需求1. 软件需求工程:介绍软件需求的基本概念和工程过程,包括需求获取、分析、建模、验证和管理等步骤。
2. 需求规格说明:讲解需求规格说明的标准格式、内容和编写方法,包括功能需求、非功能需求和约束条件的描述。
3. 需求变更与演化:强调软件需求的动态性和变化性,介绍需求变更的处理方法和管理策略。
三、软件设计1. 结构化设计:介绍结构化设计的目标和原则,包括模块化、信息隐藏、高内聚低耦合等概念。
2. 面向对象设计:介绍面向对象设计的基本思想和方法,包括类、对象、继承、封装、多态等。
3. 设计模式:介绍常用的设计模式,包括工厂模式、单例模式、观察者模式等,并解释其在软件设计中的应用场景。
四、软件测试1. 测试基础:介绍软件测试的原理和基本概念,包括测试目标、测试用例和测试覆盖度等。
2. 黑盒测试:解释黑盒测试的方法和策略,包括等价类划分、边界值分析、决策表等。
3. 白盒测试:介绍白盒测试的方法和技术,包括代码覆盖率、路径覆盖、条件覆盖等。
五、软件质量与项目管理1. 软件质量:讲解软件质量的定义和评价标准,包括功能性、可靠性、可维护性等。
2. 软件度量与度量指标:介绍软件度量的方法和工具,包括代码行数、Bug密度、投入产出比等。
3. 软件项目管理:讲解软件项目管理的重要性和基本步骤,包括需求管理、进度管理、团队管理等。
软件工程导论复习重点一
1.软件是程序、数据及相关文档的完整集合。
2.软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
3.软件危机包含两方面问题:如何开发软件,以满足对软件日益增长的需求。
如何维护数量不断膨胀的已有软件。
4.软件危机的典型表现:对软件开发成本和进度的估计常常很不准确;用户对“已完成的”软件系统不满意的现象经常发生;软件产品的质量往往靠不住;软件常常是不可维护的;软件通常没有适当的文档资料;软件成本在计算机系统总成本中所占的比例逐年上升;软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
5.产生软件件危机的原因:一方面与软件本身的特点有关,另一方面和软件开发与维护的方法不正确有关。
6.消除软件危机的途径:首先应该对计算机软件有一个正确的认识。
其次必须充分吸取和借鉴人类从事计算机硬件研究和开发的经验教训。
还要在适当的软件工具辅助下,开发人员可以把这类工作做得既快又好。
软件工程正是从管理和技术两方面研究如何更好的开发和维护计算机软件的一门新兴学科。
7.软件工程师指导计算机软件开发和维护的一门工程学科。
8.把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。
9.软件工程方法学包含3个要素:方法、工具和过程。
方法是完成软件开发的各项任务的技术方法,回答“怎么做”的问题。
工具是为运用方法而提供的自动的伙伴自动的软件工程支撑环境。
过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
10.目前使用最广泛的软件工程方法学是传统方法学和面向对象方法学。
传统方法学(也称生命周期方法学额或结构化范型)。
前一阶段任务的完成是开始进行后一阶段工作的前提和基础,而后一阶段任务的完成通常是使前一阶段提出的揭发更进一步具体化,加进了更多的实现细节。
审查的主要标准就是每个阶段都应该提交“最新式的”高质量的文档资料,从而保证在软件开发工程结束时有一个完整准确的软件配置交付使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题.这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意.(2)软件产品的质量往往靠不住。
(3)一般软件很难维护.(4)软件生产效率很低。
(5)软件开发成本越来越大.(6)软件成本与开发进度难以估计.(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2)软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求.3.怎样克服软件危机?(1)充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3)根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4。
构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料.5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
6.软件生存周期为什么划分成阶段?(1)任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。
(2)可以降低每个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法.(3) 使软件开发的全过程以一种有条不紊的方式进行,保证软件的质量,特别是提高了软件的可维护性。
7.应该怎样来划分阶段?(1)每一个阶段的任务尽可能独立;(2)同一阶段内的任务性质尽可能相同;(3)每一个阶段任务的开始和结束有严格的标准。
8.软件开发模型有几种?它们的开发方法有可特点?软件开发模型有瀑布型、渐增型和变换型。
瀑布型开发方法是按照软件生存周期的划分依次实施,每一个阶段有明确规定的任务。
它的特点:(1)各个阶段的顺序性和依赖性;(2)划分逻辑设计与物理设计,尽可能推迟程序的物理实现;(3)每个阶段必须完成规定的文档,对其中问题通过复审及早发现,及早解决。
渐增型开发方法及特点:(1) 从部分需求出发,先建立一个不完全的系统,通过测试运行该系统取得经验和信息反馈,加深对软件需求的理解,进一步使系统扩充和完善。
如此反复,直至软件人员和用户对所设计完成的软件系统满意为止.(2)在渐增型开发下的软件是随软件开发的过程而逐渐形成的。
(3) 渐增型开发方法适合于知识型软件的开发,设计系统时对用户需求的认识开始不是很清楚的,需要在开发过程中不断认识、不断获得新的知识去丰富和完善系统。
多数研究性质的试验软件,一般采用此方法。
变换型开发方法及特点:(1)从软件需求的形式化说明出发,经过一系列的程序变换,得到最终的程序系统。
(2)该方法必须有严格的数学理论和形式化技术的支持。
9.什么是软件工程?软件工程是指导计算机软件开发和维护的工程学科。
(1)它采用工程的概念、原理、技术和方法来开发和维护软件;(2) 它将管理技术与当前经过时间考验的而证明是正确的技术方法结合起来;(3) 它强调使用生存周期方法学和结构分析和结构技术;(4) 经过人们长期的努力和探索,围绕着实现软件优质高产这个目标,从技术到管理两个方面做了大量的努力,逐渐形成了”软件工程学”这一新的学科。
10.什么是软件工程环境:方法与工具的结合,加上配套的软、硬件支持称为软件工程环境。
它能支持开发者按照软件工程的方法,全面完成生存周期中的各项任务。
第二章可行性研究1. 问题定义的任务和主要工作?问题定义的任务:将用户提出的要求具体化、定量化;确定研制系统的范围,明确研制的边界。
问题定义阶段的工作:(1)通过调查研究,了解系统需求;(2) 确定系统的功能需求、性能需求、可靠性需求、安全及保密性、资源、开发费用及开发进度等的需求;(3)问题定义阶段的产品——系统目标与范围说明书。
2。
可行性研究目的?确定在问题定义中所提出的问题是否值得去解,在限制条件下,问题能否解决。
3.可行性研究的任务?(1) 进一步分析和澄清问题的定义,在澄清问题的基础上,导出系统的逻辑模型;(2) 从系统逻辑模型中,选择问题的若干种主要解法,研究每一种解法的可行性,为以后的行动提出建议;(3)如果问题没有可行的解,建议停止系统开发;如果问题有可行的解,应该推荐一个较好的解决方案,并为工程制定一个初步的计划.4.可行性研究包括哪几方面的内容?(1)技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足;(2)经济可行性:经济效益是否超出开发成本;(3)操作可行性:系统操作在用户内部行得通吗?(4)法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律。
5.可行性研究的步骤?(1)复查系统的规模和目标;(2)研究目前正在使用的系统,总结现有系统的优劣,提出新系统的雏形;(3)导出新系统的高层逻辑模型;(4)推荐建议方案;(5)推荐行动方针;(6)书写计划任务书(可行性报告);(7)提交审查。
6. 可行性研究报告的主要内容?可行性分析的结果是可行性研究报告,内容包括:(1)系统概述:说明开发的系统名称,提出单位和开发单位。
(2)可行性研究的前提:系统目标;要求;约束和限制;可行性研究的基本准则等。
(3)对现有系统的分析:处理流程,图示说明现有系统的处理流程和数据流程;现有系统存在的问题。
(4) 系统需求:主要功能;主要性能及其要求;操作要求;信息要求;限制性要求。
(5) 建议系统:系统目标;处理流程;系统结构,功能,性能;系统技术可行性;投资和效益分析;操作可行性;法律可行性.(6) 其它可选方案:与国内外同类型方案的比较;提出一两个可行性方案供论证和探讨。
(7)制定下一阶段的预算。
(8)结论性意见:由用户方、设计方和投资方共同签署意见。
第三章需求分析1。
需求分析的描述工具有哪些?有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier图、IPO图和需求描述语言等.2。
需求分析的基本任务是什么?准确定义未来系统的目标,确定为了满足用户的需要系统必须做什么。
3.怎样建立目标系统的逻辑模型?要经过哪些步骤?建立目标系统的逻辑模型的过程也就是数据流图的分解过程。
4.什么是结构化分析?它的结构化体现在哪里?结构化分析:使用数据流程图、数据字典、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档—需求规格说明书。
结构化体现在将软件系统抽象为一系列的逻辑加工单元,各单元之间以数据流发生关联。
5。
软件需求规格说明书由哪些部分组成?组成包括:(1)引言:编写目的、背景说明、术语定义及参考资料等。
(2)概述主要功能、约束条件或特殊需求.(3)数据流图与数据字典。
(4) 用户接口、硬件接口及软件接口。
(5)性能需求、属性等.(6) 其它需求,如数据库、操作及故障处理等。
6.为什么数据流图要分层?画分层的DFD要遵循哪些原则?分层的目的:便于逐步细化、结构清晰。
画分层的DFD要遵循哪些原则:(1)父图与子图之间数据要平衡。
(2)分解的深度和层次达到使加工足够简单、易于理解的基本加工为止。
(3)区分局部文件和局部外部项(局限于数据流中某一层或某几层的文件和外部项)。
(4)不要把控制流作为数据流。
(5)忽略琐碎的枝节。
(6)每个数据流要有一个合适的名字,尽量使用现实系统中有具体意义的名字。
7。
系统流程图与数据流程图有什么区别?系统流程图描述系统物理模型的工具,数据流程图描述系统逻辑模型的工具。
系统流程图从系统功能的角度抽象的描述系统的各个部分及其相互之间信息流动的情况。
数据流程图从数据传送和加工的角度抽象的描述信息在系统中的流动和数据处理的工作状况.8。
数据字典包括哪些内容?它的作用是什么?数据字典是描述数据流图中数据的信息的集合。
它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。
对用户来讲,数据字典为他们提供了数据的明确定义;对系统分析员来讲,数据字典帮助他们比较容易修改已建立的系统逻辑模型。
9.描述加工逻辑的工具有哪些?判定树、判断表和结构化语言等.第四章总体设计1。
系统设计包括哪两个阶段?系统设计包括总体设计与详细设计两个阶段。
2. 总体设计的主要任务是什么?总体设计的主要任务是完成软件结构的设计,确定系统的模块及其模块之间的关系。
3。
什么是模块?模块具有哪几个特征?总体设计主要考虑什么特征?模块是数据说明、可执行语句等程序对象的集合,可以单独命名且可通过名字来访问。
模块具有输入和输出(参数传递)、功能、内部数据结构(局部变量)和程序代码四个特性。
概要设计主要考虑输入、输出(参数传递)和功能两个特性。
4。
什么是模块化?模块设计的准则?模块化是按规定的原则将一个大型软件划分为一个个较小的、相对独立但又相关的模块。
模块设计的准则:(1) 改进软件结构,提高模块独立性:在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的内聚,降低藕合。
(2)模块大小要适中:大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中。
(3) 软件结构图的深度、宽度、扇入和扇出要适当.一般模块的调用个数不要超过5个.(4)尽量降低模块接口的复杂程度;(5) 设计单入口、单出口的模块.(6)模块的作用域应在控制域之内。
5。
变换型数据流由哪几部分组成?变换型结构由三部分组成:传入路径、变换(加工)中心和传出路径。
6。
变换分析设计的步骤?(1)区分传入、传出和变换中心三部分,划分DFD图的分界线;(2)完成第一级分解:建立初始SC图的框架;(3) 完成第二级分解:分解SC图的各个分支;(4) 对初始结构图按照设计准则进行精化与改进。