理解软件开发/从功能和需求角度理解源码

软件开发

合同签订以后,项目承担单位即可组织项目组进行软件开发工作。软件开发必须严格按照软件工程的要求进行。开发过程包括开发者的活动和任务。此过程由软件需求分析、概要设计、详细设计、编码、测试、验收、鉴定等活动组成。

软件需求分析

1、需求分析

首先,开发者和客户应共同对客户的应用需求作充分的调研,提交完整的需求分析报告。
在需求分析报告中必须描述的基本问题是:功能、性能、强加于实现的设计限制、属性、外部接口。
应当避免把设计或项目需求写入需求分析报告中。它必须说明由软件获得的结果,而不是获得这些结果的手段。

软件需求可以用若干种方法来表达,如通过输入、输出说明;使用代表性的例子;用规范化的模型。
开发者应尽可能地使用模型的方式,因为这是表达复杂需求的精确和有效的方法。比如用统一建模语言(UML)来描述需求。

编写需求分析报告的要求

  • 无歧义性
    对最终产品的每一个特性用某一术语描述;若某一术语在某一特殊的行文中使用时具有多种含义,那么应对该术语的每种含义做出解释并指出其适用场合。
  • 完整性
    需求分析报告应该包括全部有意义的需求,无论是关系到功能的、性能的、设计约束的、还是关系到外部接口方面的需求;
    对所有可能出现的输入数据的响应予以定义,要对合法和非合法的输入值的响应做出规定;
    填写全部插图、表、图示标记等;定义全部术语和度量单位。
  • 可验证性
    需求分析报告描述的每一个需求应是可以验证的。可以通过一个有限处理过程来检查软件产品是否满足需求。
  • 一致性
    在需求分析报告中的各个需求的描述不能互相矛盾。
  • 可修改性
    需求分析报告应具有一个有条不紊、易于使用的内容组织;没有冗余,即同一需求不能在需求分析报告中出现多次。
  • 可追踪性
    每一个需求的源流必须清晰,在进一步产生和改变文件编制时,可以方便地引证每一个需求。
  • 运行和维护阶段的可使用性
    需求分析报告必须满足运行和维护阶段的需要。在需求分析报告要写明功能的来源和目的。

2、需求分析报告的编制者

需求分析报告应由客户和开发者双方共同完成。
其中:客户负责根据实际需要提出希望软件实现的功能;软件开发者根据交通局提出的性能需求,结合软件开发编写需求分析。

3、需求分析报告评审

在软件需求分析工作完成后,软件开发者应向客户提交《软件需求分析报告》。客户组织有关人员对需求进行评审,以决定软件需求是否完善和恰当。评审完成后,就可以进入软件的设计阶段。

4、需求报告格式

《软件需求分析报告》需按一定的格式进行编写,具体的《软件需求分析报告》文档编写模板请见附录A

软件概要设计

1、概要设计

在客户和开发者双方认可的《需求分析报告》基础上,开发者进行下——步的工作。 首先,开发者需要对软件系统进行概要设计,即系统设计。
概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。

2、编写概要设计的要求

  • a.一致性
    概要设计的要求应该与需求分析报告所描述的需求一致。同时,概要设计的各项要求之间也应该一致。
  • b.合理性
    概要设计所提出的设计方法和标准应该是合理的、恰当的。
  • c.可追踪性
    对概要设计所提出的各项要求应该可以得到它的清晰的源流,即在需求分析报告客户有明确的需求描述。
  • d.可行性
    根据概要设计进行详细设计、操作和维护应该是可行的。

3、概要设计报告的编写者

概要设计报告由开发者根据需求分析报告的要求进行编写。

4、概要设计和需求分析、详细设计之间的关系和区别

需求分析不涉及具体的技术实现,而概要设计注重于从宏观上和框架上来描述采用何种技术手段、方法来实现这些需求。详细设计相对概要设计更注重于微观上和框架内的设计,是编码的依据。概要设计是指导详细设计的依据。

5、概要设计的评审

在软件概要设计工作完成后,软件开发者应向客户提交《软件系统概要设计报告》。在客户对《概要设计报告》评审通过后,即可进入详细设计阶段。

6、概要设计格式

《软件系统概要设计报告》需按一定的格式进行编写,具体的《软件系统概要设计报告》文档编写模板请见附录B

软件详细设计

1、详细设计

在概要设计的基础上,开发者需要进行软件系统的详细设计。
在详细设计中,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,
需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。
应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。

2、特例

如果软件系统比较简单,层次较少,可以不必进行专门的详细设计,而和概要设计结合起来。

3、详细设计要求

  • a.一致性
    详细设计的要求应该与需求分析报告所描述的需求、与概要设计一致。同时,详细设计的各项要求之间也应该是一致的。
  • b.合理性
    详细设计所提出的设计方法和标准应该是合理的、恰当的。
  • c.可追踪性
    对详细设计所提出的各项要求应该可以得到它的清晰的源流,即可在需求分析报告、概要设计报告中有明确的需求描述。
  • d.可行性
    根据详细设计进行编码、测试、操作和维护应该是可行的。

4、数据库设计

如果软件产品需要使用到数据库,软件的详细设计应包括对数据库的设计。数据库设计应在软件的需求分析、概要设计完成之后、详细设计的其它工作之前进行。在进行数据库设计时,应当按照客户制定的《信息化数据库建设规范》要求进行。

5、详细设计的评审

在软件详细设计完成后,软件开发者应向客户提交《软件系统数据库设计报告》和《软件系统详细设计报告》。
在客户评审通过后,即可进入软件编码阶段。

6、详细设计格式

《软件系统详细设计报告》、《软件系统数据库设计报告》需按一定的格式进行编写,具体的《软件系统详细设计报告》文档编写模板和《软件系统数据库设计报告》文档编写模板请见附录C、附录D

软件的编码

1、软件编码

在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。

2、软件编码的要求

  • 模块化编码
  • 代码可读性
  • 可维护性
  • 模块接口标准化
  • 界面风格统一
  • 注释的应用

3、编码的评审

为了尽早发现软件中的障碍,提高软件产品的质量,开发者在编码的过程中应该强调代码评审工作。将代码评审报告作为文档的一部分,提交给客户。

4、编码规范及要求

为了提高编程实现的质量,软件的程序设计必须遵照国家颁布的相关编程规范。

主要内容包括:规范化的程序内部文档、数据结构的详细说明、清晰的语句结构、编码规范。编码规范的内容包括命名规范、界面规范、提示及帮助信息规范、热键定义等。

其中数据库部分应遵守《信息化数据库建设规范》的要求。

在软件编码的同时应进行单元测试。

软件的测试

1、软件测试

为了尽早发现软件产品中的错误,从而达到提高软件质量、降低软件维护的费用,开发者应在编码过程中对各个模块的程序代码进行单元测试,系统集成时进行集成测试,系统集成完成后对整个软件进行系统测试。
单元测试是在软件开发过程中针对程序模块进行正确性检验。
集成测试是在单元测试的基础上,将所有模块按照设计要求组装成系统或子系统,对模块组装过程和模块接口进行正确性检验。
软件系统测试不仅是检测软件的整体行为表现,从另一个侧面看,也是对软件开发设计的再确认。进行软件系统测试工作时。测试主要包括界面测试、可用性测试、功能测试、稳定性(强度)测试、性能测试、强壮性(恢复)测试、逻辑性测试、破坏性测试、安全性测试等。

开发者针对单元测试,集成测试,系统测试分别制定《测试计划》。集成测试需要根据需求分析报告和概要设计制作测试用例,并须经过评审。软件测试按照《测试计划》、《需求分析报告》的要求进行,最后形成《软件测试报告》。

2、测试计划

在软件编码开始之前,开发者应向客户提交《测试计划》,在软件交付时,开发者应向客户提交《软件测试报告》,以确保开发者的软件得到了充分的测试。开发的软件必须经过充分的测试证明其符合设计要求、运行稳定、安全可用方可交付客户。

软件的交付准备

交付订单

在软件测试证明软件达到要求后,软件开发者应向客户提交开发的目标安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等双方合同约定的产物。

《用户安装手册》应详细介绍安装软件对运行环境的要求、安装软件的定义和内容、在客户端、服务器端及中间件的具体安装步骤、安装后的系统配置。

《用户使用指南》应包括软件各项功能的使用流程、操作步骤、相应业务介绍、特殊提示和注意事项等方面的内容,在需要时应举例说明。

软件的鉴定验收

1、软件的鉴定验收

在软件开发完成后,为了确保软件是按照需求分析的要求进行开发的,保证软件产品的质量,需要对软件产品进行鉴定验收。在开发者如期交付软件后,由客户负责确定具体的鉴定验收日期。

2、验收人员

由客户聘请具有一定的分析、设计、编程和软件测试经验的验收组长和其他专业人员组成。验收组设组长一名(可设有副组长),负责整个验收的计划、组织工作。

3、验收具体内容

验收内容应该包括:合法性检查、文档检查、软件一致性检查、软件系统测试与测试结果评审等几项工作。

合法性检查检查软件开发工具是否合法、使用的函数库、控件、组件是否有合法的发布许可。

文档检查检查开发者提交的文档必须齐全,质量是否过关。需要开发者提供的文档包括:

  • 项目实施计划;
  • 详细技术方案;
  • 软件需求规格说明书(STP)(含数据字典);
  • 概要设计说明书(PDD);
  • 详细设计说明书(DDD)(含数据库设计说明书);
  • 软件测试计划(STP)(含测试用例);
  • 软件测试报告(STR);
  • 用户手册(SUM)(含操作、使用、维护、应急处理手册);
  • 源程序(SCL)(不可修改的电子文档);
  • 项目实施计划(PIP)
  • 项目开发总结(PDS);
  • 软件质量保证计划(SQAP);

此外,验收组可以根据需要对其它文档(如软件配置计划、项目进展报表、阶段评审报 表等)进行检查。

文档的质量根据完备性、正确性、简明性、可追踪性、自说明性、规范件等方面进行踪合评定。

验收需要对软件代码进行检查,以确保其符合规范,并检查其一致性。

4、软件验收测试大纲

在软件进行鉴定验收前,开发者需按照一定的格式编写《软件验收测试大纲》,具体的格式请见附录E

培训

系统应用培训

主要培训内容包括:系统操作使用、业务管理流程。

培训对象:应用操作人员。

系统管理培训(可选)

主要培训内容包括:系统安装、调试、维护;系统管理。

培训对象:系统管理人员。

开发者应详细列出培训计划,包括培训内容、教材、时间和人员等。

附录 A 软件需求分析报告文档模板

附录 B 软件概要设计报告文档模板

附录 C 软件详细设计报告文档模板

附录 D 软件数据库设计报告文档模板

附录 E 软件测试验收大纲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值