10.软件工程

1.软件开发模型

1.1瀑布模型(SDLC)

每个阶段结束后,会对前一个进行总结
是一个结构化方法的模型,应用于结构化开发
这个导致问题出现是,需求不明确,导致的,接着又要一层层回溯
这个模型适用于需 求明确的,或者二次开发的,反正就是需求要明确  ,这个是把测试压到最后的
反正就是要需求明确

1.2原型,演化,增量模型

  • 原型就是项目初期,构造一个简易的系统,就类似RP   原型强调构造一个简易的系统,面对的需求不明确的情况   ,不适用大规模项目
  • 演化模型,就是经过多次原型,演化而来
  • 螺旋模型,有原型,演化,瀑布特点
  • 增量模型,原型,加瀑布模型。  增量就是先做一块,给用户用下,没问题了再接着做下一个模块

1.3.螺旋模型

 由多个模型组成
例如题目中问,需求不明确选哪个,如果原型和螺旋都有,就选原型,没有原型再选螺旋
螺旋引入了风险分析,其他模型都没有

1.4V模型

V模型 测试突出
就是每个阶段,都有相应的测试,例如需求阶段,就把验收测试写了

1.5喷泉模型和快速开发模型(RAD)

喷泉模型面向对象层面的,其他的例如瀑布,增量,都是结构化的
他是面向对象的,所以有面对对象的共性,例如迭代

快速开发模型,是构建化开发模型和瀑布模型的合体
例如你用VB就是快速开发了

1.6构建组装模型(CBSD)

就是构造组件,再将组件组装,然后提高了复用性缩短时间节省成本,可以用以前系统的组件库
建架构

1.7敏捷开发方法

砍掉多余的东西,例如不必要的流程,和不必要的文档
敏捷开发不是一组模型,而是多组模型
比较适用于小型项目

1.8信息系统开发方法

结构化重大缺点,需求不确定
原型弥补了这个缺点,应对需求不明确的开发


2.需求工程

业务需求例如业务需求,总经理找你说做一个财务系统,给你大致需求 
用户需求,然后你找财务,出纳人聊需求  
系统需求,然后跟开发人员说怎么搞   
性能需求 ,即非功能需求安全性,性能方面   
设计约束,例如可以用java和.net开发,用户希望用.net 

基本需求,需要用户明确指出
期望需求,用户没说明,但是你可以领回,理所应当要做,也必须完成
兴奋需求,涉及到成本的增加,就是你做了多余的东西,客户开心,但是花的时间多了,这些兴奋需求我们要避免
 

3.系统设计

3.1结构化设计 (重点0)

结构化设计,就是结构化设计软件的问题。
扇入,扇出,就类似入度,出度,   就是你的扇入高,说明你这个模块多人用。扇出高,说明你这个职能比较多


内容耦合,耦合程度最高
非直接耦合,耦合程度最低
 内聚耦合选择题也考

了解下面那个即可,传入是箭头传进去的传出是箭头出来的变换是双向的

4.软件测试(必考)

4.1测试原则和类型

主要在上午考
回归测试,就是你修改完bug,要回去测试一下之前的
尚未发现的bug和已经发现的bug成正比。因为每个模块的难度不一样,如果这个模块难一点,bug多一点,可能隐藏的bug更多。就更重要的是测试这个模块的

动态测试,是利用到计算机的,没有利用到手工的
静态测试,是纯手工的,例如写完代码,自己看一遍

灰盒测试,是用哪个黑跟白结合的

桌前检查,例如写完代码自己看一遍。
代码走查,例如考试给一段程序你,这段程序结果是什么
代码审查,强调的是交叉检查。你检查我的,我检查你的

4.2测试设计用例  (重点)

黑盒测试,只知道输入跟输出,不知道代码
  • 等价类划分:就是测试数据,划分,选一个具有代表性的就行,例如if判断条件,成绩及格优秀不及格,将测试数据分类,选一个具有代表性的。
  • 边界值分析:例如测试成绩优劣,测试分界值,例如90分输入的是优等,还是中等
     正常给一个区间,叫你求边界值,两个端点值,和大于,和小于分别两个,一共四个 如下 -1 ,0 ,     150 ,151
  • 错误推测:靠经验,没有章法可言,往往是经验,灵感,例如技术总监看下属的项目,还有没有经验的人帮你测试
  • 因果图:有这个结果,反过来推原因

白盒测试:能看代码
主要了解的是逻辑覆盖测试
  • 语句覆盖(层次最低):例如覆盖两条路径,实际有4条
  • 判定覆盖:就是判断的所有的真假分支,都要覆盖一遍
  • 条件覆盖:例如 A>0andB<0 拆分开,拆为 a>0 和 b>0,而且这两个分别的判断条件的真假分支都要覆盖  
  • 路径覆盖:就是所有的路径都覆盖了,就达到了最高级别   ,把所有可能的都包括进来


例题1

边 - 点 +2


例题2


4.3测试阶段

先单元后集成
确认测试在不同资料有不同讲法
  • 正常软件到确认测试,而有软硬件的,或者集成的,才有系统测试
  • 所以有系统测试的,最后才确认测试,因为确认测试涵盖了验收
单元测试,模块级别
集成测试,测试的是衔接,一次性是一次性将东西集成,增量式是先集成几个,没问题,再集成,逐步集成全部,所以增量式工作量大点,要测很多次
Alpha,Bata是产品的,软件项目一般接触不到 ,用户去用他,就是测试版本,例如qq测试版,就是bata
验收测试,就是用户用他,用户愿不愿意接受这个产品
系统测试,偏重于性能测试
性能测试
    负载测试:就是并发1000是响应怎样,响应要多少毫秒
    强度测试:就是系统不正常的情况下,资源配置不足的情况下,这种情况能否正常应对
    容量测试:
压力测试:例如并发量1万,一万人一起访问,系统会不会崩溃掉
冒烟测试就类似于修理管道, 修好了,放烟过去,看看有没有问题。就是说你维护了,第一眼看有没有缺陷存在
               一般回归测试是全面的冒烟测试是初步的

三明治 自顶向下和自下向上  需要写较多的驱动模块和桩模块

4.4McCabe复杂度(每次都考)

线的分叉可以抽象成节点也可以不抽象成节点
抽象成节点,边也会增加,差值是一样的

做这个题目就是图,转化为有向图   边总数 - 点总数 +2

5.系统运行与维护 (重点)

不仅仅选择题,案例分析也有可能
维护是周期最长的
易分析性,是代码看起来容易分析         编码规范
修改性,修改代码的容易程度如何 这个设计到耦合性问题

改正性维护,不可能发现全部bug,等用户测试,有问题再去维护
适应性维护环境  服务器迁移环境  ,所以针对这些问题的维护是适应性维护,数据环境
                    例如公司适应外部市场环境和需求不断变化,相应的维护,也是适应性维护   ,软硬件维护都是这个适应性
完善性维护,加功能,将系统性能比以前更好
预防性维护,就是现在不维护,不会有问题,将来可能导致问题
     00是1900年,但是到2000年时,也将记录为00年是会出问题的,所以一些公司就提早维护了
     但是到了 2000年时,发现出问题了,这就不是预防性维护了,是改正性维护

6.软件成熟度模型(CMMI) (重点)

由CMM(能力成熟度模型)发展而来的  ,主要是软件开发的成熟度 ,成熟度,就是你做事的方法问题
cmmi就是思想就是降低成本,企业认为成本高
没有经过cmmi机构评级,都属于混乱级

阶段式(考级,推广,标准)
考试都是考,这个级别说明对不对
CMMI的阶段式从二级开始
二级(已管理级),是项目级别。例如这个项目我做过,有经验,下次同类项目,但是换了另外一个经理来,他没经验
三级(已定义级),是组织级别,例如房地产项目,公司有一些规范之类的东西给我参考,我做完项目,接的公司这个做的不好,就完善的公司的,这个就是组织过程资产。  就是将隐性的直至转为显性的知识。  文档化,标准化
四级(定量管理级)强调管理的量化
五级(优化级),就是继续优化

连续式更好(能提升更多的东西)
阶段式定义太多东西,但是企业有自身情况,所以阶段式按需获取

7.项目管理(重点)

考2或者3分

gantt图,简单明了,但是不能表达任务之间的关系
PERT图,了解计算问题。不能表达个任务的并行关系
事件持续时间开始节点到结束节点最长的路径    事件完成是可以并行的
最长的就是关键路径:接着看关键路径经过了哪些点,如果这个线再关键路径上,松弛时间为0
松弛时间是最晚开始时间减去最早开始时间
计算过程正推,把所有事件的最早开始时间推导出来,接着再逆推最晚开始时间
两个前序任务是可以并行的,选时间最长的即可
由于是最后一个事件,最开始时间和最晚时间是一样的


风险是对你的项目产生影响才是,对别人的项目就不关你事
项目风险能在项目经理管理范畴的
商业风险,是超出了项目组的范畴

风险曝光度,就是风险概率乘以风险损失金额即可





posted @ 2020-12-21 09:53  超极本online  阅读(235)  评论(0)    收藏  举报