11. 软件工程

作者:Gakki

考点(分值:10分)

  • 信息系统生命周期
  • 能力成熟度模型
  • 软件过程模型(重点)
  • 信息系统开发方法(重点)
  • 系统分析与设计概述
  • 结构化开发
  • 系统运行与维护

1、信息系统生命周期

信息系统生命周期
  • 软件工程基本原理:用分阶段的生命周期计划严格管理、坚持进行阶段评审、实现严格的产品控制、采用现代程序设计技术、结果应能清楚的审查、开发小组的人员应少而精、承认不断改进软件工程实践的必要性。
  • 软件工程的基本要素:方法、工具、过程。(考点)
  • 软件生命周期:可行性分析与项目开发计划、需求分析、概要设计(选择系统解决方案、规划子系统)、详细设计(设计子系统内部具体实现)、编码、测试、维护。

1.1、 五阶段生命周期(考点:定义与输出)

1.1.1、系统规划阶段

  • 任务是对组织的环境、目标及现行系统的状况进行初步调查,更具组织目标和发展战略确定信息系统的发展战略,对建设新系统的需求做出分析和预测,同时考虑建设新系统所受的各种约束,研究建设新系统的必要性和可能性。根据需要与可能,给出制建系统的备选方案。
    输出:可行性研究报告、系统设计任务书

1.1.2、系统分析阶段

  • 任务是根据系统设计任务书所确定的范围,对现行系统进行详细调查,描述现行系统的业务流程,指出现行系统的局限性和不足之处,确定新系统的基本目标和逻辑功能要求,即:提出新系统的逻辑模型。系统分析阶段又称为逻辑设计涉阶段。这个阶段是整个系统建设的关键阶段,也是信息系统建设与一般工程项目的重要区别所在
    输出:系统说明书

1.1.3、系统设计阶段

  • 系统分析阶段任务是回答系统"做什么"的问题,而系统设计阶段要回答问题是"怎么做"。该阶段的任务是根据系统说明书中规定的功能要求,具体设计实现逻辑模型的技术方案,也就是设计新系统的物理模型。这个阶段又称为物理设计阶段,可分为总体设计(概要设计)和详细设计两个子阶段。
    输出:系统设计说明书(概要设计、详细设计说明书)

1.1.4、 系统实施阶段

  • 将设计的系统付诸实现的阶段。这一阶段的任务包括计算机等设备的购置、安装和调试、程序的编写和调试、人员培训、数据文件转换、系统调试与转换等。这个阶段的特点是几个互相联系、互相制约的任务同时展开,必须精心安排、合理组织。系统实施是按实施计划分阶段完成的,每个阶段应写出实施进展报告。系统测试之后写出系统测试分析报告。
    输出:实施进展报告、系统测试分析报告

1.1.5、 系统运行和维护阶段

  • 系统投入运行后,需要经常进行维护和评价,记录系统运行的情况,根据一定的规则对系统进行必要的修改,评价系统的工作质量和经济效益。

2、能力成熟度模型

2.1、能力成熟度模型 CMM

能力成熟度模型 CMM

2.2、能力成熟度模型【集成】 CMMI

  • 能力成熟度模型集成 CMMI 是 若干过程模型的综合和改进,不仅仅软件,而是支持多个工程学科和领域的、系统的、一致的过程改进框架,能适应现代工程的特点和需要,能提高过程的质量和工程效率。
  • CMMI 两种表示方法:
  1. 阶段式模型:类似于 CMM,它关注组织的成熟度,五个成熟度模型如下:
能力成熟度模型集成 CMMI
  1. 连续式模型:关注每个过程域的能力,一个组织对不同的过程域可以达到不同的过程域能力等级。

3、软件过程模型

3.1、瀑布模型(SDLC)

  • 瀑布模型是一个经典的软件生命周期模型,一般将软件开发分为:可行性分析(计划)、需求分析、软件设计(概要设计、详细设计)、编码(含单元测试)、测试、运行维护等几个阶段。
  • 特点:
    1. 上一项开发活动接受该项活动的工作对象作为输入
    2. 利用这一输入,实施该项活动应完成的工作内容
    3. 给出该项活动的工作成果,作为输出传给下一项开发活动。
    4. 该项活动的实施工作成果进行评审。若其工作成功得到确认,则继续进行下一项开发活动;否则返回前一项,甚至更前项的活动。尽量减少多个阶段间的反复。以相对来说较小的费用来开发软件。
  • 考点:功能清晰,也即需求较明确,有这样的关键字都是考察瀑布模型。
瀑布模型
  • 瀑布模型的优点:
    1. 可规范化开发人员的开发过程
    2. 严格地规定了每个阶段必须提交的文档
    3. 要求每个阶段提交的所有制品必须经过评审和验证。

3.2、螺旋模型

  • 是一个演化软件过程模型,将原型实现的迭代特征与线性顺序(瀑布)模型中控制的和系统化的方面结合起来。在螺旋模型中,软件开发是一系列的增量发布
  • 开发过程具有周期性重复的螺旋线状。四个象限分别标志每个周期所划分的四阶段:制定计划、风险分析、实施工程和客户评价。螺旋模型强调了风险分析,特别适用于庞大而复杂的、高风险的系统。(考点:风险分析。
  • 优点:项目失败的风险较低。
螺旋模型

3.3、V 模型

  • 从整体上看起来,就是一个 V 字型的结构,由左右两边组成。左边的下画线分别代表了需求分析、概要设计、详细设计、编码。右边的上画线代表了单元测试、集成测试、系统测试与验收测试。

  • V 模型特点如下:

    1. 单元测试的主要目的是针对编码过程中可能存在的各种错误;(记法:单编)
    2. 集成测试的主要目的是针对详细设计中可能存在的问题;(记法:集详)
    3. 系统测试主要针对概要设计,检查系统作为一个整体是否有效地得到运行;(记法:系概)
    4. 验收测试通常由业务专家或者用户进行,以确认产品能真正符合用户业务上的需求。(记法:验需)
    5. V 模型用于需求明确和需求变更不频繁的情形。
  • 注:下面对应的关系为计划对应关系。如:单元测试计划需要在详细设计的时候完成,所以单元测试对应详细设计。

V 模型

3.4、原型化模型

  • 原型化模型第一步就是创建一个快速原型,能够满足项目干系人与未来的用户可以与原型进行交互,再通过与相关干系人进行充分的讨论和分析,最终弄清楚当前系统的需求,进行了充分的了解之后,在原型的基础上开发出用户满意的产品。
  • 原型法认为在很难一下子全面准确地提出用户需求的情况下,原型应当具备的特点如下:
    1. 实际可行
    2. 具有最终系统的基本特征
    3. 构造方便、快速、造价低,原型法的特点在于原型法对用户的需求是动态响应、逐步纳入的

3.5、增量模型

  • 首先开发核心模块功能,而后与用户确认,之后再开发次核心模块的功能,即每次开发一部分功能,并与用户需求确认,最终完成项目开发,优先级最高的服务最先交付
  • 特点:但由于并不是从系统整体角度规划各个模块,因此不利于模块划分。难点在于如何将客户需求划分为多个增量。与原型不同的是增量模型的每一次增量版本都可作为独立可操作的产品,而原型的构造一般是为了演示。
增量模型
  • 考点:
    • 增量模型:快速开发第一交互产品、交互,然后再开发,再交互。

3.6、其他模型

  • 喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。

  • 基于构件的开发模型 CBSD:利用预先包装的构件来构造应用系统。构件可以是组织内部开发的构件,也可以是商品化成品软件构件。特点是增强了复用性,在系统开发过程中,会构建一个构件库,供其他系统复用,因此可以提高可靠性,节省时间和成本。

  • 形式化方法模型:建立在严格数学基础上的一种软件开发方法,主要活动是生成计算机软件形式化的数学规格说明。

  • 总结

    • 瀑布模型将开发阶段描述为从一个阶段瀑布般地转换到另一个阶段的过程。
    • 原型模型中,开发人员快速地构造整个系统或者系统的一部分以理解或澄清问题。
    • 螺旋模型将开发活动和风险管理结合起来,以减少风险。
    • 喷泉模型开发过程模型以用户需求为动力,以对象为驱动,适合于面向对象的开发方法。

4、信息系统开发方法

4.1 结构化方法

  • 结构是指系统内各个组成要素之间的相互联系、相互作用的框架。

  • 结构化方法也称为生命周期法,是一种传统的信息系统开发方法,由结构化分析、结构化设计和结构化程序设计三部分有机组合而成,其精髓是自顶向下、逐步求精和模块化设计。

  • 结构化方法的主要特点:

    1. 开发目标清晰化:结构化方法的系统开发遵循"用户第一"的原则。
    2. 开发工作阶段化:每个阶段工作完成后,要根据阶段工作目标和要求进行审查,这使各阶段工作阶段有条不紊地进行,便于项目管理和控制。
    3. 开发文档规范化:结构化方法每个阶段工作完成后,要按照要求完成相应的文档,以保证各个阶段的衔接与系统维护工作的遍历。
    4. 设计方法结构化:在系统分析与设计时,从整体和全局考虑,自顶向下地分解;在系统实现时,根据设计的要求,先编写各个具体的功能模块,然后自底向上逐步实现整个系统。
  • 结构化方法的不足和局限性

    1. 开发周期长:按顺序经历各个阶段,直到实施阶段结束后,用户才能使用系统。
    2. 难以适应需求变化:不适用于需求不明确或经常变更的项目。
    3. 很少考虑数据结构:结构化方法是一种面向过程,面向数据流的开发方法,很少考虑数据结构。
  • 结构化方法常用的工具

    • 结构化方法一般利用图形表达用户需求,常用工具有数据流图、数据字典、结构化语言、判定表以及判定树等。

4.2、面向对象(Object-Oriented,OO)方法

  • 面向对象(Object-Oriented,OO)方法认为,客观世界是由各种对象组成的,任何事物都是对象,每一个对象都有自己的运动规律和内部状态,都属于某个对象类,是该对象类的一个元素。复杂的对象可由相对箱单的各种对象以某种方式而构成,不同对象的组合及相互作用就构成了系统。

  • 面向对象方法的特点:

    1. 使用 OO 方法构造的系统具有更好的复用性,其关键在于建立一个全面、合理、统一的模型(用例模型和分析模型)。
    2. OO 方法也划分阶段,但其中的系统分析、系统设计和系统实现三个阶段之间没有" 缝隙 ",也就是说,这三个阶段的界限变得不明确,某项工作既可以在前一个阶段完成,也可以在后一个阶段完成;前一个阶段工作做得不够细,在后一个阶段可以补充。
    3. 面向对象方法可以普遍适用于各类信息系统的开发。
  • 面向对象方法的不足之处

    • 必须依靠一定的面向对象技术支持,在大型项目的开发上具有一定的局限性,不能涉及系统分析以前的开发环节
  • 当前,一些大型信息系统的开发,通常是将结构化方法和 OO 方法结合起来。首先,使用结构化方法进行自顶向下的整体划分;然后,自底向上地采用 OO 方法进行开发。因此,结构化方法和 OO 方法仍是两种在系统开发领域中相互依存的、不可替代的方法。

4.3、原型化方法

  • 原型化方法也成为快速原型法,或者简称为原型法。它是一种根据用户初步需求,利用系统开发工具,快速地建立一个系统模型展示给用户,在此基础上与用户交流,最终实现用户需求的信息系统快速开发的方法。

  • 是否实现功能分类:分为水平原型(行为原型,功能的导航)、垂直原型(结构化原型,实现了部分功能)。

  • 最终结果分类:分为抛弃式原型、演化式原型。

原型化方法
  • 原型法的特点

    • 原型法可以使系统开发的周期缩短、成本和风险降低、速度加快,获得较高的综合开发效益。
    • 原型法是以用户为中心来开发系统的,用户参与的程度大大提高,开发的系统符合用户的需求,因而增加了用户的满意度,提高了系统开发的成功率。
    • 由于用户参与了系统开发的全过程,对系统的功能和结构容易理解和接受,有利于系统的移交,有利于系统的运行与维护。
  • 原型法的不足之处

    • 开发的环境要求高,管理水平要求高。
  • 由以上的分析可以看出,原型法的优点主要在于能更有效地确认用户需求。从直观上来看,原型法适用于那些需求不明确的系统开发。事实上,对于分析层面难度大、技术层面难度不大的系统,适合于原型法开发。

从严格意义上来说,目前的原型法不是一种独立的系统开发方法,而只是一种开发思想,它只支持在系统开发早期阶段快速生成系统的原型,没有规定在原型构建过程中必须使用哪种方法。因此,它不是完整意义上的方法论体系。这就注定了原型法必须与其他信息系统开发方法结合使用。

注意:原型试试一种开发思想,只是在系统分析阶段。

4.4、敏捷开发

敏捷开发
  • 敏捷开发是一种以人为核心、迭代、循序渐进的开发方法,相对于传统软件开发方法的“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。

  • 敏捷软件开发宣言:

    1. 个体和交互胜过过程和工具
    2. 可以工作的软件胜过面面俱到的文档
    3. 客户合作胜过合同谈判
    4. 响应变化胜过遵循计划
  • 结对编程:一个程序员开发,另一个程序在一旁观察审查代码, 能够有效的提高代码质量,在开发同时对代码进行初步审查,共同对代码负责。

  • 自适应开发:强调开发方法的适应性(Adaptive)。不象其他方法那样有很多具体的实践做法,它更侧重为软件的重要性提供最根本的基础,并从更高的组织和管理层次来阐述开发方法为什么要具备适应性。

  • 水晶方法:每一个不同的项目需要一套不同的策略、约定和方法论。

  • 特性驱动开发:是一套针对中小型软件开发项目的开发模式。是一个模型驱动的快速迭代开发过程,它强调的是简化、实用、易于被开发团队接受,适用于需求经常变动的项目。

  • 极限编程XP:由价值观、原则、实践和行为四个部分组成,核心是沟通、简明、反馈和勇气(四大价值观)有五大原则:即快速反馈,简单性假设、逐步修改、提倡更改和优质工作。因为知道计划永远赶不上变化,XP无需开发人员在软件开始初期做出很多的文档。XP提倡测试先行,为了将以后出现bug的几率降到最低。

  • 并列争球法SCRUM:是一种迭代的增量化过程,每段时间(30天)一次的迭代称为一个“冲刺”,并按需求的优先级别来实现产品,多个自组织和自治的小组并行地递增实现产品。

4.5、统一过程(RUP)

  • 提供了在开发组织中分派任务和责任的纪律化方法。它的目标是在可预见的日程和预算前提下,确保满足最终用户需求的高质量产品。
  • 3个显著特点:用例驱动、以架构为中心、迭代和增量。
  • 4个流程:初始阶段、细化阶段、构建阶段和交付阶段。每个阶段结束时都要安排一次技术评审,以确定这个阶段的目标是否已经达到。
  • 适用:一个通用过程框架,可以用于种类广泛的软件系统、不同的应用领域、不同的组织类型、不同性能水平和不同的项目规模。

4.6、系统分析与设计概述

  • 软件需求:是指用户对系统在功能、行为、性能、设计约束等方面的期望。是指用户解决问题或达到目的所需的条件或能力,系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明。
  • 分为需求开发需求管理两大过程,如下所示:
系统分析与设计概述
  • 系统设计主要目的:为系统制定蓝图,在各种技术和实施方法中权衡利弊,精心设计,合理地使用各种资源,最终勾画出新系统的详细设计方法。

  • 系统设计方法:结构化设计方法,面向对象设计方法。

  • 系统设计的主要内容:概要设计、详细设计。

  • 概要设计基本任务:又称为系统总体结构设计,是将系统的功能需求分配给软件模型,确定每个模块的功能和调用关系,形成软件的模块结构图,即系统结构图。

  • 详细设计的基本任务:模块内详细算法设计、模块内数据结构设计、数据库的物理设计、其他设计(代码、输入/输出格式、用户界面)、编写详细设计说明书、评审。

  • 系统设计基本原理

    • 抽象化
    • 自顶向下,逐步求精
    • 信息隐蔽
    • 模块独立(高内聚,低耦合)
  • 系统设计原则

    • 保持模块的大小适中
    • 尽可能减少调用的深度
    • 多扇入,少扇出
    • 单入口,单出口
    • 模块的作用域应该在模块之内
    • 功能应该是可预测的

5、系统分析与设计概述

  • 系统设计基本原理:抽象、模块化、信息隐蔽、模块独立。
    衡量模块独立程度的标准有两个:耦合性和内聚性。
  • 内聚程度从低到高如下表所示:
内聚程度从低到高

注:- 过程内聚不利于模块的重用。

  • 耦合程度从低到高如下表所示:
耦合程度从低到高
  • 其他
    • 耦合程度越低,内聚程度越高,则模块的独立性越好。
    • 内容耦合主要表现在模块 M2 直接访问模块 M1 内部;模块 M1 和模块 M2 有公共的数据结构或者模块 M1 和模块 M2 有部分代码是重叠的。

6、结构化开发方法

  • 结构化分析与设计方法是一种面向数据流的传统软件开发方法,它以数据流为中心构建软件的分析模型和设计模型。结构化分析(SA)、结构化设计(SD)和结构化程序设计(SPD)构成了完成的结构化方法。
  • 结构化方法的分析结果由以下几部分组成:一套分层的数据流图、一本数据词典、一组小说明(也称加工逻辑说明)、补充材料。
  • 数据流图 DFD:
    • 基本图形元素:外部实体、加工、数据存储、数据流。
数据流图 DFD
  • 示例:
示例
  1. 数据流:由一组固定成分的数据组成,表示数据的流程。在 DFD 中,数据流的流向必须经过加工。
  2. 加工:描述了输入数据流到输出数据流之间的变换,爷就是输入数据流经过什么处理后变成了输出数据流。数据流图中常见的三种错误如图所示:
    • 加工 3.1.2 有输入但没有输出,称之为 “黑洞”。
    • 加工 3.1.3 有输出但没有输入,称之为 “奇迹”。
    • 加工 3.1.1 中输入不足以产生输出,称之为 “灰洞”。
  3. 数据存储:用来存储数据。
  4. 外部实体(外部主体):是指存在于软件系统之外的人员、组织或其它系统,它指出系统所需数据的发源地(源)和系统所产生的数据的归属地(宿)。
  • 分层数据流图:
分层数据流图
  • 数据字典 DD:数据流图描述了系统的分解,但没有对图中各成分进行说明。数据字典就是为数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项做出说明。
  • 数据字典有以下 4 类条目:数据流、数据项、数据存储和基本加工。
数据字典有以下 4 类条目
  • 加工逻辑也称为“小说明”。常用的加工逻辑描述方法有结构化语言、判定表和判定树 3 种。

  • 其他:

    • 分层体系结构的特点:
    1. 可以很好的表示软件系统的不同抽象层次。
    2. 对每个层的修改通常只影响其相邻的两层。
    3. 有利于开发任务的分工。
    4. 但是分层体系结构将需求定义到不同的层上是不容易的。
    • 过程设计主要包含对数据结构和算法的设计。

    • 对算法设计时,其主要依据来自加工规格说明。

    • 状态 - 迁移图:被用来描述系统或对象的状态,以及导致系统或对象状态改变的事件,从而描述系统的行为。,行为模型是状态转换图,其要素包括状态。

    • 数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。在结构化开发方法中,数据流图是需求分析阶段产生的结果。

    • E - R图也称为实体 - 联系图,提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。

    • 算法也可以借助各种工具描述出来,一个算法可以是用自然语言、数字语言或约定的符合来描述,也可以用计算机高级程序语言来描述,如流程图、Pascal 语言、C 语言、伪代码或决策表等。

    • 在结构化分析方法中,用数据流图对功能建模。自顶向下的分层数据流图体现了对软件功能逐步求精的过程。其中,顶层数据流图只有一个加工,即要开发的软件系统。在数据流图中,每个数据存储应该有加工对其进行读操作和写操作,每个加工应该有输入数据流和输出数据流,而且同一个加工的输入数据流和输出数据流不能同名。

    • 描述加工的方式为决策树,因为有多个分支的判断。

7、系统运行与维护

  • 遗留系统是指任何基本上不能进行修改和演化以满足新的变化了的业务需求的信息系统,它通常具有以下特点:
    1. 系统虽然完成企业中许多重要的业务管理工作,但已经不能完全满足要求。一般实现业务处理电子化及部分企业管理功能,很少涉及经营决策。
    2. 系统在性能上已经落后,采用的技术已经过时,如多采用主机/终端形式或小型机系统,软件使用汇编语言或第三代程序设计语言的早期版本开发,使用文件系统而不是数据库;
    3. 通常是大型的系统,已经融入企业的业务运行和决策管理机制之中,维护工作十分困难;
    4. 系统没有使用现代系统工程方法进行管理和开发,现在基本上已经没有文档,很难理解。
系统运行与维护
  • 系统转换是指新系统开发完毕,投入运行,取代现有系统的过程。需要考虑多方面的问题,以实现与老系统的交接,有以下三种转换计划:

    1. 直接转换:现有系统被新系统直接取代了,风险很大,适用于新系统不复杂,或者现有系统已经不能使用的情况。优点是节省成本。
    2. 并行转换:新系统和老系统并行工作一段时间,新系统经过试运行后再取代,若新系统在试运行过程中有问题,也不影响现有系统的运行,风险极小,在试运行过程中还可以比较新老系统的性能,适用于大型系统。缺点是耗费人力和时间资源,难以控制两个系统间的数据转换。
    3. 分段转换:分期分批逐步转换,是直接和并行转换的集合,将大型系统分为多个子系统,依次试运行每个子系统,成熟一个子系统,就转换一个子系统。同样适用于大型项目,只是更耗时,而且现有系统和新系统间混合使用,需要协调好接口等问题。
    4. 数据转换和迁移:将数据从旧数据库迁移到新数据库中。有三种方法:系统切换前通过工具迁移、系统切换前采用手工录入、系统切换后通过新系统生成。
  • 系统的可维护性可以定义为维护人员理解、改正、改动和改进这个软件的难易程度,其评价指标如下:

    1. 易分析性。软件产品诊断软件中的缺陷或失效原因或识别待修改部分的能力。
    2. 易改变性。软件产品使指定的修改可以被实现的能力,实现包括编码、设计和文档的更改。
    3. 稳定性。软件产品的避免由于软件修改而造成意外结果的能力。
    4. 易测试性。软件产品使已修改软件能被确认的能力。
    5. 维护性的依从性。软件产品遵循与维护性相关的标准或约定的能力。
  • 系统维护包括硬件维护、软件维护和数据维护。其中软件维护类型如下:

    1. 正确性维护:发现了 bug 而进行修改。是指正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
    2. 适应性维护:由于外部环境发生了改变,被动进行的对软件的修改和升级。是指应用软件适应新技术变化和管理需求变化而进行的修改。
    3. 完善性维护:基于用户主动对软件提出更多的需求,修改软件,增加更多的功能,使其比之前的软件功能、性能更高,更多完善。是指为扩充功能和完善性能而进行的修改,主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能和性能的特征。修改文档和代码提高可读性,是主动完完善某个功能。
    4. 预防性维护:对未来可能发生的 bug 进行预防性的修改。是指为了改进应用软件的可靠性和维护性,为了适应未来的软硬件环境的变化,主动增加预防性的新功能,以使应用系统适应各类变化而不被淘汰。

扩展知识

  1. 前一阶段处理的输出是后一段处理的输入,为管道过滤器的风格。管道过滤器性能差,交互差。
  2. 多层软件体系结构是现在软件系统开发中常用的体系结构,通常包括表示层、控制层、模块层和数据层。其中表示层主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。控制层接收用户的请求并绝对调用哪个模型去处理该请求,以及确定选择哪个视图来显示返回的数据。模型层主要负责业务逻辑处理。数据层主要是数据存储和访问。
  3. 在 JavaEE 平台中,通常使用 Servlet 技术来实现控制层。
  4. 软件需求规格说明书、测试计划和用户手册在需求分析阶段撰写,而概要设计文档在设计阶段撰写。接口设计在软件设计阶段进行。
  5. MVC 是模型 - 视图 - 控制器的缩写,是一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚焦到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑;可以提高可重复性、可维护性、降低耦合等优点。
  6. 概要设计基本任务:又称为系统总体结构设计,是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系,形成软件的模块结构图,即系统结构图。
  7. 详细设计的基本任务:模块内详细算法设计、模块内数据结构设计、数据库的物理设计、其他设计(代码、输入/输出格式、用户界面)、编写详细设计说明书、评审。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容