• 软件项目管理

    • 活动图 -- 如估算项目完成时间,计算关键路径和关键活动。

      • 最短完成时间
      • 最多可以多晚开始不受影响
  • 结构化分析

    • 结构化分析模型

      • 需求分析阶段输出

        • 数据流图、实体联系图、状态迁移图和数据字典
      • 软件设计阶段进行

        • 软件体系结构图
    • 数据流图

      • 描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能,用于功能建模
      • 四个要素:

        • 外部实体,也称为数据源或数据汇点,表示要处理的数据的输入来源或处理结果要送往何处,不属于目标系统的一部分,通常为组织、部门、人、相关的软件系统或者硬件设备;
        • 数据流表示数据沿箭头方向的流动;
        • 加工是对数据对象的处理或变换;
        • 数据储存在数据流中起保存数据的作用,可以是数据库文件或者任何形式的数据组织。
  • 程序语言基础知识

    • 编译和解释

      • 解释程序也称为解释器,它或者直接解释执行源程序,或者将源程序翻译成某种中间代码后再加以执行;
      • 编译器则将源程序翻译成目标语言程序,然后再计算机上运行目标程序。
      • 这两种语言处理程序的根本区别是:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不参与目标程序的执行过程;
      • 而在解释方式下,解释程序和源程序(或者某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。简单来说,在解释方式下,翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立保存的目标程序。
    • 脚本语言

      • 为了缩短传统的编写-编译-链接-运行过程而创建的计算机编程语言。
      • 脚本语言一般运行在解释器或虚拟机中,便于移植,开发效率较高。
    • 将高级语言源程序转化为一种中间代码

      • 中间代码有四元式、后綴式、三地址码、树等
  • 操作系统
  • 软件设计

    • 模块独立性是创建良好设计的一个重要原则,一般采用模块间的耦合和模块的内聚两个准则来进行度量。耦合程序越低,内聚程度越高,则模块的独立性越好。 存在多种模块之间的耦合类型,从低到高依次为非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合和内容耦合。
    • 公共耦合是指一组模块都能访问的同一公共数据环境;
    • 控制耦合是指一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一个模块的功能;
    • 标记耦合是一组模块通过参数表传递记录信息;
    • 数据耦合是一个模块访问另一个模块时,彼此之间通过数据参数(而不是控制参数、公共数据结构或外部变量)来交换输入输出信息。
  • 开发过程模型

    • 增量开发模型

      • 将软件产品分解成一系列的增量构件,在增量开发中逐步加入。其优点主要有: 能在较短的时间内交付可以使用的部分产品;逐步增加的产品功能可以使用户有充裕的时间学习和适应新产品;优先级最高的功能首先交付, 这意味着最重要的功能经过最多的测试。 但是要求对要开发的系统进行精心的分析和设计。
  • 软件体系结构

    • 仓库风格是一种软件体系结构,其中包含一个数据仓库和若干个其他构件。数据仓库位于该体系的结构中心,其他构件访问该数据仓库并对其中的数据进行增、删、改等操作。数据库系统、超文本系统和黑板系统都属于仓库风格。
    • 该体系结构的优点包括:

      • 对可更改性和可维护性的支持:
      • 可复用的知识源;
      • 支持容错性和健壮性。
    • 缺点包括:

      • 测试困难;
      • 不能保证有好的解决方案;
      • 难以建立好的控制策略;
      • 低效;
      • 昂贵的开发工作;
      • 缺少对并行机制的支持。
  • 软件测试

    • 软件测试按阶段分为单元测试、集成测试和系统测试。在单元测试的基础上,将所有模块按照设计要求组装为系统;此时进行的测试称为集成测试。
    • 集成测试有多种策略:

      • 自底向上: 从系统层次中的最底层的构件开始,逐步向上。需要设计驱动模块来辅助测试。
      • 自顶向上: 与自底向上相反,从最顶层的构件开始,逐步向下。需要设计桩模块来辅助测试。
      • 三明治: 结合自底向上和自顶向下两种测试策略。
      • 一次性: 对所有的构件一次性测试,然后集成。
  • 软件复杂性知识

    • McCabe 度量法是一种基于程序控制流的复杂性度量方法,环路复杂性为V(G)=m-n+2 m是弧的个数,n是节点数
  • 面向对象

    • 在面向对象系统中,对象是基本的运行时实体,它既包括数据(属性),也包括作用于数据的操作(行为)。所以,一个对象把属性和行为封装为一个整体。

      • 封装是一种信息隐蔽技术,它的目的是使对象的使用者和生产者分离,使对象的定义和实现分开。
      • 一个类所包含的方法和数据描述一组对象的共同行为和属性,这些对象共享这些行为和属性。有些类之间存在一般和特殊关系,在定义和实现一个类的时候,可以在一个已经存在的类的基础上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入新的内容,这种机制就是父类和子类之间共享数据和方法的机制,即继承。
      • 在子类定义时,可以继承它的父类(或祖先类)中的属性和方法,也可以重新定义父类中已经定义的方法,其方法可以对父类中的方法进行覆盖,即在原有父类接口的基础上,用适合于自己要求的实现去置换父类中的相应实现。多态是在继承的支持下,在不同对象收到同一消息时,可以产生不同的结果,这是由于对通用消息的实现细节由接收对象自行决定。
  • 面向对象和统一建模语言(UML)

    • UML
    • UML用例图

      • UML用例图展现类一组用例、参与者(Actor)以及它们之间的关系。用于对系统的静态用例视图进行建模。这个视图主要支持以下系统的行为,即该系统在它的周边环境的语境中所提供的外部可见服务。用例图说明参与者及其扮演者的角色,可以是人、硬件或者其他系统可以扮演的角色,而非个人用户。

Wangggym
2 声望0 粉丝

引用和评论

0 条评论