期末
字数
1475 字
阅读时间
6 分钟
一、软件与软件危机
1. 软件的定义
- 软件是计算机系统中与硬件相互依存的一部分,它是包括程序、数据及其相关文档组成的完美集合
- 软件 = 程序 + 数据 + 文档
- 程序:事先设计好的功能和性能要求执行的指令序列
- 数据:程序能正常处理信息的数据和数据结构(给程序运行的)
- 文档:与程序运行和维护有关的图文资料(必不可少的,给人阅读利用的)
- 软件 = 程序 + 数据 + 文档
2. 软件的特征
- 软件具有抽象特征
- 软件无明显制造过程
- 无备件
- 手工制作
- 成本昂贵
3. 软件分类
- 按软件功能分类:
- 系统软件
- 支撑软件
- 应用软件
4. 软件危机[1]
- 在软件开发和维护过程中产生的一系列严重问题。一是如何开发软件,满足用户对软件的需求,二是如何维护数量众多的已有软件。主要表现如下:
- 用户需求不明确,变更过多
- 软件成本日益增长
- 开发进度难以控制
- 软件质量差
- 软件维护困难
- 产生原因:
- 软件开发无计划性
- 软件需求不充分
- 软件开发过程无规范
- 软件产品无测评手段
- 解决软件危机的途径:
- 加强软件开发过程的管理
- 推广使用软件开发的成功技术和方法
- 开发和使用好的软件工具
5. 软件工程[2]
- 为解决软件危机,人们开软件开发中也不断改进与发展,经历了三个发展阶段:
- 程序设计阶段:约为50至60年代
- 程序系统阶段:约为60至70年代
- 软件工程阶段:约为70年代后
重点!!!
软件工程三要素:方法、工具、过程
- 软件工程的目标:在给定成本和进度的前提下,开发具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户要求的软件产品
6. 软件的生存周期
- 生存周期:包含孕育、诞生、成长、成熟、衰亡的生存过程。每个阶段都包含计划、开发、运行与维护三个时期,每个时期又分为多个阶段。
- 计划时期:以调查和分析为主要任务。存在问题定义和可行性研究两个阶段
- 开发时期:完成设计和实现两大任务。设计包括需求分析和软件设计两个阶段;实现包括编码和测试
- 需求分析[3]:主要解决“目标系统必须做什么”这一问题。深入描述软件的功能和性能,确定软件设计的限制和其他系统元素的接口定义,并定义软件的其他有效性需求,最后用“需求规格说明书”的形式准确地表达出来,提交管理机构评审
- 软件设计:是软件工程的核心,任务是把各项需求转换为一个相应的体系结构,通常细分为总体设计和详细设计两阶段
- 编码:按照选定语言将软件设计转换为计算机可接受的程序代码,即写成“源程序清单”
- 测试:保证软件质量的手段,是用于发现问题、找到问题的。主要方式是在设计测试用例的基础上检测软件的各个组成部分
- 运行时期:已开发的软件投入正式使用。是软件生存期的最后一个时期。软件人员在该阶段的任务就是做好软件的维护
7. 软件生存周期模型[4]
- 该模型是横跨整个软件生存周期的,这些模型都包含“定义(或:计划)”、"开发"和"维护"3类活动
二、可行性分析
- 目的:用极少的代码在最短时间内决定被开发的软件是否能开发成功
- 经济可行性:开发后能取得的效益能否收回经济成本
- 技术可行性:分析系统功能和性能以及实际系统的各种约束来分析,确定当前技术是否能够实现整个系统
- 法律可行性:分析在系统开发过程中可能出现的法律问题,如:合同、责任、知识产权等
- 运行可行性:判断新系统运行是否可行
1. 可行性研究的步骤
- 确定系统的规模和目标
- 分析现有系统,设计新系统的模型
- 评审系统模型
- 设计和评价新系统的实现方案
- 指定方案
- 拟定开发计划
- 编制可行性报告(以文档形式输出)
三、需求分析
贡献者
freeway348