【软考系统架构设计师】第十四章—开发模型开发方法(知识点必知必会)
【软考系统架构设计师】第十四章---开发模型开发方法(知识点必知必会)
一. 逆向工程
1)概念
- 分析已有的程序,寻求比源代码更高级的抽象表现形式
- 在软件生命周期内将软件某种形式的描述转换成更为抽象形式的活动;
2)四个抽象层次
- 实现级:包括程序的抽象语法树、符号表等信息。
- 结构级:包括反映程序分量之间相互依赖关系的信息,例如调用图、结构图等。
- 功能级:包括反映程序段功能及程序段之间关系的信息。
- 领域级:包括反映程序分量或程序与应用领域概念之间对应关系的信息
3)概念区分
- 重组(restructuring),指在同一抽象级别上转换系统描述形式;
- 设计恢复(design recovery),指借助工具从已有程序中抽象出有关数据设计、总体结构设计和过程设计的信息(不一定是原设计)。设计恢复是指借助工具从已有程序中抽象出有关数据设计、总体结构设计和过程设计的信息;
- 重构也称修复和改造工程,它是在逆向工程所获信息的基础上修改或重构已有的系统,产生系统的一个新版本。重构是指在同一抽象级别上转换系统描述形式;
- 再工程是在逆向工程所获信息的基础上修改或重构已有的系统,产生系统的一个新版本。
二. 软件生存周期
1)概念
- 软件产品从形成概念开始(软件定义),经过开发(软件开发)、使用和维护(软件运行与维护),直到最后退役的全过程称为软件生存周期。
- 一个完整的软件生存周期是以需求为出发点,从提出软件开发计划的那一刻开始,直到软件在实际应用中完全报废为止。
- 软件生存周期的提出了是为了更好地管理、维护和升级软件,其中更大的意义在于管理软件开发的步骤和方法。
2)各个阶段
- 软件定义包括可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目标。
- 软件开发时期就是软件的设计与实现,可分为概要(总体)设计、详细设计、编码、测试等。
- 软件运行就是把软件产品移交给用户使用。软件投入运行后的主要任务是使软件持久满足用户的要求。
- 软件维护是对软件产品进行修改或对软件需求变化做出响应的过程,也就是尽可能地延长软件的寿命。
- 当软件已没有维护的价值时,宣告退役,软件生命随之宣告结束。
三. 形式化方法
1)形式化方法的概念
- 形式化方法是一种具有坚实数学基础的方法,从而允许对系统和开发过程做严格处理和论证,适用于那些系统安全级别要求极高的软件的开发。
- 形式化方法的主要优越性在于它能够数学地表述和研究应用问题及软件实现。但是它要求开发人员具备良好的数学基础。
2)形式化方法的局限性
- 用形式化语言书写的大型应用问题的软件规格说明往往过于细节化,并且难于为用户和软件设计人员所理解。
- 由于这些缺陷,形式化方法在目前的软件开发实践中并未得到普遍应用。
3)净室软件工程
- 净室软件工程(Cleanroom Software Engineering,CSE)是软件开发的一种形式化方法,可以开发较高质量的软件。
- 它使用盒结构规约进行分析和建模,并且将正确性验证作为发现和排除错误的主要机制,使用统计测试来获取认证软件可靠性所需要的信息。
- CASE强调在规约和设计上的严格性,还强调统计质量控制技术,包括基于客户对软件的预期使用测试
四. 软件过程模型
1)软件过程模型的基本概念
- 软件过程是制作软件产品的一组活动以及结果,这些活动主要由软件人员来完成
2)软件活动主要过程
- 软件描述。必须定义软件功能以及使用的限制。
- 软件开发。也就是软件的设计和实现,软件工程人员制作出能满足描述的软件。
- 软件有效性验证。软件必须经过严格的验证,以保证能够满足客户的需求。
- 软件进化。软件随着客户需求的变化不断地改进。