ooa试述传统的开发方法与面向对象的开发方法各有哪些优缺点
谈到面向对象,这方面的文章非常多。但是,明确地给出对象的定义或说明对象的定义的非常少——至少我现在还没有发现。其初,“面向对象”是专指在程序设计中采用封装、继承、抽象等设计方法。可是,这个定义显然不能再适合现在情况。面向对象的思想已经涉及到软件开发的各个方面。如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。许多有关面向对象的文章都只是讲述在面向对象的开发中所需要注意的问题或所采用的比较好的设计方法。看这些文章只有真正懂得什么是对象,什么是面向对象,才能最大程度地对自己有所裨益。这一点,恐怕对初学者甚至是从事相关工作多年的人员也会对它们的概念模糊不清。面向对象是当前计算机界关心的重点,它是90年代软件开发方法
传统的javaweb开发(jsp+servlet+javabean)与SSH框架各有什么样的优缺点,希望能够做一个对比
jsp+servlet+javabean的开发模式 需要写很多的重复代码,比如固定的doGet()方法,而且它的控制跳转不灵活,往往一个问题处理需要两个.java文件,而且当采用MVC模式开发时有很大的耦合度,对于后期的维护 相当不变.它的好处是,适合于初学者,对于理解其中的交互过程很适合,便于以后对SSH框架的理解. SSH框架下的web开发,将三层给解耦了,而且封装了很多的工具类等,使开发效率化.但是有一点坏处就是当框架更新时,需要对框架的更新内容进行学习,尤其进行大的更新时.使用SSH框架你可以不用深入了解它的深层原理便可以完成相关开发,所以说开发的效率化是其最大的优点. 初学者的一点感觉,纯手打,望采纳~
传统的软件开发模型的缺陷是什么?
传统软件开发一般采用瀑布式模型,缺陷是应变能力不强,无法再开发初期获得交付,不利于风险的规避
常用软件开发模式方法及优劣对比有哪些
快速原型模型:
(需要迅速造一个可以运行的软件原型,以便理解和澄清问题)
快速原型模型允许在需求分析阶段对软件的需求进行初步的非完全的分析和定义,快速设计开发出软件系统的原型(展示待开发软件的全部或部分功能和性能
(过程:用户对该原型进行测试评定,给出具体改善的意见以及丰富的细化软件需求,开发人员进行修改完善)
优点:
克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险
缺点:
A、 所选用的开发技术和工具不一定符合主流的发展
B、 快速建立起来的系统加上连续的修改可能会造成 产品质量底下
增量模型:(采用随着日程时间的进展而交错的线性序列,每一个线性徐磊产生软件的一个可发布的“增量”,第一个增量往往就是核心的产品)
与其他模型共同之处:它与原型实现模型和其他演化方法一样,本质都是迭代
与原型实现模型不同之处:它强调每一个增量均发布一个可操作产品,(它不需要等到所有需求都出来,只要摸个需求的增量包出来即可进行开发)
优点:
1、 人员分配灵活,一开始不需要投入大量人力资源
2、 当配备人员不能在限定的时间内完成产品时,它可以提供一种先推出核心产品的途径,可现发布部分功能给用户(对用户起镇静作用)
3、 增量能够有计划的管理技术风险
缺点:
1、 如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析
注:
这种模型将功能细化后分别开发的方法较适应于需求经常改变的软件开发过程
原型模型:
(样品模型,采用逐步求精的方法完善原型)
主要思想:
先借用已有系统作为原型模型,通过“样品”不断改进,使得最后的产品就是用户所需要的。原型模型通过向用户提供原型获取用户的反馈,使开发出的软件能够真正反映用户的需求,
采用方法:
原型模型采用逐步求精的方法完善原型,使得原型能够“快速”开发,避免了像瀑布模型一样在冗长的开发过程中难以对用户的反馈作出快速的响应
优点:
(1)开发人员和用户在“原型”上达成一致。这样一来,可以减少设计中的错误和开发中的风险,也减少了对用户培训的时间,而提高了系统的实用、正确性以及用户的满意程度。
(2)缩短了开发周期,加快了工程进度。
(3)降低成本。
缺点:
1、当重新生产该产品时,难以让用户接收,给工程继续开展带来不利因素。
2、不宜利用原型系统作为最终产品。采用原型模型开发系统,用户和开发者必须达成一致:
喷泉模型:
(以用户需求为动力,以对象为驱动的模型,主要用于采用对象技术的软件开发项目)
它认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性
相互迭代:软件的摸个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分
无间隙:它在各项活动之间没有明显边界(如分析和设计活动之间) 优点: 1、 可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程 不便之处: 1、由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。 2、这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况 螺旋模型: (适合用于需求经常变化的项目) 它主要是风险分析与评估,沿着螺线进行若干次迭代, 过程: 1、 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件 2、 风险分析:分析评估所选方案,考虑如何识别和消除风险 3、 实施工程:实施软件开发和验证; 4、 客户评估:评价开发工作,提出修正建议,制定下一步计划。 优点: 1、 它由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发中 缺点: 1、 难以让用户确信这种烟花方法的结果是可以控制的 2、 建设周期长(而软件技术发展比较快,所以经常会出现软件开发完毕后,和当前的技术水平有很大的差距,无法满足当前用户的需求) 3、 除非软件开发人员擅长寻找可能的风险,准确的分析风险,否则将会带来更大的风险 瀑布模型: (从本质来讲,瀑布模型是一个软件开发架构,重复应用) (核心思想:按工序将问题化简,将功能的实现与设计分开,便于分工协作,采用结构化的分析与设计方法将逻辑实现与物理实现分开,依照软件生命周期自上而下,相互衔接的次序) 缺点: 1、 在项目各个阶段之间极少有反馈,各个阶段的划分完全固定,阶段之间产生大量的文档,增加了工作量 2、 用户只有在项目生命周期的后期才能看到结果,增加了开发的风险 3、 需要过多的强制完成日期和里程碑来跟踪各个项目的阶段 4、 在每个阶段都会产生循环反馈 (如果有信息未被覆盖或是发现问题了,必须返回到上一个阶段并进行适当的修改,只有当上一阶段都被确认后才进行下一阶段) 5、 早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果 优点: 1、 为项目提供了按阶段分的检查点 2、 当完成一个阶段后,只需要去关注后续阶段 3、 可在迭代模型中应用瀑布模型 按照瀑布模型的阶段划分,软件测试可以分为单元测试,集成测试,系统测试
试说明面向对象技术的软件开发方法与传统的软件开发方法的思维方式、分析问题、解决问题有何主要差别?
面向对象开发方法,要求把软件分成模块化后一个一个模块全部固化成对象,然后一个一个模块进行操作,好像搭积木一样.面传统的方法则是一个整体去做,不细化成模块.以面包房做蛋糕为例,传统方法可以生产一个一个小蛋糕,而面向对像方法则可以生产多个多层蛋糕. 另外,传统方法利于一个人操作编程,而面向对象可以实现多人共同编程,只要提供一个一个小模块的接口即口.
几种常见软件开发方法的研究与比较
去百度文库,查看完整内容>
内容来自用户:易发表网
几种常见软件开发方法的研究与比较
摘要:本文介绍四种常见软件开发方法的过程、特点、优缺点及如何对软件开发方法进行评价与选择。
关键词:软件软件开发
1引言
在软件开发的过程中,软件开发方法是关系到软件开发成败的重要因素。软件开发方法就是软件开发所遵循的办法和步骤,以保证所得到的运行系统和支持的文档满足质量要求。在软件开发实践中,有很多方法可供软件开发人员选择。
2常见的软件开发方法
2.1结构化开发方法
结构指系统内各组成要素之间的相互联系、相互作用的框架。结构化开发方法强调系统结构的合理性以及所开发的软件的结构的合理性,主要是面向数据流的,因此也被称为面向功能的软件开发方法或面向数据流的软件开发方法。结构化技术包括结构化分析、结构化设计和结构化程序设计三方面内容。
2.1.1结构化分析的步骤
结构化分析是一种模型的确立活动,就是使用独有的符号,来确立描绘信息(数据和控制)流和内容的模型,划分系统的功能和行为,以及其他为确立模型不可缺少的描述。其基本步骤是:(1)构造数据流模型:根据用户当前需求,在创建实体—关系图的基础上,依据数据流图构造数据流模型。(2)构建控制流模型:一些应用系统除了要求用数据流建模外,通过构造控制流图(CFD),
传统软件开发与现代软件开发的区别有哪些
软件开发是面向计算机的,目前以PC软件为主,例如各种聊天、播放、杀毒软件等是个比较辛苦的行业, 而软件工程则是面向的产品中的单片机、单板机等,例如为微波炉
软件开发过程常见的有哪几种,各有哪些优缺点
根据软件工程学大概分以下几步 项目分析 对项目的功能要求难度及可实现性等进行分析 然后是设计、实现、测试、集成、交付、维护一系列工作
简述传统软件工程和面向对象软件工程的异同点
狭义的来讲,面向对象属于软件工程中软件开发范型的范畴。美国学者Evelyn Stiller和Cathie LeBlanc给软件开发范型所下的定义为:一个软件开发范型是一个用来指导软件开发过程的技术集合。他们认为软件开发过程可以分为三大部分:概念化、表示和实现,针对每个部分不同的软件开发范型都有不同的表现方式和处理方法。
从广义上来讲,面向对象方法不单只是一些具体的软件开发方法与策略,而是一整套关于如何看待软件系统与现实世界的关系,以什么观点来研究问题并进行求解,以及如何进行系统构造的方法学。它覆盖了软件工程学科的各个方面,包括软件开发范型、软件开发设计方法、软件过程、软件工具、软件开发环境等,甚至影响到了整个计算机工业。
传统软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。传统软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。
传统结构化开发方法和面向对象方法的相同点和不同点
传统结构化开发方法:先确定如何操作数据,再决定如何组织数据,以便于数据操作; 面向对象:数据放第一位,再去考虑操作数据的方法;