《系统分析与设计课件.ppt》由会员分享,可在线阅读,更多相关《系统分析与设计课件.ppt(138页珍藏版)》请在三一办公上搜索。
1、软件工程,软件系统分析与设计,刘全明,1,询问,前导专业课程的学习情况?内容、掌握程度、目的软件过程软件企业结构和人员构成介绍系统分析和设计课程介绍,2,软件开发过程,跟踪客户(大客户)获得的项目(或者建议客户做给某个项目)需求分析概要设计详细设计实现测试实施维护,3,软件企业结构介绍,公司部门组织结构各个部门职位说明个人的一些建议,4,公司组织结构,?选择一下,哪个部门相对最重要财务部门 研发中心 市场营销部 质量部 售后服务部门 人事部 后勤部,5,公司组织结构,总经理副总经理、各个总监分管市场、技术、财务等等各个部门市场营销部 (市场部、销售部、客户部 )研发中心质量部售后服务部门财务部
2、门人事部后勤部,6,市场营销部,市场部销售部客户部,7,客户经理,8,产品经理,9,研发中心,研发中心经理若干项目部关键件研发部实施部,10,11,研发中心,若干项目部项目经理、高级程序员、软件程序员、数据库开发人员关键件研发部软件架构师、系统分析师、高级程序员、数据库专家实施部,12,研发中心,若干项目部项目经理高级软件开发工程师软件工程师、数据库开发人员关键件研发部系统架构师、系统分析师、高级程序员、数据库专家实施部实施工程师,13,项目经理,14,研发中心,若干项目部项目经理高级软件开发工程师软件工程师、数据库开发人员关键件研发部系统架构师、系统分析师、高级程序员、数据库专家实施部实施工
3、程师,15,资深java工程师,16,17,研发中心,若干项目部项目经理高级软件开发工程师软件工程师、数据库开发人员关键件研发部系统架构师、系统分析师、高级程序员、数据库专家实施部实施工程师,18,多数要求的技能,.NET, Java之一富INTERNET客户端应用 (RIAs)Web开发Web服务一种动态的和/或者函数编程语言;敏捷开发方法领域知识手机开发,19,.NET 软件程序员,20,JAVA 软件程序员,21,数据库开发工程师,22,研发中心,若干项目部项目经理高级软件开发工程师软件工程师、数据库开发人员关键件研发部系统架构师(两种需求)系统分析师高级程序员数据库专家实施部实施工程师
4、,23,系统架构师,24,25,.Net架构师,26,研发中心,若干项目部项目经理高级软件开发工程师软件工程师、数据库开发人员关键件研发部系统架构师(两种需求)系统分析师高级程序员数据库专家、系统集成工程师实施部实施工程师,27,系统分析师,28,系统分析师,29,研发中心,若干项目部项目经理高级软件开发工程师软件工程师、数据库开发人员关键件研发部系统架构师(两种需求)系统分析师高级程序员数据库专家、系统集成工程师、UI工程师实施部实施工程师,30,数据库工程师,31,DBA,32,ORACLE数据库工程师,33,系统集成工程师,34,界面设计师,35,研发中心,若干项目部项目经理高级软件开发
5、工程师软件工程师、数据库开发人员关键件研发部系统架构师(两种需求)系统分析师高级程序员数据库专家、系统集成工程师实施部实施工程师(更多的是针对产品、而不是项目)售后维护工程师,36,项目实施工程师,37,系统维护工程师,38,产品质量部,测试工程师质量工程师信息安全管理员技术文档工程师,39,软件测试工程师,40,质量主管/质量工程师,41,信息安全管理专员,42,高级应用安全工程师,43,技术文档工程师,44,其他,网络安全工程师,45,网络维护工程师,46,技术、技术、技术,如果你一直走技术路线?技术总监、技术经理技术顾问、技术咨询师技术培训师,47,技术总监,48,技术经理,49,技术经
6、理,50,51,建议,知识的储备和技术能力的培养几个要与不要技术新发展和需求,52,知识储备和技术能力培训,中、英文阅读能力有软件工程的思想(重在运用、规范)会编写程序(语言实现、博而专、开发环境、程序调试、单元测试)、代码重构与重用、从程序设计上升到软件设计工具的掌握和熟练应用(拓展)版本控制、自动化编译(团队必须),53,非技术能力,语言表达能力与人沟通能力适应变化的能力自我学习的能力时间管理能力,54,要与不要,有团队合作的态度自信多看、多 练 、多交流多想多总结(问题的解决经验的积累)勤写文档勤备份、勤归档相关领域知识先做人再做事,单打独斗、不协作、情绪化工作、怀疑别人,沟通不畅自负只
7、看书或埋头苦干抱怨(待遇、环境)急于求成、不求甚解忘了用户,55,未来技术需求,机器学习把应用软件搬到移动设备上人机交互与界面设计商业智能系统嵌入式安全数字家庭技术的集成,56,课程内容,系统分析和设计课程内容涉及: 原理、方法、技术、工具、应用重点:系统开发生命周期的前期和中期活 动,即系统分析和设计活动。,57,第一部分:介绍系统分析与设计的基本概念和原理,包括系统开发环境、信息系统开发方法。第二部分:介绍系统分析方法,包括需求获取的调查研究技术、系统需求建模技术、需求的传统描述方法、需求的面向对象描述方法、可行性分析和准备系统方案建议。 第三部分:介绍系统设计方法,包括系统应用架构设计
8、、数据库设计 、传统和面向对象的应用软件设计 、输入、输出和用户界面设计。 第四部分:介绍系统分析与设计完成后的工作,包括系统开发生命周期的系统实施和系统支持两个阶段的主要活动。,课程内容,58,1,C H A P T E R,系统开发环境,59,学习要求,记住系统分析员需要面对的7类信息系统理解信息技术对信息系统开发的影响理解业务问题对信息系统开发的影响了解和信息系统相关的不同类型的角色解释系统分析员在信息系统开发中的惟一角色描述成功的系统分析员所具备的技能,60,信息系统,信息系统 (Information technology ,IS)是人、数据、过程和信息技术的融合,它们之间相互联系、
9、相互作用,收集、处理、存储和提供支持组织运作的信息。,61,信息系统类型,事务处理系统(Transaction processing system ,TPS) 是一种捕捉和处理有关企业事务数据的信息系统.管理信息系统(Management information system ,MIS)是一种提供面向管理的企业业务处理和运作报告的信息系统.主管信息系统(Executive information system ,EIS)是一种支持主管经理的规划和评估需求的信息系统.决策支持系统(Decision support system ,DSS)是一种辅助进行决策或者提供决策信息的信息系统.,62,信息
10、系统类型,专家系统(expert system)是一种先捕捉专家的专业知识再模拟那些专家知识为非专家服务的信息系统.通信与协作系统(communications and collaboration system)是一种促进工作人员、合作伙伴、客户和供应商之间进行有效通信以提高协作能力的信息系统.办公自动化系统(office automation system)是一种支持广泛的企业办公活动、改进工作人员之间工作流的信息系统.,63,信息技术的影响,网络和因特网面向对象技术移动和无线技术协作技术企业应用集成技术,64,网络和因特网,网络包含大型主机、网络服务器、各种台式机、笔记本电脑和掌上电脑的计
11、算机客户端.最普遍的网络技术是基于因特网的技术,包括内联网外联网Web技术xHTML 和 XML脚本语言Web专用语言,65,面向对象技术,对象技术Object Technology 是一种软件技术,它采用封装了数据和行为的对象来定义系统. 可复用的可扩展的面向对象设计语言包括C+, java, Smalltalk, Visual B等面向对象分析和设计方法Object-oriented analysis and design 用于系统开发的一组工具和技术的集合,利用对象技术来构造系统及其软件.敏捷开发Agile development 是一种系统开发策略,系统开发人员可以从一套相应的工具和技
12、术中灵活地选择最适合完成手边任务的工具和技术. 敏捷开发被认为可以在系统开发的产量和质量之间达到最优化的平衡.,66,移动和无线技术,移动和无线技术包括PDAs个人数据助理Smart phones智能电话Bluetooth蓝牙Wireless networking无线网络对信息系统的影响需要考虑无线连接需要考虑移动设备和屏幕尺寸的限制,67,协作技术,协作技术Collaborate technologies 指那些提高人际交互和团队工作能力的技术.E-mailInstant messaging即时消息Groupware群件,68,企业应用,企业应用,69,企业资源规划ERP,企业资源规划Ent
13、erprise Resource Planning (ERP) 是一种应用软件,它将信息系统完全集成在一起,提供大部分或者所有核心基本业务功能. ERP产品围绕一个由基本业务功能共享的公共数据库建造. 有代表性的ERP供应商:BaanJ. D. EdwardsOraclePeoplesoftSAP AG (市场领导者),70,供应链管理SCM,供应链管理Supply Chain Management (SCM) 是一种应用软件,它通过直接将企业的信息系统与企业的供应商和分销上的信息系统集成,优化从原材料采购到最终产品分销的业务过程. 有代表性的SCM供应商:i2 TechnologiesMan
14、ugisticsSAPSCT,71,客户关系管理CRM,客户关系管理Customer Relationship Management (CRM) 是一种应用软件,为客户提供对企业过程的访问,从初始的咨询直到售后服务和支持. 有代表性的CRM供应商:BroadVisionE.piphanyKanaNortel/ClarityPeoplesoft/VanitiveSiebel (the market leader),72,企业应用集成EAI,企业应用集成Enterprise Application Integration (EAI) 是指用来链接应用软件以支持应用软件之间的数据和信息流的过程和技术
15、,其解决方案通常基于中间件.中间件Middleware 是用来在不同应用软件之间转换和路由数据的软件. 有代表性的EAI供应商:BEA SystemsIBM (MQSeries)Mercator SoftwareTIBCO Software,73,业务问题的影响,经济全球化电子商务和电子业务安全和隐私持续改进和全面质量管理业务过程重构,74,经济全球化,经济全球化带来新的、更大的国际市场新的国际竞争者对信息系统的影响必须支持多种语言、货币汇率、国际贸易规则、不同的商业文化和业务方式等需要实现信息融合以实现性能分析和决策支持参与者需要使用不同语言和用户交流,75,电子商务和电子业务,电子商务E-
16、Commerce 指通过使用因特网购买和销售商品及服务. 电子业务E-Business 指使用因特网进行日常的商务活动. 电子商务和电子业务类型公司形象、产品和服务的营销宣传企业对客户Business-to-consumer (B2C)企业对企业Business-to-business (B2B)对信息系统的影响大多数新的信息系统都要面向因特网体系结构设计越来越多的应用软件设计成在浏览器中运行,对于操作系统的选择变得不那么重要,76,安全和隐私,安全Security当遭到破坏或者灾难时业务如何继续进行?企业如何保护它的数字财产不受外部侵害?隐私Privacy顾客对隐私的要求越来越高政府对隐私问
17、题正在立法对信息系统的影响要求更严格的安全和隐私控制,77,持续改进和全面质量管理,业务过程Business Processes 是影响业务事件的任务,业务过程是完成任务所需要的工作、程序和规则,它独立于自动化或支持它们的信息技术.持续过程改进Continuous process improvement (CPI) 是连续地监控业务过程对降低成本和增加效益方面虽微小但可度量的改善之影响.全面质量管理Total quality management (TQM) 是一种在企业内部促进质量改善和管理的综合方法.,78,业务过程重构,业务过程重构Business process redesign (B
18、PR) 是研究、分析和重新设计企业的基本业务过程,为企业降低成本和/或提高效益.寻求实现比CPI更根本性的改变和改进通常通过CPI来实现,79,系统关联角色,系统所有者系统用户系统设计人员系统构造人员系统分析员项目经理,80,系统所有者,系统所有者System owners 信息系统的发起人和主要倡导者,通常负责投资项目以进行开发、运行和维护信息系统.,81,系统用户,系统用户System users 那些在通常意义上使用信息系统或者受到信息系统影响的客户,如收集、验证、录入、响应、存储、交换数据和信息.内部系统用户Internal users办事操作人员 专业技术人员 决策人员 外部系统用户
19、External users顾客供应商合作伙伴不在组织内部工作的雇员,82,系统设计人员和系统构造人员,系统设计人员System designer 将系统用户的业务需求和约束条件转换成技术方案的技术专家,设计满足系统用户需求的计算机数据库、输入输出、屏幕界面、网络和程序。包括数据库管理员、网络架构师、Web架构师、图形艺术师、安全专家和技术专家等.系统构造人员System builders 根据系统设计人员的设计说明构造信息系统及其构件的技术专家。包括应用程序员、系统程序员、数据库程序员、网络管理员、安全管理员、Web站点管理员和软件集成员等.,83,系统分析员,系统分析员Systems an
20、alyst 研究组织存在的问题和需求,确定人员、数据、过程和信息技术如何最大化地为企业做出贡献.,84,系统分析员的角色:作为解决问题的人,真正的问题(实际的或者预期的),对这些问题需要采取正确的行动尽管还没有人抱怨,但可以改进现状的机会 无论是否有人抱怨,都要改变现状的指示,85,系统分析员所需的技能,人的知识和技能 人格与道德规范 良好的与人沟通的能力 良好的处理人际关系的能力 灵活性和适应能力 技术知识和技能 系统分析与设计技能 有效的信息技术知识 业务知识和技能一般商业知识 通用的解决问题的技能,86,1. 不应使用计算机危害他人. 2.不应干涉他人的计算机工作.3.不应偷窃他人的计算
21、机文件. 4.不应使用计算机进行偷窃活动.5.不应使用计算机做伪证. 6.不应拷贝或使用没有付费的收费软件. 7.不应未经授权或再没有恰当补偿的情况下使用他人的计算机资源. 8.不应挪用他人的智力成果. 9.应该注意你编写的程序或设计的系统所造成的社会后果. 10.使用计算机时应该总是考虑到他人并尊敬他们.,计算机道德的十条戒律,Source: Computer Ethics Institute,87,项目经理,项目经理Project Manager 经验丰富的从业人员,负责根据进度安排、预算、发布的产品、客户满意度、技术标准和系统质量,计划、监视和控制项目.,88,2,C H A P T E
22、 R,系统开发方法,89,学习要求,理解用于质量管理的能力成熟度模型(CMM)描述系统开发过程的目的阐述系统开发生命周期(SDLC)的不同阶段描述系统开发生命周期(SDLC)的一些变体描述贯穿信息系统开发基本阶段的几种常用开发方法阐述系统开发的当前趋势描述用于系统开发的各种自动化工具,90,系统开发过程,系统开发过程System development process 是一组活动、方法、最佳实践、交付成果和自动化工具,系统开发的关联人员(第1章)用它们来开发和维护信息系统及软件.复杂产品使用标准开发过程来开发信息系统:使用一致的系统开发过程能够提高效率,管理层可以在项目之间调动资源一致的方法产
23、生一致的文档,减少了维护系统的生命周期费用总之,提高质量,全面质量管理,能力成熟度模型的质量框架,91,系统开发过程对质量的影响,92,能力成熟度模型(1),能力成熟度模型Capability Maturity Model (CMM) 是用来评估组织的信息系统开发过程及管理过程和产品的成熟度等级的框架,由5个开发成熟度等级构成:Level 1初始级Initial: 系统开发项目没有规定的过程可以遵循.Level 2可重复级Repeatable: 组织已经建立了项目管理过程和实践来跟踪项目费用、进度和功能,重点在项目管理. Level 3已定义级Defined: 组织已经购买或开发了一个标准的系
24、统开发过程(或称为方法学),所有项目都是用这个软件开发过程来开发和维护信息系统和软件. Level 4已管理级Managed: 组织建立了可度量的质量和生产率目标. Level 5优化级Optimizing: 根据第4级建立的度量和数据分析,标准化的系统开发过程被连续地监督和改进.,93,能力成熟度模型(2),94,系统生命周期和系统开发方法,系统生命周期System life cycle 将一个信息系统的生命分为两个阶段, (1) 系统开发阶段; (2) 系统运行和维护阶段.首先建造系统,然后使用系统,运行系统并维护系统,最后从运行和维护阶段再回到开发阶段.系统开发方法System deve
25、lopment methodology 是一个十分正式且精确的系统开发过程,它为系统开发人员和项目经理定义了(在CMM第3级)一组活动、方法、最佳实践、交付成果和自动化工具,用来开发和维护大部分或所有的信息系统和软件.,95,系统开发的各个阶段,系统规划System planning 是项目的初始规划,定义初始业务范围、目标、进度和预算.系统分析System analysis 是研究业务问题领域,以推荐改进措施并说明方案的业务需求和优先权.系统设计System design 为系统分析阶段确定的业务需求设计一个技术性的基于计算机的方案.系统实现System implementation 是构造
26、、安装、测试和发布一个系统投入生产.系统支持和持续改进(维护和提升项目),96,系统规划之项目确定,问题Problem 是不期望发生的情况,它妨碍组织完整地实现其任务、愿景、目标和/或指示.机会Opportunity 是即使在没有出现具体问题的情况下也能改善组织的可能性.指示Directive 是一个由管理层、政府或者其他外部影响强加的新需求.,97,问题分类框架PIECES,P提高性能 performance的需要I改进信息 information (和数据)的需要E改进经济economics,控制成本或增加效益 的需要C改进控制control或安全security的需要E改进人与过程的效率
27、 efficiency 的需要S改进对客户、供应商、合作伙伴、雇员等的服务service的需要.,98,系统规划阶段,系统规划是项目的初始规划,用来定义项目范围、进度、预算以及所需的开发小组成员。最重要的活动就是准确地定义解决问题所需的项目范围,它定义了系统涉及的业务领域,而项目的进度和预算最终也受到项目范围的影响。 参与者系统所有者、系统分析员和项目经理,一般不包括系统用户。回答问题这个项目是否值得? 典型任务列出触发项目的问题协商项目的初步范围 评估项目价值 计划项目进度表、预算和开发成员 汇报项目计划关键发布物项目计划,99,列出触发项目的问题,具体活动确定触发项目的每个问题,并且按照紧
28、急程度、可见性、收益、优先权进行评估以及给出合适的建议方案。 参与者项目经理或高级系统分析员领导该任务、系统所有者。 完成任务使用的技术调查研究、同系统所有者开会 关键发布物初始问题陈述,100,协商项目的初步范围,具体活动定义了系统的边界,确定系统包括的业务以及不包括的业务 。 参与者项目经理或高级系统分析员领导该任务、系统所有者。 完成任务使用的技术调查研究、同系统所有者开会 关键发布物项目范围陈述,101,评估项目价值,具体活动在上述两个任务完成的基础上,通过可行性分析回答问题:“这个项目是否值得?”参与者项目经理或高级系统分析员领导该任务,但系统所有者做出决策。 完成任务使用的技术可行
29、性分析 关键发布物没有书面发布物,仅仅是做出“继续或不继续”的决定,102,计划项目进度表、预算和开发成员,具体活动深入地计划项目,一个项目计划至少包括一个基线计划和下一个阶段的一个详细计划和进度表。 参与者项目经理、尽可能地让项目团队成员参与。 完成任务使用的技术PERT图、甘特图、联合项目计划、工作分解结构、关键路径分析 关键发布物基线计划和进度表,103,汇报项目计划,具体活动向一个由非信息系统专家或管理人员构成的指导部门汇报项目计划以获得批准。 参与者主要负责人应该同项目经理一起推动该任务,其它参与者包括整个项目团队、所有感兴趣的雇员。完成任务使用的技术有效的人际沟通能力是关键,包括说
30、服、推销变化、商务写作和演讲 关键发布物项目计划,包括初始问题陈述、项目范围陈述、项目参与者、所采用的方法学、项目进度表和预算、交付成果等。,104,系统分析阶段,系统分析研究业务问题领域,从而给出改进措施并说明系统的业务需求和优先权。系统分析阶段的重点是业务问题和需求,这些需求独立于实现方案中可能使用的任何技术,系统分析阶段强调业务问题方面,而不是技术或实现方面。 参与者系统用户、系统分析员和项目经理 。系统分析是系统开发生命周期的一个重要阶段,可以划分为四个子阶段问题分析子阶段 需求分析子阶段逻辑设计子阶段决策分析子阶段,105,问题分析子阶段,问题分析子阶段研究现有系统,分析发现的问题,
31、促使项目团队更深入地理解引发该项目的问题。参与者系统所有者、项目经理、系统分析员、系统用户(主动包括)。回答问题真的值得开发一个新系统用来解决这些问题吗?典型任务研究业务领域 分析问题 可选的分析并重构业务过程 制定系统改进目标 修改项目计划 汇报调查结果和系统建议,106,研究业务领域,具体活动了解当前系统,不同的角色对系统具有不同层次的理解,有着不同的详细程度、不同的表达方式以及不同的观点 。参与者由项目经理领导,资深系统分析员主持,也包括参与面谈、作记录的其它系统分析员,系统所有者和足够的系统用户代表。 完成任务使用的技术调查研究、尤其是联合需求计划(JRP) 关键发布物以文档形式记录的
32、对问题领域和业务术语的理解,107,分析问题,具体活动了解当前系统的基础上,项目团队同系统所有者和系统用户一起分析问题。 参与者由系统分析员推动该任务,系统所有者和系统用户应该主动地参与到因果分析中。完成任务使用的技术调查研究技术、JRP技术以及因果分析法 关键发布物修改的问题陈述以及对每个问题的因果分析,108,分析并重构业务过程,具体活动有些项目需要重构业务过程,这就要求项目团队十分详细地检查组织的业务过程,度量每个过程相对于整个组织增加或减少的价值。 参与者由在业务过程重构方面有经验的系统分析员主持该任务,系统所有者和系统用户要参与讨论分析。 完成任务使用的技术调查研究技术、JRP技术以
33、及过程建模技术 关键发布物当前系统的过程模型和过程分析,109,制定系统改进目标,具体活动在分析问题的基础上,可以制定系统改进目标,建立新系统成功的准则,对当前系统的任何改进将按照这个准则进行度量,当然也需要确定任何可能限制系统改进的约束条件 。参与者由系统分析员推动该任务,系统所有者和系统用户要参与讨论。 关键发布物精确的、可度量的定义新系统预期的业务性能陈述 的系统改进目标,110,修改项目计划,具体活动在对问题分析的基础上,需要重新评估项目范围,并相应地修改项目计划。 参与者整个项目团队一起推动该任务,系统分析员和系统所有者起关键作用。 关键发布物修改后的项目计划,111,汇报调查结果和
34、系统建议,具体活动向所有和项目相关的人员汇报调查结果和系统建议 。参与者主要负责人应该同项目经理一起推动该任务,其它参与者包括整个项目团队、所有感兴趣的雇员。关键发布物系统建议的报告,112,需求分析子阶段,需求分析子阶段定义业务需求,并为它们排序。参与者项目经理、系统分析员、系统用户。回答问题用户需要什么?希望从新系统中获得什么? 典型任务定义业务需求 确定业务需求的优先级 修改项目计划,113,定义业务需求,具体活动根据问题分析子阶段确定的系统改进目标来定义业务需求,包括描述新系统必须提供的服务和活动的功能需求,以及描述新系统的性能、易学易用性、预算等的非功能需求。 参与者系统分析员,而系
35、统设计人员和构造人员一般不参与该任务。 完成任务使用的技术JRP是快速整理业务需求的首选技术,其它需求获取的各种调查研究技术如面谈也是常用手段,在表述业务需求时还可以选择用例建模技术。 关键发布物各种形式的功能需求和非功能需求陈述,114,确定业务需求的优先级,具体活动根据系统改进目标的重要性,相应的业务需求也具有不同的优先级别。 参与者系统所有者和用户制定实际的优先级,系统分析员推动该任务,完成任务使用的技术调查研究技术、时间盒 关键发布物含优先级的业务需求,115,修改项目计划,具体活动系统的业务需求确定之后,往往发现新系统的规模会变大,这时需要重新定义项目范围,并修改项目计划来调整项目进
36、度、预算等约束条件。 参与者整个项目团队一起推动该任务,系统分析员和系统所有者起关键作用。 关键发布物修改后的项目计划,该计划包括后期逻辑设计子阶段的详细计划。,116,逻辑设计子阶段,逻辑设计子阶段将用户的业务需求转换成逻辑系统模型图,以验证系统的功能需求,这些模型图仅仅描述了业务需求,并不涉及任何技术设计或实现。 参与者系统分析员主持该任务,需要同系统用户交流来获取模型图的细节信息。 回答问题新系统必须实现什么? 完成任务使用的技术系统建模技术、构造原型技术关键发布物逻辑设计模型和规格说明,117,决策设计子阶段,逻辑设计子阶段系统分析向系统设计的过渡阶段,从对业务需求的关心转移到对技术实
37、现的关心上来。确定候选方案、分析这些候选方案的可行性并推荐一个候选方案作为目标方案进行设计和实现。 参与者项目经理、系统分析员、系统设计员、系统用户回答问题实现新系统的最佳方案是什么?典型任务确定候选方案 分析和比较候选方案 修改项目计划 汇报推荐的系统方案 完成任务使用的技术调查研究、JRP、可行性分析等关键发布物系统方案建议,118,系统设计阶段,系统设计在前期分析阶段获取、分析业务需求以及决策制定的基础上,具体设计系统的解决方案,从而为系统构造人员提供清晰完整的物理设计说明。详细的计算机系统方案的规格说明,关注的是系统的技术方面。 参与者项目经理、系统分析员、系统设计人员、系统用户(部分
38、)。回答问题系统方案如何实现?典型任务设计系统架构 设计系统数据库 设计输出、输入和用户界面 整理物理设计说明 修改项目计划关键发布物 物理设计模型和规格说明、设计原型,119,系统实施阶段,系统实施构造、测试、安装和发布一个新系统投入运行 。 参与者项目经理、系统分析员、系统用户、系统设计员(有时) 、系统构造员典型任务建造和测试网络建造和测试数据库安装和测试新软件包(若采用外部购买软件的开发方式)编写和测试新程序(若采用内部编制软件的开发方式)进行系统测试准备转换计划安装数据库培训用户转化到新系统关键发布物功能系统、运行系统,120,系统支持阶段,系统支持是处理可能出现的错误或新的需求所需
39、的维护工作。包括程序维护、系统恢复、技术支持和系统改进4类活动。系统支持需要花费大量的时间和金钱,而本课程所介绍的系统分析与设计方法均是为了减少系统支持的费用。随着时间的推移,所有的系统都会老化,当支持不再合算时,系统就要退役了,这时也会启动新的系统开发项目来替换这个系统。,至此,一个完整的系统开发生命周期就展现在你的面前了!,121,瀑布模型,122,迭代开发,123,系统开发生命周期的变体,各阶段名称的变体 对基本瀑布模型改进的变体,124,系统开发基本原理,尽可能地让系统用户参与到开发中来 使用一种可以度量且被证实的系统开发生命周期 在开发过程中适当地记录文档 采用渐进的方式逐步投入 保
40、持持续的过程管理和项目管理,125,方法、模型,方法提供完成系统开发生命周期各阶段的详细指导,包括具体的活动、使用的模型、采用的技术以及辅助的工具。有代表性的系统开发方法包括结构化开发、面向对象开发、快速应用开发、结构化快速应用开发、信息工程、联合应用开发、Rational统一过程开发、极限编程等。 模型现实世界的抽象,在系统开发过程中,通过系统模型表示系统的现实情况或者希望的情况 。描述系统的有代表性的模型包括上下文图、用例图、数据流图、实体关系图、类图、交互图、程序流程图等,126,技术、工具,技术帮助开发人员完成系统开发的任务和活动,如为创建模型提供指导,或者为从系统用户那里获取业务需求
41、提供建议。常用的系统开发技术包括结构化分析技术、结构化设计技术、调查研究技术、数据建模技术、过程建模技术、面向对象建模技术、数据库设计技术、人机交互技术、编程技术、软件测试技术等。 工具用于辅助开发人员更方便地完成系统开发的任务和活动,如创建模型图的简单绘制程序,或者集成开发环境(IDE),工具是为了帮助系统开发人员而专门设计的。常用的系统开发工具包括计算机辅助工程设计系统工程(CASE)工具、IDE、文本编辑器、绘图应用程序、数据库管理应用程序、代码生成工具、项目管理应用程序等。,127,有代表性的系统开发方法,传统开发方法结构化系统开发方法信息工程面向对象开发方法原型化和快速应用开发 (A
42、rchitected RAD)商用应用软件包开发方法,128,结构化系统开发方法的特点,自顶向下整体性的分析与设计和自底向上逐步实施的系统开发过程,在系统分析与设计时要从整体全局考虑,自顶向下地分解,而在系统实现时,则要根据设计的要求先编制一个个具体的功能模块,然后自底向上逐步实现整个系统。面向用户,用户对系统开发的成败是至关重要的,故在系统开发过程中要充分考虑用户的需求和愿望,尽可能地让用户参与进来,以提高系统的开发效率和质量。严格区分工作阶段,把整个系统开发过程划分为若干个阶段,每个阶段都有其明确的任务和目标,强调一步一步地严格地进行系统分析和设计,每一步工作都及时地总结,发现问题及时地反
43、馈和纠正。从而避免了开发过程的混乱状态。开发过程工程化,要求开发过程的每一步都按工程标准规范化,文档资料标准化。,129,面向对象开发方法,认为信息系统是由一组为完成某个任务而相互作用的对象组成,对象是某种存在的或者能被感知到的事物,是客观世界中的实体抽象。 UML 主要的优点是自然性和可复用性。和传统开发方法的不同:传统方法认为系统是处理过程的集合,处理与数据实体的交互,处理过程的输入和输出数据,而面向对象方法认为系统是对象的集合,对象通过消息与其它对象相互作用完成某个任务。,130,原型化方法,强调构造原型然后观察用户对原型的反应,使用原型的开发方法。原型化方法是快速收集有关用户需求的特定
44、信息的重要技术 通常使用两类原型系统一是在需求分析阶段,为了获取或明确用户的系统需求的发现型原型系统。二是在整个开发期间,被反复开发直到成为最终系统的发展型原型系统。 原型化方法的适用范围,131,快速应用开发,是一种面向对象的系统开发方法,强调用户深入地参与到一系列工作原型的快速进化和构造过程中,以加速系统的开发过程,工作原型进化成最终的信息系统,可看作原型化方法的一个特例。几个基本思想:更强调用户主动参与到分析、设计和构造阶段的活动中重视系统开发过程中组织的会议,让系统相关人员一起讨论解决问题建议使用一种迭代的构造方法来加速需求分析和设计阶段通过构造原型使得用户尽早看到一个可工作系统通常由
45、需求规划、与用户共同设计、构建和转换四个阶段组成 。优缺点,132,商用应用软件包开发方法,是一种可以购买并在一定限度内定制的软件应用,以满足大量组织或特定行业的业务需求 。基本思想为了实现业务需求,必须仔细地选择封装式软件方案,你得到你想要的,然后付费。封装式软件方案不仅需要花钱购买,而且也可能需要花钱实现。实际上,商用软件包开发路线可能比内部开发路线更贵。软件包通常必须定制并集成到企业中,另外,软件包通常需要重新设计现有业务过程以适应该软件。软件包很少能实现让用户完全满意的所有业务需求,因此,一定程度的内部系统开发对于满足那些没有实现的需求仍是必需的。,133,系统开发的趋势,螺旋模型 统
46、一软件开发过程RUP 基于组件的开发方法 敏捷开发方法 极限编程 XP,134,支持系统开发的自动化工具,计算机辅助系统工程(CASE)有代表性的CASE工具包括Rational公司的Rose、Visible System公司的Visible Analyst、Oracle公司的Designer、微软公司的Visio等 。应用开发环境有代表性的ADE工具包括IBM公司的Websphere(Java)、Inprise公司的JBuilder(Java)、微软公司的Visual Studio.Net(VB.Net、C#.Net、C+.Net)、Oracle公司的Developer以及Sybase公司的
47、PowerBuilder。 项目和过程管理工具,135,计算机辅助系统工程(CASE),计算机辅助系统工程Computer-aided systems engineering (CASE) 使用支持系统模型的绘制和分析的自动化工具,有些CASE工具也提供原型设计和代码生成能力.CASE资料库 是一个系统开发人员的数据库,它是开发人员存储系统模型、详细描述和说明以及系统开发的其他产品的地方.CASE工具 作图、字典、设计、质量管理、文档记录工具.正向工程Forward engineering 是CASE 工具的一种能力,能够直接从系统模型生成初始软件或数据库代码.逆向工程Reverse engi
48、neering 是CASE 工具的一种能力,能够直接从软件或数据库代码生成初始的系统模型.,136,应用开发环境,应用开发环境Application development environments (ADEs) 是集成的软件开发工具,它提供了以最快速度和最高质量开发新应用程序所需的全部工具,常用同义词有集成开发环境 (IDE)ADE 工具包括:程序设计语言或解释器界面构造工具中间件测试工具版本控制工具帮助文件著作工具资料库链接,137,过程和项目管理器,过程管理软件Process manager application 是一个自动化工具,它帮助记录文档并管理一套方法学和开发路线及其交付成果以及质量管理标准,一个同义词为methodware.项目管理软件Project manager application 是一个自动化工具,它帮助规划系统开发活动(最好使用认可的方法学)、估计和分配资源(包括人力和经费)、调度活动和资源、按照进度和预算监督进展、控制和修改进度和资源、以及报告项目进展.,138,