您好,欢迎访问三七文档
课程名称:软件工程第8讲班级:日期:教室:教学题目:第3章计算机系统工程教学目的:了解计算机系统工程的概念,理解可行性研究的基本任务和步骤、理解成本/效益分析的方法,了解系统模型、系统规格说明和评审。教学重点:可行性研究。教学难点:成本/效益分析。教具:多媒体教室、电子教案作业:第3章计算机系统工程一般地,基于计算机的系统是由硬件、软件、人、文档、数据库、过程等系统要素就构成的。其中各系统要素间的关系如图3-0-1所示。若不考虑系统内部结构和功能,基于计算机的系统可用输入-处理-输出(IPO)模型表示。其中:I(Input)指信息的输入;P(Process)指对信息的处理;O(Output)指信息的输出。图3-0-1基于计算机的系统的要素及其间的关系人硬件软件文档过程数据库系统输入输出基于计算机的系统第3章计算机系统工程对于大型基于计算机的系统,其要素的本身可能也是一个基于计算机的系统。这时,系统将具有复杂的层次结构。本章主要包括计算机系统工程的概念、系统的可行性研究、系统建模与模拟、系统规格说明与评审等内容。3.1计算机系统工程的概念计算机系统工程是用工程、科学和数学的原则与方法研制基于计算机的系统的有关技术、方法和过程。计算机系统工程是一种从系统层面上的问题求解活动。在开始构造一个新的基于计算机的系统时:①计算机系统工程师(系统分析人员和系统开发人员)首先根据用户定义的系统目标和约束条件进行系统可行性研究和系统需求分析,此时必须做大量、细致的研究、论证工作,如有必要,还需建造系统或其中关键部分的原型,以便正确、完整地确定系统的功能需求和性能需求。3.1计算机系统工程的概念②然后,系统工程师将系统功能和性能分配到系统各要素之中。此时系统工程师应提出多种预选的方案,之后根据系统设计目标和约束条件并按照一定的原则设计并选择最佳方案。比如,在成本、进度、系统资源、系统性能、支撑环境等方面进行取舍和折衷。在此基础上,对系统需求进行分解并分配给硬件、软件等系统要素,进而生成硬件、软件等系统要素的需求,并分别通过硬件工程、软件工程、人机工程、数据库工程等几个子工程予以实现。3.1.1硬件工程硬件工程师根据系统硬件需求设计、制造或选择主机、外部设备、网络设备等硬部件或设备。硬件工程师可通过硬件工程来实现硬件系统。硬件工程可划分为硬件定义、硬件设计、硬件制造与销售维修三个阶段。其中:硬件定义阶段的任务是:①制定硬件开发计划,确定项目成本和工程进度;②进行硬件需求分析,给出硬件规格说明。硬件设计阶段的任务是:①设计分析,画出设计图;②必要时建造原型(即样机)并对其进行测试;③制造分析,画出生产图。硬件制造与销售维修阶段的任务是:按照质量保证计划生产硬件产品并出售,相应的服务机构对硬件产品进行售后服务。图3-1-2硬件工程设计分析建造原型测试制造分析制造再加工经销评审评审评审评审评审成本进度硬件规格说明设计草图设计图原型硬件功能评审维修组织分析结果设计结果制定开发计划硬件需求分析3.1.2软件工程系统工程师在系统的论证阶段应确定系统对软件的功能和性能的要求,这将成为软件需求分析的基础。软件工程师根据分配给软件要素的功能和性能进行详细的需求分析,并进行软件总体结构设计。在此基础上应尽力寻求可重用软部件来支持软件的详细设计和编码。基于计算机系统的软件要素中的软部件由程序、数据和文档组成。按照功能,软部件可划分为系统软件和应用软件两类。系统软件实现系统各要素的控制、交互和通用信息处理等功能;而应用软件实现专用信息处理等功能。3.1.2软件工程软件在基于计算机的系统的IPO模型的各个部分都起着重要的作用。其主要作用有:①实现系统的输入和输出。系统的输入信息来自于系统的外部实体,而系统内部某一子系统的输入可能来自系统外部或内部的其他子系统。软件可提供交互式的人机界面,实现提示机制、数据输入、输出等人机交互的逻辑功能,并用软件驱动程序驱动和控制硬件完成输入输出操作。②如有必要,软件可设置与数据库的接口,支持系统对数据库的访问。③软件通过一系列的算法和操作控制程序使各个系统要素有条不紊地工作,从而实现系统的功能和性能。图3-1-3软件工程制定软件开发计划数据和结构分析过程设计维护评审评审评审评审评审项目计划需求规格说明验收测试计划初步用户手册概要设计规格说明集成测试计划需求分析原型设计原型软件功能评审分析结果原型详细设计规格说明单元测试计划编码程序源代码单元、集成验收测试评审测试过程测试报告返回到前面返回到前面返回到前面开发结果提交经销被修改的源代码被修改的文档用户文档可运行程序1.软件项目定义部分该部分由制定软件项目开发计划、需求分析2个阶段组成,主要完成以下4项任务:1)制定软件项目计划。即界定软件工作范围、进行风险分析、提出项目开发所需资源、进行成本和进度估算,进而进行可行性论证,生成软件项目计划并经过技术和管理评审。2)软件需求分析和定义。即确定软件的功能需求和性能需求、详细定义软件系统要素,确定软件资源约束。在进行需求分析时,如有必要,还可以为软件或其中的关键部分开发原型,以获得用户满意的软件需求。3)为软件要素制定验收准则,制定软件验收测试计划。4)生成软件需求规格说明,通过由客户、系统分析员、软件工程师和管理部门负责人参加的评审后生效,并作为软件开发和软件产品验收的依据。2.软件开发部分的任务软件开发部分的任务是将系统对软件的需求转换成可操作的系统要素,即软件。该部分由总体设计、过程设计和编码3个阶段组成。1)软件总体设计阶段软件总体设计是指软件总体结构设计和数据设计,该阶段的主要任务是:①设计软件的模块结构。②定义接口并建立数据结构。③生成概要设计规格说明和组装测试计划。④评审概要设计的质量,重点评审总体设计是否支持软件需求规格说明的完全性和可追踪性。2.软件开发部分的任务2)软件过程设计阶段——主要任务是:①对概要设计规格说明中的每一个模块的过程进行详细的描述。②制定单元测试计划。生成详细设计规格说明。③对详细设计的阶段产品进行评审。3)编码阶段——任务是:用选定的编程语言将每一个模块的详细过程描述转换成程序。应注意良好的编程风格、简洁性和自文档化,同时还应保持与过程设计的可跟踪性。3.软件产品的验证、提交、经销与维护部分1)软件验证阶段的主要任务是:①软件开发人员根据单元测试计划对每一个模块进行单元测试,验证模块的功能是否正确且符合设计要求。②组织开发人员和专门的软件测试工程师对软件进行综合测试,测试软件总体结构和接口是否满足设计要求,测试各软部件是否满足相应的软件功能需求和性能需求。③组织专家、用户和客户对测试结果进行评审。3.软件产品的验证、提交、经销与维护部分2)软件的提交与经销的主要任务是:①开发正式的用户手册、对文档进行分类、整理、归档,建立配置控制机制。②将软件提交给用户,必要时应负责把软件安装到用户的环境中。3)软件维护的任务是:修正软件在运行中发现的错误、改善软件的功能和性能、适应软件运行环境的变化、提高软件的可维护性和可靠性等等。以上所介绍的就是将系统工程的观点和方法引入软件工程,用于指导软件的开发。3.1.3人机工程目前,友好的“人机界面”(HCI,HumanComputerInterface)已成为基于计算机的系统的一项重要的技术指标。因此,开发人机界面的人机工程已经成为开发基于计算机的系统的一个重要组成部分。要设计出高质量的人机界面,不仅涉及到计算机技术,还涉及到美学、心理学等人文科学知识。人机界面开发过程的主要5个步骤:1)活动分析。即分析人机交互的所有过程,标识该过程中人的活动并据此确定需要计算机执行的任务。2)动作定义和设计。根据活动分析所标识的活动,精确的定义人机界面的每一个动作的内容,即进行人机交互的详细设计。3)动作的实现。用特定的人机交互语言的语句和命令去实现每一个动作,进而实现各个人机界面的交互活动。如有必要,可以设计人机交互语言,精确地定义语言的语法和语义,并实现语言中的每一个动作和命令人机界面开发过程的主要5个步骤4)用户环境的设计。要设计高质量的人机界面,必须考虑将支撑人机界面的软件和硬件集成后,构成集成的用户环境的整体设计效果,还应考虑空间、光线、温度等环境因素。5)原型设计。软件工程师根据以上4个步骤的结果设计原型,并请用户对原型进行评价和审查。并根据用户提出的意见修改原型,这是一个迭代过程,直至通过用户的评审。软件工程师以通过评审的原型为基础设计人机界面,就可以设计出用户满意的高质量的人机界面来。3.1.4数据库工程任何一个基于计算机的系统工程都包括硬件工程、软件工程和人机工程三部分。在以信息处理为核心的基于计算机的系统中,数据库系统也是其重要的组成部分。它将系统硬件、软件、数据、数据库管理员组合起来为用户提供信息服务。数据库工程就是指开发、运行和管理数据库系统的工程,它也是一个复杂而独特的软件工程项目。数据库工程完成的主要任务1)调查用户对信息和信息处理的需求,进行可行性论证,进行成本、进度估算,制定项目计划。2)选择支持数据库系统的硬件和软件。特别是确定数据库管理系统(DBMS),它支持数据的查询、维护和分析,是管理数据库的工具,为数据库的设计和使用提供了方便。在选择DBMS时,还应考虑支持其运行的操作系统和网络环境。数据库工程完成的主要任务3)数据库设计与实现。软件人员根据用户对数据库系统的需求进行需求分析和数据分析,产生需求说明和数据说明;以此为基础,进行概念设计,产生依赖用户的概念模型;接着以概念模型为基础,进行逻辑设计,产生依赖DBMS的逻辑模型;再以此为基础进行物理设计,产生一个完整、可实现的数据库。和软件工程一样,数据库工程的每一步骤结束时都应进行评审,最后应对数据库系统进行测试,并生成各种文档。4)数据的收集与存储。应按照系统的范围和用户需要将数据进行收集、整理,并存入数据库中。5)运行、管理与维护。数据库系统开发完成并投入到系统中运行,此时数据库管理人员负责数据库的管理与维护工作,并为用户提供培训和有关资料等。3.2可行性研究3.2.1可行性研究的任务及步骤1.可行性研究的任务开发任何一个基于计算机的系统都会受到时间和资源的限制。因此,开发方在接受客户的项目之前,必须根据客户可能提供的时间和资源等条件进行可行性研究。可行性研究工作要在初步的需求定义之后进行。其主要任务不是研究如何解决问题,而是要用最小的代价在最短的时间内确定该项目是否值得去解决,是否存在可行的解决方案。即在系统层面上论证系统开发的可行性。1.可行性研究的任务1)经济可行性研究:估算项目的开发成本和投入使用后可能带来的利润,进行成本效益分析。及对其他产品或利润的影响。2)技术可行性研究:根据客户提出的系统功能、性能要求及实现系统的各项约束条件,从技术的角度研究实现系统的可行性。3)运行、操作可行性研究:主要研究系统的运行方式在用户单位是否可以有效地实施,是否与原有其他系统相矛盾;系统的操作规程在用户单位内是否可行,它包括人事、科技政策、管理方法等。1.可行性研究的任务4)法律可行性研究:研究新系统的开发和使用是否会侵犯他人的权益,是否触犯了国家的法律法规。5)开发方案的选择:可行性研究的最主要任务是对以后的行动提出建议。如果问题没有可行的解,分析人员应建议停止该项目,以避免造成进一步的浪费;如果问题值得解决,则提出并评价实现系统的各种可行的开发方案,从中选择一种最佳方案,并为系统制定一个初步的开发计划。2.可行性研究的步骤1)复查初步分析结果。对系统初步的分析结果和报告书进行复查,改正含糊或不确切的叙述,重新确定系统目标与规模,清晰地描述对系统的所有约束条件。2)研究现有的系统。找出其基本功能和信息,指出其缺点或局限性。3)导出新系统高层逻辑模型。用某种图形工具导出系统高层逻辑模型,并与现有系统进行比较。2.可行性研究的步骤4)导出新系统的高层次物理解法,提出多个供选择的方案,并对每一个方案的经济可行性、技术可行性、运行和操作可行性等进行分析比较。5)推荐建议的方案。如果系
本文标题:可行性分析
链接地址:https://www.777doc.com/doc-610474 .html