徐昶昀第二次作业

1计划

对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本 软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如 计算机硬件、系统软件、人力等)成本,可取得的效益和 开发进度作出估计,制订完成开发任务的实施计划。

2分析

软件需求分析就是对开发什么样的软件的一个系统的分析与设想。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用 软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立 软件的 逻辑模型,编写需求规格说明书文档并最终得到用户的认可。 需求分析的主要方法有 结构化分析方法、 数据流程图和 数据字典等方法。本阶段的工作是根据需求说明书的要求,设计建立相应的 软件系统的 体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件 概要设计和 详细设计说明书,数据库或 数据结构设计说明书,组装 测试计划。在任何 软件或系统开发的初始阶段必须先完全掌握用户需求,以期能将紧随的系统开发过程中哪些功能应该落实、采取何种规格以及设定哪些限制优先加以定位。 系统工程师最终将据此完成 设计方案,在此基础上对随后的程序开发、系统功能和性能的描述及限制作出定义。

3设计

软件设计可以分为 概要设计和详细设计两个阶段。实际上 软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的 程序单元。可以是一个 函数、过程、 子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。模块,然后进行 模块设计。 概要设计就是结构设计,其主要目标就是给出 软件的模块结构,用 软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和 数据结构,次要任务就是设计 数据库,常用方法还是 结构化程序设计方法。

4编码

软件编码是指把 软件设计转换成 计算机可以接受的程序,即写成以某一程序设计语言表示的“源程序清单”。充分了解 软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。
当前 软件开发中除在专用场合,已经很少使用二十世纪80年代的 高级语言了,取而代之的是 面向对象的开发语言。而且 面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。

5测试

软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于 设计一套出色的测试用例(测试数据与功能和预期的输出结果组成了 测试用例)。如何才能设计出一套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的 测试用例设计方法。两种常用的测试方法是 白盒法测试对象是 源程序,依据的是程序内部的的 逻辑结构来发现 软件的编程错误、结构错误和数据错误。结构错误包括逻辑、 数据流、初始化等错误。用例设计的关键是以较少的用例覆盖尽可能多的 内部程序逻辑结果。白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、 集成化以及系统错误。黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。

6维护

维护是指在已完成对软件的研制(分析、设计、编码和 测试)工作并交付使用以后,对软件产品所进行的一些 软件工程的活动。即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写 软件问题报告、软件修改报告。
一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其运行或工作时间可能持续五年至十年。那么它的维护阶段也是运行的这五年至十年期间。在这段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护工作本身特有的问题。做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。然而遗憾的是,对 软件维护工作的重视往往远不如对软件研制工作的重视。而事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。
在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在 测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。

你可能感兴趣的