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