软件工程

程序设计小组

主程序员组(成员之间相互平等,工作目标和决策都由全体成员民主讨论)、无主程序员组和层次式程序员组

风险控制

目的:辅助项目组建立处理风险的策略。

策略:风险避免(最好)、风险监控和风险管理及意外事件计划

数据内聚

①偶然内聚:指一个模块内的各个处理元素之间没有任何联系。

②逻辑内聚:指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。

③时间内聚:把需要同时执行的动作组合在一起形成的模块。

④通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或者产生相同的输出数据。

⑤顺序内聚:指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行, 前一个功能元素的输出就是下一个功能元素的输入。

⑥功能内聚:是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可

开发模型

瀑布模型

阶段评审和文档控制。只用于需求明确或者二次开发;对时间严格要求

原型模型

做出简易的系统原型模型,以此来获得客户全面的需求,在进行正式开发,只用于需求分析阶段

增量模型

先做出核心功能给用户看,之后在一部分一部分做(给用户试用),最后完成项目;

其优点包括:

  • 短时间内交付可用品;
  • 逐步增加产品的功能,使用户有较充裕的时间学习和适应新产品;
  • 优先级最高的服务首先交付,然后依次将其他构件集成进来,这意味着最重要的服务将接受最多的测试。是一种能够快速构造可运行产品的方法

螺旋模型

演化模型包括原型和螺旋

结合并循环执行以上三个模型,又添加了风险分析

V模型

细化了测试;尽早进行各种测试,测试贯穿于开发中

以上皆是结构化开发模型

喷泉模型

面向对象开发;迭代、无间隙

快速开发模型

RAD;由瀑布模型和构件化开发模型组合形成;快速构建应用系统

构件组装模型

CBSD;以构件拖动形式进行开发,提高软件开发复用性;提速、降成本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MLpRodLY-1570878366207)(F:\TyporaWorkplace\文件\图片\构建组装模型.png)]

敏捷开发方法

目的:尽可能早地、持续地对有价值的软件的交付,使客户满意

  • 极限编程XP是一种轻量级的软件开发方式,由价值观、原则、实践和行为4个部分组成,彼此相互依赖、关联,并通过行为贯穿于整个生存周期
  • 水晶法Crystal认为每一个不同的项目都需要一套不同的策略、约定和方法论
  • 并列争球法Scrum使用迭代的方法,并按需求的优先级来实现产品
  • 自适应软件开发 ASD有6个基本原则
  • 敏捷统一过程:采用“大型上连续,小型上迭代”的原理构建软件系统,以交付客户

*维护

①正确性维护。为了识别和纠正软件错误,改正软件性能上的缺陷,排除实施的误使用,应进行的诊断和改正错误的过程。

②适应性维护。由于信息技术飞速发展,软件运行的外部环境或数据环境可能发生变化,为了使软件适应这种变化而修改软件的过程。

③完善性维护。在软件使用过程中,用户往往会对软件提出新的功能与性能要求, 为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性而进行的维护活动。

④预防性维护。为了提高软件的可维护性和可靠性等,为以后进一步改进软件打下良好基础而进行的维护工作。

*质量特性

McCall软件质量模型

  1. 产品运行方面包括正确性、可靠性、易使用性、效率和完整性;
  2. 产品修正方面包括可维护性、灵活性和可测试性;
  3. 产品转移方面包括可移植性、复用性和互用性

复杂性度量

McCabe度量法:程序(环路)复杂性V(G)= m-n + 2p(m是图G中弧的个数,n是图G中顶点的个数,p为图G中的强连通分量数)

ISO/IEC9126软件质量模型

  1. 易分析性是指为诊断缺陷或失效原因,或为判定待修改的部分所需努力有关的软件属性;
  2. 易改变性是指与进行修改、排错或适应环境变换所需努力有关的软件属性;
  3. 稳定性是指与修改造成未预料效果的风险有关的软件属性;
  4. 易测试性是指为确认经修改软件所需努力有关的软件属性

软件质量

软件容错技术

在屏蔽硬件错误的容错技术中,冗余附加技术包括:

  • 关键程序和数据的冗余及调用
  • 检测、表决、切换、重构和复算的实现

在屏蔽软件错误的容错技术中,冗余附加技术包括:

  • 冗余备份程序的存储及调用;
  • 实现错误检测和错误恢复的程序;
  • 实现容错软件所需的固化程序。

*软件测试

  1. 单元测试:模块测试:侧重于内部的处理逻辑与数据结构;特征:模块接口/局部数据结构/执行路径/出错处理/边界条件
  2. 组装测试:集成测试:把功能模块组合起来进行测试,测试的是各个模块集成起来后有没有达到预期的功能
  3. 确认测试:是指进一步检查软件的接口、功能和性能是否与用户要求一样
  4. 系统测试:是指软件与网络、外部设备等其他因素结合部署工作的情况。
    1. a.所有功能需求得到满足
    2. b.所有性能需求得到满足
    3. c.其他需求(如安全性、容错性、兼容性等)得到满足

白盒测试

结构测试

  1. 语句覆盖是指选择足够的测试用例,使被测程序中每条语句至少执行一次。
  2. 判定覆盖是指*使得被测程序中每个判定表达式至少获得一次“真”植和“假”值。if
  3. 条件覆盖是指*使得每一个判定语句中每个逻辑条件的各种可能的值至少满足一次。switch
  4. 路径覆盖是指覆盖被测程序中所有可能的路径。

在这些覆盖技术中,从弱到强依次为语句覆盖、判定覆盖、条件覆盖和路径覆盖。

黑盒测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值