制定计划 计划 需求分析 设计 开发 编码 测试 运行 运行/维护
软件开发模型
瀑布模型:按照软件生命周期经典模型-瀑布模型的各个阶段实施开发工作 优点:
1.提供了软件开发的基本框架,优于“手工作坊”式的开发方法 2.有利于大型软件开发过程中人员的组织、管理
3.有利于软件开发方法和工具的研究与使用,从而提高了大型软件项目开发的质量和效率 缺点:
1.在软件开发的初始阶段指明软件系统的全部需求是困难的,有时甚至是不现实的
2.需求确定后,用户和软件项目负责人要等相当长的时间(经过设计、编码、测试、运行)才能得到一份软件的最初版本。如果用户对这个软件提出比较大的修改意见,那么整个软件项目将会蒙受巨大的人力、财力、时间方面的损失。
渐进模型(演化模型、原型模型)
原型模型在克服瀑布模型缺点、减少由于软件需求不明确而给开发工作带来风险方面,确实有着显著的效果
原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于需求不确定性高的系统
螺旋模型
它是生命周期模型与原型模型的结合,不仅体现了两个模型的优点,还增加了新的成分——风险分析
螺旋模型是支持大型软件开发并具有广泛应用前景的模型
5
例题
1.开发软件时,对于提高软件开发人员工作效率至关重要的是(A)。软件工程中描述软件生存周期的瀑布模型一般包括计划、(B)、设计、编码、测试、维护等几个阶段。其中,设计阶段在管理上又可以依次分成(C)和(D)两个步骤。 供选答案:
A: ①程序开发环境 ②操作系统的资源管理功能
③开发程序人员数量 ④计算机的并行处理能力 B: ①需求分析 ②需求调查
③可行性分析 ④问题定义 C、D:①方案设计 ②代码设计 ③概要设计 ④数据设计
⑤运行设计 ⑥详细设计 ⑦故障处理设计 ⑧软件体系结构设计
答案:A. ① B. ① C. ③ D. ⑥
2.有人将软件的发展过程划分为4个阶段:
第一阶段(20世纪50年代)称为“程序设计的原始时期”。这时既没有(A),也没有(B),程序员只能用机器指令编写程序。 第二阶段(20世纪60年代)称为“基本软件期”。出现了(A),并逐渐普及。随着(B)的发展,编译技术也有较大的发展。 第三阶段(20世纪60年代末-70年代中)称为“程序设计方法时代”。这一时期,与硬件价格下降相反,软件开发费用急剧上升。人们提出了(C)和(D)等程序设计方法,设法降低软件的开发费用。
第四阶段(20世纪70年代中期至今)称为“软件工程时期”,软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如(E)、(F)、编码、单元测试、综合测试、(G)及其整体有关的各种管理技术。 供选择的答案:
A-D:①汇编语言 ②操作系统 ③虚拟存储器概念 ④高级语言
⑤结构化程序设计 ⑥数据库概念 ⑦固件 ⑧模块化程序设计 E-G:①使用和维护 ②兼容性的确认 ③完整性的确认 ④设计
⑤需求定义 ⑥图象处理
答案:A.① B.④ C.⑤ D.⑧ E.⑤ F.④ G.①
问题定义
关于问题性质、工程目标和规模的书面报告
可行性研究(也称可行性分析,Feasibility Analysis)
目的就是要用最小的代价在尽可能短的时间内确定问题是否能够解决。 具体任务:
1.进一步分析和澄清问题定义。
2.导出系统的高层逻辑模型。从系统逻辑模型出发,探索若干种可供选择的主要解法(即系统实现方案)。对每种解法都应该至少从下述几方面研究其可行性:
Economic feasibility,经济可行性。这个系统的经济效益能超过它的开发成本吗?
6
Technical feasibility,技术可行性。使用现有的技术能实现这个系统吗? Legal feasibility,法律可行性。确定系统开发可能导致的任何侵权行为、妨碍性后果和责任。
Operational feasibility,操作可行性。系统的操作方式在这个用户组织内行得通吗?
3、对以后的行动方针提出建议。
基于计算机系统的成本—效益分析是可行性研究的重要内容,它用于评估计算机系统的经济合理性。给出系统开发的成本论证,并将估算的成本与预期的利润进行对比。 成本
软件开发成本主要表现为人力消耗(乘以平均工资则得到开发费用)。 一般来说,基于计算机系统的成本由四个部分组成: 1.购置并安装软硬件及有关设备的费用 2.系统开发费用
3.系统安装、运行和维护费用 4.人员培训费用
1、代码行技术
代码行技术是比较简单的定量估算方法,也是一种自底向上的估算方法。它把开发每个软件功能的成本和实现这个功能需要用的源代码行数联系起来。通常根据经验和历史数据估计实现一个功能需要的源程序行数。
一旦估计出源代码行数以后,用每行代码的平均成本乘以行数即可确定软件的成本。每行代码的平均成本主要取决于软件的复杂程度和开发小组的工资水平。
大致分如下两步:
⑴ 对要求设计的系统进行功能分解,直到可以对为实现该功能所要求的源代码行数做出可靠的估算为止。根据经验和历史数据,对每个功能块估计一个最有利的、最可能的和最不利的LOC值。设最有利的LOC值为a,最可能的LOC值为m,最不利的LOC值为b,则代码行的期望(平均)值L
L=a + 4m + b6a、b、m分别为程序最小规模、最大规模和最可能规模;a、b、m为3种规模平均值
⑵ 再根据历史数据和经验,选择每个软件功能块的LOC价格
计算每个功能块的价格及工作量,并确定该软件项目总的估算价格和工作量。
7
可行性论证的提纲 大致包括如下内容:
1、 背景情况。问题描述,市场需求等
2、 系统描述。简略的范围描述,计划目标和阶段目标等 3、 候选方案。候选方案的配置,选择最终方案的准则等 4、 价格利益分析。经费概算和预期经济效益
5、 技术冒险评价。包括技术实力、设备条件和已有工作基础 6、 操作可行性。用户组织对操作方式的希望
7、 法律可行性。系统开发可能导致的侵权、违法等 8、 其它与项目有关的问题。可能的未来变化 9、 结论。
需求分析
所谓软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。
需求分析具体任务:
1、 确定对系统的综合要求
1) 系统功能要求 2) 系统性能要求 3) 运行要求
4) 将来可能提出的要求
2、 分析系统的数据要求(需求分析的本质就是对数据和加工进行分析) 3、 导出系统的逻辑模型 4、 修正系统开发计划 5、 开发原型系统(可选)
需求获取技术
1、 访谈与会议 2、 书面调查法
3、 观察用户工作流程
4、 用户和开发人员共同组成联合小组
需求调查
主要包括四部分内容: 1、 组织概况
2、 组织的业务活动: 1) 组织的业务状态 2) 业务的详细内容
3) 输入输出信息从六个方面着手: *信息流向 *信息种类 *利用的目的
8
相关推荐: