热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

软工视频总结(一)

先上一张图,软件工程第一章的导图8种开发模型:1、边做边改模型运作方式:1>在这个模型中,开发人员首先根据项目编写程序,调试生成第一


先上一张图,软件工程第一章的导图


8种开发模型:

  1、边做边改模型



运作方式 :

       1>在这个模型中,开发人员首先根据项目编写程序,调试生成第一版;

       2>然后提供给用户使用,用户提出新的要求,开发人员重新修改代码,直到用户满意。


优点:

       这种方法类似于作坊式的开发,适合于小程序开发。


缺点:

      1>缺少规划和设计环节;

      2>忽略需求环节,给软件带来很大风险;

      3>忽略测试和软件的可维护性,也没有任何文档,软件维护困难。


  2、瀑布模型



特点:

      1>阶段间具有顺序行和依赖性,前一阶段完成才能开始后一阶段,

      2>每一阶段都有文档,可以在一定程度保证质量


缺点:

     1>各阶段划分固定,阶段间产生大量文档,极大的增加了工作量

     2>用户只有在整个项目完成才能见到产品,增大了风险。

     3>早期的错误可能要等到后期测试才能发现,可能带来严重后果。


  3、快速原型模型



运用方式:

      1>建造一个快速原型,用户评价,进一步细化开发需求

      2>第二步是在第一步的基础上开发用户满意的软件产品


优点:  

     克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。


缺点:  

     所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。


原型类型:

     探索型原型:目的是要型清用户的需求,确定所期望的特性,并探索各种方案的可行性。它主要针对开发目标模糊,

     实验型原型:主要用于设计阶段,考核;实现方案是否合适,能否实陋

     演化型原型:主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框架,或者包含系统的主要功能,在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统

  4、增量模型



步骤:

      1>第一个增量往往是实现基本需求的核心产品

      2>第二个增量发布更加完善的编辑和文档生成功能

      3>第三个增量实现拼写和文法检查功能

      4>第四个增量完成高级的页面布局功能


优点:

      1>短时间内向用户提供可完成部分工作的产品

      2>逐步增加产品功能可以使用户有时间了解和适应新产品

      3>开放结构的软件拥有的维护性明显好于封闭结构的软件


缺陷:

      1>容易退化为边做边改模型,从而使软件过程的控制失去整体性 

      2>如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析


  5、螺旋模型




四象限锁代表的活动:

      1>制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件

      2>风险分析:分析评估苏所选方案,考虑如何识别和消除风险

      3>实施工程:实施软件开发和验证

      4>客户评估:评价开发工作,提出修正建议,指定下一步计划


优点:

     将瀑布模型和快速还原模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的软件


缺点:

     1>强调风险分析,要求客户接受和相信这种风险,这是很难的,因此,适合于内部的大规模开发

     2>执行风险分析大大影响利润,只适合大规模软件项目开发


  6、喷泉模型



优点:

      1>喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动.该模型的各个阶段没有明显的界限,开发人员可以同步进行开发.其优点是可以

      2>提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程.

缺点:

      由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理.此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况.


  7、智能模型



       智能模型拥有一组工具(如数据查询,报表生成,数据处理,屏幕定义,代码生成等)每个工具都能使开发人员在高层次上定义软件某些特性,并把开发人员定义的这些软件自动生成源代码。但这种方法需要第四代语言(4GL)支持。


  8、混合模型

       把几种不同模型组合成一种混合模型,它允许项目沿着最有效的路径发展,一些软件开发单位都是使用几种不同的开发方法组成他们自己的开发模型。


四种开发方法

  1、面向过程的方法

特点:程序的执行过程,不由用户控制,完全由程序员控制,并且按照时序进行
优点:简单实用
缺点:企图用有穷的方法(枚举法)来描述无穷的(随机的)信息世界,所以不能完全描述信息世界;维护困难

  2、面向对象的方法

特点:程序的执行过程,不由程序员控制,完全由用户控制
           分析设计时面向类,编程时面向对象
优点:有无穷的方法来描述无穷的信息世界,所以能完全描述信息世界;易于维护
缺点:较难掌握

  面向过程与面向对象举例比较



  3、面向数据的方法

特点:程序的执行过程,有时由程序员控制,优势由用户控制
优点:适合数据层设计与实现
缺点:实现窗口界面较困难
适合的场合:以关系数据库管理系统为支撑环境的信息系统建设

  4、形式化方法

形式化方法是建立在严格数学的基础上,以逻辑推理为出发点,并且具有精确数学语义的开发方法。
优点:准确,严谨
缺点:目前只能解决小规模问题
           对开发人员和开发环境要求很高
适合的场合:对安全性要求极高,不容许出错的软件系统,如军事,医药,交通等领域。

小结     视频很容易犯困,但是每一讲或每一章视频的信息量又很大,如果看视频时自己不专注视频或者说犯困了,而最后又不返回去看,那么很可能错过很大的一个知识点,所以需要自己来调节自己,找到适合自己的方法,争取不错过每一个知识点。

推荐阅读
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 利用存储过程构建年度日历表的详细指南
    本文将介绍如何使用SQL存储过程创建一个完整的年度日历表。通过实例演示,帮助读者掌握存储过程的应用技巧,并提供详细的代码解析和执行步骤。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 随着网络安全威胁的不断演变,电子邮件系统成为攻击者频繁利用的目标。本文详细探讨了电子邮件系统中的常见漏洞及其潜在风险,并提供了专业的防护建议。 ... [详细]
  • 本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 深入理解Spring:Aware接口、异步编程与计划任务
    本文将带你深入了解Spring框架中的 Aware 接口、异步编程以及计划任务。通过具体示例和详细解释,帮助你掌握这些核心功能的实现原理和应用场景。 ... [详细]
  • TechStride 网站
    TechStride 成立于2014年初,致力于互联网前沿技术、产品创意及创业内容的聚合、搜索、学习与展示。我们旨在为互联网从业者提供更高效的新技术搜索、学习、分享和产品推广平台。 ... [详细]
  • 网易严选Java开发面试:MySQL索引深度解析
    本文详细记录了网易严选Java开发岗位的面试经验,特别针对MySQL索引相关的技术问题进行了深入探讨。通过本文,读者可以了解面试官常问的索引问题及其背后的原理。 ... [详细]
  • PHP插件机制的实现方案解析
    本文深入探讨了PHP中插件机制的设计与实现,旨在分享一种可行的实现方式,并邀请读者共同讨论和优化。该方案不仅涵盖了插件机制的基本概念,还详细描述了如何在实际项目中应用。 ... [详细]
author-avatar
育霖培伦861
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有