软工期末复习

软工期末复习

数据流图

image-20241211104900983

image-20241211105305924

0层图

image-20241211105516570

1层图

1层图就是对0层图的加工细分

image-20241211105910306

2层图

2层图就是对1层图的某个加工进行细分

image-20241211110228514

例子1

image-20241211221105177

image-20241211221122479

image-20241211221132926

image-20241211221149186

例子2

image-20250102201354447

image-20250102201429053

E-R图

image-20250102201544811

数据字典

image-20250102201700243

例子3

image-20250102201553692

image-20250102201606679

image-20250102201615959

例子4

image-20250105202909972

image-20250105202943443

软件结构图

image-202501031555307261

例子1

在这里插入图片描述

在这里插入图片描述

例子2

按照下列环境描述,完成系统结构化分析和设计部分工作。要求:根据要求画出该系统的数据流图,并将其转换为软件结构图。
高考录取统分子系统有如下功能:
(1)计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件。
(2)计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。

在这里插入图片描述

判定表和判定树

image-20241211102529810

判定表

image-20241211102724593

image-20241211102629132

例子1

image-20241211221025357

image-20241211102648464

例子2

image-20241211102829380

image-20241211102951793

image-20241211103506656

构造表的时候对于有多少列,那么就只看条件。看每种条件有多少种情况,然后做乘法

本题就是2的三次方为8

image-20241211103809875

有相同列的可以合并

image-20241211104510393

判定树

根据最终的判定表去画判定树

image-20250102201225196

image-20241211104759818

程序流程图

image-20250102193908489

image-20250102193938340

image-20250102193955424

盒图

image-20241211110319748

image-20241211110458368

while是成立了才会执行循环

until是不成立才会执行循环

例子

直接先画一个大正方形

判断一个三角形是否为等边三角形

image-20241211110754424

例子2

image-20241211110813939

image-20241211111502844

例子3课堂练习

image-20241211111621856

image-20241211111634991

PAD图

image-20241211111716788

while中是c为否跳出来循环进行下一步

until中是c为是跳出来循环进行下一步

在题中就看跳出来的时候对应是还是否

例子

image-20241211112137540

例子2

image-20241211112604027

黑白盒测试(找测试用例)
等价类划分法(黑盒测试)

image-20241211160927367

image-20241211161058651

测试用例设计时有效等价类要尽可能多的覆盖,对于每一个无效等价类都要有其测试用例

例子

image-20241211161515194

无效的等价类必须有一个对应的

image-20241211161908583

例子2

image-20241211162933494

image-20241211163101230

image-20241211163111053

例子3

image-20250102195254106

image-20250102195308367

image-20250102195447814

image-20250102195458821

例子4

image-20250102195549066

image-20250102195627615

白盒测试(打开盒子看里面)

白盒测试不用看细节,只是为了找不同的测试用例,只看其中的判定和条件即可

白盒测试有六种,以下按照覆盖程度递增次序

语句覆盖:每个语句都要执行一次,说明测试的条件要使得能够到达每个句子

判定覆盖(分支覆盖):判定就是条件的逻辑组合。每个判定真假至少一次,即判定的所有情况都要测试到

条件覆盖:每个条件都要判一次真假

判定条件覆盖:每个判定要取一次真假,每个条件要取一次真假(在条件覆盖中选择满足判定覆盖的用例),然后判定与判定之间再组合

路径覆盖

组合覆盖:组合条件覆盖,以每个判定或者说每个分支为单位,给出里面所有的条件组合(n个条件对应2的n次方个结果)

https://www.bilibili.com/video/BV1zL4y1A785?t=16.4

image-20241211164829620

路径覆盖:把出现的所有路都走一遍

怎么看所有路,用树图画出来

image-20241211165114126

UML

UML (Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言。

在这里插入图片描述

结构图(静态图)
类图
  • 类的定义

image-20241211195954893

  • 代码与类图的转化

    image-20250102194412003

  • 类之间的关系

image-20241211171317585

image-20241211200428466

关联:谁使用谁,谁拥有谁。比如学生使用电脑,比如水獭吃海胆,就是关联关系。就是两个对象之间没有依赖关系,有其他某种关系

聚合:整体与部分,谁包括谁。比如项目组中包括组员

组合关系:整体与部分,整体生命结束时候,部分生命也结束。比如一个游客中心包含大堂和卫生间,如果游客中心被拆除,那么大堂和卫生间的生命也结束。这是生命相关的聚合

泛化/继承:比如乌龟,猴子,大象都是动物类的子类。箭头子类指向父类

例子1

image-20241211220301658

image-20241211220322428

例子2

img

例子3

image-20250104161416436

例子4

image-20250106104809102

行为图(动态图)
用例图(参与者与功能)

image-20250102192911783

image-20250102193509949

三部分:(系统)参与者,用例(功能),关系

Use Case:用例一般是用“动宾”短语命名

角色:主动角色在系统左边,被动角色在系统右边

关联:参与者能使用的功能就是关联

泛化:继承,是参与者与参与者,或者用例与用例之间的关系。泛化的属于同种类型但存在差异,重在实体上。用带空心三角箭头实线从子用例指向父用例

包含《includes》:每次执行基本用例时,就会执行包含用例。用带箭头的虚线《includes》从基本用例指向包含用例。是用例之间的关系,一个用例可包含几个步骤,重在过程上

拓展《extends》:拓展用例是基本用例在某些条件下会触发跳转到扩展用例,扩展用例相当于基本用例在某些条件才执行的备选用例。用带箭头的虚线《extends》从拓展用例指向基本用例

image-20241211171134762

例子1

image-20241211195519527

image-20241211195549352

例子2

image-20241211171240386

例子3

image-20250104160043891

顺序图(时序图)

交互图,显示系统内外的交互过程

任何复杂的交互,都可以分解为自己与自己自己与别人别人与别人的多个简单交互

img

基本元素

构建图:

img

  • 小人:参与者用小人表示
  • 矩形:对象用矩形表示
  • 垂直虚线:生命线为垂直的虚线
  • 横向线:对象之间的消息位于两条虚线之间

image-20241211201722103

对象之间的消息:

  • 实线:请求消息用实线表示
  • 虚线:虚线表示回复的消息或者说是从接收对象返回到请求对象的消息

(所以对于一条消息要明确它是一个主动的请求消息还是对某个请求消息的回复消息)

  • 竖向矩形:激活框,激活框显示对象执行期间的时间。

​ 在对象生命线上,活跃的部分加上激活框。

​ 参与者是外部对象,不需要激活框。

  • 选择框:表示在两个消息或多个消息之间进行选择,这些选择一般是相互排斥的

    img

(用选择框的一般是对应了两种情况,用两个框分别给出对应情况的消息是什么样的)

image-20241211202450251

比如这里就对应了验证银行卡后的两种情况,一种是银行卡有效,一种是银行卡无效

例子

image-20241211203019791

image-20241211203043657

例子2

image-20241211203231024

63ede8927a47ae4b2a272cb7bfce2d1

例子3
几个图的关系

image-20250102194653104

image-20250102194812026

状态图

描述一个对象在其生命周期中的各种状态

基本元素
  • 实心圆:状态图的开始
  • 圆角矩形:状态。由状态名和活动两个部分组成

image-20241211203425477

​ 关闭状态:源状态,没有活动,只写状态名即可

​ 启动状态:目标状态

  • 空心圆内+实心圆:状态图结束
  • 事件:触发动作,用矢量直线表示
例子1

image-20241211203630899

image-20250102194933629

例子2

image-20250104164234159

活动图

展现了从一个活动到另一个活动的控制流程,显示系统的活动顺序

基本元素
  • 实心圆:开始结点,一个活动图中只能有一个开始结点
  • 圆角矩形:动作结点
  • 空心菱形:决策结点(分支的开始)/合并结点(分支的合并),注意合并时候也要有
  • 黑色粗线分开:Fork结点,表示多个过程并行执行,即异步操作(两者独立不相关)

image-20241211204314524

  • 黑色粗线合并:join结点,异步活动结束后,再合并为同一个流程运行

image-20241211204433298

  • 空心圆+实心圆:活动图结束,一个活动图中可以有多个结束结点
例子1

image-20241211204858579

例子2
泳道图:

将活动图按照角色进行分组,把流程中的活动划分到对应的角色之下

image-20241211204815352

UML练习题

https://blog.youkuaiyun.com/tir_zhang/category_11750080.html?fromshare=blogcolumn&sharetype=blogcolumn&sharerId=11750080&sharerefer=PC&sharesource=weixin_57014764&sharefrom=from_link

软件生命周期模型
瀑布模型

特点:
1),阶段间具有顺序性和依赖性
2),推迟实现的观点
3),质量保证的观点
优点:
1),可强迫开发人员采用规范的方法(例如:结构化技术);
2),严格地规定了每个阶段必须提交的文档;
3),要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
缺点:
1),“瀑布模型是由文档驱动的”在可运行的软件产品交付给用户之前,用户只能通过文档来了解产品是什么样子的。但是通过写在纸上静态的规格说明,很难全面正确的认识动态的软件产品。
适用范围:
需求明确,小规模软件开发。

快速原型模型

特点:
快速建立起能够在计算机上运行的程序(最终产品功能的一个子集)。
优点:
软件产品的开发基本上是线性的
缺点:
必须迅速地构建原型然后根据用户意见循序的修改原型
适用范围:
用户需求不明确,需要通过构建原型来清楚的了解用户的真实需求。

增量模型

特点:
把软件产品作为一系列的增量构件来设计,编码,集成和测试。每个构件有多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,第一个增量模型时,第一个增量构件往往实现软件的基本需求,提供最核心的功能。
优点:
1),能够在较短的时间内向用户提交可完成部分工作的产品;
2),逐步增加产品功能可以使用户有较充裕的时间学习适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。
缺点:
1),较难把每个新的增量构件集成到现有的软件体系结构中,而又不破坏原来已经开发出的产品。
2),增量模型本身是自相矛盾的,它一方面要求开发人员把软件当做一个整体,另一个方面又要求开发人员把软件构件序列,每个构件本质上都独立于另一个构件,除非开发人员有足够的技术能力协调好这一明显的矛盾,否则增量模型开发出来的产品可能并不能令人满意
适用范围:
软件开发周期较长的软件,有持续的合作。

4螺旋模型

特点:
螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险,即是在每个阶段之前都增加了风险分析过程。
优点:
1),对可选方案和约束条件的强调有利于已有软件的重用,也有利于把软件质量作为软件开发的一个重要目标;
2),减少了过多测试(浪费资金)或者不足(产品故障多)所带来的风险;
3),在螺旋中维护的只是模型的另一个周期,在维护和开发之间没有本质的区别;
缺点:
除非软件开发人员具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险,当项目实际上正在走向灾难时,开发人员可能还认为一切正常。
使用范围:
内部软件开发的大规模软件项目。

5喷泉模型

特点:
面向对象的软件开发
优点:
1),对生命周期各阶段的区分变得不重要,不明显了;
2),分析阶段得到的对象模型也适用设计阶段和实现阶段;
3),提高软件项目开发效率,节省开发时间
缺点:
1),开发过程过分无序;
2),面向对象范型本身要求经常对开发活动进行迭代或求精;
3),在开发过程中需要大量的开发人员,因此不利于项目的管理。
适用范围:
面向对象的软件开发过程

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

freelsh21

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值