软件

软件是用户与硬件之间的接口。从传统意义上讲,软件是计算机系统中与硬件相互依存的一个部分(非硬件部分)。简单的说软件就是程序加文档的集合体。可以认为:软件=程序+数据+文档。

软件的分类

1.基于软件功能的划分:
系统软件:与计算机硬件紧密配合以使计算机的硬件部分与相关软件及数据协调、高效工作的软件。例如,操作系统,数据库管理系统、设备驱动程序以及通信处理程序等。
应用软件:是在特定领域内开发、为特定目的服务的一类软件。

2.基于软件规模的划分:
按照所需要的人力、时间以及完成的源程序代码行数,可以将软件分为微型、小型、中型、大型、甚大型、极大型

3.基于软件工作方式的划分:
实时处理软件:在时间或数据产生时,立即处理并回馈信号,控制需要监测和控制的过程的软件。
分时软件:允许多个用户同时使用计算机。系统把处理机时间轮流分配给联机用户,但用户的感觉是只有自己在使用计算机。
交互式软件:实现人机通信。这类软件接收用户给出的信息,但在时间上没有严格的限定。
批处理软件:把一组输入作业或一批数据以成批处理的方式一次运行,按顺序逐个处理完的软件。

软件架构

软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。从本质上来看,软件架构是属于一种系统草图,在软件架构所描述的对象就是直接的进行系统抽象组件构成。

架构的模型

软件架构作为一个有机的整体,可以分解成多个侧面来认识,每个侧面强调它的不同方面的特征,从而使架构设计师能整体地把握它的重点。我们可以将软件架构归纳成 5 种模型:
结构模型。这是一个最直观、最普遍的建模方法。这种方法以架构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质。研究结构模型的核心是架构描述语言。
框架模型。框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体的结构。框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构。
动态模型。动态模型是对结构或框架模型的补充,研究系统“大颗粒”的行为性质。例如,描述系统的重新配置或演化。动态可能指系统总体结构的配置、建立或拆除通信通道或计算的过程。
过程模型。过程模型研究构造系统的步骤和过程。因而结构是遵循某些过程脚本的结果。
功能模型。该模型认为架构由一组功能构件按层次组成,且下层向上层提供服务。它可以看作是一种特殊的框架模型。

操作系统

操作系统是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

操作系统举例

DOS
磁盘操作系统(Disk Operating System,DOS)是个人计算机上使用的一种操作系统,通过命令行方式下输入命令对计算机资源进行管理。

Windows操作系统
Windows采用了图形化模式GUI,比起从前的DOS需要输入指令使用的方式,更为人性化。它不但易用,也当前应用最广泛的操作系统。

UNIX操作系统
UNIX是一个通用的、多任务、交互式的分时操作系统,被认为是开放式系统的代表。UNIX系统提供了良好的用户界面,具有使用方便、功能齐全、清晰而灵活、易于扩充和修改等特点。

Linux操作系统
Linux是自由和开放源代码的类UNIX操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。

Mac OS
Mac OS是一套运行于苹果Macintosh系列电脑上的操作系统。Mac OS是首个在商用领域成功的图形用户界面操作系统。Mac OS基于UNIX,以简单易用和稳定可靠著称。

智能手机操作系统
智能手机通常使用的操作系统有:Android、iOS、Symbian、Windows Phone和Blackberry OS。智能手机可以像个人电脑一样安装第三方软件,和PC一样有着丰富的功能。

软件工程

软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。软件工程则是为了解决软件危机而出现的一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。

软件开发过程

在软件生命周期中,软件系统的开发是按阶段进行的,一般可划分为以下阶段:
问题定义
要解决的问题是什么
可行性研究
对上一个阶段所确定的问题是否有行得通的解决办法
需求分析
为了解决这个问题,目标系统需要做什么
总体设计
概括地说,应该如何实现目标系统
详细设计
如何具体地实现这个系统,设计出程序的详细规格说明。
程序开发
这个阶段的关键任务是写出正确且容易理解、容易维护的程序模块。
软件测试
这个阶段的关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求。
软件维护
这个阶段的关键任务是通过各种必要的维护活动是系统持久地满足用户的需要。

软件工程参与人(软件开发职位)

软件行业职业按需求可以分为以下几类:
项目管理类:项目经理、质量保证(QA)工程师
开发类:需求分析师、开发工程师、人机系统开发工程师、系统分析师、系统架构师
测试类:测试工程师、产品测试经理
系统类:网络工程师、基础设施工程师
安全类:网络安全管理员、安全开发工程师
维护类:数据库管理员、系统管理员
销售类:售前工程师、售后工程师、系统集成工程师

程序设计语言

程序设计语言是用于书写计算机程序的语言。程序设计语言有3个方面的因素,即语法、语义和语用。
语法表示程序的结构或形式,亦即表示构成语言的各个记号之间的组合规律,但不涉及这些记号的特定含义,也不涉及使用者。
语义表示程序的含义,亦即表示按照各种方法所表示的各个记号的特定含义,但不涉及使用者。
语用问题指实现的简易性、应用的效率和编程的方法论,可以把语用看作是程序与使用者的关系。

程序设计语言分类

机器语言
机器语言是用二进制代码表示的计算机能直接识别和执行的机器指令的集合,也是计算机唯一能识别的语言。

汇编语言
汇编语言采用助记符来编写程序,是机器语言的符号化。

高级语言
高级语言是面向用户的语言,是一种与自然语言相近并为计算机所接受和执行的计算机语言。

编程模式

计算机语言的发展是一个不断演化的过程,其根本的推动力就是更高的抽象机制要求,以及对程序设计思想的更好支持。
程序设计语言可以按照解决问题的模式来分类,分为过程式编程模式、面向对象编程模式、函数式编程模式、说明式编程模式。

计算机导论课后总结4相关推荐

  1. 12.5计算机导论课后总结

    第三章 走近软件 3.1 软件的定义 软件是用户与硬件之间的接口,使用户与计算机交流的主要手段. 软件并不仅仅是程序,其是程序.数据以及相关文档的集合.可以形象的表示为:软件=程序+数据+文档. 3. ...

  2. 11.28计算机导论课后总结

    2.2 计算机系统结构 2.2.1 计算机系统结构的基本概念 计算机系统结构是计算机的机器语言程序员或编译程序编写者所看到的的外特性. 外特性就是计算机的概念性的结构和功能特性,它主要研究计算机系统的 ...

  3. 11.14计算机导论课后总结

    第一章 信息与计算机 1.1信息 "信息"是一个很难描述清楚的抽象概念.关于它的定义就有100多种,它们都从不同的侧面.层次揭示了信息的某些特征和性质. <现代汉语大词典&g ...

  4. 计算机导论课后总结五

    高级编程语言 接近人类自然语言及易于理解 BASIC语言 BASIC(来自英语:Beginner's All-purpose Symbolic Instruction Code的缩写),又译培基,一种 ...

  5. 计算机导论第二章习题答案,计算机导论课后习题答案.doc

    文档介绍: 计算机科学导论 第七章 1应用程序和操作系统的不同点是什么? 操作系统是一个程序,有利于应用程序的执行. 2操作系统的组成是什么? 内存管理器,进程管理器,设备管理器,文件管理器. 3单道 ...

  6. 计算机导论课后总结三

    计算机系统结构 计算机系统结构的基本概念 计算机系统结构是计算机的机器语言程序员或编译程序编写者所看到的外特性. 通常,在一个计算机系统中,低层机器的属性对高层机器机器的程序员来说往往是透明的,如传统 ...

  7. 计算机导论课后总结3

    计算机网络 计算机网络是若干个在地理位置上不同的,具有独立计算能力的计算机和其他电子设备,通过各种各样的通信系统相连接形成的实现信息传输资源 共享的系统. 按照地理范围,计算机网络可以分为以下几类: ...

  8. 12.05计算机导论课后总结

    文章目录 3走进软件 3.1软件的定义 3.2软件的分类 3.2.1按软件的功能分类 3.2.2按软件的规模分类 3.2.3按软件的工作方式分类 3.3 软件框架 3.3.1软件框架的定义 3.3.2 ...

  9. 计算机导论课后总结四

    软件的定义 软件是用户与硬件之间的接口,用户主要是通过软件与计算机进行交流的. 它是包括程序.数据及相关文档的集合. 软件与硬件的层次关系图 软件的分类 按软件功能分类 系统软件和应用软件. 1.系统 ...

最新文章

  1. Mysql中分页查询两个方法比较
  2. 桌面程序调用Web Service应用实例
  3. 2018.6.8-岁岁年年人不同
  4. formdata 接受参数中带有class 对象_Django(五)- 请求与响应 - request对象
  5. 安全体系结构与七个设计原则
  6. 珍惜相聚,亦珍惜离别
  7. mysqldump主要参数探究
  8. 基于mysql数据库的应用_MySQL数据库应用
  9. linux php 如何上传webshell,linux+apache+php的一次拿webshell的心得
  10. 常见的Activity Action Intent常量
  11. Perfect swift-server/http
  12. Linux内核中TCP协议实现的关键数据结构
  13. Centos 7安装RabbitMQ 3.7.8版本(单机版)-不使用RPM
  14. c语言程序设计单元小测,C语言程序设计单元小测2.doc
  15. 嘉兴市计算机技工学校,嘉兴市高级技工学校2021年招生简章
  16. vs 2017 调试中断问题
  17. Kafka负载均衡、Kafka自定义Partition、Kafk文件存储机制
  18. Python 中的几种矩阵乘法 np.dot, np.multiply, *【转】
  19. nginx部署前端代码 负载均衡
  20. 千字文(粱敕员外散骑侍郎周兴嗣撰)

热门文章

  1. [数理工程学] 梅花易数-[宋]邵雍 宋抄本影印
  2. css 绘制圆形 扇形
  3. 买马桶哪个牌子的最好?
  4. c语言-查找字符串子串(类似strstr()函数)
  5. MATLAB 自然数e的表达式坑、如何求解含有未知量的行列式
  6. RocketMQ系列---消息消费者及消费方式
  7. 并发编程中你需要知道的基础概念
  8. panic: interface conversion: interface {} is nil, not chan *sarama.ProducerError
  9. 数学建模之对策论/竞赛论/博弈论(Python)
  10. singleton pattern的一个模板实现, 适用于单线程, 并且提供了Release方法