1《软件工程》串讲讲义应考指导一、课程介绍1、课程性质《软件工程》是全国高等教育自学考试计算机及应用(独立本科段)的一门专业课。软件工程是研究软件开发的一门课程,其主要内容包括:软件开发所需要的过程、活动和任务,以及这些活动和任务的组织、实施和管理。2、指定教材本课程指定教材为《软件工程》,全国高等教育自学考试指导委员会组编,王立福主编,机械工业出版社出版,2011年版。新版教材与2000年版相比,无论是内容还是内容的组织,都有了很大的变化。整个知识体系、章节安排、内容选取都不一样,这是考生一定要注意的。新版教材的内容组织特点主要体现在:基于对软件开发本质的认识,讲解软件工程的两大技术问题:一是开发逻辑,二是开发途径。开发逻辑涉及软件生存周期过程、软件生存周期模型(有关过程、活动和任务的组织框架)以及项目软件生存周期的规划与监控。开发途径涉及结构化方法和面向对象方法,以及支持软件评估所需要的软件测试技术等。3、章节体系本课程共有8章:第1章:回答什么是软件开发的本质第2章:软件需求与软件需求规约第3章:结构化方法第4章:面向对象方法-UML第5章:面向对象方法-RUP第6章:软件测试。第7章:软件生存周期过程及管理第8章:集成化能力成熟度模型CMMI二、考情分析21.历年真题的分布情况由于教材刚刚经过改版,新教材刚经过2011年10月、2012年01月、2012年10月三次考试。通过对2011年10月、2012年01月这两次真题的分析,各章所占分值的分布情况如下表所示:年份章名、题型2011-102012-01一、绪论(单项、填空题)3分3分二、软件需求与软件需求规约911三、结构化方法(单、填、简答、综合)25分25分四、面向对象方法-UML(单、填、简答)11分11分五、面向对象方法-RUP(单、填、简答)12分12分六、软件测试(单、填、简答、综合)25分23分七、软件生存周期过程及管理(单、填、简)10分10分八、集成化能力成熟度模型CMMI55从上面的统计数据可以看出:主要的分值分布在第3章和第6章,分别占到总分的25%左右。第1章和第8章的考核知识点相对较少。2.题型分析本课程的考试题型分为:(1)单项选择题,共15小题,每小题2分,共30分(2)填空题,共20个空,每空1分,共20分(3)简答题,共6小题,每小题5分,共30分(4)综合应用题,共2题,每题10分,共20分3.复习方法(1)以教学大纲为准绳。自学考试的原则是:考试范围既不超出大纲又不超出教材范围。所以考生一定根据教学大纲规定的考试内容和考核要求,认真学习教材,要全面、系统了解教材中的基本概念、基本知识。(2)有的放矢。在学习的过程中,为了达到“事半功倍”,要学会“舍”。要用有限的时间去抓重点,对重点内容要进行深入细致的学习。3(3)注意学习方法,理论联系实际,注重理解重视理论联系实际,训练并逐渐提高运用所学理论分析和解决实际案例的能力。考生应当注意在全面系统学习教材的基础上,尽可能多地了解和分析实际案例,以便更深刻地领会教材的内容,提高分析和解决实际问题的能力。(4)合理安排时间,抓住学习重点根据实际情况自己安排,利用平时空余时间观看网络课件,形成基本的了解。接下来认真地做一些练习题,不清楚的地方再回过头去看看书,并注意对不同的知识点进行比较,加深印象。第一章绪论复习建议:本章内容较少,主要是让大家了解软件工程的提出的背景-软件危机以及软件工程研究的内容。考试题目类型主要是单项选择题、填空题,题量在3%~5%之间。第一节软件工程概念的提出与发展1.软件危机(1)速度:软件的发展水平远远滞后于硬件的发展水平,生产率低下,软件制造仍然是一种人工集约生产方式(2)质量:软件的质量低下,不能满足用户的需求、适应性差(3)成本:软件开发成本居高不下软件开发的速度、软件制品的质量、软件开发成本是软件工程的三个核心问题。2.软件工程的发展(1)20世纪60~80年代瀑布模型;过程化语言;支持工具(2)20世纪80年代~今软件复用技术;软件生产管理;面向对象语言(3)近几年4软件复用技术:构件技术、平台技术、需求工程技术、领域分析技术、应用集成技术等。第二节软件开发的本质1.软件软件=程序+文档2.软件开发的本质:“映射”,即实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。3.系统建模运用所掌握的知识,通过抽象,给出系统的一个结构。4.模型模型是一个抽象。模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述、对系统内各模型元素以及它们之间关系的语义描述。5.系统模型的类型(1)概念模型:描述软件是什么(2)软件模型:实现概念模型的软件解决方案。包括设计模型、实现模型和部署模型。第二章需求获取复习建议:正确定义问题,是解决问题的基础。需求获取是软件开发的第一步,它的工作质量决定了整个软件开发工作的成败,因此本章的内容是考核的重点内容。考核的题目类型主要有:单项选择题、填空题、简答题,分值在10%左右。内容以基本概念、基本原理为主。第一节需求与需求获取1.需求的定义一个需求是有关一个“要予构造”的陈述,描述了待开发产品/系统功能能力、性能参数或其它性质。2.需求的基本性质5(1)必要的(2)无歧义的(3)可测的(4)可跟踪的(5)可测量的3.需求的分类★(1)功能需求,是整个需求的主体。(2)非功能需求:性能需求、外部接口需求、设计约束和质量属性需求。能够区分哪些是功能需求,哪些是性能需求。4.接口需求的类别(1)用户接口(2)硬件接口(3)软件接口(4)通信接口(5)内存约束(6)运行(7)地点需求5.设计约束需求(1)法规政策(2)硬件限制(3)与其它应用的接口(4)并发操作(5)审计能力(6)控制功能(7)高级语言要求(8)握手协议(9)应用的关键程度(10)安全和保密6.质量属性(1)可靠性(2)存活性6(3)可维护性(4)用户友好性7.需求发现的技术(1)自悟(2)交谈(3)观察(4)小组会(5)提炼第二节需求规约(SRS)1.需求规约的定义★是一个软件/产品/系统所有需求陈述的正式文档,它表达了一个软件/产品/系统的概念模型。2.需求规约的基本性质★(1)重要性和稳定性程度:对需求进行分级(2)可修改的(3)完整的:没有被遗漏的需求(4)一致的:不存在互斥的需求3.需求规约的格式IEEE标准830-1998(IEEE1998)描述的需求规格说明书模板。74.需求规约(规格说明书)的表达(1)非形式化的需求规约(2)半形式化的需求规约(3)形式化的需求规约5.需求规约的作用★8(1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现(2)需求规约是一个管理控制点(3)对于产品/系统的而设计,需求规约是一个正式的、受控的起始点(4)需求规约是创建产品验收计划和用户指南的基础第三章结构化方法复习建议:自顶向下,逐步求精。本章是整个课程的重点内容,其基本思想、基本原理和基本方法是软件工程理论体系中最经典的内容,考核题型涉及单项选择题、填空题、简答题、综合应用题所有题目类型,占分值25%左右。建议考生在牢记基本概念、基本原理的基础上,对综合应用题多下工夫,多做练习。第一节结构化需求分析1.需求分析面临的挑战(1)问题空间理解(2)人与人之间的通信,“有效沟通”(3)需求的变化性2.结构化分析中的基本术语及表示方法(1)数据流(2)加工(3)数据存储(4)数据源和数据潭93.数据流图DFD图★用于建立系统功能模型。是一种描述数据变换的图形化工具,其中包含的元素可以是数据流、数据存储、加工、数据源和数据潭等。4.建模过程(绘制流程图的过程)自顶向下、功能分解(1)建立系统环境图(2)0层图:从0层图开始对流程图中的要素编号(3)1层图(4)……【例题】绘制数据流程图(2008年10月真题)41.某个学生成绩管理系统的部分功能如下:(1)基本信息管理:教务管理人员输入或修改学期教学执行计划、学生名单和教师名单;(2)学生选课:学生根据教学执行计划进行选课;(3)分配任课教师:教务管理人员为符合开课条件的课程分配教师,并打印任课通知单给教师;(4)成绩管理:每门课程的教师在考试评分结束后将考试成绩交给教务管理人员,教务管理人员输入、维护成绩,系统可生成成绩单(发给学生)、成绩统计分析表(发给教务管理人员)。请根据要求画出该问题的分层数据流图(要求画出顶层和0层数据流图)。【解析】顶层图:只包含数据源/数据潭以及相关的数据流和一个处理。顶层图选课信息任课通知单成绩单成绩单成绩单选课信息学生成绩任课通知单教师成绩管理系统学生学生成绩录入教师10学期教学执行计划学生名单学生选课结果教师信息0层图要注意的问题:①黑洞(blackhole),即只有输入而没有输出。②只有输出而没有输入。③灰洞(grayhole),即输入不足以产生输出。灰洞是经常也是不易被察觉的错误。④加工处理只用来表示数据的处理和变化,避免将计算机命令作为处理。⑤数据流必须起于且/或止于处理,即每一个数据流必须有一个处理与之有关,数据流不能起于数据存贮且止于一个数据源/数据潭或另一个数据存贮;也不能起于某个实体且止于另一个数据源/数据潭或数据存贮。5.数据字典定义数据流程图中所有数据流和数据存储的数据结构。顺序结构:+选择结构:|重复结构:{}子界:m..n6.加工的描述★(1)判定表判断表(DecisionTable)也称为决策表,是一个二维表,它说明了每一种条件组合所产生的结果。该表分为四个象限(quadrants)。a)左上限代表所有的条件b)左下限代表可能的结果c)右上限代表每一种条件的取值(用Y和N来表示)d)右下限用X表示所对应的条件组合所产生的结果基本信息处理学生选课任课安排11【例题】画出顾客购货的折扣政策的决策表。销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。若付款日期在10天以内(含10天),则当交易额超过¥10,000时,给予5%的折扣;当交易额在¥5,000到¥10,000之间(含¥5,000)时,给予3%的折扣;当交易额低于¥5,000时,没有折扣。若付款日期超过10天,则无论交易额多少,均不给任何折扣。【解析】(2)判定树判断树(DecisionTree)也称为决策树,是用来描述在一组不同的条件下,决策的行动是根据不同条件及其取值来选择的处理过程。业务规则的描述通常可以使用判断树这一过程描述工具。12【例题】画出顾客购货的折扣政策的决策树。销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。若付款日期在10天以内(含10天),则当交易额超过¥10,000时,给予5%的折扣;当交易额在¥5,000到¥10,000之间(含¥5,000)时,给予3%的折扣;当交易额低于¥5,000时,没有折扣。若付款日期超过10天,则无论交易额多少,均不给任何折扣。解析:(3)结构化语言【例题】用结构化语言表达:顾客购货的折扣政策。销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。若付款日期在10天以内(含10天),则当交易额超过¥10,000时,给予3%的折扣;当交易额在¥5,000到¥10,000之间(含¥5,000)时,给予2%的折扣;当交易额低于¥5,000时,没有折扣。若付款日期超过10天,则无论交易额多少,均不给任何折扣。IF付款日期在10日以上折扣=0ELSEIF交易额=10000折扣=3%ELSEIF交易额=5000折扣=2%ELSE折扣=07.需求验证(1)验证每一个需求满足5个性质(2)验证需求规格说明书满足4个性质13第二节结构化设计分为总体设计和详细设计1.总体设计的任务把系统的功能需求分配到一个特定的软件体系结构中。2.表达软件体系结构的工具(1)模块结构图(2)层次图(3)HIPO图3.模块结构图★结构图(StructureChart)是对软件总体结构的一种图形描述,它显示了软件的层次结构、组织和通讯。也就是说,在结构图中,显示了软件是由哪些模块组成的,这