通读《现代软件工程》

1.复杂性、易变性是什么意思?怎么样的编程作业才算加入了软件特性?

我看了这一段文字

软件工程的编程作业,不仅仅是程序,而是要加入软件工程的要素(复杂性、易变性和其他),有价值的软件工程的作业必须要触及者两个基本要素!

通过这段话,我直接想要提出的问题是:复杂性、易变性是什么意思?怎么样的编程作业才算加入了软件特性?

接着看了书上关于软件特殊性的介绍(复杂性、易变性等是软件特性),它是这么介绍复杂性和易变性的:

复杂性——软件可以说是人类创造的最复杂的系统类型。大型软件(操作系统、办公软件、搜索引擎)有超过百万行的源代码,上万个不同的文件。……软件的各个模块之间有各种显性或隐性的依赖关系,随着系统的成长和模块的增多,这些关系的数量往往以几何级数的速度增长。而理解运用这些复杂性的人并没有太大的变化。

易变性——软件看上去很容易修改,修改软件比修改硬件容易多了。……但是与此同时,正确地修改软件是一件很困难的事情。

2.RUP是什么?

Rational Unified Process 统一流程(RUP)时,最直接的,我想问RUP是什么?

教材上介绍到

从瀑布模型开始的各种模型都有一个共同点:重计划,重事先设计,重文档表达。这一类的方法中集大成者要算Rational统一流程(Rational Unified Process,RUP)。RUP把软件开发的各个阶段整合在一个统一的框架里。

教材还介绍了RUP的工作流和开发过程,但我没有看到有对RUP含义的介绍,于是我查了度娘,

RUP(Rational Unified Process),统一软件开发过程,统一软件过程是一个面向对象且基于网络的程序开发方法论。

瑞理统一过程(RUP)是Rational软件公司(Rational公司被IBM并购)创造的软件工程方法。RUP描述了如何有效地利用商业的可靠的方法开发和部署软件,是一种重量级过程(也被称作厚方法学),因此特别适用于大型软件团队开发大型项目。

                                          ——引用于RUP_百度百科

这使我知道了RUP是一种软件工程方法,它可以为所有方面和层次的程序开发提供指导方针,模版以及事例支持;RUP的本质是一个流程定义平台,是一个流程框架。

我还想知道的是:迭代开发具有很多优点,但怎样的开发项目不适合采用迭代式开发呢?

3.敏捷开发与RUP有什么不同之处?

在软件工程的语境里,“敏捷流程”是一系列价值观和方法论的集合。

但是,敏捷到底是什么?同上面一个问题一样,我对这样的术语还是不理解(专业知识的底子到底还是太差了,求推荐相关的基础书目),网络资源就这样派上了用场……

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

4.我们在开发软件的时候,要用到哪些测试方法?什么阶段用什么方法?

软件测试 介绍了许许多多的测试方法,也介绍了它们的分类、功能以及用法(这里不一一列出),但我想知道的是:这些方法都要在我们进行软件测试时采用吗?那什么阶段应该用什么方法呢?

通过搜集资料,我了解到软件开发过程中常用的软件测试方法有:单元测试[程序内部数据测试],集成测试[单元测试之后],效能测试[单元测试,整合测试之后],回归测试[发生修改之后重新测试],验收测试[软件测试过程的最后一步]。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值