首页 > 其他分享 >我对软件工程的三个疑问

我对软件工程的三个疑问

时间:2023-03-05 15:11:50浏览次数:38  
标签:模型 软件工程 复用 软件体系结构 三个 开发 软件 过程 疑问

一、

软件为什么要建立过程模型进行学习?

相关资料:

常见的软件过程模型有

1.瀑布模型:瀑布模型将软件开发过程划分为需求定义与分析、软件设计、软件实现、软件测试和运行维护等—系列基本活动,并且规定这些活动自上而下、相互衔接的固定次序。该模型支持结构化的设计方法,但它是一种理想的线性开发模式,缺乏灵活性,无法解决软件需求不明确或不准确的问题。其优点为:1.严格规范软件开发过程,克服了非结构化的编码和修改过程的缺点  2.·强调文档的作用,要求每个阶段都要仔细验证。 其缺点是:1.·各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。 2.·由于开发模型是线性的,用户只有等到整个过程的后期才能见到开发成果,中间提出的变更要求很难响应。3.。早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。

2.增量模型:增量模型是—种非整体开发的模型。在增量模型中,软件被作为一系列的增量构件来设计、实现、集成和测试,从而适应用户逐步细化需求的形成过程。该模型有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。其优点为:1.较好地适应需求的变化,用户可以不断看到所开发软件的可运行中间版本。 2.·重要功能被首先交付,从而使其得到最多的测试。  其缺点为:·各个构件是逐渐并入已有的软件体系结构中,要求软件具备开放式的体系结构。3.。容易退化为边做边改的方式,从而使软件过程的控制失去整体性。

3.演化模型:即根据用户的基本需求,通过快速分析构造出该软件的一个初始可运行版本,这个初始的软件通常称之为原型,然后根据用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。其优点为:1.任何功能一经开发就能进入测试以便验证是否符合产品需求。2.开发中的经验教训能反馈应用于本产品的下一个循环过程,大大提高质量与效率。  其缺点是:1.如果所有的产品需求在一开始并不完全弄清楚的话,会给总体设计带来困难及削弱产品设计的完整性,并因而影响产品性能的优化及产品的可维护性。2.如果缺乏严格的过程管理的话,这个生命周期模型很可能退化为一种原始的无计划的“试-错-改”模式。

4.统一过程模型:是软件工程的过程。它提供了在开发组织中分派任务和责任的纪律化方法。它的目标是在可预见的日程和预算前提下,确保满足最终用户需求的高质量产品。其优点是:提高了团队生产力,在迭代的开发过程、需求管理、基于组建的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面、针对所有关键的开发活动为每个开发成员提供了必要的准则、模版和工具指导,并确保全体成员共享相同的知识基础。它简历了简洁和清晰的过程结构,为开发过程提供较大的通用性。 其缺点是:RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容,此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。

 

二、什么是软件复用?

相关资料:复用意味着重复利用,这是一个在各个领域广泛适用的概念。软件复用是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。软件复用是提高软件生产力和质量的一种重要技术。早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。

                  而软件复用的主要思想是:将软件看成是由不同功能部分的“组件”所组成的有机体,每一个组件在设计编写时可以被设计成完成同类工作的通用工具,这样,如果完成各种工作的组件被建立起来以后,编写一特定软件的工作就变成了将各种不同组件组织连接起来的简单问题,这对于软件产品的最终质量和维护工作都有本质性的改变。

 

三、什么是软件体系结构?

相关资料:软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件;处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组合连接起来。

软件体系结构贯穿于软件研发的整个生命周期内,具有重要的影响。这主要从以下三个方面来进行考察:

   1. 利于相关人员之间的交流 软件体系结构是一种常见的对系统的抽象,代码级别的系统抽象仅仅可以成为程序员的交流工具,而包括程序员在内的绝大多数系统的利益相关人员都借助软件体系结构来进行彼此理解、协商、达成共识或者相互沟通的基础。    2.系统设计的前期决策: 软件体系结构是我们所开发的软件系统最早期设计决策的体现,而这些早期决策对软件系统的后续开发、部署和维护具有相当重要的影响。这也是能够对所开发系统进行分析的最早时间点。    3.可传递的系统级抽象: 软件体系结构是关于系统构造以及系统各个元素工作机制的相对较小、却又能够突出反映问题的模型。由于软件系统具有的一些共通特性,这种模型可以在多个系统之间传递,特别是可以应用到具有相似质量属性和功能需求的系统中,并能够促进大规模软件的系统级复用。  

 

标签:模型,软件工程,复用,软件体系结构,三个,开发,软件,过程,疑问
From: https://www.cnblogs.com/hcnyyds/p/17180578.html

相关文章

  • 疑问or感兴趣的点
    什么是软件设计?(了解基本的信息,加深对该方面的印象) 软件设计是软件需求与实现代码之间的桥梁,起着承上启下的作用。对上而言,软件设计为软件需求的实现提供了一种抽象......
  • 软件工程week1
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/2023softwareengine这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/2023softwareengine/ho......
  • 2023.3.4——软件工程日报
    所花时间(包括上课):0h代码量(行):0行博客量(篇):1篇今天,上午学习计算机网络与概率论,下午学习web技术。我了解到的知识点:1.了解了一些python的知识:python学习——set集合,sorte......
  • 软件工程学习第十一天
    今天我花了半小时时间来学习css,今天的内容是分组和嵌套。在样式表中有很多具有相同样式的元素,为了尽量减少代码,可以使用分组选择器,每个选择器用逗号分隔。如:<!DOCTYPEh......
  • 2023年3月3日(软件工程日报)
    Application是Android的一大组件,在App运行过程中有且仅有一个Application对象贯穿整个生命周期    ......
  • 软件工程日报九——SQLite的安装与配置
    安卓stuio的数据库连接需要SQLite,现在进行安装与配置一进官网下载sqlite—dll—win32—x86.zip和sqlite—tools—win32—x86.zip  二、在下载目录进行解压,出现以下......
  • 从源码MessageSource的三个实现出发实战spring·i18n国际化
    1.前言互联网业务出海,将已有的业务CopytoGlobal,并且开始对各个国家精细化,本土化的运营。对于开发人员来说,国际化很重要,在实际项目中所要承担的职责是按照客户指定的语言......
  • 软件工程学习第十天
        今天我拿出格外的半小时继续学习css。今天学的是css的外边距和填充。    在css中用margin属性定义元素周围的空间,margin可以单独改变元素的上,下,左,右......
  • 软件工程日报八——AlertDiatog的使用
    今天学习了AlertDiatog的相关内容 AlertDialog可以在当前的界面上显示一个对话框,这个对话框是置顶于所有界面元素之上的,能够屏蔽掉其他控件的交互能力,因此AlertDialog一......
  • 3月1日软件工程日报
    学习时间:二小时代码量:200所学知识点:今天在网上查阅了在使用JDBC连接远程数据库为什么要使用IP,查阅到通过IP查找到主机。同时学习了部分Android的进程知识,在......