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

【前言】

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

软件工程思想举例:

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

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

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

猜你喜欢

转载自blog.csdn.net/lrtcsdn/article/details/80259480