- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一讲 软件设计概述 第一讲 软件设计概述 主讲:甘玲 重庆邮电大学计算机科学与技术学院 yjs_ganling@126.com 陈火旺语 中国工程院院士,国防科学技术大学计算机学院教授 硕士研究生的教育须突出“研究”,要加强理论基础的教育和科研能力的训练,使学生能够站在一定的高度去分析研究问题、解决问题。 硕士研究生要通过课程学习,进一步提高理论水平,为今后的研究和发展打下坚实的基础;通过相应的研究及学位论文撰写工作来接受全面的科研训练,了解科学研究的艰辛和科研工作者的奉献精神,培养良好的科研作风,锻炼攻关能力,养成协作精神。 主要内容 1.1 软件与软件危机 什么是软件 存在的问题 在二十世纪六十年代以前 软件系统较小且相对简单 所用的编程语言也是简单的语言 时兴个人英雄主义,即崇尚程序员的个人技能 无开发方法而言 1.2 软件工程 软件危机的出现迫使人们重新认识软件和软件开发过程。 大型软件开发也应该借鉴建筑、机械等行业的发展过程,由“手工方式”向“工程化”方向发展。1968年在北大西洋公约组织(NATO)的年会上首次提出软件工程的概念,此后又逐步提出软件生命期的概念。 1.2 软件工程 软件的质量标准1--正确性 软件的质量标准2--健壮性 软件的质量标准3--可维护性 1.3 程序设计方法 程序演示 分析、比较面向对象程序与面向过程程序的基本结构及其异同。 例1 用梯形法计算定积分程序 例2 吹泡泡程序 二十世纪七十年代,Al Constantine 和Ed Yourdon发明了结构化分析设计方法:功能分解,以功能作为构造块。 结构化方法综述 功能分解法:以系统需要提供的功能为中心来组织系统。 首先定义各种功能,然后把功能分解为子功能,同时定义功能之间的接口。 对较大的子功能进一步分解,直到可给出明确的定义。 根据功能/子功能的需要设计数据结构。 功能分解=功能+子功能+功能接口 1.3.1 结构化程序设计 结构化方法的优点 结构化方法有严格的法则,较强调研究问题域。 在相当大的程度上,解决了以前存在的问题。特别是与模块化编程结合使用,效率更高。 直接反映用户的需求,所以工作很容易开始。 适用于功能稳定的应用领域,如某些科学计算。 结构化方法的缺点 大系统数据流和加工的数量太多,引起分析文档的膨胀。 不能直接映射问题域。系统复杂时,难以检验分析的正确性。 对需求变化的适应能力较弱。 设计与表示法不一致,其转换规则也不严格。 结构化方法的缺点(续) 开头容易,结束难。 对于众多的领域而言,其功能是易变的,如企业管理和商业管理。对需求变化的适应能力很差。 对于大型、复杂的软件,由于其中内在的高偶合、低内聚,特别是当时团体开发的开发管理方法的不足,局部的错误和局部的修改很容易产生全局性的影响。 1.3.2 面向对象的程序设计 1.3.2 面向对象的程序设计 面向过程程序设计缺点的根源在于数据与数据处理分离。 面向对象程序设计模拟自然界认识和处理事物的方法,将数据和对数据的操作方法放在一起,形成一个相对独立的整体——对象(object),同类对象还可抽象出共性,形成类(class )。一个类中的数据通常只能通过本类提供的方法进行处理,这些方法成为该类与外部的接口。对象之间通过消息(message)进行通讯。 以C++为例 本课程以C++程序设计为例介绍C++对面向对象技术的支持! 课程要求 基本知识 清晰、准确、熟练地掌握面向对象方法的主要思想、基本概念与原则 面向对象分析(OOA) 掌握OOA的主要概念,了解操作过程,会应用 面向对象设计(OOD) 掌握OOD的主要概念,了解操作过程,会应用 面向对象编程(OOP) 掌握OOP的基本思想,学会用C++实现用面向对象分析与设计方法建立系统模型 结语 小结 下一讲介绍“面向对象方法概述”,包括面向对象方法的本质、基本概念、运行机制、特点和开发方法 练习 试编写一段程序,要求输入两个正整数时,能求出他们的最大公约数和最小公倍数。 试编制一个C++程序,模拟计算器进行四则运算。 * * 软件设计是一个将人类思维物化为计算机思维的过程,通过这个过程计算机获得一定程度的独立加工甚至思维的能力,从而将人类思维推向更高层次。 关于软件设计的概念和方法的研究是随着计算机应用的深入和所处理问题的复杂化而不断加深的。 本讲就软件设计的相关概念和程序设计方法的演化发展作简要介绍。 1.1 软件与软件危机 1.2 软 件 工 程 1.3 程序设计方法 软件 ? 程序 支撑计算机工作和支持用户应用的程序都是软件。 软件是程序、方法、规则、相关文档以及在计算机上运行所必需的数据的集合。 什么是软件危机 软件危
文档评论(0)