已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章信息系统的开发方法(InformationSystemAnalysisandDesign),信息管理与信息系统教研室,本章要点,结构化方法快速原型化方法*面向对象方法敏捷方法面向方面方法*开发方法的选择和重构CASE工具介绍,3.1结构化开发方法,结构化程序设计:每个程序都有一定的基本结构,(分支结构、顺序结构、循环结构),每个程序都只能有一个入口和出口。结构化设计技术:以程序设计为基础,运用一组规范和准则指导系统开发人员从总体结构着手,再进行每一个功能模块的具体设计。结构化分析技术:在系统设计之前将需求进一步明确化。,3.1.1结构化程序设计,自顶向下,逐步求精,登录验证,验证非法输入,验证用户名,验证密码匹配,3.1.2结构化设计技术,MSC模块结构图,加入了数据库设计和交互设计环节,3.1.3结构化分析技术,三部分内容:处理需求;数据需求;处理过程与数据之间的关系ERD用于表示数据需求模型Events定义系统的处理需求DFD用于表示系统过程和数据之间的关系,3.1.4结构化开发方法的特征,抽象性从分析到设计再到程序实现经过多级抽象面向过程从业务功能出发,数据只是过程的属性逻辑独立层次性、模块化、结构化,3.1.5优缺点分析,优点:阶段的顺序性和阶段的依赖性推迟实现良好的文档支持缺点可变性差,无法适应需求变化DFD到MSC的转换不自然,3.2面向对象开发要点,面向对象的软件系统是由对象组成的,系统中的任何元素都是对象(Objects)每个对象类定义了数据和方法,数据是对象的状态特征,方法是允许施加在对象上的操作(Class)根据集成关系,对象类有层次结构(Inheritance)对象之间通过消息传递相互联系(message),3.2面向对象方法的不同之处,3.2二者的联系,面向对象方法诞生在后,继承了很多结构化方法中的成功经验如:数据抽象、自顶向下、模块化、高内聚、低耦合等。OO方法中的一些关键理念如:封装、多态、抽象层次结构等,不仅可以提高软件的可重用度,而且可以有效地管理软件系统日益增长的复杂度。,3.2面向对象方法要点,基本概念对象对象类实例消息方法属性,技术要点抽象封装继承多态共享,3.3敏捷宣言,个人和交互胜过于过程和工具可工作的软件胜过于全面详尽的文档寻求客户的协作胜过于合同的谈判对于变更的响应要胜过于遵循固定的计划,3.3敏捷软件开发要点,主要活动:编码、测试、倾听、设计角色:程序员、客户、测试员、跟踪人员、教练、顾问、经理阶段:调查、计划、迭代、产品化和维护主要特点:适应性和面向人,3.3案例腾讯微信,微信创造移动互联网增速记录,10个月5000万手机用户,433天之内完成用户数从零到一亿的增长过程,千万级用户同时在线,摇一摇每天次数过亿,敏捷是一种态度,试错的信仰:坚信在互联网开发里,如果能够有一个团队在更短的时间内尝试了更多机会(并能改进过来),就能有(更多的)机会胜出。微信必须要容忍说哪怕在发布前的十分钟,也要允许他变更。给产品决策者最大的自由度是微信能够胜出的关键。微信是一个海量系统,有千万级用户同时在线,在一个单独的功能上每天有百亿级的访问,同时还要保证99.95%的可用性。,四大技术理念:大系统小做,仅仅把模块变得更为清晰,这在海量系统设计开发中是不够的,还需要在物理环境上进行分离部署,出现问题的时候可以快速发现,并且在最快的情况下解决掉。,四大技术理念:一切可扩展,网络协议需要扩展,当要升级一个新功能的时候,会有一些比较大的困难,所以所有协议设计都比较向前兼容,但是向前兼容还是不够的,因为网络协议设计本身有非常多的功能也会有比较大的字段,相关的代码可能会有数千行,这一块不能通过手写方式完成。可以通过XML描述,再通过工具自动生成所有的代码,这是微信获得快速开发的一个重要的点。数据存储必须可扩展的。以往绝大多数海量系统的设计采用固定字段的存储,在现代系统中会采用KV或者TLV的方式,微信也做了不同的设计。,四大技术理念:基础组件,SvrkitClient/Server自动代码生成框架:10分钟搭建内部服务器LogicServer逻辑容器:随时添加新逻辑OssAgent监控/统计框架:所见即所得的监控报表存储组件屏蔽容灾/扩容等复杂问题,四大技术理念:灰度发布,灰度发布,是指在黑与白之间,能够平滑过渡的一种发布方式。ABtest就是一种灰度发布方式,让一部用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。,每天20个后台变更,技术支撑,协议的设计容灾的对策功能的轻重系统的监控,按分钟、按机型统计,3.4面向方面开发,根据影响系统性能或语义的属性进行分解,如日志、性能、内存管理。这些被称为横切特性。横切特性局部化并从功能模块中分离出来,被封装成独立的方面单元。通过方面编织器,将方面单元与功能模块编织成最终软件系统。,3.4.1面向方面开发过程,方面分解:分离模块关注点和横切关注点关注点实现方面组合:根据规则编织或集成,3.4.2面向方面的优缺点,优点代码集中易于理解模块化横切关注点系统容易扩展代码重用性更好缺点没有完整的文档、测试和实践应用缺乏开发工具,3.5开发方法选择注意,每种方法各有特点,可以选择一种适当的方法或综合集中方法,不仅缩短系统的开发周期也能保证系统的开发质量选择开发方法要依靠四个要素P76可以同时采用传统方法和面向对象,但是采用传统方法分析、面向对象方法设计是不可取的。,3.6CASE工具,CASE是软件工具和方法的结合体,CASE工具是能够支持SDLC中一个或多个阶段的工作自动化的计算机软件。,3.6CASE工具介绍,附录书本提及的设计课题,客户支持系统(书本教学)报刊发行管理系统P47工资支付系统P151计算机实验室管理系统可靠药店服务子系统P164影碟出租系统P165,什么是项目
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药品库存课程课程设计
- 材料分类课程设计
- 卫星洪涝监测技术方案课程设计
- NLP情感分析工具应用课程设计
- 2025年中央机关遴选笔试真题及答案解析
- 2025年生态文明建设与可持续发展考试题及答案
- 临床脑梗死患者护理查房
- 2025年档案管理题库大全完整版及参考答案
- 2026中国精准医疗市场发展现状及未来潜力分析报告
- 2026磁敏元件工业控制系统故障率统计与质量改进方案报告
- 湖南省株洲市部分学校2025-2026学年高一下学期期末联合考试数学试卷(含解析)
- 2026年秋新教材青岛版小学数学四年级上册(全册)教学设计(附目录p164)
- 铁塔组立(分解组立、整体组立)施工方案
- 智能制造概论全套课件
- 医学影像技术事业单位考试题库及答案
- 供配电技术教学教案
- 2026年鼠疫防治相关知识培训试题及答案
- 永辉超市服务标准化
- 江苏江南水务股份有限公司招聘笔试题库2026
- 《智能网联汽车 高速车载以太网电缆组件及连接器技术要求》
- 业务员钉钉考勤制度
评论
0/150
提交评论