文章目录
系统开发基础知识笔记
软件开发方法
软件开发生命周期
传统的软件生命期(software life cycle)是指软件产品从形成概念(构思)开始,经过定义、开发、使用和维护,直到最后被废弃(不能再使用)为止的全过程。按照传统的软件生命周期方法学,可以把软件生命期划分为软件定义、软件开发、软件运行与维护三个阶段。
软件定义时期
- 问题定义: 按照软件系统工程需求来确定问题空间的性质。
- 可行性研究: 确定问题是否有解,解决办法是否可行。
- 需求分析:需求分析的任务是确定软件系统的功能需求、性能需求和运行环境的约束,写出软件播求规格说明书、软件系统测试大纲、用户手册概要。
需求分析该过程是非常重要的,应该由系统分析员、软件开发人员与用户共同完成,反复讨论和协商,并且逐步细化、一致化、完全化等,直至建立一个完整的分析模型。需求分析工作完成后要提交软件需求规格说明(Sofware Requirements Specification,SRS)。
软件开发时期
软件开发时期就是软件的设计与实现,可分成:
- 概要(总体)设计: 是在软件需求规格说明的基础上,建立系统的总体结构(含子系统的划分)和模块间的关系,定义功能模块及各功能模块之间的关系。
- 详细设计: 对概要设计产生的功能模块逐步细化,把模块内部细节转化为可编程的程序过程性描述。详细设计包括算法与数据结构、数据分布、数据组织、模块间接口信息和用户界面等的设计,并写出详细设计报告。
- 编码: 又称编程,编码的任务是把详细设计转化为能在计算机上运行的程序。
- 测试: 分成单元测试、集成测试、确认测试和系统测试等。通常把编码和测试称为系统的实现,
软件运行和维护
软件运行就是把软件产品移交给用户使用。软件投入运行后的主要任务是使软件持久满足用户的要求。
软件维护是对软件产品进行修改或对软件需求变化做出响应的过程,也就是尽可能地延长软件的寿命。
软件开发模型
软件生存周期模型又称软件开发模型(software develop model)或软件过程模型(software process mndel),它是从某一个特定角度提出的软件过程的简化描述。软件过程模型的基本概念;软件过程是制作款件产品的一组活动以及结果,这些活动主要由软件人员来完成,软件活动主要如下一些:
- 软件描述: 必须定义软件的功能以及使用的限制。
- 软件开发: 软件的设计与实现,软件工程人员制作出满足描述的软件。
- 软件有效性验证: 软件的有效性必须经过严格的验证,以保证能够满足客户的需求。
- 软件进化: 软件随着客户的需求变化而不断地改进。
瀑布模型
瀑布模型(waterfall model)可以说是最早使用的软件生存周期模型之一。由于这个模型描述了软件生命的一些基本过程活动,所以它称为软件生命周期模型。
瀑布模型的特点是因果关系紧密相连,前一个阶段工作的结果是后一个阶段工作的输入。或者说,每一个阶段都是建筑在前一个阶段正确结果之上,前一个阶段的错漏会隐鼓地带到后一个阶段。
主要缺点:
- 软件需求分析的准确性很难确定,甚至是不可能和不现实的。
- 用户和软件项目负责人要相当长的时间才能得到初始版本,这时如果改变需求,将会带来巨大的损失(例如人力、财力、时间等)。该模型的应用有一定的局限性。
原型模型
原型模型又称为快速模型。主要有以下两个阶段:
- 原型开发阶段: 软件开发人员根据用户提出的软件系统的定义,快速璃开发一个原型。该原型应该包含目标系统的关键问题和反映目标系统的大致面貌,展示目标系统的全部或部分功能、性能等。
- 目标软件开发阶段:在征求用户对原型的意见后对原型进行修改完普,确认软件系统的需求并达到一致的理解,进一步开发实际系统。
原型模型的开发流程如图所示:
螺旋模型
螺旋模型(Spiral Model)是在快速原型的基础上扩展而成。也有人把螺旋模型归到快速原型。实际上,它是生命周期模型与原型模率的一个结合,这种模型将软件开发流程分为多个阶段,每一个阶段由4部分组成:
- 目标设定;
- 风险分析;
- 开发和有效性验证;
- 评审;
开发过程就是上面4个部分的迭代,每迭代一次,软件系统生成一个新的版本,这个版本实际上是对目标系统的的一个逼近。具体的过程如图:
该模型支持大型软件开发,适用于面向规格说明、面向过程和面向对象的软件开发方法,也适用于集中开发方法的组合。
基于可重用构建的模型
近几年来,出现了以组件为基础的软件工程方法,基于构件组装的软件过程模型也随之产生并被广泛使用。
显然,一个系统将依赖构件的健壮性。但是毫无疑问,构件组装模型使软件可以重用,而重用给软件工程师提供了大量的好处。构件组装模型具有极其广阔的实用性和深远的意义。
基于面向对象的模型
面向对象技术自从问世后,很快被人们所接受,并得到广泛的应用。面向对象技术确实有很多的优点,其中构件重用是非常重要的技术之一。对象技术强调了类的创肆与封装,一旦一个类创建与封装成功,就可以在不同的应用系统中被重用。在这个模型中,一个系统可以由重用构件组装而成,甚至通过组装可重用的子系统而创建更大的系统,模型结构如图所示: