本文转载自https://baijiahao.baidu.com/s?id=1597431203894137500&wfr=spider&for=pc

感谢原作者的总结!下面是文章内容

因为一些需要,需要把曾经学习过的软件工程这门课程给从新学习一下,把自己的一些学习分享给大家,希望能够一起进步

软件的分类

软件的发展

软件危机的表现

为了解决软件危机,所以诞生了软件工程这门学科

软件工程的内容

软件生存周期

软件的开发一般需要这8个阶段协同发展,但是具体问题具体分析,有些软件的开发并不一定都是要走这八个步骤,实际从事软件开发工作时,软件规模、开发环境及技术方法等因素会影响到阶段划分,及各阶段的执行顺序,形成不同生存周期模型,又称过程模型。

常用的软件过程模型

瀑布模型

瀑布模型特点:

1.阶段具有顺序性和依赖性前一阶段结束后一阶段开始,前一个阶段输出文档,后一个阶段输入文档。2.推迟实现观点瀑布模型在编码前设置系统分析、系统设计,推迟程序物理实现,保证前期工作扎实。3.质量保证观点瀑布模型每阶段坚持两个重要做法:是每阶段都必须完成完整、准确的文档。软件开发时人员间通信、运行时期维护的重要依据。是每阶段结束前对文档评审。

瀑布模型由于是单向的,所以实际开发中如果一个步骤出现问题,是没有办法返回处理的,为了解决这个问题,实际开发中的瀑布模型是带有反馈环的,就是说开发过程中如果之前的一部出现问题的话,还可以回去解决

优缺点

快速模型

根据用户的主要需求,建立一个软件原型,然后让用户进行评价,然后根据用户的评价和提出的更多的需求来开发出相应的软件产品

优缺点

增量模型,渐增模型

瀑布模型和快速模型都是一次性把软件提交给客户的,而增量模型是分批的把软件提交给客户的,但也要担一定的风险,就是最后合在一起未必能成功

优缺点

螺旋模型

一个螺旋一个螺旋的开发,每走一圈软件都会强大一次,而且每一圈都有风险分析,包括成本经济效益等,一旦风险评估不通过,则开发立即结束,周期较长

优缺点

喷泉模型

每一个圆都是一个阶段

优缺点

Rational统一过程:二维声明周期过程

每个阶段中对每个工作流的侧重点是不一样的,有的工作流中对测试侧重,有的对其他的侧重,比如初始主要业务建模和需求

优缺点

微软工程

每个工程都有一个里程碑,只要达到里程碑就认为阶段结束,就可以进入下一阶段了,这五个阶段是递进式的,五个阶段完成就形成一个软件,形成一个版本

这样安排好处是,假如版本1出现问题,或者想要升级,直接上版本2,这都很迅速的可以实现

需求分析阶段

结构化的需求分析

具体步骤

1发现需求的办法

需求出来之后,就需要根据需求找到最有用的需求,这个过程就是求精,然后我们要为需求建立模型,用图形符号和阻止规则来描述事务,它有三个图和一个数据字典组成

规格说明:书写软件需求规格说明,作为分析阶段最终成果

复审:一定要复审,把需求问题解决,最好不要带到下一个阶段,不然会很费事

软件工程之需求阶段三大关系模式图加数据字典的介绍

结构化设计之概要设计和详细设计

经过需求分析阶段之后,系统已经知道了现在应该怎么做了。

总体设计就是概括的回答,系统应该如何实现的问题。因此总体设计又背称为概要设计,或者初步设计。

详细设计就是具体的实现所要求的数据,也就是说经过这个阶段对系统目标,应该对系统目标进行精确描述,从而在编码阶段可以直接把这个设计翻译成某种设计语言的书写程序。

结构化设计与分析关系图

设计的原理,设计应该遵循的基本原理和概念

模块独立模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合

耦合是模块和模块直接的,尽量追求低耦合

内聚是模块内元素之间的,尽量追求低内聚

耦合

其它情况也属于耦合

耦合原则

内聚

内聚总结

启发规则人们在长期的额软件开发中积累了经验,总结出了一些启发式规则,能够帮助他们找到改进软件设计,提高软件质量

下面介绍一下启发规则

面向数据流的设计方法就是给出设计软件结构的一个系统化的途径

人机界面设计,就是如何让用户觉得界面用着很舒服

过程设计就是设计出软件的具体逻辑实现

面向数据结构设计,数据结构既影响程序的结构也影响程序的处理过程,可从数据结构导出程序的处理过程,适合详细

设计。最后可以形成伪代码描述,根据伪代码描述进行设计会很方便写出相应的程序。

面向数据结构设计方法两种:Jackson和Warnier方法

实现

编码就是将设计文档翻译源代码

黑盒测试:如果知道产品应具有功能,可通过测试来检验是否每个功能都能正常使用。

白盒测试:如果知道产品内部工作过程可通过测试来检验产品内部动作是否按照规格说明书的规定正常进行

测试准则

(1)所有测试应能追溯到用户需求,测试的目的是发现错误,其中最严重的是不能满足用户需求的错误。

(2)应尽早地和不断地进行软件测试。

(3)充分注意测试中群集现象(Pareto原理)。 测试后程序中残存错误数与程序中已发现错误数目成正比,80%错误与20%模块有关。

(4)测试应从小规模开始,逐步进行大规模测试。

(5)不能做到穷举测试。

(6)第三方测试原则

白盒测试的技术

白盒测试之逻辑覆盖

白盒测试之控制结构测试

基本路径测试和循环测试

基本路径测试:

根据过程设计结果画出相应流图计算流图的环形复杂度确定线性独立路径的基本集合(n独立路径:至少包含一条在定义该路径之前不曾用过的边。)设计测试用例覆盖基本集合的路径

循环测试:

黑盒测试技术

因为不明确软件的内部细节,所以测试软件功能

黑盒发现错误类型

常见黑盒测试技术

(1)等价类划分;(2)边界值分析;(3)错误推测等

测试步骤

调试

软件调试是在进行了成功的测试之后才开始的工作。它与软件测试不同,调试的任务是进一步诊断和改正程序中潜在的错误

软件可靠性

软件工程学习之七大实际开发模型的讲解,及模块化设计的理念相关推荐

  1. 软件工程 – 开发模型

    软件工程 – 开发模型 为了指导软件开发,可以用不同的方式将软件生命周期中的所有开发活动组织组织起来从而形成不同的开发模型. 瀑布模式 瀑布模型严格遵守软件生命周期各阶段的固定顺序:计划.分析.设计. ...

  2. 软件开发方法和开发模型的比较

    我搞不清软件开发方法和开发模型这两个概念. 书本上这两部分都放在<软件工程>这一章节里,但是是分开介绍的,并没有阐明二者之间的关系,比较割裂.我尝试在互联网上找找资料,但都非常少.这里先把 ...

  3. 104. 软件工程的开发过程几种模型(瀑布模型、快速原型开发模型、增量模型、迭代模型、螺旋模型)

    文章目录 1.前言 2.瀑布模型--按阶段严格完成 (1)瀑布模型把整个项目过程分成了六个主要阶段: (2)举个例子来理解瀑布模型 (3)优缺点 (4)解决的重要问题 3.快速原型模型--低成本快速的 ...

  4. 【软件工程】几种常见的软件开发模型:(瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型)模型的概念特点优点缺点和不同。

    (瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型)各种模型的概念特点优点缺点和不同. (张海藩,吕云翔)著-软件工程 复习记录 文章目录 一.瀑布模型 二.快速原型模型 三.增量模型 四.螺旋模 ...

  5. 软件工程,开发模型,软件开发流程

    软件工程 (Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的.实用的和高质量的软件的学科.它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模 ...

  6. 【软考软件评测师】第十章节 软件工程之开发模型与方法

    [软考软件评测师]第十章节 软件工程之开发模型与方法 第十章节 软件工程之开发模型与方法 [软考软件评测师]第十章节 软件工程之开发模型与方法 第一部分 知识点集锦 1.瀑布模型 2.螺旋模型 3.增 ...

  7. 【软件工程】RUP与软件开发5大模型

    软件开发的5大模型 1.瀑布模型:按照人的思维一步一步的开发下去,如果需求分析得当,每个阶段顺利,结果还不错! 2.快速原型模型:后来人们发现,自己不可能一下子就把所有的需求搞清楚,总是在开发的过程中 ...

  8. 【软件工程】 软件工程及开发模型

    导图: [软件工程] 定义(IEEE):软件工程师开发.运行.维护和修复软件的系统方法. [软件工程过程] 软件工程过程: 软件规格说明 软件开发(设计) 软件确认(用户需求) 软件维护 软件工程过程 ...

  9. 软件设计师备考笔记(十)软件工程(开发模型、结构化设计、软件测试)

    目录 软件开发模型 信息系统开发方法 需求分类 结构化设计 软件测试 软件开发模型 瀑布模型 历史 盛极一时,但被淘汰:有重大缺陷,会导致项目失败(延期.超支.做不下去) 注意事项:每个阶段(绿框)末 ...

  10. 新能源汽车VCU开发模型及控制策略 新能源汽车整车控制器VCU学习模型,适用于初学者

    新能源汽车VCU开发模型及控制策略. 目前各大行业都纷纷跨行做新能源汽车,紧缺VCU工程师,特别是涉及新能源三电系统,工资仅仅低于无人驾驶.智能驾驶岗位. 内容如下: 新能源汽车整车控制器VCU学习模 ...

最新文章

  1. 对信号与系统课程的意见与建议
  2. web3.js(二)根据私钥推出地址查询以太数量
  3. Bootstrap-组件-2
  4. 上海高考女生计算机专业,@2020高考:女生最多的15个专业,一辈子的好友就在这里...
  5. git 9个小命令(三年修仙五年摸鱼也有喔) 一条龙服务
  6. linux搭建一个配置简单的nginx反向代理服务器 2个tomcat
  7. ubuntu20.04下开发海康威视网络摄像头sdk(二)云台基本控制(位姿控制)
  8. Python学习Day14
  9. STM32F205转GD32F205晶振不能起振,什么原因?
  10. 东芝2303am维护清零_东芝打印机2303A怎样清零
  11. SSM框架整合(以黑马程序员2022最新SSM框架教程P59为例)
  12. box-sizing属性的的用法
  13. PTA 7-1 奇偶数判断
  14. taobao.itemprops.get( 获取标准商品类目属性 )
  15. VCP-DCV6.7学习心得
  16. 前端学习日志-4-js
  17. win10运行在哪里打开 win10怎么打开运行窗口快捷键
  18. 网易考试大题知识盲区之B树、B+树、B*树
  19. python下列数据中不属于字符串的是_在python中,下列流程控制语句没有的是_学小易找答案...
  20. 2005考研阅读Text1翻译

热门文章

  1. 四元数和旋转_使用OpenCV的四元数
  2. 数组、字符串、集合的相互转换
  3. oracle+in+多,Oracle in子句过多的硬编码引发的故障
  4. 漳州华为云计算机,漳州市云主机托管
  5. 哈工大2019计算机专业录取分数线,哈尔滨工业大学2019年高考分省分专业录取分数线...
  6. Docker从理论到实践(一)------基础知识必备
  7. requestFullscreen()事件全屏不好使怎么解决
  8. 文件过滤器FileFilter
  9. c语言打印uint64, int64
  10. kvm初体验之八:调整vm的vcpu, memory, disk大小