3.1 软件的定义
定义:软件是用户与硬件之间的接口,用户主要是通过软件与计算机进行交流的
从传统意义上讲,软件是计算机系统中的非硬件成分,它是包括程序,数据及其相关文档的集合,是计算机系统设计的重要依据。
3.2软件的分类
3.2.1 按软件的功能分
系统软件:操作系统(管理理计算机软件与硬件的程序 例:dos Linux macOS)
支撑软件:基本?工具 数据库管理理 外部存储?格式化 文件系统管理理 等,包括环境数据库 各种接口软件 和?具组
应?软件:为了满足某?一领域 某类问题的应用需求而提供的软件
3.2.2 按软件的规模分
按需要的人?时间代码行数分为六类:微型 ?型 中型 大型 甚大型 极大型
3.2.3 按软件的工作?式分类
实时处理软件:在事件或数据产?生时立即对他们进?处理
分时软件:允许多个程序分时共享硬件软件资源,允许多个用户使用同一台计算机
交互式软件:实现 ?—机通信的软件,例如操作系统软件 游戏软件
批处理理软件:是把?组输入作业或?批数据以成批处理方式一次运?,并按顺序逐个处理
3.3软件架构
软件架构的定义:软件架构是有关软件整体结构与组件的抽象模式,用于指导大型软件系统各方面的设计。
软件架构的分层:1.应用程序子系统 2.业务专用 3.中间体 4.系统软件
3.4操作系统
3.4.1 什么是操作系统:用来控制和管理计算机系统资源的软件
系统观点—计算机资源管理
用户观点—用户使用计算机的界面
软件观点—程序数据文档集合
3.4.2 DOS
磁盘操作系统,由核?心程序和命令程序组成
3.4.3 Windows操作系统:微软开发的操作系统
Windows之美:易学易用 界?美观友好 丰富的图形操作 多任务
Windows的体系结构
双模式结构:操作系统核?运?在内核模式下,应用程序代码运行在用户模式下
3.4.4 UNIX操作系统:由贝尔实验室首次实现,开放系统代表
UNIX之美:提供可编程的命令语?言 许多程序包 文件系统简洁 可移植性强 网络通信功能强
UNIX组成:内核 shell 文件系统 公用程序
3.4.5 Linux操作系统:是自由开源的类Unix系统
常见版本:Redhat Debian SUSE Ubuntu centOS
Linux之美:模块化程度?高 源代码公开 广泛硬件?支持 安全性及可靠性好 完整的网络集成
Linux是Unix的?一种克隆系统,但是源代码无关
3.4.6 Mac OS:是基于Unix开发的分类
例:Classic Mac OS,Mac OS X
3.4.7 智能?手机操作系统简介:塞班 Windows phone iOS 安卓 ?黑莓
3.5 软件的开发
软件危机:指的是在计算机软件的开发维护过程中所遇到的一系列严重问题
学科定义:软件工程是研究如何以系统性的,规范性的,可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而被证明是正确的管理技术和当前能够得到的最好的软件开发与维护方法结合起来的学科。
3.5.1 软件工程
软件危机 :指的是软开开发维护过程中所遇到的一系列列严重问题
学科定义:研究?用工程化?方法构建和维护有效的实?用的?高质量量的软件的学科
3.5.2 软件开发过程
软件有一个从孕育诞生成?成熟到衰亡的生存过程
1.问题定义 2.可?性研究 3.需求分析 4.总体设计 5.详细设计 6.程序开发 7.软件测试 8.软件维护
3.5.3 用户界面与用户体验
用户界?
用户界?设计流程:确定目标用户——采集目标用户的习惯交互?方式——提示和引导用户
一致性原则:设计目标 外观 人机交互行为的一致性
可用性原则:可理解 可达到 可控制
用户体验:用户体验是一种在用户使用软件过程中所建立起来的主观感受
经典用户界?面欣赏—iPhone,只有一个home键。使用隐喻,使用动画,一目了了然 即看即点灵活运用手势操作
3.6软件?行行业职业简介
3.6.1 项?目管理理类
项?目经理理 QA?工程师
3.6.2 开发类
软件需求分析师、软件开发工程师、系统分析师、系统架构师
3.6.3 测试类
软件产品测试经理理、软件测试工程师
3.6.4 系统安全及维护类
?网络工程师、IT基础设计工程师、网络安全管理员、安全开发工程师、数据库管理员、系统管理员
3.6.5 销售类
售前工程师、售后技术工程师、系统集成工程师
4.1程序设计语?言简介
是一组?用来定义计算机程序的语法规则
三要素:
语法 指单词符号的形成规则
语义 指?一条合法语句句的含义
语?是 程序与使?用者的关系
4.2程序设计语言的分类及编程模式
4.2.1机器语言
?二进制代码表示的计算机能直接识别和执?的机器指令的集合,是计算机唯一能识别的语言
机器指令
包含两部分:指令的操作码和指令的操作数
4.2.2汇编语言
采?助记符来编写程序,是机器语言的符号化,是面向硬件的语言,占用空间小, 运?速度快
符号化具体体现:用指令助记符代替指令的?二进制,用符号代替二进制地址码
4.2.3高级语?言
是面向用户的语言 与自然语言接近
计算机如何识别呢?
要靠编译程序:词法分析阶段->句法分析阶段->语义分析阶段->中间代码生成阶段->代码优化阶段->目标代码生成阶段
汇编程序
将编译程序运行得到的目标程序翻译为二进制的机器?代码
4.2.4编程模式
可分成四种:面向对象编程模式(数据抽象+对象类+类继承)、 过程式编程模式(模块化,结构化)、函数式编程模式、说明式编程模式
面向对象的三大特征:封装,继承,多态
函数式编程模式: 程序被看做?一个函数
说明式编程模式 :在逻辑推理的基础上发展而来
4.3高级编程语言介绍
4.3.1 BASIC语?言
现已经成为一种中小型计算机语言
4.3.2 PASCAL语?言
功能更强,简单易用,作为一种教学语言,在高校计算机教学中曾经占主导
4.3.3 C语?言
广泛使用的高级语言,适合作为系统描述语言,简洁 丰富 可移植性强
4.3.4 C++语?言
应用较广的面向对象程序设计语言,相比c支持面向对象抽象,支持面向对象设计和编程,增加了安全性,引入了引用概念
4.3.5 Java语言
特点:简单性,面向对象,分布性,可移植性,安全性,鲁棒性
与c、c++相?:全局变量、 不用goto语句、 不用指针
4.3.6 Ada语?言
一种表现能力很强的通用程序设计语言,是美国国防部指定的唯?一种用于开发军?系统的语言,我国军?也将Ada语言作为军内开发标准
4.3.7 Logo语言
绘图是logo语言中最主要的功能
4.3.8 脚本语言
称为扩建的语言或动态语言,常见的脚本语言:Unix/Linux shell、JavaScript、nuva、Perl、php、Python、ruby、tcl
4.4并行程序设计
4.4.1 并行程序设计语?言
可分为:显式并行语言、具有并行编译功能的串行语言
4.4.2 并行程序设计语言的编译过程
词法语法分析->程序优化->并行代码?生成->(超标量处理机/多处理机/多计算机)
4.4.3 OpenMP
是?一个编译器?指令和库函数的集合,?于共享式储存计算机上的并行程序设计,支持的有 c c++ Fortran
原文:https://www.cnblogs.com/gaoyutao/p/12003538.html