络安全
零. 试题解析
1.分数分配
删去。。。。
2.IP分类复习
再筛选掉特殊的地址,就有如下的范围
P地址根据 络 和主机 来分,分为A、B、C三类及特殊地址D、E。 全0和全1的都保留不用。
A类:(1.0.0.0-126.255.255.255)(默认子 掩码:255.0.0.0或 0xFF000000)第一个字节为 络 ,后三个字节为主机 。该类IP地址的最前面为“0”,所以地址的 络 取值于1~126之间。一般用于大型 络。
B类:(128.0.0.0-191.255.255.255)(默认子 掩码:255.255.0.0或0xFFFF0000)前两个字节为 络 ,后两个字节为主机 。该类IP地址的最前面为“10”,所以地址的 络 取值于128~191之间。一般用于中等规模 络。
C类:(192.0.0.0-223.255.255.255)(子 掩码:255.255.255.0或 0xFFFFFF00)前三个字节为 络 ,最后一个字节为主机 。该类IP地址的最前面为“110”,所以地址的 络 取值于192~223之间。一般用于小型 络。
D类:是多播地址。该类IP地址的最前面为“1110”,所以地址的 络 取值于224~239之间。一般用于多路广播用户[1] 。
E类:是保留地址。该类IP地址的最前面为“1111”,所以地址的 络 取值于240~255之间。
按照文中说的,A类地址范围应该是,但有两个特殊地址段,和(也就是和),分别代表主机 络地址和环回地址。所以最后只剩下,在这个段里面还有两段特殊地址,其中一段是(也就是),就是作为私 地址段使用的。去掉这些保留地址,其他的地址就是可以正常提供互联 服务的公 IP地址了。
3.端口扫描原理
端口扫描技术的原理: 攻击者通过系统调用connect(),向目标机器的各个端口发送连接的请求,根据返回的响应信息,判断端口开放情况
4.黑客攻击五步骤
黑客攻击的5个步骤:
- 信息收集: 络信息,系统信息,用户信息
- 权限获取:获取目标系统的读/写和执行权限
- 安装后门:以更方便,更加隐蔽的方式对目标系统进行操控
- 扩大影响:目标系统为跳板,对目标所属 络的其他主机进行攻击,以最大程度扩大攻击效果
- 清楚痕迹:清楚攻击痕迹,以尽可能长久地对目标进行控制,防止被识别和被追踪
5.IDS组成
IDS的系统组成:
IETF将一个入侵检测系统分为四个组件:
事件产生器(Event generators),它的目的是从整个计算环境中获得事件,并向系统的其他部分提供此事件。
事件分析器(Event analyzers),它经过分析得到数据,并产生分析结果。
响应单元(Response units ),它是对分析结果作出反应的功能单元,它可以作出切断连接、改变文件属性等强烈反应,也可以只是简单的 警。
络安全发展的3个阶段:
2.防范
DNSSEC防范DNS欺骗
防火墙和杀毒软件抵御ARP欺骗
使用HTTPS抵御HTTP中间人攻击
七. 防火墙
安全协议与标准
零. 概述
1月7 :19:00-20:45,闭卷考试
5个题型,每个20分
- 填空
- 判断
- 计算(CRT 表格法;通过计算 mod p, mod q 的雅克比符 ,判断想是否为 mod N 二次剩余;计算 y mod N 的两组二次根;利用二次根分解 N)【对应A,B卷的四道计算题和作业】
- 协议(正确性、安全性)分析: 能够对给出的协议进行分析
- 协议设计:根据要求,给出协议过程描述(示意图+文字描述)【比特或,比特与安全计算】
一. 计算题
1.二次根
4.题目解析
1.4.挑战应答协议
1.4.1.基于MAC
2.密钥建立协议
2.1.Merkle 谜题的原理
Merkle’s Puzzles能够做到**“拿到所有通信内容也找不出双方交换的密钥”**
-
Alice生成 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q43V3k7O-1612510515126)(https://www.zhihu.com/equationex=N)] 个可用的会话密钥, [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KCldRdmN-1612510515128)(https://www.zhihu.com/equationex=%7Bsk%7D_1%2C+%7Bsk%7D_2%2C+%5Ccdots%2C+%7Bsk%7D_N)] ,以及 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jMdICGEL-1612510515130)(https://www.zhihu.com/equationex=N)] 个随机生成的序列 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rxAIBWaa-1612510515133)(https://www.zhihu.com/equationex=n_1%2C+n_2%2C+…%2C+n_N)],每个序列 与会话密钥一一对应。
-
Alice将每对会话密钥和序列 打包成 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KhctIDqN-1612510515137)(https://www.zhihu.com/equationex=N)] 个谜题(puzzle),令每个谜题 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zjZHgfeQ-1612510515139)(https://www.zhihu.com/equationex=P_i)] 具有如下特征:
-
- 解决谜题 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hY4NCLJI-1612510515142)(https://www.zhihu.com/equationex=P_i)] 需要一定的计算量,比如每道谜题平均需要花1小时才能解决。
- 解决谜题 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aNXP7UzM-1612510515145)(https://www.zhihu.com/equationex=P_i)] 后,可以得到两个值:一个是会话密钥 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-weA0yQlI-1612510515148)(https://www.zhihu.com/equationex=sk_i)] ,另一个是序列 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oda02PV5-1612510515152)(https://www.zhihu.com/equationex=n_i)]
-
Alice将这些谜题发送给Bob,Bob随机选择一个谜题 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KbNEo7ed-1612510515155)(https://www.zhihu.com/equationex=P_s)] 加以解决,并发回相应的序列 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l1y5MHx1-1612510515160)(https://www.zhihu.com/equationex=n_s)]
-
Alice根据Bob传回的序列 ,确定通信双方接下来将要使用的会话密钥 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W7yG7gVx-1612510515162)(https://www.zhihu.com/equationex=%7Bsk%7D_s)]
Ralph Merkle没有限定过协议中的谜题到底应该以何种方式生成,一个比较简单的方法是利用对称式加密算法。假定这个算法有64位的加密强度,我们可以用一枚随机生成的密钥将 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5IXx3k0Y-1612510515164)(https://www.zhihu.com/equationex=sk_i)] 与 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JRqNGCRL-1612510515166)(https://www.zhihu.com/equationex=n_i)] 加密,然后当场销毁这枚随机密钥。这样一来,想要解密这道谜题,就需要进行 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cmHXCfxE-1612510515169)(https://www.zhihu.com/equationex=2%5E%7B64%7D)] 次计算,满足了Merkle’s Puzzles所需的条件。
在这个交换过程中,Bob只需要解决一个谜题,Alice只需要进行一次查表,两名合法用户可以非常高效的完成密钥交换。而攻击者Eve,虽然成功窃听到所有的谜题,以及Bob传回的序列 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5oILUqNk-1612510515171)(https://www.zhihu.com/equationex=n_s)] , 然而为了从谜题的汪洋大海当中找到对应的会话密钥 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ljOboWQ3-1612510515174)(https://www.zhihu.com/equationex=sk_s)],Eve仍然需要解决平均 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E48zPxei-1612510515176)(https://www.zhihu.com/equationex=%5Csum_%7Bi%3D1%7D%5EN+%5Cfrac%7Bi%7D%7BN%7D+%3D+%5Cfrac%7BN%2B1%7D%7B2%7D)] 个谜题。
2.2.单向认证密钥建立协议
Diffle-Hellman协议(DH算法无法避免中间人攻击)
协商生成公钥S(由计算得到),私钥A,B(由Ali,Bob自己生成)
一个数独引发的惨案:零知识证明(Zero-Knowledge Proof)
4.OT(茫然传输协议)
茫然传输(oblivious transfer)是一个密码学协议,在这个协议中,消息发送者从一些待发送的消息中发送一条给接收者,但事后对发送了哪一条消息仍然oblivious(不知道),这个协议也叫茫然传输协议
(判断题有考到过,需注意)
1981由Michael O.Rabin提出第一种形式的茫然传输
“二择一”茫然传输协议(1 out 2 oblivious transfer)由 Shimon Even, Oded Goldreich, 和Abraham Lempel 在1985年提出
-
发送者Alice生成两对rsa公私钥,并将两个公钥puk0、puk1发送给接受者Bob。
-
Bob生成一个随机数,并用收到的两个公钥之一加密随机数(用哪个秘钥取决于想获取哪条数据,例如如果想要得到消息M0 就用puk0加密随机数,如果想要得到M1就用puk1加密随机数),并将密文结果发送给Alice。
-
Alice用自己的两个私钥分别解密收到随机数密文,并得到两个解密结果k0,k1,并将两个结果分别与要发送的两条信息进行异或(k0异或M0,k1异或M1),并将两个结果e0,e1发给Bob。
- 这里需要注意一个知识点,异或的性质,0^0=0, 1^1=0 ; 0^1=1 ,所以0^k=k
- 假设随机数Bob挑选的是k0,那么k0^k0^M0=M0
-
Bob用自己的真实随机数与收到的e0、e1分别做异或操作,得到的两个结果中只有一条为真实数据,另外一条为随机数。
什么是不经意传输/p>
物联 概论
零. 题型
填空题(10)
判断并改错(10)
单选题(10)
简答题(30)
论述题(40)
一. 简答题
1.无线传感器工作方式
- 大量的传感器节点获取探测数据,并通过彼此间的相互合作将采集到的数据传送到 关,由 关接入到主干 络将数据传送到数据中心。
- 传感器 络实现了数据采集、数据处理和数据传输三种功能。
2.大数据的4V特征
- Volume(大量):数据体量巨大。从TB级别,跃升到PB级别;
- Variety(多样):数据类型繁多。 络日志、视频、图片、传感器数据、地理位置信息等。
- Velocity(高速) :处理速度快,1秒定律,可从各种类型的数据中快速获得高价值的信息,这是和传统的数据挖掘技术有着本质的不同。
- Value(价值) :合理利用低密度价值的数据并对其进行正确、准确的分析,将会带来很高的价值回 。
- Veracity(准确) :数据处理结果要保证一定的准确性。
3.以GPS为例简述移动终端
- GPS的组成:空间部分,地面控制部分和用户终端
- 移动互联 、智能手机与GPS技术的应用带动了基于位置的服务的发展。基于位置的服务也叫做移动定位服务(MPS)。
- 物联 应用高度依赖位置信息与位置服务,位置服务将成为物联 重要的研究内容与新的产业增长点。
- GPS用户终端设备就是GPS接收机。为准确定位,GPS接收机通过接收卫星发送的信 ,从解调出的卫星轨道参数获取精确的时钟信息,通过判断卫星信 从发送到接收的传播时间来测算出观测点到卫星的距离,然后根据到不同卫星的距离来计算出自己的位置。
4.互联 IPV6
- 互联 面临着地址匮乏的危机,解决的办法是从IPv4协议向IPv6协议过渡。
- IPv6的地址长度定为128位,因此IPv6可以提供多达超过2128(3.4×1038)个地址。今后所有的智能电话、信息家电与物联 节点都可以获得IP地址,连入物联 的设备数量将不受限制。
- IPv6协议的主要特征有:巨大地地址空间、新的协议格式、有效的路由结构、自动地址配置、内置安全机制以及更好的服务质量。
- IPv6协议能够适应物联 智能工业、智能农业、智能交通、智能医疗、智能物流、智能家居等领域的应用,IPv6协议将成为物联 核心协议之一。
5. 络接入技术的概念和分类
- 接入技术关系到如何将成千上万住宅、办公室、企业用户计算机接入互联 ,涉及到用户能得到的 络服务类型、应用水平、服务质量、资费等切身问题,同时也是城市 络基础设施建设中需要解决的重要问题。
-
物联 从架构上面可以分为感知层、 络层和应用层
- 感知层:负责信息采集和物物之间的信息传输,信息采集的技术包括传感器、条码和二维码、 RFID射频技术、音视频等多媒体信息,信息传输包括远近距离数据传输技术、自组织组 技术、协同信息处理技术、信息采集中间件技术等传感器 络。感知层是实现物联 全面感知的核心能力,是物联 中包括关键技术、标准化方面、产业化方面亟待突破的部分,关键在于具备更精确、更全面的感知能力,并解决低功耗、小型化和低成本的问题。**
- 络层:是利用无线和有线 络对采集的数据进行编码、认证和传输,广泛覆盖的移动通信 络是实现物联 的基础设施,是物联 三层中标准化程度昀高、产业化能力昀强、昀成熟的部分,关键在于为物联 应用特征进行优化和改进,形成协同感知的 络。
- 应用层:提供丰富的基于物联 的应用,是物联 发展的根本目标,将物联 技术与行业信息化需求相结合,实现广泛智能化应用的解决方案集,关键在于行业融合、信息资源的开发利用、低成本高质量的解决方案、信息安全的保障以及有效的商业模式的开发。
各个层次所用的公共技术包括对象名字服务技术, 络管理技术,服务质量保证技术,信息安全技术。
14.辅助GPS定位技术
- 辅助GPS定位技术(Assisted GPS, A-GPS)技术融合了GPS高精度定位与移动通信 高密度覆盖的特点。
- A-GPS的工作原理是:在用户手机没有捕捉到GPS卫星信 前,首先将手机所处小区基站的地址通过移动通信 传输到A-GPS系统中的位置服务器
- 位置服务器根据手机的当前位置将与该位置相关的GPS辅助信息传送到手机,手机根据这些卫星辅助信息,如方位角、俯角和仰角等数据就能够立即寻找到GPS卫星信
- 手机接收到GPS初始信 ,计算出手机到卫星的伪距,然后将这个伪距数据传送回位置服务器。这里的伪距指受到各种GPS误差影响的距离数据
- 位置服务器根据传送的GPS伪距信息,结合其它的定位方式计算出手机更精确和动态的位置数据。位置服务器实时地将该用户手机的位置信息传送到位置服务平台,使手机用户可以获得及时和高精度的服务
15.划分计算机 络的范围
- 广域 又称远程 ,覆盖面广,形成国际性的远程计算机 络。其通信子 利用公用分组交换 、卫星通信 或无线分组交换 ,将分布在不同地区的计算机系统、城域 、局域 互联起来,实现资源共享的目的。
- 城域 是以IP协议为基础,通过计算机 络、广播电视 、电信 的三 融合,形成覆盖城市区域的 络通信平台,提供高质量的语音、数据、图像、视频等信 的传输与服务。
- 局域 覆盖有限的地理范围,它适用于机关、校园、工厂、机房等有限范围内的计算机、服务器与存储设备连 的需求。可以分为有线局域 (如Ethernet)与无线局域 (如Wi-Fi)等两类。
- 个人区域 络PAN主要是用无线通信技术实现联 设备之间的通信,因此就出现了无线个人区域 络(WPAN)的概念。
- 智能医疗应用系统需要将人体携带的传感器或移植到人体内的生物传感器结点组成人体区域 ,物联 智能医疗的应用对 络提出了新的需求,促进了人体区域 的发展。
16.物联 的关键技术
- 自动感知技术
- RFID标签选型与读写器设计;
- RFID标签编码体系与标准研究;
- 传感器选型与传感器节点设计;
- 传感 的设计与实现;
- 中间件与数据处理软件的设计与实现;
- 嵌入式技术
- 专用芯片设计制造;
- 嵌入式硬件结构设计与实现;
- 嵌入式操作系统研究;
- 嵌入式应用软件编程技术;
- 微机电(MEMS)技术与应用;
- 移动通信技术
- 无线通信技术的选型;
- 无线通信 络系统设计;
- M2M协议与应用;
- 计算机 络技术
- 络技术选型;
- 络结构设计;
- 异构 络互联;
- 异构 络管理;
- 智能数据处理技术
- 数据格式与标准化;
- 信息融合技术;
- 中间件与应用软件编程技术;
- 海量数据存储与搜索技术;
- 数据挖掘与知识发现算法;
- 智能控制技术
- 环境感知技术;
- 规划与决策算法;
- 智能控制方法;
- 位置服务技术
- 位置信息的获取方法;
- GPS、GIS与 络地图应用技术;
- 位置服务方法;
- 信息安全技术
- 感知层安全;
- 络层安全;
- 应用层安全;
- 隐私保护技术与法律法规;
二.课后作业
1.什么是云计算么是大数据么是人工智能/h3>
- 云计算是一种动态扩展的计算模式,通过 络将虚拟化的资源作为服务提供;通常包含infrastructure as a service(IaaS), platform as a service(PaaS), software as a service(SaaS)。
- 大数据指的是所涉及的数据量规模巨大到无法通过人工,在合理时间内达到截取、管理、处理、并整理成为人类所能解读的信息。
- 人工智能(英语:artificial intelligence,缩写为AI)亦称智械、机器智能,指由人制造出来的机器所表现出来的智能。通常人工智能是指通过普通计算机程序来呈现人类智能的技术。
2.论述三者之间的联系
云计算与大数据之间的联系
- 大数据必然无法用单台的计算机进行处理,必须采用云端分布式架构对海量数据进行分布式存储、分布式处理。
- 云计算为大数据资源、大数据挖掘提供技术设施(软硬科学技术)。
- 大数据挖掘为云计算建设和运作提供决策。
- 云计算与大数据的关系是静与动的关系,前者强调的是计算、存储能力;大数据需要强大的数据处理能力(数据获取、清洁、转换、存储、分析、统计等),其实就是强大的计算能力和数据存储能力。
- 云计算为大数据提供了可以弹性扩展,相对便宜的存储空间和计算资源,使得中小企业也可以像亚马逊一样通过云计算来完成大数据分析。
从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式计算架构。它的特色在于对海量数据的挖掘,但它必须依托云计算的分布式处理、分布式数据库、云存储和虚拟化技术。
云计算与人工智能之间的联系
大数据与人工智能之间的联系
与以前的众多数据分析技术相比,人工智能技术立足于神经 络,同时发展出多层神经 络,从而可以进行深度机器学习。与以外传统的算法相比,这一算法并无多余的假设前提(比如线性建模需要假设数据之间的线性关系),而是完全利用输入的数据自行模拟和构建相应的模型结构。这一算法特点决定了它是更为灵活的、且可以根据不同的训练数据而拥有自优化的能力。
三者融合之间的联系
云计算是基础,没有云计算,无法实现大数据存储与计算;大数据是应用,没有大数据,云计算就缺少了目标与价值
两者都需要人工智能的参与,人工智能是互联 信息系统有序化后的一种商业应用。这才是:云计算与大数据真正的出口!
而商业智能中的智能从何而来方法之一就是通过大数据这个工具来对大量数据进行处理,从而得出一些关联性的结论,从这些关联性中来获得答案,因此,大数据是商业智能的一种工具。 而大数据要分析大量的数据,这对于系统的计算能力和处理能力要求是非常高的,传统的方式是需要一个超级计算机来进行处理,但这样就导致了计算能力空的时候闲着、忙的时候又不够的问题, 而云计算的弹性扩展和水平扩展的模式很适合计算能力按需调用,因此,云计算为大数据提供了计算能力和资源等物质基础。
3.分别举例说明三种新技术的典型应用
大数据:基于客户行为分析的产品推荐,基于客户评价的产品设计(客户的评价既有对产品满意度、物流效率、客户服务质量等方面的建设性改进意见,也有客户对产品的外观、功能、性能等方面的体验和期望,有效采集和分析客户评价数据,将有助于企业改进产品、运营和服务,有助于企业建立以客户为中心的产品创新。),基于数据分析的广告投放
人工智能:语音识别,人脸识别,决策管理(智能机器能够向AI系统引入规则及逻辑,因此你可以利用它们进行初始化设置/训练,以及持续的维护和优化。决策管理在多类企业应用中得以实现,它能协助或者进行自动决策,实现企业收益最大化。)
云计算:在线办公,个人 盘(与我们日常已经在使用的 盘不同,直接在云计算服务商处购买的个人 盘服务,具有极强的私密性和安全性。目前我们在使用的 盘就像商场的存包处,不仅你可以用密码纸打开,商场也有要是或者其他技术打开来看看你放了什么东西在里面。个人 盘就像是买一个远程的保险箱,只有你自己能打开他,云服务商连钥匙带箱子一起给你,他也没有打开保险箱的权限。这对那些需要存储高机密数据的用户来说是十分重要的。)
软件工程
第1章 软件工程学概述
软件危机定义:
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题
软件危机典型表现:
- 对软件开发成本和进度的估计常常很不准确
- 用户对“已完成的”软件系统不满意的现象经常发生
- 软件产品的质量往往靠不住
- 软件常常是不可维护的
- 软件通常没有适当的文档资料
- 软件成本在计算机系统总成本中所占的比例逐年上升
- 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势
产生软件危机的原因:
- 软件本身的特点
- 软件缺乏可见行
- 开发时期引入但在测试阶段没有检测出来的错误
- 规模庞大
- 软件开发和维护方法不正确
- 对用户要求没有完整准确的认识就开始编写代码
- 程序只是完整软件产品的一个组成部分
- 清楚只重视程序而忽视软件配置其余成分的糊涂观念
- 轻视维护
消除软件危机的途径:
- 对计算机软件有正确的认识,消除“软件就是程序”的错误观念
- 充分认识软件开发是一种组织良好,管理严密,各人类协同配合,共同完成的工程项目
- 推广使用在实践中总结出来的开发软件的成功技术和方法
- 应用开发和使用更好的软件工具
本质特征:
- 软件工程关注于大型程序的构造
- 软件工程的中心课题是控制复杂性
- 软件经常变化
- 开发软件的效率非常重要
- 和谐地合作是开发软件的关键
- 软件必须有效地支持它的用户
- 在软件工程领域中通常由具有一种文化背景的人替另一种文化背景的人创造产品
基本原理:
- 用分阶段的生命周期计划严格管理
- 坚持进行阶段评审
- 实行严格的产品控制
- 采用现代程序设计技术
- 结果应能清楚的审查
- 开发小组人员应该少而精
- 承认不断改进软件工程实践的必要性
三要素:
方法,工具,过程
软件生命周期:
- 软件定义
- 问题定义
- 可行性研究
- 需求分析
- 软件开发(设计,实现)
- 总体设计
- 详细设计
- 编码和单元测试
- 综合测试
- 运行维护
- 改正性
- 适应性
- 完善性
- 预防性
软件过程:
软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤
瀑布模型的特点:
- 阶段间具有顺序性和依赖性
- 推迟实现的观点
- 质量保证的观点
瀑布模型的优点:
- 强迫开发人员采用规范的方法
- 严格的规定每个阶段必须提交文档
- 要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证
瀑布模型的缺点:
瀑布模型是由文档驱动的
快速原型模型:
定义:
快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集
特点:
本质是“快速”,开发人员应该尽可能快的建造出原型系统。
原型的用途是获知用户的真正需求。
迅速构建原型然后根据用户意见迅速修改原型
优点:
软件产品的开发基本是线性顺序进行的
增量模型:
定义:使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计,编码,集成和测试。第一个增量构件往往实现软件的基本需求,提供最核心的功能。
优点:
- 较短时间内向用户提交可完成部分工作的产品
- 逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品
缺点:
- 新增量集成,必须不破坏原来已经开发出的产品
- 软件体系结构必须是开放的
第2章 可行性研究
可行性研究的目的:
用最小的代价在尽可能短的时间内确定问题是否能够解决
可行性的类型:
技术,经济,操作,法律, 会效益
步骤:
- 复查系统规模和目标
- 研究目前正在使用的系统
- 导出新系统的高层逻辑模型
- 进一步定义问题
- 导出和评价供选择的解法
- 推荐行动方针
- 草拟开发计划
- 书写文档提交审查数据字典
数据字典的元素:
数据流,数据流分量,数据存储,处理
数据字典的方法:
顺序,选择,重复,可选
P54第5题
第3章 需求分析
需求分析定义:
需求分析是软件定义时期的最后一个阶段,它的基本认识是准确回答系统必须做什么这个问题
需求分析的意义
- 为了开发出真正满足用户需求的软件产品,首先需要知道用户的需求
- 对软件需求的的深入理解是软件开发工作获得成功的前提条件
- 为开发者带来便捷
需求分析的任务:
功能需求,性能需求,可靠性和可用性需求,出错处理需求,接口需求,约束,逆向需求,将来可能提出的要求
与用户沟通获取需求的方法:
访谈,面向数据流自顶向下求精,简易的应用规格说明技术,快速建立软件原型
数据模型(实体-联系图),功能模型(数据流图),行为模型(状态转换图)
状态的定义:
状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式
状态类型:
初始(1),终态(0~多个),中间状态
层次方框图:
用树形结构的一系列多层次的矩形框描绘数据的层次结构,树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不可再分割的元素)
验证软件需求&方法:
- 一致性。所有需求必须是一致的,任何一条需求不能和其他需求相互矛盾。
- 自然语言书写——人工技术审查验证软件系统规格说明书的正确性
- 形式化需求陈述语言书写——软件工具
- 现实性。指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。
- 分析员分析现有软,硬件技术实现目标系统的可能性,必要时采用仿真或性能模拟技术,辅助分析现实性
- 完整性。需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。
- 有效性。必须证明需求是正确有效的,确实能解决用户的问题。
第5章 总体设计
基本目标:
通过这个阶段的工作将划分出组成系统的物理元素——程序,文件,数据库,人工过程和文档等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计;设计软件结构,也就是要确定系统的每个程序是由哪些模块组成的,以及这些模块相互间的关系。
两个主要阶段:
- 系统设计阶段,确定系统的具体实现方案
- 结构设计阶段,确定软件结构
设计过程:
设想供选择的方案,选取合理的方案,推荐最佳方案,功能分解,设计软件结构,设计数据库,制定测试计划,书写文档,审查和复审
设选供,分软数,测文审
模块及模块化概念:
- 模块是由边界元素限定的相邻程序元素,(边界元素例如{}),(函数,子程序,宏,对象,方法都是模块)
- 模块化就是把程序划分成独立命名且独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求
抽象:
抽出事物的本质特性而暂时不考虑它们的细节
逐步求精:
为了能集中解决主要问题而尽量推迟对问题细节的考虑
信息隐藏和局部化:
隐藏模块的实现细节——细节隐藏
模块独立:
- 耦合(对一个软件结构内不同模块之间互连程度的度量)
- 数据耦合(通过参数交换信息)
- 控制耦合(控制信息)
- 特征耦合(传递整个数据结构,但只需要其中的一部分数据)
- 公共环境耦合(两个或多个模块通过一个公共数据相互作用时,如全局变量)
- 内容耦合
- 内聚(标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展)
- 低内聚(偶然内聚,逻辑内聚,时间内聚)
- 中内聚(过程内聚,通信内聚)
- 高内聚(顺序内聚,功能内聚)
启发规则:
- 改进软件结构提高模块独立性
- 模块规则应该适中
- 深度 宽度 扇入和扇入都应当适当
- 深度表示软件结构中控制的层数(树高)
- 宽度是软件结构内同一层次上的模块总数的最大值(树宽)
- 扇出是一个模块直接控制(调用)的模块数目(出度)
- 扇入表明有多少个上级模块直接调用它(入度)
- 模块的作用域应该在控制域之内
- 力争降低模块接口的复杂程度
- 设计单入口单出口的模块
- 模块功能应该可以预测
面向数据流的设计方法:
变换流,事务流(P105)
第6章 详细设计
根本
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!