期末专栏|软件工程期末复习

  1. 软件危机
    软件危机是指在软件开发和维护过程中所产生的一系列问题,这些问题不止发生在不能运行的软件中,实际上几乎所有的软件都不同程度的存在这些问题。
  2. 软件工程
    软件工程是指导软件开发和维护的工程学科
  3. 软件工程生命周期
    1. 软件定义:问题定义、可行性研究、需求分析
    2. 软件开发:总体设计、详细设计、编码和单元测试、综合测试
    3. 运行维护
  4. 软件过程?
    1. 瀑布模型
      1. 特点:阶段间具有顺序性和依赖性、推迟实现的观点、质量保证的观点
      2. 优点:强迫开发人员采用规范的方法、 严格地要求每个阶段必须提交的文档、要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证
      3. 缺点:瀑布模型是由文档驱动的
    2. 快速原型模型
      1. 优点:减少由于需求的不明确而带来的开发风险
      2. 缺点:不适用于大型复杂系统的开发、缺乏规范化的文档,内部结构不够好
    3. 增量模型
      1. 优点:能够在较短的时间内向用户提交可完成部分工作的产品、逐渐增加产品的功能使用户有较充裕的时间来学习和适应新产品,减少新软件对客户组织的冲击
      2. 缺点:在每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品、使用这种方法将冒构件无法集成到一起的风险
    4. 螺旋模型
      1. 优点:对可选方案和约束条件的强调有利于已有软件的重用、有助于把软件质量作为软件开发的重要目标、减少过多/少测试带来的风险、维护作为开发的一个周期、风险过大时能及时终止项目
      2. 缺点:需要专业的风险评估人员
    5. 喷泉模型
    6. RUP——Rational统一过程
    7. 敏捷过程与极限编程
    8. 微软过程
  1. 可行性研究主要解法
    技术可行性、经济可行性、操作可行性
  2. 系统流程图
    系统流程图是概括地描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图
  3. 数据流图
    数据流图(DFD)是一种圈形化技术,它描绘信息流和数据从输人移动到输出的过程中所经受的变换。在数据流圈中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程
  4. 数据字典
    1. 组成:数据流、数据流分量(即数据元素)、数据存储、处理
    2. 用途:在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户之间的通信,因此将消除许多可能的误解。对数据的这一系列严密一致的定义也有助于改进在不同的开发人员或不同的开发小组之间的通信。如果要求所有开发人员都根据公共的数据字典描述数据和设计模块,则能避免许多麻烦的接口问题
  1. 需求分析的任务
    功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的要求
  2. E-R图
    使用实体-联系图(entity-relationship diagram)来建立数据模型。可以把实体—联系图简称为 ER 图,相应地可把用 ER 图描绘的数据模型称为ER 模型。ER 图中包含了实体(即数据对象),关系和属性 3 种基本成分,通常用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线把实体(或关系)与其属性连接起来
  3. 状态转换图
    在状态图中,初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示。中间状态用圆角矩形表示,可以用两条水平横线把它分成上、中、下 3 个部分。上面部分为状态的名称,这部分是必须有的; 中间部分为状态变量的名字和值,这部分是可选的; 下面部分是活动表,这部分也是可选的
  1. 形式化说明技术
    1. 非形式化方法的缺点:矛盾、二义性、含糊性、不完整性、抽象层次混乱
    2. 形式化方法的优点:能够简洁准确地描述物理现象、对象或动作的结果、可以在不同的软件工程活动之间平滑地过渡、提供了高层确认的手段
  2. 有穷状态机
  3. Pertri网
  4. Z语言

    推荐阅读