计算机软件

计算机软件

软件危机于网络工程

软件危机

开发软件需要的成本较高同时质量较低,1968年首次提出这个概念

软件危机产生的原因

1、对软件需求的重要性认识不够,不能够正确了解用户需求
2、软件是一种逻辑产品
3、问题复杂度较高,处理的效率下降

解决途径

1、以工程化的方式组织软件开发,以工程化设计的概念、原理、技术和方法来维护软件
2、四个方面:
a、软件开发技术
b、软件工程管理
c、软件开发方法
d、软件开发工具

信息系统开发方法

1、结构化声明周期

a、信息系统的生命周期
从信息系统的规划开始经过分析、设计、实施淘汰,再次根据需求设计的过程就是信息系统的生命周期。
b、软件开发瀑布模型
精益求精的自上向下分析和设计这个系统
c、结构化生命周期的分析和设计原则

2、原型法

首先开发出一个初步的实验模型,根据需求再次更改,适用于用户的需求不清晰,业务规划不明显的情况

3、面向对象方法

自底向上相结合的方法,以建立对象模型为基础,建立系统所用的数据结构

4、CASE软件工程方法

是一种半自动化的方法,可以全面支持规划每一个阶段的方法。

信息系统的开发与管理

1)系统规划:对应目前的阶段进行系统调查分析,进行可行性分析,完成系统的初步方案和项目开发计划。其中信息系统的规划和分析采用 自 顶 向 下 自顶向下 实现。而信息系统的设计和实现一般采用 自 低 向 上 自低向上 的方法实现
2)系统分析
a、需求分析:是信息系统最基础和最重要的阶段
b、数据流程图(DFD)和数据字典(DD):DFD使用直观的符号描述业务流程、信息流和数据要求的工具;DD是各类数据的定义和描述的集合,对于DFD中的数据项、数据结构、数据流、处理逻辑、数据存储、外部视图作出定义
c、需求分析的重点:在于处理数据,获得用户对信息处理、安全、完整性的需求、采用的是结构化分析方法(SA)自上而下的分析系统,同时以DFD和DD来表示数据处理关系
3)系统设计
a、系统设计的目标是:实现系统目标的数据结构、系统功能(也就是解决系统怎么做的问题)
b、系统设计的原则:系统性、灵活性、可靠性、经济性
c、系统设计内容:
概念结构设计:将用户需求转化为用户概念模型的过程,按分层的局部应用需求,设计局部概念模式,合并消除冗余,局部概念模式成为全局模式
逻辑结构设计:E-R图向关系模式的转化,数据模式的优化,用户模式的设计、逻辑机构的设计报告
物理结构设计:程序结构的设计
4)系统实施
a、实现系统设计阶段提出的数据逻辑结构、存储结构和软件结构,按实施方案完成一个可实际运行的信息系统,交付用户使用
b、包含以下内容:
编写程序代码、数据载入和运行程序的调试
系统测试和试运行
系统测试:模块测试、系统测试、验收测试、单元测试
数据库的试运行:主要测试系统的性能指标。
5)系统运行和维护
1、系统运行和维护的内容:纠正性错误、适应性错误(不同系统环境配置可能不同)、完善性错误(系统功能的扩充和修改)
2、数据库维护
转储和恢复、安全控制、完整性控制、性能的监督、分析和改造、重组和重构
3、数据库管理员职责和组织
维护数据的完整性、维护数据库安全、确定数据库恢复策略、定期复制备份、监视数据库性能、确定数据库重组计划、必要时数据库重组、制定必要的规章制度并组织实施

软件测试与软件调试

编写程序代码、软件测试、软件调试均属于系统实施阶段

软件测试:

1、目标:解决程序中已知的问题
2、测试的基本点:尽量少测试,尽可能的多发现错误
3、模块测试/单元测试:某一功能的问题
4、系统测试/单元测试/组装测试:解决模块装配后出现的问题
5、验收测试/确认测试/有效性测试:检测系统功能是否达到指定目标,满足用户需求,必要由用户参与
6、测试顺序:模块测试 → \rightarrow 系统测试\rightarrow$验收测试

软件测试方法

1、黑:全不考虑程序内部的数据结构和逻辑通路,只考虑是否达到要求
a、等价类划分法
b、边界值分析法
c、因果图法
d、错误推断法
2、白:根据程序(模块)内部的结构和处理过程
a、语句覆盖
b、判定覆盖
c、条件覆盖
d、判定/条件覆盖
e、条件组合覆盖
3、灰:前面的两种同时进行
4、软件调试:debug重现问题、诊断缺陷、修复缺陷

软件质量检测

概述

啥是计算机软件

1.程序
程序执行过程
程序特点:完成的是某一确定的信息、使用的是某一语言来描述该任务、存储与计算机中
2.软件
软件是啥:就是功能完善的程序,还包括相关的文档、以及数据
3.软件的安装与卸载
比如电脑程序ps,就会有一个setup.exe的东西,双击即可,卸载有一个uninstail.exe的文件,
一样双击即可,但是很多的电脑程序还有.dll的扩展,以及向系统目录添加变量,比如配置Java虚拟机,数据库等等
程序安装过程:
a.将压缩的程序以及数据解压,还原成二进制文件
b.输入序列号,阅读使用条款(如果有的话)
c.确定安装路径
d.为软件提供相应权限
e.添加桌面图标(一般会添加)
计算机软件的特性
1.不可见性
2.适用性
3.依附性
4.复杂性
5.易复制性
6.不断演变性
7.有限责任
8.脆弱性
计算机软件分类
1.系统软件和应用软件 
A.系统软件:就是为了有效的使用计算机、给应用软件与运行提供支持以及给用户提供使用计算机提供便利的程序统称。
比如cmos中的基本输入输出系统,Linux,freebos
还包含程序设计语言处理系统、数据库管理系统、通信协议软件、以及类似磁盘清理的软件等
特征:与计算机硬件关系紧密,能够对硬件资源统一管理与协调、系统软件是基础性的,是应用软件运行的平台(有点基础设施及服务的的感觉)
B.应用软件(就是常说的APP):就是为了解决特定问题而开发的具体应用
分类:
a.通用软件:比如PPT、excel、word、chrome等等,可以大致分为文字处理软件、电子表格、演示软件、网页浏览软件、音视频播放软件、
通信与社交软件、个人信息管理软件、购物以及支付软件、游戏软件
b.定制软件:比如汽车厂的集成制造系统、酒店客房管理系统
2.商品软件和共享软件以及自由软件开源软件
商品软件:就是需要付费才会有license的软件
共享软件:按照这本书的定义就是买前免费试用的、具有版权保护的软件,但是可以免费试用一段时间,可以传播,但是不可以修改
自由软件:就是非版权的,在协议规定的范围类可以共享、修改其源代码。这里说一下GNU在开源社区的影响力很大

操作系统

就是为了同计算机“对话”提供一个人机接口

概述

作用
1.为计算机中的软件提供一个必要的支持和平台
2.为计算机的程序分配资源(比如内存、硬盘、屏幕显示)
3.为用户提供一个友善的人机交互画面
4.为程序开发提供一个高效率的平台(避免了开发人员直接接触硬件)
组成
1.引导程序
2.设备驱动程序
3.操作系统内核(kerne):程序调用接口、任务管理、存储管理、设备管理、文件管理、通信协议、安全管理等
4.程序库、应用框架(App framework)、应用程序接口(API)、图形用户界面(GUI)
现在的苹果、安卓(中间有给Linux)都是基于UNIX进行开发的,而windows是基于NT内核
启动过程

仅从宏观上说一下
一、第一阶段:BIOS
硬件自检(Power-On Self-Test):就是POST自检,以前的老主板会有蜂鸣器响应(如果有问题)
启动顺序:这个就是在BIOS中设定第一启动顺序,在“boot sequence”设定1st boot decice
二、第二阶段:主引导记录(Master boot record,缩写为MBR)
主引导记录的结构:就是主引导记录
读取分区表:
三、第三阶段:硬盘启动
情况A:卷引导记录(VBR):告诉计算机,操作系统分区中的位置。计算机就会加载操作系统了。
情况B:扩展分区和逻辑分区(Extended partition):用的少
情况C:启动管理器:Linux的启动管理器为grub、如果是windows和Linux双系统的话可能会用的
四、第四阶段:操作系统
以Linux系统为例,先载入/boot目录下面的kernel。内核加载成功后,第一个运行的程序是/sbin/init。
它根据配置文件(Debian系统是/etc/initab)产生init进程。这是Linux启动后的第一个进程,pid程 编号为1,其他进程都是它的后代。

多任务与处理器管理

啥是多任务处理

比如一边打游戏,一边听歌就是多任务处理的体现。CPU是将程序划分为多个时间片轮流执行,对人而言,感觉是连续的

Windows系统多任务处理

但是事实上,CPU是将程序划分为多个时间片轮流执行,在win中前台程序只有一个
程序的几种状态:
1.未运行状态(not running)
2.后台状态(foreground)
3.前台状态(background)

手机多任务处理
iOS:用户单击HOME时程序会跳转到后台挂起(就是暂停执行),同时如果挂起的程序影响下一程序运行,会终止部分挂起的程序
安卓:程序可以转入后台继续运行(无节制的增加)

存储管理(就是对内存进行管理)

存储任务管理
    用户区:存放正在执行程序的代码和相关数据
    操作系统区:存放系统内核以及相关数据
    内存分配方法:固定分区(效率低,任务数目受到限制)、可变分区(该方法的缺点是内存空间的使用效率较低)
    操作系统对于存储管理的任务:
    1.为每个任务分配并回收空间
    2.对内存空间保护
    3.提供内存空间共享
    4.对内存空间进行扩充,就是动态的满座不同任务对于内存的要求
虚拟存储技术
就是虚拟存储器(virtual memory,简称VM)
也就是关于页面,页表,缺页的相关概念,转本的话考的少,windows的虚拟内存就名为pagefile.sys的文件
作用:每个程序在各自独立的虚拟存储空间进行编程,因为这个虚拟内存一般为实际内存的2.5倍,所以可以
一定程度上忽略物理内存的限制

文件管理

文件及其属性
所谓文件就是存储在辅助存储器中的一组相关信息的集合
内别 文件类型 文件扩展名
当前版本: 可执行程序 exe(windows)、apk(安卓)、app(苹果)
应用程序扩展 .dll(windows)
数据 文本、文档 txt、doc、docx、pdf、ppt、pptx
声音 WAV、MID、VOC、MP3、AAC、FLAC、WMA
图像文件 BMP、JPG、GIF、TIF、WMF、PNG、RAW
视频文件 AUI、MPG、MP4、MOV、RMVB、MKV、FLC、FLI
网页文件 html、htm、mht、mhtml、xml、jsp、asp、php
文件目录(文件夹)
文件管理

设备管理

常用操作系统

算法同程序设计语言

文件管理

Windows和安卓系统概括和启动过程

编译和执行程序

算法及算法分析

移动通信互联网

移动通信

广义上来讲:信息的交流与传递就是通信,而线代通信就是使用电波或者光波技术
通信的基本概念:通信系统:信源、信宿、信道(比如说话的时候说话的人就是信源,传播介质空气就是信道,听到的人就是信宿)

1、有限通信:

介质类型 特点 用途
有线通信 双绞线(分为utp和STP) 成本较低,但是不可靠,容易受到高频电磁波的影响,同时不可靠,传输距离 有限 低成本的本地回路,比如局域网
有线通信 同轴电缆 传输的特性和屏蔽特性较好,可以用作长距离的传输,成本较高 固定的电话回路,中继线路
有线通信 光缆 传输的消耗较小,数据通信快,容量高,不易被窃听,但是建设费用高 远程干线,骨干网
无线通信 自由空间(微波、短波、超短波、中波) 建设成本低,容量大 卫星,广播电视,移动通信,计算机无线网

无线频段:
2.4GHZ5GHZ就是WIFI
13.56GHZ就是校园卡
890MHZ~960MHZ频段用于GSM通信
1800~2700MHZ用于4G手机

2、调制/解调技术

基带:就是未经调制的原始信号,本身是数字/模拟信号
调制技术:ASK/FSK/PSK/QAM

3、多路复用技术:

(大哥大)TDMA(时分多路复用)、(2G)(FDMA)频分多路复用)、(3G)CDMA(码分多址)、(4G)OFDMA(正交频分多址)

4、交换技术:

包交换(邮件)或者电路交换(打电话)
分组交换机和存储转发技术(ospf\ATM)
分组交换的好处:
a、线路的利用率高
b、数据通信可靠
c、比较灵活
分组交换应用多应用与广域网比如X.25,ATM,帧中继

5、移动通信组成主要

由自由移动的通信终端进行通信,比如手机通信就有基站完成:信号的调制解调、分合、编解码、射频转换、功率放大等由基站,移动电话交换中心和固定电话交换中心组成

6、移动通信的演进

GSM,CDMA ⇒ \Rightarrow GPRS,(也就是2.5G)CDMA1X ⇒ \Rightarrow LTE

网络制式 核心网 下行速率(体验值) 典型应用 说明
1G AMPS(移动) 公共电话网 不支持 模拟电话网 以淘汰
2G GSM(GPRS)、CDMA、CDMA1X(电信)、 公共电话网 484kps(56kps) 电话、短信、网页、电子邮件等 将会逐步关闭
3G TD-SCDMA(移动)、WCDMA(联通)、CDMAEvDO(电信) 电路交换网+IP分组交换 21M(440kps) 在2G的基础上添加了多媒体、网购、电子银行 同样会逐步关闭
4G TDD-LE(移动)、FDD-LTE(联通、电信) 全IP分组交换网 1G(10mbps) 现在主流的APP还有云计算、4K高清 语音用VOLTE也可能会切换到3G/2G
5G 5GNR(IMT-2020) 5GNR 全IP分组交换(软件定义网路、网络切片、边缘计算) 10GBPS(100MPS) 超清、广域物联网、远程医疗、自动驾驶、智慧城市

7、5G——第五代移动通信

特点:超高速度、超大容量、超低延时
标准:由IMT-2020在ITU(国际电联)领导下的由3GPP组织制定的
解决的问题:
1、海量的物联网通信
2、增强型移动宽带通信
3、超低可靠延迟通信
5G部分方案:
a、使用的频段比4G更高,频带更宽、可以同时传输更多的载波(载波聚合)
b、基站和终端可以部署更多的天线,也就是MIMO(多入多出)天线数16TR,32TR,64TR
c、以高性能的性能的信道编码方案LDPC和Polar,同时还有更好的调制技术256QAM,1024QAM
d、以基站的控制单元集中,还为基站边缘的用户提供计算和存储服务(就是边缘计算),不再是通过基站转接,而是通过直接手机对手机(D2D)
5G组网方案:
NSA(非独立组网):就是在4G的基础上改造的
SA(全功能组网)

本章的思考题:

1、啥是通信、通信系统组成
2、目前的主流通信介质的优缺点
3、调制和多路复用是啥?
4、光纤中信号的传输过程,光纤的特点
5、主流的交换机工作原理

计算机网络基础

计算机网络的组成和工作模式

1、 计算机网络分类
1、数据通信
2、资源共享
3、实现分布式信息处理
4、提高计算机系统的可靠性和可用性

分类
按照介质分类 有线网 无线网
使用性质 公用网 专用网
使用地域范围 局域网(LAN) 广域网(WAN) 城域网(MAN)

2、 计算机网络组成
a、终端(PC或者手机)
b、数据通信网:有双绞线、同轴电缆、光缆无线电波
c、网络通信协议:比如TCP/IP协议组ICMP,OSPF,VRRY
d、网络操作系统和网络应用软件
3、计算机网络工作模式
P2P(对等工作模型)、C/S(客户机/服务器模式)

局域网组成原理

特点:为某个组织拥有自建自营 的提供服务
1、局域网组成、MAC地址与数据帧
组成:
网络工作站:PC、手机、摄像头
网络服务器:
网络接口卡:
传输介质:双绞线、光缆、天线电波
网络互联设备:hub、router、switch、通信控制器
数据帧组成:

源计算机MAC 目标计算机MAC 控制地址 有效载荷(就是要传递的信息) 检验信息

2、 网卡(又称网络接口卡)
a、作用:由于网络中数据传输的速率不一定相同,因此需要一定的数据缓冲区,实现数据传输介质的物理连接和电信号匹配,负责数据的接收和发送、数据帧的封装和拆封。手机中的SoC芯片就是搞这个的。
b、还有哦!MAC地址是全球唯一的是一个48位的二进制整数,被写在MAC的ROM中
c、网卡的工作流程
也就是分帧发送
4、 常用局域网

访问控制方法 以太网 FDDI 令牌环网
拓扑类型 星型网 环状网 总线网 混合网

a、共享式以太网
也就是总线型,有中间的集线器负责,所有的带宽共享
b、交换式以太网
星型网由中心的交换机构成,每台终端独享一定的带宽
c、(千)万兆以太网
就是常见的园区网,分为router、防火墙、邮件服务器、web服务器、数据库服务器、网关工作站、各个单位接入、外网
d、无线局域网(WLAN)

协议名称 频段 带宽 最高传输速度 最大距离
802.11a 5.8G 20MHZ 54MHZ 35M
802.11b 2.4GHZ 20MHZ 11MHZ 35MHZ
802.11g 2.4G 20MHZ 54MHZ 38M
802.11n(wifi4) 2.4GHZ/5GHZ 20/40MHZ 600MB/S 70M
802.ac(wifi5) 5GHZ 20/40/80MHZ 3400Mb/s 35M
802.11ax(WIFI6) 2.4ghz/5GHZ 20/40/80/160SMHZ 9600MB/S

无线接入点:WAP/AP,无线路由器
无线自组网:Ad hoc
对于小型的无线通信技术也可以使用来构建无线局域网。

互联网

目前的互联网是基于ARPA上构建采用TCP/IP协议簇的以太网
a、 组成和接入
组成:分为主干网、地区网、校园网,源于20世纪80年代的ARPANET计划
接入:
用户终端接入
接入网
城域网:由互联网网路服务提供商(ISP)为个人企业机构提供接入、域名注册收费,
骨干网:由交换中心(IXP)负责数据交换
国际网
固定电话网的接入:采用MODEM来实现频率调制,将数字和(现在还有光信号)模拟信号互相转换
初代的有ADSL:非对称数字用户线,较之于之前的可以实现接听电话】上网同时进行
有线电视接入:cable TV(CATV)采用HFC接入
光纤接入:
特点:通信容量大、传输损耗低、中继距离长等
光纤入户(FTTH)就是将光纤从运营商的机房(OLT)接到用户(ONU)
组成:OLT局,中心机房(OLT/ODF)、主干光缆、光交接箱、配线光缆光配线箱
无线接入:NFC、蓝牙
b、 协议和路由器
TCP/IP模型:也就是四层模型,分为应用层、传输层、网络互联层、网络接口层
其实常常说的TCP/IP是泛称,包含ARP、RARP、ICMP、TCP、UDP、OSPF、SCTP、DNS、DHCP、HTTP等等,TCP(传输控制协议)、IP(网络互联协议)
IP地址(就是给所有的联网设备编个号):采用点分十进制表示(4个二进制数表示0~255的10进制数)
二进制同十进制的转换:采用除二取余法、或者乘而取整法
在这里插入图片描述

IP地址由网络号和主机号共同组成,后来的无类域间路由(CIDR)就是主机位和网络位借位实现
A、B、C三类网络:首地址A:小于128;B:128到192;C192到224,
IP地址分配:国际上由IANA(互联网编号分配机构)
我国由APNIC分配
对于IP地址紧张的问题解决:IPv6、NAT
IP数据报:由头部和数据区构成
路由器:实现ALC(流量控制)、网路安全(防火墙)、过滤数据报等等
c、 应用层协议
域名解析协议(DNS):以CSDN为例:https://www.csdn.net/
net就是它是一个网络服务商,CSDN是它的机构名称,web服务器位WWW
com:Commercial organizations,商业组织,公司
xyz:创意、创新;三维空间与无限可能
net:Network operations and service centers,网络服务商
top:顶级、高端、适用于任何商业 公司 个人
tech:科技、技术
org:Other organizations,非盈利组织
gov:Governmental entities,政府部门
edu:Educational institutions,教研机构
.ink:internet king 互联网之王,同时英文单词是墨水的意思
int:International organizations,国际组织
mil:Military (U.S),美国军部
pub: public大众、公共、知名。
DNS(就是把搜索的关键词相关的网页打开)解析过程:
1)浏览器从用户输入的URL提供到浏览器的DNS客户端,DNS会收到一份查询报文,进行解析得到结果建立TCP连接,进行HTTP报文收发
这里补充一下关于搜索引擎基本的内容:
组成:
1、信息采集模块
2、查询表模块
3、检索模块
工作流程:
a、 在互联中发现、搜集网页信息
b、对信息进行提取和组织建立索引库
c、在索引数据库中搜索排序
超文本传输协议(HTTP)命令格式:
http://服务器域名或者IP地址[:端口号]/文件路径/文件名
HTTPS:就是HTTP+SSL/TLS

TCP/UDP协议http响应过程:https://www.cnblogs.com/yangming1996/p/9120911.html
尽管看上去很简单,但是实践起来很难的
复习一下:
互联网组成,接入网是啥?ISP的作用是啥?
接入技术由那几种?特点和性能如何
IP域名和的关系的功能
router、hub、switch的功能
TCP/UDP协议

互联网应用

通信业务

1、邮件:工作模式(C/S),通过SMTP和TCP发送到相关服务器,采用PoP3/IMAP4协议
2、微信:是一种及时通信(IM)软件
发送:
点击发送后WEchat执行MMTL协议同服务器取地密钥,对消息加密
WEchat的服务器接收到消息,并对相应的客户端回应,如果没有回应那么提示用户重发,如果上传的是图品信息那么将会划分为若干部分,每份为1.5KB,客户端的接收采用 POST请求
WEchat分为接入层、逻辑层、数据存储服务、存储层
5G消息:2020年中国电信、中国移动、中国联通联合发布了《5G消息白皮书》所谓的5G消息就是富媒体融合通信(RCS)
优势:不需要单独安装第三方APP、5G业务直接与手机号码关联、5G消息直接关联手机通信录
3、QQ

WWW信息共享:world wide web

1、网站和URL:
URL的格式:protocol://域名或者IP地址[:端口号]/文件路径/文件名
除了HTTP外还有FTP、mailto、telnet
2、Web浏览器

web浏览器工作原理 https://www.cnblogs.com/xiaohuochai/p/9174471.html#anchor1
4、内容分发(CDN):简单的理解就分布处理,用附近最近的服务器处理

业务处理

1、静态资源与动态资源:
静态资源:就是前端的固定页面,这里面包含HTML、CSS、JS、图片等等,不需要查数据库也不需要程序处理,直接就能够显示的页面,如果想修改内容则必须修改页面,但是访问效率相当高。
动态资源:需要程序处理或者从数据库中读数据,能够根据不同的条件在页面显示不同的数据,内容更新不需要修改页面但是访问速度不及静态页面。
2、WWW业务信息处理系统
3、WWW业务处理流程

通信安全

1、通信安全
安全措施:身份认证、数据加密、数据完整性校验、访问控制、防止访问
窃听、篡改、伪造
对称密码和公钥密码
对称密码:RSA、SM2等
还有数字证书、数字签名、混合密码、消息验证码、U盾
WEchat通信安全

以太网工作原理

互联网通信安全

数字通信应用

关于5G

以太网工作原理

路由器、HUB、交换机

你可能感兴趣的:(软件工程师,项目管理)