软件工程知识点复习总结和易错题整理

易错题整理

第一章

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

第二章

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

第三章

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

第四章

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
编译器和软件开发环境都是仓库体系风格,两种构件,一是中心数据库,二是多个独立的应用对数据库进行读取。编译器的不同子系统访问字符表。
在这里插入图片描述

第六章

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

软件工程概述

软件工程基本目标:

开发高质量的软件

软件开发基本策略

软件工程基本原理

软件工程概念

软件工程是将系统化的,规范的,可定量的方法应用于软件的开发,运行和维护的过程,它包括方法,工具和过程三个要素

软件过程

软件过程是软件生存周期中的一系列相关软件工程活动的集合,它由软件规格说明,软件设计与开发,软件确认,软件改进等活动组成。它 包括问题定义 ,需求开发,软件设计,软件构造,软件测试等一系列软件开发的实际活动。

软件过程模型

在这里插入图片描述
在这里插入图片描述
软件需求规格说明是确认产品能真正符合用户业务上的需要。它说明了计算机系统的功能,性能及约束。
在项目初始阶段,开发任务的目标是(理解基本问题)

需求获取

功能性需求:软件在功能上的需求,系统如何运算
非功能性需求:安全性,准确性,适应性,可重用性。。。
用户需求:为用户写的,自然语言编写,没有奇数细节
系统需求:为开发者编写,具有详细的功能和非功能性需求。

需求来源:
1.干系人
对软件项目有关的人
召集干系人定义细节
2.系统的应用领域
1)业务过程
2)组织规章制度
3.现有系统文档资料

软件体系结构

软件体系结构包括构件(处理元素和数据元素)和连接件(交互元素)和约束
构件:具有某种功能的单元,如程序函数,模块,对象,类,文件,相关功能的集合
连接件:

体系结构风格,设计模式,和框架的概念,区别

  • 体系结构风格描述了某一个特定应用邻域系统组织的惯用模式,反应了领域中众多系统所共有的结构和语义特性。
  • 设计模式描述常见问题的解决方案,如观察者模式,
  • 软件框架是开发人员定制的应用系统的骨架,是整个或部分系统课重用的设计。

软件设计原则

1.抽象
2.封装
3.模块化
4.层次化
5.复用

软件体系结构风格的选择

  • 体系结构风格定义了构件和连接件的语法
  • 五种通用的体系结构风格
    1.独立构件:进程通信和事件系统
    程序调试器的工作过程:在调试器设置一个断点,文本编辑器,编译器,变量监视器通过注册的方式和断点发生关联,程序运行到断点的时候就会触发他们,文本编辑器滚动屏幕到断点处,变量监视器刷新变量的当前值,这是一个事件风格的系统
    事件风格(驱动)分为显示调用和隐式调用,显示调用:构件之间的互动是由显式调用程序或函数完成,调用过程与次序固定,预先设定。
    隐式调用调用过程与次序不是固定的,预先设定的,各构件之间通过事件的方式交互。隐式调用时一种常见的形式。
    隐式调用将应用看成一个构件的集合,每个构件直至发生对她有影响的事件时才有所动作。事件源发布事件,其他应用作为事件处理器预先在事件中注册,当事件被触发,事件管理器就会调用这些构件对事件进行处理。eg:程序调试器,事件源:调试器,事件处理器:编辑器与变量监视器,事件管理器:ide
    2.数据流风格:批处理和管道过滤器
    管道过滤器风格:把系统任务分成若干处理步骤,这些处理步骤通过系统的数据流连接,一个步骤的输出是下一个步骤的输入
    构件称为过滤器,对数据处理,产生输出数据流,传送数据的连接件称为管道。以媒体播放器为例,输入是avi文件包括视频和音频数据,经过分离器进行处理,把视频和音频分为两个流,视频数据传送给视频解码器,音频数据传送给音频解码器,视频解码器和音频解码器解码,再分别输出给显示器和声卡。
    3.以数据为中心:仓库,超文本,数据库
    在这里插入图片描述

仓库体系结构以数据为中心,数据库是典型的仓库体系结构,包括两种构件,一种是中心数据库,保存当前系统的数据状态,一种是多个独立的应用,对数据库进行读取
剪贴板是一个用来进行短时间的数据存储,并在文档之间进行数据传递和交换的软件程序。(仓库体系结构)
4.虚拟机风格:解释器和基于规则的系统
5.调用/返回风格:主程序/子程序,面向对象风格,层次结构
层次结构:
1.客户机/服务器结构是一种分布式的系统模型,一个是客户机负责和用户交互,一个是服务器,为客户机提供服务。
两层cs是客户机和数据库服务器,两层的cs结构是胖客户机模型,server负责数据的管理,client实现应用逻辑和用户的交互,用户在客户端输入数据并发出请求,客户机上的业务处理程序接受请求进行处理,在需要数据存取的时候向服务器发出请求,服务器执行完毕后将结果返回业务处理程序,业务处理程序处理完后在表示层输出。客户端负担过重。
三层cs是客户机,应用服务器,和数据库服务器。明确分割
在这里插入图片描述

多层cs是客户机,web服务器,应用服务器,数据库服务器。

浏览器/服务器结构:bs是三层cs的实现
在这里插入图片描述
客户机服务器结构:将数据存取逻辑与用户界面绑定,减少编码量,用户界面更改比数据存取频繁,将二者绑定,一旦用户界面发生更改显然会影响数据存取逻辑部分,不满足高内聚低耦合的模块化设计原则。
因此提出一种结构使各个部分的修改不影响其他部分。提出mvc结构,
模型视图控制器结构,将数据模型,业务逻辑,用户界面分别放在独立的构件中,控制器决定视图和模型间的依赖关系,用户界面的修改不会对数据模型造成太大影响。

面向对象分析与设计

行为建模:

顺序图绘制:
在这里插入图片描述
同步消息需要等待消息的接收方回应消息
异步消息不用等
自反消息:一个对象将一个消息发送给他自己
消息的接收方实现方法
顺序图和用例图的联系:
顺序图的主要用途之一是用来为某个用例的泛化功能提供其所缺乏的解释,即把用例所要表达的要求转化为更进一步的精细表达,用例常常被细化为一个或多个顺序图

在这里插入图片描述
在这里插入图片描述
状态图:
在这里插入图片描述
加一表示对象不存在
状态变迁
在这里插入图片描述

solid

s:单一职责原则
即使在一个设备中可以实现所有的功能,我们却不能这样做,一个类有且仅有一个职责
o:开闭原则
在扩展性方面保持开放,在更改性方面封闭,不能修改,只能增加,抽象多态
在这里插入图片描述
将输出设备直接定义为与具体的某种输出设备的接口关联的形式,如果某个输出设备发生变化,就需要修改output类里面的代码。违背了开闭原则,
在这里插入图片描述
设计二将output类和具体设备之间定义一个抽象接口printer,当出现新的设备时,开法人员可以用他来实现printer这个抽象接口,不需要修改output类里面的源代码

l:Liskov替换原则
保证继承可以被正确使用的方法
为了满足liskov原则,设计时要求:
子类中方法的前置条件不能强于父类中相应方法的前置条件
子类中方法的后置条件不能弱于父类中方法的后置条件(宽入严出)
i:接口分离的原则
客户类不能被强迫依赖他们不需要的接口
不要弄胖接口,可以把接口拆分
在这里插入图片描述

d:依赖倒置原则
建立依赖关系时,应当尽量依赖抽象的接口而不是具体的类
在这里插入图片描述
在这里插入图片描述
button直接依赖lamp,当lamp受到改变时,button类会受到影响。button只能控制lamp对象
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值