软件设计

需求确认——概要设计——详细设计——编码——单元测试——集成测试——系统测试——维护
需求确认:需求规格说明书
概要设计:系统用例图,用例场景
详细设计:系统设计报告,数据库设计报告
测试:测试用例报告


没有“结构化”设计的软件系统,以后根本谈不上什么维护升级,就是简单的除虫也成了个问题,就算你的软件代码写得再好也只是“乱码”,根本一文不值,这个道理谁都懂,所以要写好软件,概要设计是非常关健的,具体工作如下:
  (1) 采用某种设计方法,将一个复杂的软件系统按功能划分成许多有关系条理的模块。

   (2) 准确定义每个模块的功能。

  (3) 确定模块之间的调用关系。

  (4) 对每个模块确定其接口(要以文档对接口的数量,顺序,作用,属性等进行详细说明,这很重要)。

  (5) 对所设计的模块进行评估,尽量找出错误和不合理的地方,进行改正(这比软件做出来后的修改要容易得多)。

  软件结构的设计是非常重要的工作,它直接影响以后的详细设计和编码,不合理的结构将有可能把未完成的系统埋葬,所以应选用能力强和经验比较丰富的程序员来做。

  2、 设计软件所需要的数据库系统

   一个好的软件一般都有一个专门为其设计的数据库系统,数据库的设计已自成理论体系,在这里不会详细说明如何做这个工作,但一般数据库的设计工作可分为数据结构设计和数据库设计,数据库设计还分为概念设计、逻辑设计和物理设计,每一项都有很多的知识和原则,有兴趣的朋友可自己去摸索。

  3、 编写概要设计文档

   软件工程很强调文档的作用,概要设计也一样,要做好这阶段应有的文档才算是基本完成任务,对文档的编写主要是概要设计和数据库设计说明书,另外还有对需求分析阶段的用户手册和测试计划进行必要的修改,以更合理的对应所设计的软件系统。

  4、 评审

   这主要是对这阶段工作的一次回顾,看看有什么遗漏或错误的地方没有。评审也有很多不同的技术性手段,可一般都将重点放在功能、性能、可行性、接口正确性等方面。

  软件概主设计的几个基本原理:

  1、 抽象

   即对将要用软件来完成的工作在本质上进行抽象,抛开无关紧要和多余的部份,构造出一个软件需要完成的功能的逻辑结构。

  2、 信息隐蔽

   这是对抽象的进一步回应,信息隐蔽的实质就是“各管各的数据”。

  3、 模块化

   这在上面已经讲过,模块化设计的根本原则就是做到所有模块尽可能的相对独立,对别的模块的依赖越小越好。模块化还具有几个相关的属性:接口、功能、逻辑、状态。

  四、 详细设计

  到了详细设计阶段,现在该把注意力从全局移到局部了,但先别着急,现在还不是编码阶段,要做的仍然是软件的逻辑设计部份,只不过现在不是设计结构了。

  详细设计就是把我们在概要设计里所划分出来的模块要实现的功能用相应的设计工具详细的描述出实现步骤来,也即是写出代码的算法,在详细设计里所有的表述无论是语言或是图表,都应做到有精确的唯一解释,绝不允许出现有“二义性”或“多义性”的表述,所谓精确的表述就是要做到无论这份文档到了那个程序员手中,他都能看得懂文档的含意而且只有一个含意,不可能再解读出第二层意思来。

  详细设计的任务就是为每个模块所要完成的功能进行具体而精确的描述,要根据功能描述再转化成精确的、结构化的软件过程描述,软件过程描述一般可直接对应到相应的代码,也就是以后程序员会根据这些过程描述来编写程序代码,具体如下:

  (1)为每个模块进行详细的算法设计。这是需要用相应的工具来完成的,因为自然语言通常很容易具有“二义性”,而工具能做到含义唯一性。

  (2)为模块内的数据结构进行设计。

  (3)对数据库进行物理设计。注意这不是实现数据库,而是设计出数据库的具体物理结构。

  (4)其它设计(前期特殊代码设计、I/O格式设计、界面友好设计等)。

  (5)编写详细设计说明书。

  (6)评审。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值