软工视频总结——初步走进软件工程

一、什么是软件

1.定义:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。
 2.特点:
      a.具有抽象性,它是一种逻辑实体,不是具体的物理实体;
      b.与硬件不同,开发过程中没有明显的制造过程;
      c.运行和使用期间,不存在硬件的那样机械磨损,老化问题;
      d.开发运行时常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。

二、软件的分类


 1.按软件的功能划分:
    系统软件
    支撑软件
    应用软件
 2.按软件的规模划分(受参加人员数、研制期限和源程序行数的影响)
    微型软件
    小型软件
    中型软件
    大型软件
 3.按软件工作方式划分:
    实时处理软件
    分时软件
    交互式软件
    批处理软件   
 4.按软件服务对象的范围划分:
    项目软件
    产品软件    

三、软件的发展

 
 程序设计阶段(50至60年代)——程序系统阶段(60至70年代)——软件工程阶段(70年代以后)

四、软件的生存期(life cycle)


1.定义:软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程就是计算机软件的生存期。
2.开发过程(6个阶段):制定计划、需求分析和定义、软件设计、软件程序编写、软件测试、运行维护
3.模型:
 
瀑布模型:

    瀑布模型(Waterfall Model) 是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。包括软件工程开发、企业项目开发、产品生产以及市场销售等构造瀑布模型。  
瀑布模型有以下优点:
1)为项目提供了按阶段划分的检
瀑布模型
瀑布模型
查点。
2)当前一阶段完成后,您只需要去关注后续阶段。
3)可在迭代模型中应用瀑布模型。
增量迭代应用于瀑布模型。迭代1解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。
4)它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
瀑布模型有以下缺点:
1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
4)瀑布模型的突出缺点是不适应用户需求的变化。

快速原型模型
     快速原型模型又称原型模型,它是增量模型的另一种形式;它是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。

 

优点:克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。
这种模型适合预先不能确切定义需求的软件系统的开发。


缺点:所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。
使用这个模型的前提是要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新。


螺旋模型

螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动:
四种象限
(1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;
(2)风险分析:分析评估所选方案,考虑如何识别和消除风险;
(3)实施工程:实施软件开发和验证;
(4)客户评估:评价开发工作,提出修正建议,制定下一步计划。
螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。



优点
1)设计上的灵活性,可以在项目的各个阶段进行变更。
2)以小的分段来构建大型系统,使成本计算变得简单容易。
3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
4)随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。
5)客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。
缺点
很难让用户确信这种演化方法的结果是可以控制的。建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。
喷泉模型
    喷泉模型主要用于采用对象技术的软件开发项目。该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。无间隙指在各项活动之间无明显边界,如分析和设计活动之间没有明显的界限,由于对象概念的引入,表达分析、设计、实现等活动只用对象类和关系,从而可以较为容易地实现活动的迭代和无间隙,使其开发自然地包括复用。

 1、喷泉模型的优点
喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。 
 2、喷泉模型的缺点
由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。 


五、软件工程及其目的要求

1.定义:软件工程师开发、运行、维护和修复软件的系统方法。
2.三要素:方法、工具和过程
3. 软件工程项目的基本目标:
● 付出较低的开发成本
● 达到要求的软件工能
● 取得较好的软件性能
● 开发的软件易于移植
● 需要较低的维护费用
● 能按时完成开发工作,及时交付使用

结语:
 软件工程是非常重要的一门基础理论课,掌握其中的模型和设计方法是重中之重。以上是对软件工程的产生的背景的初步介绍,随后会在视频的学习中,不断地更新新的内容。


评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值