当前位置:文档之家› 软件系统开发方法

软件系统开发方法


第1页
2020年11月25日星期三
第3章 软件系统开发方法
3.1 软件开发生命周期 3.2 软件开发模型 3.3 传统软件开发方法 3.4 面向对象软件开发方法 3.5 RUP统一软件开发过程 3.6 敏捷软件开发技术 总结
第2页
2020年11月25日星期三
3.1 软件开发生命周期
第8页
2020年11月25日星期三
3.1 软件开发生命周期
(6) 运行/维护(Running/Maintenance)
团队人员:系统支持人员等。 已交付的软件投入正式使用,软件便进入运行
阶段。软件在运行过程中可能会因为发现了软 件中存在的错误需要修改;或为了适应变化了 的软件工作环境,需做一些变更;或为了增强 软件的功能需做变更等。这就称为软件维护。
第3章 软件系统开发方法
在软件开发的早期,人们常用的软件开发方法是边写边改法。这种开发 方法在应用开发中最为快捷,但由于其开发的随意性,因而也最为低效。 同时,使用该方法的项目常常因为管理失控而终结。基于这种情况,业 界人士借鉴其它工程领域的方法,提出了许多有规则可言的软件系统开 发方法。最著名的当数“瀑布式”方法了,即把软件开发过程分解成这 样一些阶段:制定开发计划、需求分析和定义、系统设计、编码实现、 测试验证。然而,在软件开发实践中完全遵循这种过程取得成功的案例 并不多。其原因主要在于这种方法有一个前提条件,那就是系统需求必 须明确、不变。但在现实应用中,这几乎是不可能的。需求通常模糊不 清,并且在系统开发期间随时都有可能发生变化。因此软件开发要求采 用的方法过程也必须能适应这种变化,这就出现了其它一些软件开发方 法,如原型法、敏捷方法等。
第3页
2020年11月25日星期三
3.1 软件开发生命周期
2. 解答问题
(1) 制定计划(Planning)
团队人员:分析人员、领域专家及用户等。
这个阶段的任务是确定待开发软件系统的总体目标, 给出软件系统的功能、性能及接口等方面的要求。由 团队人员协作,共同研究完成该项软件开发任务的技 术、经济、社会可行性,探讨解决问题的各种可能方 案,并对现有可利用资源、成本、可取得的效益、开 发进度等做出估计,制定出完成该项开发任务的实施 计划,并编写可行性研究报告。
1. 问题引入
正如任何事物一样,软件也有其孕育、诞生、 成长、成熟以及衰亡的生命过程,一般称其为 “软件生命周期”。根据这一思想,可以得到 软件生命周期的六个阶段,即制定计划、需求 分析和定义、设计、编码、测试、运行及维护。 然而,在正式开发软件之前,我们必需了解软 件生命周期各个阶段需要完成哪些任务?这些 任务由哪些人员来完成?
第6页
2020年11月25日星期三
3.1 软件开发生命周期
(4) 编码(Coding)
团队人员:编程人员、测试人员等。 将详细设计阶段所描述的模块程序流程图或类
的设计转换为计算机能处理的程序代码,即使 用特定的程序设计语言表示的源程序。目前, 通常使用高级程序设计语言编写程序,如C语 言、Java语言等。
第9页
2020年11月25日星期三
3.2 软件开发模型
一个软件的生命周期包含了若干个活动,那么, 这些活动应该如何组织呢?不同的组织方式可 能会产生很大差别的结果。
与其它工程项目中安排各道工序类似,为了反 应软件开发生命周期内的各种活动应如何组织, 各活动之间应如何衔接,需要用软件开发模型 做出直观的图示来表达。
第7页
2020年11月25日星期三
3.1 软件开发生命周期
(5) 软件测试(Software Testing)
团队人员:测试人员、开发人员、用户等。
测试是保证软件质量的重要手段,其主要目的是通过软件测试暴露 出软件中隐藏的错误和缺陷。软件测试的主要方式是在设计测试用 例的基础上检验软件的各个组成部分。软件测试一般包括单元测试、 集成测试、系统测试、验收测试等几个阶段。首先进行单元测试, 查找各模块或类在功能和结构上存在的问题并加以修改,这个过程 会反复进行;其次进行集成测试,验证各软件单元集成后形成的模 块能否达到概要设计规格说明中各模块的设计目标;然后进行系统 测试,目的是对最终软件系统进行全面的测试,确保最终软件系统 满足产品需求并且遵循系统设计;最后进行确认测试,以检查已实 现的软件是否满足了需求规格说明书中确定的各种需求,包括功能 需求和性能需求,决定已开发的软件能否交付用户使用。
第5页
2020年11月25日星期三
3.1 软件开发生命周期
(3) 软件设计(Software Design)
团队人员:架构设计人员、软件设计人员、数据库设计员、用 户界面设计员、封装体设计员和集成人员、测试人员等。
这个阶段通常分为两部分:概要设计和详细设计。
在软件设计阶段,软件开发人员把已经经过用户和领域专家确 认的各项需求转换成相应的软件体系结构。结构中的每一成份 都是意义明确的子系统、模块或用例,每个部分都和某些需求 相对应,进行所谓的概要设计。然后对每个模块或用例要完成 的工作采用合适的技术进行具体的描述,如画出模块的程序流 程图或描述类的属性、操细设计。
第4页
2020年11月25日星期三
3.1 软件开发生命周期
(2) 需求分析和定义(Requirement Analysis and Definition)
团队人员:分析人员、测试人员、领域专家及用户等。
该阶段对于待开发软件项目获取的用户需求进行分析,并 给出详细定义。这个阶段团队人员必须协同工作,让软件 开发人员充分理解用户的各项需求,并确定哪些需求是可 以满足的,哪些需求在现有技术下是不能满足的,对能满 足的需求加以确切的描述。然后,编写出软件需求规格说 明书(SRS)或系统功能说明书,以及初步的系统用户手 册、测试用例等。为了团队人员之间能很好地沟通,从这 个阶段开始通常会采用一些标准的建模语言(如:统一建 模语言,Unified Modeling Language,简称UML)对系统 建模。
相关主题