软件工程齐志昌版.ppt
2023/3/10,1,软件工程 Software Engineering,2023/3/10,2,第三章 基于计算机的系统工程,系统与系统工程基于计算机系统工程的概念可行性研究系统模型与模拟系统规格说明与评审,2023/3/10,3,3.1 计算机系统工程,硬件工程软件工程人机工程数据库工程,第三章 计算机系统工程,2023/3/10,4,3.1.1 硬件和硬件工程,基于计算机的系统需要计算机硬件的支撑计算机系统工程师根据系统需求为硬件系统指派任务,产生硬件需求。硬件工程师根据硬件需求设计、制造或选择硬部件或设备,如主机、通用或专用外部设备、网络与通信设备等。为了建造一个高质量的、用户满意的硬件系统,硬件工程师必须认真考虑硬件系统功能和性能,硬件之间的接口、硬件的标准化、硬件成本和维修服务等因素。硬件工程师按照质量保证计划和要求生产硬件产品并实现硬件系统。产品通过一定的销售渠道出售,相应的服务机构负责产品维修、升级和扩充。,3.1计算机系统工程,2023/3/10,5,3.1计算机系统工程,2023/3/10,6,3.1.2 软件和软件工程,当基于计算机的系统需要交互式的人机界面时,软件可以实现人机交互的逻辑功能。提供人机界面的提示机制,实现系统的输入、输出。软件利用系统显示器可以实现文字、图形、图象的显示。当系统需要从某个外部设备上获取数据时,软件驱动程序可以调用并控制硬件。软件还可以设置系统与数据库的界面,支持系统与数据库的数据交换。基于计算机系统的功能是靠软件执行一系列算法实现的。一个或几个算法的输出数据或控制信息可以作为另一个算法的输入。在IPO模型中,信息来自系统外部或系统内部。,3.1计算机系统工程,2023/3/10,7,3.1计算机系统工程,2023/3/10,8,3.1.3 人机工程,基于计算机系统包含人的因素人与计算机硬件和软件的直接交互可以启动并控制系统运行在系统的开发与维护活动中人的因素起着十分关键的作用。人机界面(HCI)很难被用户理解和掌握 设计高质量的人机界面要使用计算机技术,心理学、美学等方面的知识。“人机友好”已成为基于计算机系统的一项重要技术指标人机工程已成为开发基于计算机系统的一项重要内容,3.1计算机系统工程,2023/3/10,9,人机工程,步骤(1)活动分析 分析人机交互过程,评价人机交互过程中人的活动,根据“活动”设计计算机的“任务”。(2)动作定义和设计 根据人机交互活动,定义人机界面每一个动作的精确内容。(3)人机对话语言设计 定义人机对话语言的语法和语义,实现语言中的每一个动作和命令。(4)用户环境设计 将支撑人机界面的软件、硬件集成起来构成一个用户环境。应考虑空间、光线、温度等因素。(5)原型设计 根据用户要求设计原型、请用户对原型评审。以通过评审的原型为基础设计人机界面。不借助原型的帮助,软件工程师很难设计出用户满意的人机界面。,3.1计算机系统工程,2023/3/10,10,3.1.4 数据库工程,在某些以信息处理为核心的基于计算机的系统中,信息的存取常常是系统工作的枢纽数据库系统是基于计算机系统的重要组成部分,它将有关的硬件、软件、数据和数据库管理人员组合起来为用户提供信息服务开发一个数据库系统是一项复杂、庞大的软件工程项目,人们也常称之为数据库工程,3.1计算机系统工程,2023/3/10,11,数据库工程的任务,(1)可行性论证 调查用户的信息需求和对信息处理的要求,进行可行性论证,提出成本预算和工作计划等(2)论证、选择和购置支持数据库系统的硬件、软件和网络环境,特别是数据库管理系统(DBMS),3.1计算机系统工程,2023/3/10,12,数据库工程的任务,(3)数据库设计与实现。软件工程师和数据库管理员根据用户对数据库系统的要求进行需求分析和数据分析,产生需求说明和数据说明。以需求说明和数据说明为基础进行概念设计产生依赖用户的数据库概念模型;以概念模型为基础进行逻辑设计,产生依赖于DBMS的逻辑模型;以逻辑模型为基础进行物理设计产生一个完整的、可实现的数据库。根据软件工程的原则,每一步骤结束后都应进行评审。评审通过往下进行,否则向前迭代,重复前面步骤。最后要对数据库系统进行测试,并生成各种文档。,3.1计算机系统工程,2023/3/10,13,数据库工程的任务,(4)数据库的数据按照系统确定的范围和用户的需要收集、整理、储存起来的。数量大、类型多(含数字、文字、图形、图象、声音等)、关系复杂(数据之间有一对一、一对多,多对多的对应关系)、需要及时补充、修改和更新等特点。数据的存储应有利于数据的查询、修改并尽量减少数据的冗余。(5)数据库管理人员 数据库工程的重要组成部分,负责管理数据库资源,收集和确定用户需求,参与数据库系统的论证、设计与实现,参与数据的收集、整理、分类和储存,负责数据库的管理和维护,并为用户提供培训和有关资料等等。,3.1计算机系统工程,2023/3/10,14,3.2 可行性研究,3.2.1 引言开发基于计算机的系统会受到时间、技术和资源的限制。接受项目之前必须根据客户提供的时间、资源和技术力量进行可行性研究,避免盲目性。可行性研究与风险分析相互关联,项目风险越大,开发高质量软件的可行性就越小。,第三章 计算机系统工程,2023/3/10,15,可行性研究,经济可行性 技术可行性 开发方案的选择性,3.2可行性研究,2023/3/10,16,3.2.2 经济可行性,计算机迅速发展的原因在于,计算机的应用给社会带来了巨大的经济效益。基于计算机系统的成本效益分析,给出系统开发的成本论证,并将估算的成本与预期的利润进行对比。项目开发成本受项目的特性、规模等因素制约。系统分析员很难直接估算基于计算机系统的成本和利润,得到完全精确的成本-效益分析结果十分困难。,3.2可行性研究,2023/3/10,17,经济可行性,基于计算机系统的成本 购置并安装软件、硬件及有关设备的费用。系统开发费用。系统安装、运行和维护费用。人员培训费用。在系统分析和设计阶段只能得到预算,即估算成本。在系统开发完毕并交付用户运行后,费用的统计结果就是实际成本。,3.2可行性研究,2023/3/10,18,经济可行性 成本效益分析,系统效益经济效益系统为用户增加的收入,可以用直接的或统计的方法估算。估算项目的开发成本是否超过预期的利润分析系统开发对其他产品或利润的影响社会效益 用定性的方法估算。,3.2可行性研究,2023/3/10,19,例3.1 开发计算机辅助设计(CAD)系统取代当前的手工设计过程,系统分析员为手工设计系统和CAD目标系统进行成本效益分析T:绘一幅图的平均时间,单位是小时。d:每小时绘图的平均成本,单位是元。n:每年绘图的数目。r:用CAD系统绘图减少的绘图时间比例。p:用CAD系统绘图的百分比。利用CAD系统绘图每年可以节省的经费为:BrTndp当r=1/4,T=4小时,n=8000/年,d=20元/小时,p60%代入上式计算得B=96000元/年。用CAD绘图比用手工系统绘图平均每年约节省96000元。,3.2可行性研究,2023/3/10,20,CAD系统成本效益分析,系统开发成本、节省的经费与时间的关系如图所示。盈亏平衡点对应的时间坐标是3.1年,系统应用3.1年后可以收回成本。投资成本包括软硬件降价、税收的影响和其他潜在的因素。,3.2可行性研究,2023/3/10,21,提高效益与追加成本的关系,曲线AB段表明,系统在完成用户需求的条件下尚有一定潜力支持附加的功能和性能。曲线BC段表示,再增加功能和性能附加成本会急剧增加,这时系统没有能力再支持新的功能和性能,要做到这点必须增加新的软、硬件资源。例 将单用户操作系统的计算机系统改造成多用户系统。系统效益明显增加,成本增加不多。当用户增加到一定数量时,系统扩充成本迅速增长。,3.2可行性研究,2023/3/10,22,3.2.3 技术可行性,根据客户提出的系统功能、性能及实现系统的各项约束条件,从技术的角度研究实现系统的可行性 研究内容风险分析 在给定的约束条件下,判断能否设计并实现系统所需功能和性能。资源分析 论证是否具备系统开发所需的各类人员(管理人员和各类专业技术人员)、软件、硬件资源和工作环境等。技术分析 当前的科学技术是否支持系统开发的全过程。,3.2可行性研究,2023/3/10,23,技术可行性,采集影响系统性能、可靠性、可维护性方面的信息论证实现系统功能和性能需要的各种设备、技术、方法和过程分析项目开发在技术上担负的风险,及对开发成本的影响等等如有可能应研究,现有类似系统的功能、性能,采用的技术、工具、设备,开发过程中成功和失败的经验、教训,为系统开发作参考,3.2可行性研究,2023/3/10,24,技术可行性:途径,系统分析员通过对现实世界的观察和分析建立分析模型评估模型的行为并将它们与现实世界对比论证系统开发方案在技术上的可行性和优缺点。开展其它技术可行性研究和设计活动,3.2可行性研究,2023/3/10,25,技术可行性:困难,技术发展块领域知识不熟悉 系统目标、功能和性能不确定建立分析模型、仿真,3.2可行性研究,2023/3/10,26,3.2.4 方案选择,系统分析任务完成后,系统工程师开始研究问题求解方案。分而治之将一个大的复杂系统分解为若干个子系统;精确地定义子系统的界面、功能和性能;给出各子系统之间的关系。系统分解和实现的方案不是唯一的。每种方案对成本、时间、人员、技术、设备等都有一定的要求。不同方案开发出来的系统在系统功能、性能方面会有很大差异。,3.2可行性研究,2023/3/10,27,方案选择:成本,研究成本、设计成本、设备成本、程序编码成本、测试和评审成本、系统运行和维护成本、系统退役成本等 在开发系统所用总成本不变的情况下,由于系统开发各阶段所用成本分配方案的不同会对系统的功能和性能产生相当大的影响。,3.2可行性研究,2023/3/10,28,方案选择:过程,功能、性能、成本技术、设备、风险 对开发人员的要求,3.2可行性研究,2023/3/10,29,方案选择:折衷,折衷是软件工程的重要、重复概念。折衷过程也是系统论证和选择、确定系统开发方案的过程。例 客户和系统工程师在成本、清晰度和响应时间三者之间选取折衷方案。,3.2可行性研究,2023/3/10,30,3.3 系统模型与模拟,系统工程师将基于计算机的系统功能和性能分解,定义若干个子系统及其界面之后,开始建立系统模型,为需求分析和设计阶段的工作奠定基础。输入处理输出(IPO)结构是系统建模的基础,它将基于计算机的系统转换成一个信息变换模型。系统采用交互方式实现系统与现实世界的信息交流。,第三章 计算机系统工程,2023/3/10,31,系统模型与模拟,系统通过硬件、软件对现实世界的对象、事件和过程进行管理和控制。系统建立之前人们很难理解和预测系统的性能、效率和行为。开发实时嵌入式系统时风险很大。为了减少风险和代价,在系统分析和设计阶段普遍采用系统建模和模拟技术。,3.3系统模型与模拟,2023/3/10,32,计算机系统模拟,1.能够反映系统配置的动态特性,提供系统真实的结果,有利于评审。2.能够综合与系统有关的全部因素,能够再现系统运行的结果。3.能够突出与系统有关的重要因素,忽略次要的因4.容易实现、理解、操作和修改。,3.3系统模型与模拟,2023/3/10,33,3.3.1 系统模型:结构图,系统工程师用结构模板开发系统模型。它由用户界面处理、输入、处理和控制、输出、维护和自测试五部分组成。结构模板能帮助分析人员按照系统工程和软件工程的建模技术至顶向下、由粗到细地建立基于计算机系统的系统模型。,3.3系统模型与模拟,2023/3/10,34,模型,模型是现实系统的描述,是现实系统的抽象和简化模型必须反映现实系统的本质和实际模型必须由现实系统的有关元素组成模型必须反映这些元素之间的关系模型应尽可能简单、易修改模型应指明系统的约束条件用户必须参与和确认模型开发,3.3系统模型与模拟,2023/3/10,35,系统总体结构关系图(ACD),系统总体结构关系图(ACD)位于系统模型图的最顶层。定义系统的组成,定义各子系统引用和生成的信息,建立了系统与系统运行环境之间的信息界面。通过界面对系统进行测试和维护,完成系统与外部实体间各种数据和控制信息的通信。ACD的有向边表示系统的信息流和控制流、圆角方框表示系统或子系统,方框表示外部实体,即系统信息的生产者和消费者。,3.3系统模型与模拟,2023/3/10,36,系统结构规格说明,系统结构字典 定义系统结构图中的每个信息项。信息项的类型、信息源和流向目标可以从结构流图中提取。信息项的通信路径表示信息的迁移方式。结构流图的有向边仅仅描述系统的数据流和控制流,而没有描述该数据流或控制流与其他因素的关系。结构互连图和对应的规格说明描述系统信息的传送方式,如电的方式、光的方式或机械方式等等。,3.3系统模型与模拟,2023/3/10,37,3.3.2 系统建模和模拟,1 物理模型与数学模型物理模型 由物理元素构成,称形象模型。数学模型 由数学符号、逻辑符号、数字、图表、图形等组成,称抽象模型。随着计算机图形学、图象学及多媒体技术的发展与应用,在基于计算机的系统上不仅可以处理抽象模型,而且还可以模拟和展示形象模型。,3.3系统模型与模拟,2023/3/10,38,分类与特性,2 静态模型和动态模型静态模型与时间参数无关动态模型依赖于时间参数,3.3系统模型与模拟,2023/3/10,39,分类与特性,3 确定模型和随机模型确定模型 参数不含随机变量,确定模型的一组输入量经模型处理得到一组唯一确定的输出结果。线性规划模型、动态规划模型等是确定模型。随机模型 参数包括随机变量,随机模型的输入变量,经模型处理后得到的输出结果是随机的。排队模型、计算机中断处理模型等是随机模型。,3.3系统模型与模拟,2023/3/10,40,系统模拟,借助于计算机系统描述某个实际系统或抽象系统中某个行为的特征称模拟。如,用计算机系统模拟另一个计算机系统,模拟飞行器仪器舱的环境,模拟企业经济管理系统等等。系统模拟的目的是,借助计算机系统模拟开发系统的某些特征,提前实验时间、增加实验的机会、降低实验的成本。随着计算机技术、仿真技术的发展及应用,系统模拟广泛地应用、并取得了显著的社会和经济效益。,3.3系统模型与模拟,2023/3/10,41,系统建模与模拟,主要步骤分析问题、确定模拟的目标建立模型运行模型并分析模拟结果修改模型(如有必要)撰写模拟文档,3.3系统模型与模拟,2023/3/10,42,3.4 系统规格说明及评审,系统规格说明 系统规格说明评审,第三章 计算机系统工程,2023/3/10,43,3.4.1 系统规格说明,为了满足后续工作的需要,系统工程师必须准确、详细地说明系统结构、组成系统的各个子系统、以及各子系统之间的信息流和控制流。结构图规格说明(ADS)描述了子系统信息以及子系统之间的控制流和信息流信息。子系统的结构图规格说明包括:系统模板说明书、系统结构字典、系统结构互连图。系统模板说明书描述各子系统的功能、信息处理的对象和结果、以及与其他子系统的连接关系。,3.4系统规格说明及评审,2023/3/10,44,表3.2系统规格说明目录,引言A.文档的范围和目的B.概述1.目标2.约束功能和数据描述A.系统结构1.结构关系图2.结构关系图描述子系统描述A.子系统N的结构图规格说明1.结构流图2.系统模型说明,3.性能问题4.设计约束条件5.分配系统部件B.结构字典c.结构连结图和说明系统建模和模拟结果A.用于模拟的系统模型B.模拟结果c.特殊性能项目问题A.开发成本B.进度附录,3.4系统规格说明及评审,2023/3/10,45,3.4.2 系统规格说明评审,系统规格说明生成之后,系统开发人员和用户必须通力合作对系统规格说明进行评审。只有通过评审的系统规格说明才能用于系统开发。系统规格说明评审首先应评价系统规格说明中的定义是否正确。然后客户和开发人员共同判断系统规格说明是否正确描述了项目的范围;是否准确地定义了系统的功能、性能和界面;环境和开发风险分析是否表明了系统开发的合理性;开发人员和用户对系统目标是否有共同的认识等等。,3.4系统规格说明及评审,2023/3/10,46,系统规格说明评审,系统规格说明评审 管理评审技术评审 系统规格说明评审完成以后,系统开发可以按照硬件工程、软件工程、数据库工程、人机工程等并行开展工作。,3.4系统规格说明及评审,2023/3/10,47,系统规格说明评审,管理评审必须回答系统是否有一个稳定的商业需求,系统开发是否有意义?系统开发是否有市场价值或社会效益?系统开发是否还有其他选择方案?系统各个部分的开发风险是什么?系统开发所需资源是否已经具备?成本和进度计划是否恰当等等。,3.4系统规格说明及评审,2023/3/10,48,系统规格说明评审,技术评审必须回答系统功能复杂性是否与开发风险、成本和进度评估保持一致?系统采用的术语、系统与子系统功能定义是否足够详细?系统与环境的接口以及各子系统之间的接口定义是否详细?系统规格说明是否指明系统性能、可靠性和可维护性方面的问题?系统规格说明是否为后续的硬件工程、软件工程打下坚实的基础?,3.4系统规格说明及评审,2023/3/10,49,小结,本章介绍基于计算机系统的项目分析和可行性论证。基于计算机系统涉及硬件工程、软件工程、人机工程和数据库工程,统称计算机系统工程。项目的可行性论证涉及经济可行性和技术可行性。在可行性论证的基础上根据资源和用户要求确定项目目标、施工原则,选择适宜的方法和工具,设计系统模型。为系统建立模型,用计算机系统进行模拟,验证正确性。撰写系统规格说明,通过评审的系统规格说明是系统分析阶段的成果,也是软件需求分析的依据。,第三章 计算机系统工程,2023/3/10,50,谢谢,