软件开发实训需要用到的算法和结构_软件设计与体系结构的实验报告一

实验名称:

软件开发过程模型及描述

实验目的:熟悉了解除了瀑布模型、原型模型、螺旋模型外的其他两个软件开发过程

模型,并描述。

实验步骤

(操作步骤、算法和程序清单)

1.

增量模型:人们解决大问题时,

往往是将大问题分解为若干个小问题,

每个小问题

比较容易解决,

将这些小问题分别给予解决

那么大问题也就被解决了。

一般来说

分解出的每小问题具有相对独立性,

即每个小问题与其它每个小问题联系不紧密,这

样,既可以一个接着一个地顺序去解决每个小问

题,

也可以同时去解决多个小问题。

增量模型按照这

样的方法进行软件开发,

将一个大的软件分解为一系列较小的“

量”

每个增量分别进行开发,

通常开发的第一个增量是软件的核心部分,

实现软

件的基本需求。

向用户一个增量接着一个增量地分批提交软件产品。

采用增量模型,

户从拿到第一个增量时开始,

就可以学习和熟悉软件,

通过使用来评价软件及提出修

改意见

开发人员根据用户对

已经提交的增量的反馈

可以

改进软件产品。

这样,

提交所有增量后

软件产品就达到比较完善的程度,

也提高了用户满意度。

2.

构件组装模型:在软件生产中,由于每个软件与其它软件都不同,在面向对象技术出

现之前,

重复使用难度比较大。面向对象技术将数据和操作该数据的算法封装在一起,

做成一个个的“

类”

将一个或多个相关“

类”

组合成一个“

软件构件”

某领域内用过的所有“

软件构件”

被放到一个“

软件构件库”

中,

这样为重复使

用打下了基础,

构件组装模型就是通过重复使用“

软件构件库”

中的软件构件来进

行软件开发。使用构件组装模型开发软件时,

根据被开发软件的目标和开发方案。

取软件构件库中的软件构件,

组装成一个完整的软件版本。构件组装模型的推出,

使

前人的劳动成果被有效地利用了起来。按此模型进行开发活动。

可以节省时间、

降低

成本,

软件质量也有保证。

构件组装模型的出现,

使软件开发工作开始进入一个新时代。

0 1背包问题是一例典型的组合优化的NP完全问题 问题可以描述为:给定一组共n个物品 每种物品都有自己的重量wi i 1 n和价值vi i 1 n 在限定的总重量(背包的容量C)内 如何选择才能使得选择物品的总价值之和最高 选择最优的物品子集放置于给定背包中 最优子集对应n元解向量 x1 …xn xi∈{0或1} 因此命名为0 1背包问题 0 1背包问题是许多问题的原型 但它又是一个NP完全问题 此实验主要研究和实现n 0< n< 200 和C C< 2000 C为整数 都较大的情形 随机产生n个物品的重量向量wi 1< wi< 100 wi为整数 和价值向量vi 1< vi< 100 vi为整数 0 1背包问题可以用许多方法来求解 有些算法可以得到问题的精确最优解 有些仅能获得一个近似最优解 本综合设计性实验要求用3种以上的方法求解0 1背包问题 获得精确最优解或近似最优解皆可 并对所采用的多种算法从运行时间 寻找是否为最优解 能够求解的问题规模等方面进行对比和分析 本课程讲述的所有算法思想都可以用来求解此问题 甚至本课程未涉及的许多算法也非常适合于求解此问题 学生可以先尝试先用本课程已介绍的算法来实现和分析 学有余力或兴趣驱动下可以寻找一些智能算法的资料来试一试 涉及的方法可以有:蛮力求解 递归求解 动态规划求解 贪心求解 回溯法求解 广度优先的分支限界法求解 优先队列的启发式分支限界法 遗传算法 模拟退火算法 蚁群算法 粒子群算法等 ">0 1背包问题是一例典型的组合优化的NP完全问题 问题可以描述为:给定一组共n个物品 每种物品都有自己的重量wi i 1 n和价值vi i 1 n 在限定的总重量(背包的容量C)内 如何选择才能使得选择物品的总价值之和最高 选择 [更多]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值