第六章软件结构体系

软件结构体系的内容:

1、构件:代表着一组基本的构成要素
2、连接件:也就是构件之间的连接关系
3、约束:是作用于构件或者连接关系上的一些限制条件
4、质量:是系统的质量属性,如性能、可扩展性、可修改性、可重用性、安全性等。
5、物理分布:代表着构件连接之后形成的拓扑结构,描述了软件到硬件之间的影射。

软件结构体系发展的阶段:

体系结构、软件框架、设计模式三者的联系和区别:

体系结构:描述某一特定应用领域中系统组织的惯用模式,反映领域中众多系统所共有的结构和语义特性,例如:MVC
软件框架:由开发人员定制的应用系统骨架,整个或部分系统的可重用设计,由一组抽象构件和构件实例之间的交互方式组成。例如Django就是一个开放源代码的应运框架,由Python写成。
设计模式:描述软件系统设计过程中常见问题的一些解决方案,从大量的成功实践中总结出来的,且被广泛公认的实践和知识。
软件框架和体系结构的区别及关系:

软件框架和实际模式的区别及关系:

软件工程问题中的关键的角色:

用户:使用系统实现某种目标
软件系统:待开发的系统
环境:软件系统以外的任何事物

软件设计的原则(高内聚低耦合):

内聚性:是一个模块或子系统内部的依赖程度。分为七种:功能内聚、信息内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、巧合内聚。

耦合性:是两个模块或者子系统之间依赖关系的强度,程序结构各个模块之间相互关联的度量。模块之间的联系方式一般有7中:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。

软件体系结构常见的风格:

可以根据文字描述判断出风格的种类即可。
**
管道/过滤器风格:把系统任务分成若干连续的处理步骤,这些步骤由通过系统的数据流连接,一个步骤的输出是下一个步骤的输入。

主程序—子程序风格
:结构化程序设计的一种典型风格,从功能的观点设计系统,逐步分解和细化,形成整个系统的体系结构。

面向对象风格
:系统被看作是对象的集合,每个对象都有一个它自己的功能集合,数据及作用在数据上的操作被封装成抽象数据类型,只通过接口与外界交互,内部的设计决策则被封装起来。
**
层次结构风格----客户机/服务器体系结构:一种分布式系统模型
服务器:为客户机提供服务
客户机:负责与用户的交互 类似于网络编程交互的情景。

层次结构----浏览器/服务器结构


层次结构----模型/视图/控制器:(MVC)
**
基于事件的隐式调用风格:将应用看成是一个构件集合,每个构件直至发生对它有影响的事件时才有所动作
**
仓库风格:以数据为中心,适合于数据由一个模块产生而由其他模块使用的情形

第七章面向对象设计

面向对象的设计和分析中的三种类:

1、实体类:对应系统需求中的每个实体,它们通常需要保存在永久的存储体中,一般使用数据库表和文件来记录,实体类包括存储和传递数据的类,也包括操作数据的类
2、控制类:用于体现应用程序的执行逻辑,提供相应的业务操作,将控制类抽象出来可以降低界面和数据库之间的耦合度;
3、边界类:用于对外部用户与系统之间的交互对象进行抽象。主要包括界面类。

什么是领域模型:

在面向对象分析和设计的初级阶段,通常先识别出实体类,绘制初始类图,此时的类图称为领域模型,包括实体类和它们之间的相互关系。

第八章编写高质量代码

程序复杂度怎么计算(重点是第二种,第二种有三种小方法):

基本思想:程序复杂性主要取决于程序控制流的复杂性,单一的顺序结构最简单,选择和循环结构构成的环路越多,程序越复杂。
实质:度量程序拓扑结构的复杂性程序图:把程序看成是有一个入口、一个出口的有向图程序图的
节点:每个语句、一个顺序流程的程序代码段、程序流程图中的每个处理符号程序图的
有向弧:程序中的流程控制、程序流程图中连接不同处理符号的、带箭头的线段
强连通图(Strongly Connected Graph):是指一个有向图(Directed Graph)中任意两点v1、v2间存在v1到v2的路径(path)及v2到v1的路径的图。
三种方法:如果程序图中每个节点都可以由入口节点到达,则图中环的个数 = 环路复杂度
如果程序图是强连通图,则计算环路数V(G)的方法 方法一:V(G) = e–n + p(e: 弧数,n: 节点数,p: 分离部分的数目,V(G)有向图G中的环数) 方法二:包括强连通域在内的环路数 方法三:判定节点数 + 1
V(G)与程序复杂性呈正比关系 一般一个模块V(G) ≤ 10

第九章测试驱动的实现

软件测试的类型

1)从测试对象角度①单元测试 ②集成测试③功能测试 ④性能测试 ⑤安装测试2)测试技术角度①黑盒测试(功能测试)②白盒测试(结构测试)
3)是否运行程序角度①静态测试 ②动态测试
4)执行测试的方式①手工测试 ②自动化测试

白盒测试:

在下一次更新中详写。

自己会设计测试用例:路径覆盖:

在下一次更新中详写

软件测试的几个阶段:(每个阶段的名称作用测试的对象)

1、单元测试:对软件中的最小可测试单元进行检查和验证 对象是单元。
2、集成测试:在单元测试的基础上,将所有模块按照总体设计的要求组装成为子系统或系统进行的测试 对象是系统或者子系统
3、确认测试:在开发过程中或结束时评估系统或组成部分的过程,目的是判断系统是否满足规定的要求。对象是系统
4、系统测试:检测软件系统运行时与其他相关要素的协调工作情况是否满足要求。对象是系统。

武汉理工大学《软件工程》复习总括三相关推荐

  1. 「武汉理工大学 软件工程复习」第一章 | 软件工程概述

    目录 第一章 | 软件工程概述 [软件的特性] [软件危机] [软件工程] [软件开发基本策略(要素)] [软件工程基本原理] [单元测试题] 选择题 判断题 第一章 | 软件工程概述 [软件的特性] ...

  2. 「武汉理工大学 软件工程复习」第四章 | 面向对象 UML建模

    目录 [对象.属性.方法] [面向对象分析与设计] 专有名字的缩写 面向对象的分析 OOA 面向对象的设计 OOD UML介绍 [面向对象设计原则] SOLID原则 OO设计时需要注意的一些问题 CR ...

  3. 计算机网络教学重点突破,武汉理工大学计算机网络复习重点教学内容(34页)-原创力文档...

    武汉理工大学计算机网络复习重点 精品文档 精品文档 收集于网络,如有侵权请联系管理员删除 收集于网络,如有侵权请联系管理员删除 精品文档 收集于网络,如有侵权请联系管理员删除 第二章 1.数字信号与模 ...

  4. 武汉理工大学 操作系统复习

    第一章 1. 操作系统的地位:紧贴硬件之上,并在所有其他软件之下.提供其他软件的支撑环境,是计算机资源的管理者 2. 定义:是管理和控制计算机系统中各种硬件和软件资源.合理地组织计算机工作流程的系统软 ...

  5. 【武汉理工大学】软件工程总复习 知识点整合

    「武汉理工大学 软件工程复习」第一章 | 软件工程概述_Graski的博客-CSDN博客 [ 主要考点 ] 软件特性.软件危机.软件工程基本目标(创建高质量的软件.运行正确的软件.足够好的软件).软件 ...

  6. 武汉理工大学计算机网,武汉理工大学计算机基础综合实验

    [实例简介] 武汉理工大学软件工程专业计算机基础综合实验(c实验),计费管理系统.基本功能加部分扩展功能实现,经过验收合格. [实例截图] [核心代码] 计算机基础综合实验 └── AMS ├── A ...

  7. 武汉大学 计算机软件工程 张宇,2021年武汉理工大学计算机技术考研成功经验分享...

    很开心今年能被武汉理工大学计算机科学与技术学院录取为计算机技术的研究生.在此为大家分享一些考研经验,希望能帮助到后来的考研人. 我的本科是武汉某二本院校计算机科学与技术专业.因为我是武汉人,所以我是比 ...

  8. 2021届武汉理工大学计算机技术/软件工程考研成功经验分享

    离上岸也差不多半年了,其实一直都想系统写一下自己考研上岸的这一段经历的,一直因为拖延症的缘故没有写,难得自己最近有时间和心情,就趁这个劲头再回忆一下那段难忘的时光吧. 1.个人基本情况 本科是武汉理工 ...

  9. 武汉理工大学 大数据架构与模式期末复习

    武汉理工大学 大数据架构与模式期末复习 在发现学长学姐们上一届是大作业结课而我们是考试结课之后整理复习的结果,可能不会很全,感觉最后老师稍微划知识点的时候没有为难我们(),总之大体是这么些考试内容,也 ...

最新文章

  1. linux安装mysql php_Linux 安装mysql和php
  2. EMC NetWorker备份oracle安装配置指南
  3. 【NOIP模拟】T1 发电机(递推逆元+期望)
  4. 完成简单的四则运算(包含小括号)(栈)
  5. 小程序组件库开发之抽奖游戏组件
  6. 【Nacos】Nacos MySQL 配置 启动报错 ould not create connection to database server. Attempted reconnect 3 time
  7. mysql 性能 索引怎么用_MySQL索引使用方法和性能優化
  8. NPOI导出Excel2007-xlsx
  9. python倒三角形_python写个三角形的问题
  10. 20 年前,微软怎样改变了我们鼠标的使用方式?| 极客头条
  11. MTK:socket通信
  12. Linux下 C++遍历目录文件
  13. python解决一些错误换行问题
  14. 打印图片显示选择传真调制器或服务器,选择打印时为什么显示发送传真
  15. Type of the default value for 'songs' prop must be a function
  16. 穿越时空的爱恋-Z80 CPU的前世今生
  17. 软件开发公司怎么选择比较好?-链环科技
  18. 帆软(FineReport)报表学习——一个简单的报表
  19. Godot Engine:将Sprite和刚体保持同一轴心
  20. linux中mv、cp、rm分别是什么意思

热门文章

  1. 当外包遇上半路出家:我是非科班程序员
  2. matlab设置固定的窗宽窗位,【经验谈】如何设定窗宽窗位,附正常人体组织CT值...
  3. 粗粒度(Coarse-grained)vs细粒度(fine-grained)
  4. 电信业务平台融合的探讨
  5. SuperMap iClient3D for WebGL教程(特效)- 聚光源
  6. linux用rpm包装ftp,linux以rpm方式安装ftp软件
  7. Python 进阶 - 元组解包
  8. excel打不开是什么原因_网页打不开是什么原因
  9. 马尔科夫链-转移概率
  10. 辽宁旅游记:浪漫的大连