精华内容
下载资源
问答
  • 软件工程笔记软件工程笔记软件工程笔记软件工程笔记软件工程笔记软件工程笔记软件工程笔记软件工程笔记
  • 软件工程笔记

    2021-03-10 15:30:13
    软件工程的概念 软件工程是将系统化(形成体系),严格约束的(每个阶段工作既定),可量化(有可量化标准)的方法应用于软件的开发、运行和维护,即将工程化应用于软件以及对上述方法的研究 软件生存周期:软件...

    软件工程的概念

    • 软件工程是将系统化(形成体系),严格约束的(每个阶段工作既定),可量化(有可量化标准)的方法应用于软件的开发、运行和维护,即将工程化应用于软件以及对上述方法的研究
    • 软件生存周期:软件产品或软件系统从生产、投入使用到淘汰的全过程
      • 计算机系统工程:确定待开发软件的总体要求和范围,分析可行性
      • 需求分析:解决软件“做什么”的问题
      • 设计:解决软件“怎么做”的问题
      • 编码:将设计结果转化为可执行程序
      • 测试:发现并纠正软件中的错误缺陷
      • 运行维护:对软件的维护

    软件过程模型

    • 软件过程模型是软件开发的步骤
    • 瀑布模型
      • 定义:将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布,最终得到产品。
      • 原理:它给出软件生存周期活动的固定顺序,上一阶段的活动完成后向下一阶段的活动过渡,最终得到所开发的软件。
      • 特点:
        • 文档驱动,比较正规繁琐
        • 过程清晰,容易推行
        • 纠正前期工作错误的代价昂贵
    • 原型模型:
      • 原理:反复迭代如下过程,直到用户确认软件完全实现其需求
        • 快速了解分析用户需求
        • 构造原型
        • 用户试用反馈
      • 特点:用户全程参与,有助于理解客户需求,但缺乏全局设计
    • 螺旋模型:
      • 原理:沿着螺线自内向外旋转,在制定计划,风险分析,工程实施,客户评估四个象限中表示任务。
      • 特点:瀑布模型原型模型的结合

    需求工程

    • 软件需求的基本概念:客户对软件功能与性能所提出的或者隐含的要求
    • 需求分析的基本概念:对软件需求的获取,理解,分析与描述
    • 需求工程的基本概念:用软件工程方法做需求分析的过程
    • 需求分析的过程:获取,分析与协商,建模(用规范的图形工具描述需求),编写文档,评审,管理

    软件设计

    • 软件设计包含:数据设计,体系结构设计,接口设计,部件级设计
      • 数据设计:将分析类模型变换成类的实现和软件实现所需要的数据结构
      • 体系结构设计:定义了软件的整体结构
      • 接口设计:描述软件内部,软件和系统,软件和人的通信。
      • 部件级设计:将软件体系结构的结构性元素变换成对软件部件的描述。
    • 模块化:将软件划分成若干较小,相互独立相互关联的模块,分别编程。
    • 信息隐藏:模块内部的数据和过程,不需要这些信息的模块不可访问,每个模块完成一个独立功能,模块间仅仅交换必须交换的信息
    • 模块独立性:判断模块是否合理的衡量标准,是模块化,信息隐藏的体现
    • 内聚:对模块内部各元素之间关系的度量
    • 藕合:对模块外部接口关系的度量
    • 过程设计的常用方法:流程图,NS图,PAD
      • 描述复杂的判断规则:判定表,判定树

    软件测试

    • 测试目的:测试是为了找错,而不是为了证明没错

    • 测试的三条基本原则:

      • 测试是一个为了发现错误执行程序的过程
      • 好的测试用例是指很可能找到迄今为止尚未发现的错误的测试用例
      • 成功的测试是指揭示了迄今为止尚未发现的错误的测试
    • 测试用例:一组为了测试软件而事先设计好的数据,包含输入数据与预期结果等两个部分

    • 软件测试的原理:运行事先准备好的测试用例,将运行结果与预期结构进行对比,发现软件隐含的错误

    • 白盒法:针对每个模块内部的运行路径进行测试

    • 黑盒法:针对每个功能的输入/输出数据进行测试

    • 基本路径测试:使程序内部的每条“基本路径”都被执行过

    • 逻辑覆盖:针对逻辑判断的测试,按照测试强度依次为语句覆盖,判定覆盖,条件覆盖,判定+条件覆盖,条件组合覆盖,路径覆盖等不同等级。

      • 语句覆盖:每个可执行语句至少执行一次
      • 判定覆盖:每个判定的所有可能结果最少出现一次
      • 条件覆盖:每个判定中的每个条件的所有可能结果最少出现一次
      • 判定+条件覆盖:就是吧判定覆盖和条件覆盖拼起来
      • 条件组合覆盖:每个判定中的条件结果的所有可能组合都至少出现一次
      • 路径覆盖:每条可能执行到的路径都至少经过一次
    • 循环覆盖:使每个循环都在边界条件与一般条件下至少被执行一次

    • 等价类:输入域的某个子集,该子集的每个输入数据对揭露软件中的错误都是等效的

    • 边界值:找刚刚大于最大,小于最小,最大和最小的数字作为测试用例

    • V模型,四类测试对象,任务和依据

    • 系统工程------------------------------系统测试

      ​ 需求分析-----------------------确认测试

      ​ 设计---------------集成测试

      ​ 编码----单元测试

      • 步骤 对象 依据 目的
        单元测试 软件模块 详细设计文档 每个软件模块是否符合详细设计的要求
        集成测试 模块之间的接口 概要设计文档 模块之间的接口是否符合概要设计的要求
        确认测试 软件功能 软件需求文档 软件的每个功能,是否符合需求文档的要求
        系统测试 整个系统 软件合同 在合同约定的系统环境下,软件能否正常运行

    软件维护

    • 定义:软件交付运行以后所做的修改

    • 分类:

      • 纠错性维护:纠正错误
      • 适应性维护:适应新的运行环境
      • 改善性维护:增加新功能,变更原有功能
      • 预防性维护:提高软件可靠性
    • 组成基于计算机系统的元素主要有:软件、硬件、人员、数据库、文档和规程。

    • 计算机软件指计算机系统中的程序及其文档。程序是计算任务的处理对象和处理规则的描述,文档是为了便于理解程序所需的阐述型资料。特点:工作量难以估量。分类:系统软件,产品软件,互联网软件

    • 提高软件可维护性的方法:

      • 确定质量管理目标和优先级
      • 使用提高软件质量的技术与工具
      • 选择可维护性高的程序设计语言
      • 完善程序文档
      • 进行质量保证审查
    展开全文
  • 相关的一些笔记软件工程笔记软件工程思想,第一次商船好吗法
  • 软件工程笔记1

    2021-03-27 14:30:11
    软件工程笔记--1基本概念什么是软件生存周期为什么划分软件生存周期划分软件生存周期的原则什么是软件开发方法主要方法有哪些常见的软件开发模型及其特点模型比较其特点 因为笔者还处于学习阶段,如有错误,欢迎多多...


    因为笔者还处于学习阶段,如有错误,欢迎多多指正。

    基本概念

    什么是软件生存周期

    软件生存周期:是指某一软件项目从被提出并着手实现开始,直到该软件报废或停止使用为止所经历的时间。

    为什么划分软件生存周期

    软件生存周期划分阶段的原因是赋予每个阶段相对独立的任务,每个阶段都有技术复查和管理复审,可以从技术和管理两方面对这个阶段的开发成果进行检查,以及决定系统是继续进行,还是停止或者返工。

    划分软件生存周期的原则

    划分阶段的原则是各阶段的任务应尽可能的独立。

    什么是软件开发方法

    软件开发方法是一种使用早已定义好的技术集及符号表示习惯组织软件生产过程的方法。

    主要方法有哪些

    主要方法有结构化方法、jackson方法、维也纳开发方法和面向对象的开发方法。

    常见的软件开发模型及其特点

    模型

    瀑布模型:将软件生存周期的各个活动规定为依线性顺序连接的若干阶段的模型。

    快速原型模型:先快速建立一个能让客户试用的模型,然后客户根据这个模型的实践提出改进的要求,开发人员根据客户的需求在原型系统上进行更改,这样反复建立用户需要的新模型。

    增量模型:是瀑布模型和快速原型模型的结合,它是通过设置多个构件,每个构件由多个相互作用的模型构成,可以支持开发一部分就向客户展示一部分,可以让用户尽早地看到部分软件,发现问题。

    螺旋模型:将瀑布模型与增量模型结合起来,并增加了风险分析。比较适合于大规模高风险的软件项目开发。

    喷泉模型:系统某些部分常常重复工作多次,相关功能在每次迭代中随之加入演进的系统。

    基于构件的开发模型:利用预先封装的软件构件来构造应用软件系统,从而提高软件的重用性和可靠性。

    统一过程模型:RUP的特点是由用例驱动,以构件为中心,采用迭代和增量的开发策略。

    基于形式化的开发模型:从软件需求形式化说明开始,经过一系列变换,最终得到了系统的目标程序。

    比较其特点

    瀑布模型是线性模型,开发的时候无法做到各个层次同时开发,快速原型模型成本比较高,增量模型是一种非整体开发的模型,螺旋模型增加了风险控制,喷泉模型可以在每次迭代中加入演进的系统。

    展开全文
  • 软件工程笔记2

    2021-03-27 14:54:34
    软件工程笔记-2可行性研究可行性研究的目的和任务可行性研究的步骤系统流程图成本—效益分析可行性研究报告的主要内容等等 可行性研究 可行性研究的目的和任务 可行性研究的目的就是用最小的代价在尽可能短的时间内...

    因为笔者还处于学习阶段,如有错误,欢迎多多指正。

    可行性研究

    可行性研究的目的和任务

    可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
    说直接点就是确定这个问题是否值得去解决。
    任务:一般需要从经济、技术、操作和法律4个方面来研究每种解法的可行性。

    • 经济可行性
      分析在整个软件生存周期中所花费的代价与得到的效益之间的度量。
    • 技术可行性
      对要开发项目的功能、性能和限制条件进行分析,评价现有的技术和技术人员是否能实现系统的要求。
    • 操作可行性
      系统的操作方式在这个应用范围内是否行得通。
      该系统操作简单,不是很难。
      系统的操作方式在这个用户组织是否行得通。
    • 法律可行性
      开发的系统是否会侵权

    可行性研究的步骤

    1. 复查并确定系统的规模和目标
    2. 研究目前正在使用的系统
    3. 建立新系统的高层逻辑模型
    4. 导出和评价各种方案
    5. 推荐可行性方案草拟初步的开发计划
    6. 编写可行性研究报告提交审查

    系统流程图

    对当前系统的一种描绘,系统流程图是描述物理系统的工具。
    和程序流程图的区别:

    程序流程图 系统流程图
    表示对信息进行加工处理的控制过程 表达的是信息在系统各部件之间的流动情况

    成本—效益分析

    目的是从经济角度评价开发一个新的软件项目是否可行。

    • 系统成本包括开发成本和运行维护成本

    可行性研究报告的主要内容等等

    展开全文
  • 高级软件设计师之软件工程笔记 1软件生存周期 2项目管理基础 3软件质量管理 4软件需求分析与设计 5结构化分析与设计 6软件测试
  • 软件工程概述 — 笔记整理自 北京理工大学 计算机学院 为什么要学习软件工程 发挥团队潜能 团队成员发力一致 紧密协作 协作要求团队成员遵守同一规则 软件工程到底学得是什么 规则:应该怎么做,不应该怎么做 ...

    软件工程概述

    — 笔记整理自 北京理工大学 计算机学院

    为什么要学习软件工程

    • 发挥团队潜能
    • 团队成员发力一致
    • 紧密协作
    • 协作要求团队成员遵守同一规则

    软件工程到底学得是什么

    • 规则:应该怎么做,不应该怎么做
    • 方法:第一步,第二步,第三步…
    • 经验:有用的,好的东西
    • 教训:失败的行为模式和案例
    • 工具:我们开发中用到的所有工具

    软件工程框架

    • 软件工程周边的主要概念,如:软件生命周期
    • 相关规则
    • 敏捷开发
    • OO与UML
    • 自动化 CI/CD
    • 过程
    • SQA
    • 软件复用:类库复用,框架复用

    怎样学好软件工程

    • 学习规则
      • 尊重基本理论
      • 学习前人经验
      • 管理技术并重
    • 实践规则
      • 纯手工制作
      • 简单工具
      • 自动化工具
    • 忘掉规则
      • 无招胜有招
      • 手中无剑
      • 心中也无剑

    非常重要的一点是:禁止跨越实践规则,也就是说必须要经过实践,才能把规则变成自己的,才能去忘掉他

    展开全文
  • 这是软件设计师之软件工程笔记,希望对大家有帮助,欢迎下载,请多多指教
  • 软件工程前生今世 — 笔记整理自 北京理工大学 计算机学院 软件工程的历史 软件开发 50-60年代:手工作坊 60-70年代:合作生产 70年代以后:工程化 1968年"软件危机"概念出现 之后出现了软件工程的概念 也...
  • 一个软件工程师笔记,比较全,可以看看,值得收菜
  • 达内(最新,最全,最牛)Java软件工程师全套笔记(包括心得) 包括行内外最流行的struts,spring,hibernate,建模等技术笔记心得。
  • 软件工程概述 一、软件危机 1.软件危机的主要表现 对软件开发成本和进度的估计常常很不准确; 用户对“已完成的”软件系统不满意的现象经常发生; 软件产品的质量往往靠不住; 软件常常是不可维护的; 软件通常没有...
  • 不同于软件工程开发过程 软件过程也是软件 软件有个开发的过程,软件开发产出的是软件产品,是个演进的过程,是软件产品不断升级更新 软件过程也有个开发的过程,软件过程开发产出的是过程产品,也是一个演进的过程...
  • 软件工程笔记-完整

    2020-11-09 20:47:33
    软件工程导论资料 第1篇 面向过程的软件工程 第一章 概述 一、 名字解释 方法论:软件工程方法论指的是在软件开发的过程中,必须遵循的普遍行为和规则。 程序:程序是为了某个特定问题而用程序设计语言描述的合适...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,439
精华内容 2,575
关键字:

软件工程笔记