软件工程第一章绪论复习建议:本章内容较少,主要是让大家了解软件工程的提出的背景-软件危机以及软件工程研究的内容。考试题目类型主要是单项选择题、填空题,题量在3%~5%之间。第一节软件工程概念的提出与发展1、软件危机速度:软件的发展水平远远滞后于硬件的发展水平,生产率低下,软件制造仍然是一种人工集约生产方式质量:软件的质量低下,不能满足用户的需求、适应性差成本:软件开发成本居高不下软件工程的三个核心问题:软件开发的速度、软件制品的质量、软件开发成本2、软件工程的发展(1)20世纪60~80年代瀑布模型;过程化语言;支持工具(2)20世纪80年代~今软件复用技术;软件生产管理;面向对象语言(3)近几年软件复用技术:构件技术、平台技术、需求工程技术、领域分析技术、应用集成技术等。3、什么是软件工程:应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的科学第二节软件开发的本质•软件软件=程序+文档•软件开发的本质:“映射”,问题域到不同抽象层之间概念和计算逻辑的映射.2实现映射的基本手段何谓建立问题的模型:问题的结构化谱系例如1:y=x²+5结构化问题非结构化或半结构化问题是解决问题的一般途径!其中:采用数学作为建模工具建模:运用所掌握的知识,通过抽象,给出该问题的一个结构。•模型模型是一个抽象。模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述、对系统内各模型元素以及它们之间关系的语义描述。•系统模型的类型概念模型:描述软件是什么软件模型:实现概念模型的软件解决方案。包括设计模型、实现模型和部署模型。第二章软件需求与软件需求规约复习建议:正确定义问题,是解决问题的基础。需求获取是软件开发的第一步,它的工作质量决定了整个软件开发工作的成败,因此本章的内容是考核的重点内容。考核的题目类型主要有:单项选择题、填空题、简答题,分值在10%左右。内容以基本概念、基本原理为主。第一节:需求与需求获取1、需求的定义一个需求是有关一个“要予构造”的陈述,描述了待开发产品/系统功能能力、性能参数或其它性质。2、需求的基本性质•必要的•无歧义的•可测的•可跟踪的•可测量的3、需求的分类★•功能需求,是整个需求的主体。•非功能需求:性能需求、外部接口需求、设计约束和质量属性需求。能够区分哪些是功能需求,哪些是性能需求。例如:系统必须有能力支持100个以上的并发用户,每个用户可以处理附录A中操作任务的任选组合,平均响应时间应该小于1秒,最大响应时间应小于5秒。其中:功能-可以处理附录A中操作任务的任选组合性能-有能力支持100个以上的并发用户平均响应时间应小于1秒,最大响应时间应小于5秒。必须在对话窗口的中间显示错误警告,其中使用红色的、14点加粗Arial字体。其中:功能-能显示错误警告设计约束-在对话窗口的中间显示,并使用红色的、14点加粗Arial字体。除了对要执行的功能给出一个陈述外,还应规约如下内容:关于该功能输入的所有假定,或为了验证该功能输入,有关检测的假定。功能内的任一动作次序,这一次序是与外部有关的。对异常条件的响应,包括所有内外部所产生的错误。需求的时序或优先程度。功能之间的互斥规则。系统内部状态的假定。为了该功能的执行,所需要的输入和输出次序。用于转换或内部计算所需要的公式。4、性能需求规约了一个系统或系统构件必须具有的性能特性。例如:系统应该在5分钟内计算出给定季度的总销售税。系统应该在1分钟内从100000条记录中检索出一个销售定单。该应用必须支持100个Windows95/NT工作站的并行访问。注1:性能需求隐含了一些满足功能需求的设计方案,经常对设计产生一些关键的影响。例如:排序,关于花费时间的规约将确定哪种算法是可行的。注2:性能需求对功能需求而言,可以是一对多的,例如:性能x功能1功能2功能3...5、接口需求的类别•用户接口和用户之间接口的逻辑特性。•硬件接口说明所要求的支持和协议类型•软件接口允许与其它软件产品进行交互•通信接口与通讯设施(如,局域网)之间的交互•内存约束易失性存储和永久性存储的特性和限制•运行正常和异常的运行以及在系统正常和异常运行下如何与系统进行交互•地点需求描述系统安装以及如何调整一个地点,以适应新的系统。6、设计约束需求•法规政策•硬件限制•与其它应用的接口•并发操作•审计能力•控制功能•高级语言要求•握手协议•应用的关键程度•安全和保密7、质量属性质量属性(Qualityattribute)规约了软件产品必须具有的一个性质是否达到质量方面一个所期望的水平。例如:属性描述可靠性软件系统在指定环境中没有失败而正常运行的概率。存活性当系统的某一部分系统不能运行时,该软件继续运行或支持关键功能的可能性。可维护性发现和改正一个软件故障或对特定的范围进行修改所要求的平均工作。用户友好性学习和使用一个软件系统的容易程度。需求发现的技术•自悟•交谈•观察•小组会•提炼第二节需求规约(SRS)1、需求规约的定义★是一个软件/产品/系统所有需求陈述的正式文档,它表达了一个软件/产品/系统的概念模型。2、需求规约的基本性质★•重要性和稳定性程度:对需求进行分级•可修改的•完整的:没有被遗漏的需求•一致的:不存在互斥的需求3、需求规约(SRS)基本格式(P28)4、表达需求规约(规格说明书)的三种风格非形式化的规约即以一种自然语言来表达需求规约,如同使用一种自然语言写了一篇文章.其中:可以不局限于那种语言通常所约定的任何符号或特殊限制(例如文法和词法),但要为那些在一个特定语境中所使用的术语提供语义定义,一般情况下,该语境与通常使用该术语的语境是有区别的。半形式化的规约即以半形式化符号体系(包括术语表、标准化的表达格式等)来表达需求规约。因此,半形式化规约的编制应遵循一个标准的表示模板(一些约定)。其中:--术语表明确地标识了一些词,可以基于某一种自然语言--标准化的表达格式(例如例如数据流图、状态转换图、实体关系图、数据结构图以及过程结构图等)标识了一些元信息,支持以更清晰的方式系统化地来编制文档.--应用中,不论是词还是标准化的表达格式,在表达上均必须遵循一些约定,即应以一种准确和一致方式使用之。形式化规约即以一种基于良构数学概念的符号体系来编制需求规约,一般往往伴有解释性注释的支持。其中:--以数学概念用于定义该符号体系的词法和语义;--定义了一组支持逻辑推理的证明规则,并支持这一符号体系的定义和引用。5、需求规约的作用其作用可概括为:第一:也是最重要的,作为软件开发组织和用户之间一份事实的技术合同书;是产品功能及其环境的体现。第二,对于项目的其余大多数工作,它是一个管理控制点。第三,对于产品的设计,它是一个正式的、受控的起始点。第四,是创建产品验收测试计划和用户指南的基础SRS所不能实现的作用第一,它不是一个设计文档。它是一个“为了”设计的文档。第二,它不是进度或规划文档,不应该包含更适宜包含在工作陈述(SOW)、软件项目管理计划(SPMP)、软件生存周期管理计划(SLCMP)、软件配置管理计划(SCMP)或软件质量保证计划(SQAP)等文档中的信息。因此,在SRS中不应给出:项目成本;交付进度;报告规程;软件开发方法;质量保证规程;配置管理规程;验证和确认规程;验收规程;安装规程。第三章结构化方法复习建议:自顶向下,逐步求精。本章是整个课程的重点内容,其基本思想、基本原理和基本方法是软件工程理论体系中最经典的内容,考核题型涉及单项选择题、填空题、简答题、综合应用题所有题目类型,占分值25%左右。建议考生在牢记基本概念、基本原理的基础上,对综合应用题多下工夫,多做练习。第一节结构化需求分析第三章结构化方法1、需求分析面临的挑战问题空间理解人与人之间的通信,“有效沟通”需求的变化性第三章结构化方法第三章结构化方法3、数据流图DFD图★用于建立系统功能模型。是一种描述数据变换的图形化工具,其中包含的元素可以是数据流、数据存储、加工、数据源和数据潭等。4、建模过程(绘制流程图的过程)自顶向下、功能分解(1)建立系统环境图(2)自顶向下,逐步求精,建立系统的层次数据流图0层图:从0层图开始对流程图中的要素编号1层图……(3)定义数据字典(4)描述加工第三章结构化方法【例题】绘制数据流程图(2008年10月真题)41.某个学生成绩管理系统的部分功能如下:(1)基本信息管理:教务管理人员输入或修改学期教学执行计划、学生名单和教师名单;(2)学生选课:学生根据教学执行计划进行选课;(3)分配任课教师:教务管理人员为符合开课条件的课程分配教师,并打印任课通知单给教师;(4)成绩管理:每门课程的教师在考试评分结束后将考试成绩交给教务管理人员,教务管理人员输入、维护成绩,系统可生成成绩单(发给学生)、成绩统计分析表(发给教务管理人员)。请根据要求画出该问题的分层数据流图(要求画出顶层和0层数据流图)。第三章结构化方法【解析】顶层图:只包含数据源/数据潭以及相关的数据流和一个处理。第三章结构化方法要注意的问题:1、黑洞(blackhole),即只有输入而没有输出。②只有输出而没有输入。③灰洞(grayhole),即输入不足以产生输出。灰洞是经常也是不易被察觉的错误。④加工处理只用来表示数据的处理和变化,避免将计算机命令作为处理。⑤数据流必须起于且/或止于处理,即每一个数据流必须有一个处理与之有关,数据流不能起于数据存贮且止于一个数据源/数据潭或另一个数据存贮;也不能起于某个实体且止于另一个数据源/数据潭或数据存贮。第三章结构化方法5、数据字典定义数据流程图中所有数据流和数据存储的数据结构。定义为:=顺序结构:+选择结构:【1】重复结构:{}子界:m..n第三章结构化方法6、加工的描述★(1)判定表判断表(DecisionTable)也称为决策表,是一个二维表,它说明了每一种条件组合所产生的结果。该表分为四个象限(quadrants)。1.左上限代表所有的条件2.左下限代表可能的结果3.右上限代表每一种条件的取值(用Y和N来表示)4.右下限用X表示所对应的条件组合所产生的结果【例题】画出顾客购货的折扣政策的决策表。销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。若付款日期在10天以内(含10天),则当交易额超过¥10,000时,给予5%的折扣;当交易额在¥5,000到¥10,000之间(含¥5,000)时,给予3%的折扣;当交易额低于¥5,000时,没有折扣。若付款日期超过10天,则无论交易额多少,均不给任何折扣。(2)、判定树判断树(DecisionTree)也称为决策树,是用来描述在一组不同的条件下,决策的行动是根据不同条件及其取值来选择的处理过程。业务规则的描述通常可以使用判断树这一过程描述工具。【例题】画出顾客购货的折扣政策的决策树。销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。若付款日期在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、需求验证•验证每一个需求满足5个性质:必要的、无歧义的、可测的、可跟踪的、可测量的•验证需求规格说明书满足4个性质:重要性和稳定性