2%-第02章系统工程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件工程第2章系统工程复旦大学计算机科学与工程系软件工程课程2/36什么是系统•系统(ISO):一组或一系列相关的元素[人、产品(硬件和软件)及过程(设备、装备、材料和规程)],其行为满足运转需要并且为产品生存周期的维持提供支撑•软件密集系统(Software-IntensiveSystem)–Software+Hardware+HumanActivities–计算机软件只是其中的一环–仅仅软件这一部分也是由密集交互的多种软件组成的——多种应用软件、操作系统、中间件等…复旦大学计算机科学与工程系软件工程课程3/36系统的例子•国美电器的销售系统–在若干城市的若干门店、具有合作关系的家电企业–一套行之有效的销售模式:处理上游和下游的关系•计算机系统:校园一卡通–硬件设备:服务器、刷卡器、一卡通网络、IC卡–软件系统:结算软件、银行接口、查询系统…–规程/人员:设计与一卡通相关办理、消费、挂失、充值、结算等制度和流程,设置相应的岗位和职责–系统分析和规划:合理规划各软硬件部件、规程、人员的目标、需求,使各部分相互配合形成完整的复旦大学计算机科学与工程系软件工程课程4/36系统工程•系统工程:关注目标系统各种相关要素的分析、设计,并将其组织成有机的系统–有机:像生命体一样,各个部分密切配合、有序演化,达到系统的总体目标•系统工程与软件工程–系统工程更加广泛,软件工程源于系统工程–任何软件的开发都处于一个更大的系统之中,因此软件开发必须先从了解软件所处的系统全局视图复旦大学计算机科学与工程系软件工程课程5/36内容摘要•基于计算机的系统•系统工程的任务•可行性分析复旦大学计算机科学与工程系软件工程课程6/36内容摘要•基于计算机的系统•系统工程的任务•可行性分析复旦大学计算机科学与工程系软件工程课程7/36•所谓基于计算机的系统是指:通过处理信息来完成某些预定义目标而组织在一起的元素的组合•对于用户而言有意义的是可以达到预期目标的系统(完整的软硬件解决方案)而不是单一软件•组成基于计算机系统的元素主要有:软件、硬件、人员、数据库(及其它系统软件)、文档和规程(Procedure)基于计算机的系统复旦大学计算机科学与工程系软件工程课程8/36系统元素•软件—指计算机程序、数据结构和相关的工作产品,以实现所需要的逻辑方法、规程或控制•硬件—指提供计算能力的电子设备、支持数据流的互连设备(如网络交换器、电信设备)和提供外部世界功能的电子机械设备(如传感器、马达等)•人员—指硬件和软件的用户和操作者复旦大学计算机科学与工程系软件工程课程9/36•数据库—指通过软件访问并持久存储的大型的有组织的信息集合•文档—指描绘系统的使用和/或操作的描述性信息(如模型、规格说明、硬复制手册、联机帮助文件、Web站点)•规程(procedures)—指定义每个系统元素的特定使用或系统所处的过程性语境的步骤复旦大学计算机科学与工程系软件工程课程10/36计算机软件与系统•计算机软件一般位于整个系统的核心位置•不同的计算机信息系统具有不同的特点–一般应用软件系统只要求标准硬件(PC、服务器等)配置,因此往往只需要关注软件本身–嵌入式软件系统中存在复杂的软硬件交互:例如工业控制系统需要直接控制多种硬件设备、手机终端软件需要考虑手机的配置情况等…–随着软硬件技术的发展,软硬件的边界不断变化•不断增强的硬件指令支持•USBKey、加密狗等硬件解决了许多软件很难解决的问题复旦大学计算机科学与工程系软件工程课程11/36系统的层次结构•任何系统都处在一个更大的系统之中,形成系统的层次结构–校园一卡通系统包括基础网络、结算系统、银行接口系统、消费终端等子系统–一卡通系统处于整个学校系统(教务、财务、学工…)之中–学校系统属于整个高等教育系统乃至社会系统的一环……•我们在某个项目中关注的具体系统总是有确定的边界,例如对于结算系统项目而言:–已知:消费终端可以将基本消费信息通过一卡通网络发送过来、银行接口系统支持银行系统的联机圈存操作…–当前系统任务:根据消费及圈存信息记录更新各学生账户信息…复旦大学计算机科学与工程系软件工程课程12/36基于计算机的系统结构•对于基于计算机的系统而言–基于计算机的系统可以成为一个更大的基于计算机系统中的一个元素,称其为那个更大系统的宏元素–基于计算机的系统可呈现一个层次结构工厂自动化系统复旦大学计算机科学与工程系软件工程课程13/36为什么强调系统工程•被动选择:现实的信息系统往往是一个复杂的系统工程,其中的软件需要与系统中其它部件合理分配责任、密切配合,从而达到系统的总体目标•主动选择:只作自己擅长的事情–选择合适的硬件解决方案–选择基础软件解决方案,或者第三方软件部件和软件服务,不用自己复旦大学计算机科学与工程系软件工程课程14/36例:一卡通结算系统中的安全性要求•从硬件方面,整个校园消费网络采用专线联接,不与校园网连通,同时要求敏感操作员使用USBKey进行身份认证•从应用软件方面,进行日志记录,并与USBKey认证接口进行集成•从制度方面:建立机房及核心服务器的日常安全管理制度,设置专人负责可疑交易信息的监控…复旦大学计算机科学与工程系软件工程课程15/36软件项目的客户方基础设施•业务现状、人员现状•遗留数据、遗留系统以及重用的可能•是否处于一个规划中的更大系统之中,与其他系统的关系如何复旦大学计算机科学与工程系软件工程课程16/36软件项目的第三方基础设施•基础软硬件系统–服务器、OS、DB、AS等•可用软件构件•特殊硬件设备:USBKey、加密狗等•可能的项目合作伙伴–软件外包–构件外包复旦大学计算机科学与工程系软件工程课程17/36内容摘要•基于计算机的系统•系统工程的任务•可行性分析复旦大学计算机科学与工程系软件工程课程18/36计算机系统工程•计算机系统工程是一个问题求解的活动,其目的是分析基于计算机的系统的功能、性能等要求,并把它们分配到基于计算机系统的各个系统元素中,确定它们的约束条件和接口复旦大学计算机科学与工程系软件工程课程19/36计算机系统工程的任务•识别用户的要求(了解问题)标识系统的功能和性能范围,确定系统的功能、性能、约束和接口复旦大学计算机科学与工程系软件工程课程20/36•系统建模和模拟(提出完整的解决方案)通常可考虑建立如下模型:硬件系统模型:描述基于计算机系统中的硬件(包括计算机、受系统控制的其它硬件设备等)配置、通信协议、拓扑结构、以及确保基于计算机系统的安全性、可靠性、性能等要求的措施。软件系统模型:描述各软件子系统的功能、性能等要求,它们在硬件系统中的部署情况,以及软件子系统之间的交互。人机接口模型:描述人如何与基于计算机的系统进行交互,包括用户环境、用户的活动、人机交互的语法和语义等。数据模型:描述基于计算机的系统使用了哪些数据库管理系统,如果使用多个数据库管理系统,还应描述它们之间的数据转换方式,必要时可给出主要的数据结构。复旦大学计算机科学与工程系软件工程课程21/36系统模型通常可用图形描述,并加以相应的文字说明。必要时,在系统建模后可构造原型,进行系统模拟,以分析所建的模型能否满足整个基于计算机的系统的要求。复旦大学计算机科学与工程系软件工程课程22/36•成本估算及进度安排(给出实施计划)对将开发的基于计算机的系统进行成本估算,并作出进度安排。•可行性分析(系统及实施方案的现实可行性)从经济、技术、法律等方面分析所给出的解决方案是否可行,通常只有当解决方案可行并有一定的经济效益和/或社会效益时才开始真正的基于计算机的系统的开发。•生成系统规格说明复旦大学计算机科学与工程系软件工程课程23/36内容摘要•基于计算机的系统•系统工程的任务•可行性分析复旦大学计算机科学与工程系软件工程课程24/36可行性分析开发一个基于计算机的系统(以及其他系统)通常都受到资源(人力、财力、设备等)和时间上的限制,可行性分析主要从经济、技术、法律等方面分析所给出的解决方案是否可行,能否在规定的资源和时间的约束下完成复旦大学计算机科学与工程系软件工程课程25/36经济可行性分析•经济可行性主要进行成本效益分析,从经济角度,确定系统是否值得开发。•基于计算机的系统的成本主要包括:购置硬件、软件(如数据库管理系统、第三方开发的构件等)和设备(如传感器等)的费用系统的开发费用系统安装、运行和维护费用人员培训费用复旦大学计算机科学与工程系软件工程课程26/36•效益经济效益包括使用基于计算机的系统后可增加的收入和可节省的运行费用(如操作人员数、工作时间、消耗的物资等)。在进行成本效益分析时通常只统计五年内的经济效益。社会效益指使用基于计算机的系统后对社会产生的影响(如提高了办事效益,使用户满意等),通常社会效益只能定性地估计。经济效益通常可用货币的时间价值、投资回收期和纯收入来度量。复旦大学计算机科学与工程系软件工程课程27/36•货币的时间价值(以利率计算的机会成本)设:当前金额为P,年利率为i,n年后的金额为F,则计算时,累计经济效益应折合成当前金额例如,一个基于计算机的系统使用后,每年产生的经济效益为10万,如果年利率为5%,那么,五年内该系统的累计经济效益是43.2948万,而不是50万。niFP)1/(niPF)1(复旦大学计算机科学与工程系软件工程课程28/36•投资回收期:累计的经济效益正好等于投资数(成本)所需的时间•纯收入:累计经济效益–投资数当纯收入大于零时,该工程值得投资开发当纯收入小于零时,该工程不值得投资(除非它有明显的社会效益)当纯收入等于零时,通常也不值得投资显然,纯收入越大越好复旦大学计算机科学与工程系软件工程课程29/36技术可行性分析•技术可行性主要根据系统的功能、性能、约束条件等,分析在现有资源和技术条件下系统能否实现。•技术可行性分析通常包括风险分析、资源分析和技术分析。复旦大学计算机科学与工程系软件工程课程30/36•风险分析:分析在给定的约束条件下设计和实现系统的风险。采用不成熟的技术可能造成技术风险人员流动可能给项目带来风险成本和人员估算不合理造成的预算风险风险分析的目的是找出风险,评价风险的大小,并有效地控制和缓解风险。复旦大学计算机科学与工程系软件工程课程31/36•资源分析:论证是否具备系统开发所需的各类人员、软件、硬件等资源和相应的工作环境。例如,有一支开发过类似项目的开发和管理的团队,或者开发人员比较熟悉系统所处的领域,并有足够的人员保证,所需的硬件和支撑软件能通过合法的手段获取,那么从技术角度看,可以认为具备设计和实现系统的条件。复旦大学计算机科学与工程系软件工程课程32/36•技术分析:分析当前的科学技术是否支持系统开发的各项活动。在技术分析过程中,分析员收集系统的性能、可靠性、可维护性和生产率方面的信息,分析实现系统功能、性能所需的技术、方法、算法或过程,从技术角度分析可能存在的风险,以及这些技术问题对成本的影响。技术可行性分析时通常需进行系统建模,必要时可建造原型和进行系统模拟复旦大学计算机科学与工程系软件工程课程33/36法律可行性分析•研究系统开发过程中可能涉及到的合同、侵权、责任以及各种与法律相抵触的问题–中华人民共和国著作权法–计算机软件保护条例•与计算机软件的使用场合相关的其他法律–例如:开发一套网络监控系统对员工在个人电脑上的所有行为进行监控?复旦大学计算机科学与工程系软件工程课程34/36方案的选择和折衷•一个基于计算机的系统可以有多个可行的实现方案,每个方案对成本、时间、人员、技术、设备都有不同的要求,不同方案开发出来的系统在功能、性能方面也会有所不同。因此要在多个可行的实现方案中作出选择。•方案评估的依据是待开发系统的功能、性能、成本、开发时间、采用的技术、设备、风险以及对开发人员的要求等。•由于系统的功能和性能受到多种因素的影响,某些因素之间相互关联和制约。–如,为达到高的精度就可能导致长的执行时间,为达到高可靠性就会导致高的成本等等。因此,在必要时应进行折衷。复旦大学

1 / 35
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功