雨落天涯

问花花不语,为谁落,为谁开。

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在敲机房收费系统的时候,就曾吃过亏,在需求分析的时候不知道从哪下手。软件工程是软件设计的灵魂,可以说它起到一个在思想上给我们指导性的作用。下面这张图介绍了一些软件和软件工程的相关知识:

一、 软件:软件是计算机系统中与硬件相互依存的一部分,它包括程序,数据及相关文档的完整集合。

  1. 程序:是按事先设计的功能和性能要求执行的指令序列。
  2. 文档:是与程序开发和维护和使用有关的图文材料。
  3. 数据:是使程序能正常操纵信息的数据结构。

软件比较显著的特点:

  1. 软件是一种逻辑实体,而不是物理实体,因而它具有抽象性;
  2. 软件的生产与硬件不同,在它的开发过程当中没有明显的制造过程;
  3. 软件在运行和使用过程当中,不会出现磨损和老化问题;
  4. 软件依赖于计算机系统,不能独立它而存在;
  5. 软件成本是比较昂贵;

二、软件工程:软件工程是研究如何以系统性的、规范化的、可定量的过程化方法开发和维护软件。


1、软件工程过程:
  • 软件规格说明:规定软件的功能及其运行的机制
  • 软件开发:生产满足规格说明的软件
  • 软件确认:确认软件能够完成客户提出的要求
2、软件生存期即软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这过程主要分为这几个部分:

  • 制定计划:确定要开发软件的系统目标 ;给出功能,性能、可靠性以及接口等方面的要求 ;完成该任务的可行性研究。
  • 需求分析和定义:在需求分析阶段,开始编写用户手册,明确设计的思路,并把每个模块的主要功能告诉用户。

a.对待软件开发提出的需求进行分析并给出详细的定义
b.编写软件需求说明书或系统功能说明书及初步的系统用户手册

c.提交管理机构评审

  • 软件设计:把许多事物和问题抽象起来,并且抽象它们不同的层次和角度度。

a.概要设计:把需求分析所形成的规格说明书所描述的功能,性能,接口转换成软件的体系结构。

b.详细设计:对每个模块要完成的工作进行具体的描述。

c.编写设计说明书,提交评审。

  • 程序编写

a.把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单”

b.写出的程序应该是结构良好,结构易读的,且与设计相一致的。

  • 软件测试

a.单元测试,寻找各模块在功能和结构上存在的问题,并加以纠正。

b.组装测试,将已测试过的模块按一定顺序组装起来

c.按规定的各项需求,逐项进行有效性测试

  • 运行/维护

a.改正性维护,运行中发现了软件中的错误需要进行修正

b.适应性维护,为了适应变化了的软件工作环境,需做适当变更

c.完善性维护,为了增强软件的功能,需做变更

3、软件工程的原则:

  • 分解,即把一个复杂的问题按照它们的功能分解成若干个子问题,降低我们问题的复杂性、模块化和抽象
  • 独立性,每个模块都是独立的
  • 一致性:标准一致,满足需求,接口一致(即开发过程的标准化)
  • 确定性:每个模块都要有明确的标准,输入输出,功能都是明确的。


posted on 2012-11-27 08:59  雨落天涯  阅读(218)  评论(0编辑  收藏  举报