计算机导论课后总结4

软件

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

软件的分类

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

程序设计语言分类

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

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

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

编程模式

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

你可能感兴趣的:(计算机导论课后总结)