【软工】软件工程文档初识

【前言】

学习文档的时候先看了林锐老师的大学十年,软件工程思想的部分内同,说中作者说是自己是被计算机耽误的诗人,老师确实把个很有意思的诗人,书中写的内容一点不乏味,看的时候觉得软件很有意思,改变了之前我对软件编程的乏味想法,只看了前三章,里边知识和故事一起并存,觉得软件就像是活了起来一样,

软件工程思想举例:

林锐博士的书中将系统设计分为以下四方面内容:体系结构设计、模块设计、数据结构与算法设计、用户界面设计。如果将软件系统比喻为人体,那么:

(1)体系结构就如同人的骨架。如果某个家伙的骨架是猴子,那么无论怎样喂养和美容,这家伙始终都是猴子,不会成为人。

(2)模块就如同人的器官,具有特定的功能。人体中最出色的模块设计之一是手,手只有几种动作,却能做无限多的事情。人体中最糟糕的模块设计之一是嘴巴,嘴巴将最有价值但毫无相干的几种功能如吃饭、说话、亲吻混为一体,使之无法并行处理,真乃人类之不幸。

(3)数据结构与算法就如同人的血脉和神经,它让器官具有生命并能发挥功能。数据结构与算法分布在体系结构和模块中,它将协调系统的各个功能。人的耳朵和嘴巴虽然是相对独立的器官,但如果耳朵失聪了,嘴巴就只能发出“啊”“呜”的声音,等于丧失了说话的功能(所以聋子天生就是哑巴),可人们却又能用手势代替说话。人体的数据结构与算法设计真是十分神奇并且十分可笑。

(4)用户界面就如同人的外表,最容易让人一见钟情或一见恶心。象人类追求心灵美和外表美那样,软件系统也追求(内在的)功能强大和(外表的)界面友好。但随着生活节奏的加快,人们已少有兴趣去品味深藏不露的内在美。如果把Unix系统比作是健壮的汉子和妇人,那么Windows系统就象妩媚的小白脸和狐狸精。想不到Windows系统竟然能兴风作浪,占去大半市场。有鉴于此,我们应该鼓励女士多买化妆品(男士付钱)以获得更好的界面。

在进行系统设计时,我们要深情地关注软件的质量因素,如正确性与精确性、性能与效率、易用性、可理解性与简法性、可复用性与可扩充性等等。即使把系统设计做好了,也并不意味着就能产生好的软件系统。在程序设计、测试、维护等环节还要做大量的工作,无论哪个环节出了差错,都会把好事搞砸了。据说上帝把所有的女士都设计成天使,可是天使们在下凡时有些双脚先着地,有些脸先着地。上帝的这一疏忽让很多女孩伤透了心。我们在开发软件时,一定要吸取这个教训。

体系结构是软件最本质的东西:(1)体系结构是对复杂事物的一种抽象,一提起“房子”,我们的脑中马上就会出现房子的印象(而不是地洞的印象)。“房子”是人们对住宿或办公环境的一种抽象。(2)体系结构在一定的时间内保持稳定

两种非常通用的软件体系结构:层次结构和客户机/服务器(Client/Server)结构。在Internet/Intranet领域,目前“浏览器—Web 服务器—数据库服务器” 结构是一种非常流行的客户机/服务器结构

书中的讲述方式大多如此,记得之前看专业课的知识的时候总是想不起好的例子来做比喻,而到了林锐老师手里,好像着写软件就活在自己的身边那么的简单易懂

【软件文档】

结合软件工程文档简单分析了了软件各个生存周期对应的文档,那么这些文档都是做什么用呢?文档是软件产品的一部分,没有文档的软件就不称其为软件。软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量。高质量和高效的开发、分发、管理和维护文档对于转让、变更、修正、扩充和使用文档,对于充分发挥软件产品的效益有着重要的意义。

这里写图片描述

各个文档的作用:

(1)可行性研究报告:
说明在项目进行前,对项目从经济可行性、技术可行性、社会环境可行性等几个方面确定该项目公司是否要接手。阐述为了达到开发目标,所采用的各种可行性方案。以及论证所选方案的理由。

(2)项目开发计划:
此项目开发计划的编写主要是为了给开发系统做主要的规划和整合,在开发过程中起引导的作用,以及为软件使用人员的使用提供一些简单的声明。项目开发计划应交给管理部门,作为开发阶段评审的参考。

(3)软件需求说明书:(软件规格说明书)
软件需求说明书是用户与开发人员双发在对软件需求,取得一致性理解的基础上,对目标软件的功能、性能用户界面以及运行环境等做出详细的说明。还能够在一定程度上,控制系统进化过程。在需求分析完成后,如果用户追加需求,那么需求规格说明书将用于确定追加需求是否为新需求。如果是,开发人员必须针对新需求进行需求分析,扩充需求规格说明书,进行软件再设计。

(4)数据要求说明书:
明确需采集数据的信息系统,数据采集的范围和方法,为生成和维护系统数据文卷做好准备。

(5)数据库设计说明书:
明确系统的物理结构和数据结构,用于开发人员进行项目设计。同时也为之后的数据库维护提供了一个很好的说明书,是数据库进行维护的重要材料。

(6)概要设计说明书:
说明功能分配、模块划分、程序的总体结构、输入输出以及接口设计、运行设计、数据库设计和出错处理设计等,是概要设计的主要成果。为后续进一步的详细设计做好准备。

(7)详细设计说明书:
着重描述每一模块是怎么实现的,包括逻辑结构、流程结构以及算法等。以求开发者高效得完成该系统。

(8)用户手册和操作手册:
为用户提供帮助,让用户了解系统的功能、如何使用、以及如果解决软件使用过程中出现的一些小问题等情况。通过本文档的学习让用户能够快速全面的掌握本软件的使用方法。

(9)测试计划:
根据测试计划报告,对软件进行测试,为测试提供各种测试方案。并记录详细的测试过程,以便于快速高效得查找出项目中的bug。

(10)测试分析报告:
测试工作完成后,应提交测试计划执行情况的说明,对测试结果加以分析,并提出测试的结论性意见和建议。

(11)开发进度月表:
该报告是软件开发人员按月向管理部门提交项目进度情况的报告,让管理人员对开发人员的项目进度能够有一个大概的了解,以便更好的完成开发工作。报告中应该包括进度计划以及实际的执行情况。阶段性成果,遇到的问题,以及是如何解决的等。

(12)项目开发总结报告:
软件项目开发阶段完成后,应该把实际开发情况与项目开发计划做一个对比。总结实际执行情况并对开发工作进行评价,指出开发此项目的经验和获得的教训。

以上就是我对软件文档的理解,有什么问题,欢迎大家斧正,感谢您的阅读!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
非常全名,包括14分文档,包括有 可行性研究报告模版、详细设计说明书模版、程序维护手册模版、软件修改报告模版、软件问题报告模版、项目开发总结报告模版、需求规格说明书模版、测试计划模版、用户操作手册模版、项目开发计划模版 等等。例如: 《用户操作手册》 1.引言 1 1.1编写目的 1 1.2项目背景 2 1.3定义 2 1.4参考资料 2 2.软件概述 2 2.1目标 2 2.2功能 2 2.3性能 2 3.运行环境 2 3.1硬件 2 3.2支持软件 3 4.使用说明 3 4.1安装和初始化 3 4.2输入 3 4.3输出 3 4.4出错和恢复 3 4.5求助查询 3 5.运行说明 3 5.1运行表 3 5.2运行步骤 3 6.非常规过程 3 7.操作命令一览表 3 8.程序文件(或命令文件)和数据文件一览表 3 9.用户操作举例 3 1.引言 1.1编写目的 【阐明编写手册的目的,指明读者对象。】 1.2项目背景 【应包括项目的来源、委托单位、开发单位和主管部门。】 1.3定义 【列出手册中所用到的专门术语的定义和缩写词的原文。】 1.4参考资料 【列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源,可包括: a. 项目的计划任务书、合同或批文; b. 项目开发计划; c. 需求规格说明书; d. 概要设计说明书; e. 详细设计说明书; f. 测试计划; g. 手册中引用的其他资料、采用的软件工程标准或软件工程规范。】 2.软件概述 2.1目标 2.2功能 2.3性能 a. 数据精确度【包括输入、输出及处理数据的精度。】 b. 时间特性【如响应时间、处理时间、数据传输时间等。】 c. 灵活性【在操作方式、运行环境需做某些变更时软件的适应能力。】 3.运行环境 3.1硬件 【列出软件系统运行时所需的硬件最小配置,如 a. 计算机型号、主存容量; b. 外存储器、媒体、记录格式、设备型号及数量; c. 输入、输出设备; d. 数据传输设备及数据转换设备的型号及数量。】 3.2支持软件 【如: a. 操作系统名称及版本号; b. 语言编译系统或汇编系统的名称及版本号; c. 数据库管理系统的名称及版本号; d. 其他必要的支持软件。】 4.使用说明 4.1安装和初始化 【给出程序的存储形式、操作命令、反馈信息及其含意、表明安装完成的测试实例以及安装所需的软件工具等。】 4.2输入 【给出输入数据或参数的要求。】 4.2.1数据背景 【说明数据来源、存储媒体、出现频度、限制和质量管理等。】 4.2.2数据格式 【如: a. 长度; b. 格式基准; c. 标号; d. 顺序; e. 分隔符; f. 词汇表; g. 省略和重复; h. 控制。】 4.2.3输入举例 4.3输出 【给出每项输出数据的说明。】 4.3.1数据背景 【说明输出数据的去向、使用频度、存放媒体及质量管理等。】 4.3.2数据格式 【详细阐明每一输出数据的格式,如:首部、主体和尾部的具体形式。】 4.3.3举例 4.4出错和恢复 【给出: a. 出错信息及其含意; b. 用户应采取的措施,如修改、恢复、再启动。】 4.5求助查询 【说明如何操作。】 5.运行说明 5.1运行表 【列出每种可能的运行情况,说明其运行目的。】 5.2运行步骤 【按顺序说明每种运行的步骤,应包括:】 5.2.1运行控制 5.2.2操作信息 a. 运行目的; b. 操作要求; c. 启动方法; d. 预计运行时间; e. 操作命令格式及说明; f. 其他事项。 5.2.3输入/输出文件 【给出建立或更新文件的有关信息,如:】 a. 文件的名称及编号; b. 记录媒体; c. 存留的目录; d. 文件的支配【说明确定保留文件或废弃文件的准则,分发文件的对象,占用硬件的优先级及保密控制等。】 5.2.4启动或恢复过程 6.非常规过程 【提供应急或非常规操作的必要信息及操作步骤,如出错处理操作、向后备系统切换操作以及维护人员须知的操作和注意事项。】 7.操作命令一览表 【按字母顺序逐个列出全部操作命令的格式、功能及参数说明。】 8.程序文件(或命令文件)和数据文件一览表 【按文件名字母顺序或按功能与模块分类顺序逐个列出文件名称、标识符及说明。】 9.用户操作举例

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值