在敲机房收费系统的时候,就曾吃过亏,在需求分析的时候不知道从哪下手。软件工程是软件设计的灵魂,可以说它起到一个在思想上给我们指导性的作用。下面这张图介绍了一些软件和软件工程的相关知识:
一、 软件:软件是计算机系统中与硬件相互依存的一部分,它包括程序,数据及相关文档的完整集合。
- 程序:是按事先设计的功能和性能要求执行的指令序列。
- 文档:是与程序开发和维护和使用有关的图文材料。
- 数据:是使程序能正常操纵信息的数据结构。
软件比较显著的特点:
- 软件是一种逻辑实体,而不是物理实体,因而它具有抽象性;
- 软件的生产与硬件不同,在它的开发过程当中没有明显的制造过程;
- 软件在运行和使用过程当中,不会出现磨损和老化问题;
- 软件依赖于计算机系统,不能独立它而存在;
- 软件成本是比较昂贵;
二、软件工程:软件工程是研究如何以系统性的、规范化的、可定量的过程化方法开发和维护软件。
1、软件工程过程:
- 软件规格说明:规定软件的功能及其运行的机制
- 软件开发:生产满足规格说明的软件
- 软件确认:确认软件能够完成客户提出的要求
- 制定计划:确定要开发软件的系统目标 ;给出功能,性能、可靠性以及接口等方面的要求 ;完成该任务的可行性研究。
- 需求分析和定义:在需求分析阶段,开始编写用户手册,明确设计的思路,并把每个模块的主要功能告诉用户。
a.对待软件开发提出的需求进行分析并给出详细的定义b.编写软件需求说明书或系统功能说明书及初步的系统用户手册c.提交管理机构评审
- 软件设计:把许多事物和问题抽象起来,并且抽象它们不同的层次和角度度。
a.概要设计:把需求分析所形成的规格说明书所描述的功能,性能,接口转换成软件的体系结构。
b.详细设计:对每个模块要完成的工作进行具体的描述。
c.编写设计说明书,提交评审。
- 程序编写
a.把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单”
b.写出的程序应该是结构良好,结构易读的,且与设计相一致的。
- 软件测试
a.单元测试,寻找各模块在功能和结构上存在的问题,并加以纠正。
b.组装测试,将已测试过的模块按一定顺序组装起来
c.按规定的各项需求,逐项进行有效性测试
- 运行/维护
a.改正性维护,运行中发现了软件中的错误需要进行修正
b.适应性维护,为了适应变化了的软件工作环境,需做适当变更
c.完善性维护,为了增强软件的功能,需做变更
3、软件工程的原则:
- 分解,即把一个复杂的问题按照它们的功能分解成若干个子问题,降低我们问题的复杂性、模块化和抽象
- 独立性,每个模块都是独立的
- 一致性:标准一致,满足需求,接口一致(即开发过程的标准化)
- 确定性:每个模块都要有明确的标准,输入输出,功能都是明确的。
posted on 2012-11-27 08:59 阅读( ...) 评论( ...)