一、走进软件
(1)软件的定义:软件是用户与硬件之间的接口,用户主要通过软件与计算机交流。从传统意义上讲,软件就是计算机系统中的非硬件成分,是包括程序、数据及相关文档的集合。
(2)分类
按功能分:
1.系统软件
系统软件为计算机使用提供最基本的功能,可分为操作系统和系统软件,其中操作系统是所有软件运行的基础。
2.支撑软件
3.应用软件
应用软件是为了满足某一领域、某类问题的应用需求而提供的软件。
按规模分:
按照所需要的人力、时间以及完成的源程序代码行数分为微型、小型、中型、大型、甚大型到极大型。
按工作方式分:
1.实时处理软件
实时处理软件在事件或数据产生时立即对它们进行处理,并及时反馈信号,以检测和控制软件的执行。
2.分时软件
分时软件允许多个用户使用同一台计算机,允许多个程序分时共享硬件和软件资源,或者允许多个联机用户使用同计算机的软件。
3.交互式软件
交互式软件是能实现人—机通信的软件。
4.批处理软件
批处理软件是把一组输入作业或一批数据已成批的方式一次运行,并按照顺序逐个处理的软件。
(3)软件的架构
软件的架构,可以理解为一张草图。我们可从它的定义得到启发:它是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件体系结构是构建计算机软件实践的基础。
软件的架构大体可分为逻辑架构、物理架构、系统架构等等。
作用:就是使得软件的设计具有灵活性、可扩充性和可移植性。
二、操作系统
(1)定义:操作系统是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统为计算机硬件和应用程序提供了一个交互的界面,并指挥计算机各部分硬件的基本工作。
(2)分类:
1.DOS(磁盘操作系统)
是个人计算机上使用的一种操作系统,通过命令行方式下输入命令对计算机资源进行管理。例如我们在Windows运行对话框中,输入’cmd’打开运行窗口,在这里就可以运行DOS命令。
2.Windows
大家最常用的系统(这里就不多介绍了)。
3.UNIX
UNIX由美国贝尔实验室在PDP-7型计算机上首先实现,是一个通用的、多任务、交互式的分时操作系统,被认为是开放式系统的代表。UNIX系统提供了良好的用户界面,具有使用方便、功能齐全、清晰而灵活、易于扩充和修改等特点。
提供可编程的命令语言:Shell;
4.Linux
Linux是自由和开放源代码的类UNIX操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。
//世界上运算最快的10台高性能计算机上运行 的都是Linux。
特点:模块化程度高、源代码公开、广泛的硬件支持、安全性及可靠性好、完整的网络集成。
5.Mac OS
Mac OS是一套运行于苹果Macintosh系列电脑上的操作系统。Mac OS是首个在商用领域成功的图形用户界面操作系统。Mac OS基于UNIX,以简单易用和稳定可靠著称。
6.智能手机操作系统
智能手机通常使用的操作系统有:Android、iOS、Symbian、Windows Phone和Blackberry OS。
四、软件的开发
(1)软件工程定义:软件工程(Software Engineering,SE )是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
(2)软件开发的步骤:软件开发的步骤有问题定义——>可行性研究——>需求分析——>总体设计——>详细设计——>程序开发——>软件测试——>软件维护。
//在这期间也要同时也要注意用户界面(UI)和用户体验(UE)。
(3)软件行业职业简介
从事软件开发相关工作的人员的统称。它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位。这些岗位的分工不同,职位和/或级别不同,但工作内容都是与软件开发生产相关的。职位定义:负责产品的软件研发,承担软件设计、代码编写、软件测试方案制订、代码调试和测试等。负责产品软件的客制化工作,按照客户需求定制软件用户界面,定制驱动程序,开发安装程序等。职位分类根据工作内容,软件工程师可有多种分类,如应用系统工程师、系统架构师分析师、系统集成和测试工程师、嵌入式软件工程师、数据。
五、程序设计语言
(1)定义:程序设计语言是用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言
(2)分类:
1.机器语言
就是用二进制代码表示的计算机能直接识别和执行的机器指令的集合。
2.汇编语言
汇编语言采用助记符来编写程序,是机器语言的符号化,但掌握难度较高。
3.高级语言
高级语言是面向用户的语言,是一种与自然语言相近并为计算机所接受和执行的计算机语言。
(3)编程模式
计算机语言的发展是一个不断演化的过程,其根本的推动力就是更高的抽象机制要求,以及对程序设计思想的更好支持。
程序设计语言还可以按照解决问题的模式来分类,可分为:过程式编程模式、面向对象编程模式、函数式编程模式、说明式编程模式。
参考:
https://www.jianshu.com/p/b927cdce4bfe
https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/25279?fr=aladdin