计算机导论第三章

走进软件

软件的定义
软件是用户与硬件之间的接口,用户主要是通过软件与计算机进行交流的。
从传统意义上来讲,软件是计算机系统中的非硬件成分,它是包括程序、数据及相关文档的集合。

软件的分类

按软件功能分类:按软件的功能可以将软件分为系统软件和应用软件。

1.系统软件
系统软件与计算机硬件紧密配合在一起,是计算机系统中的各个部件、相关的软件和数据协调、高效的工作。系统软件使得计算机用户和其他软件可以将计算机当做一个整体而不需要顾及底层每个硬件的工作细节。系统软件又可以分为操作系统和支撑软件,其中操作系统是所有软件运行的基础。

2.应用软件
应用软件是为了满足某一领域、某类问题的应用需求而提供的软件。

按软件的规模分类:按照所需要的人力、时间以及完成的源程序代码行数,可以将软件分为6类不同规模的软件
类别 参加人数 研制期限 软件规模(源程序代码行数)
微型 1 1-4周 500行
小型 1 1-6月 1000-2000行
中型 2-3 1-2年 3000-30000行
大型 5-20 2-3年 50000-100000行
甚大型 100-1000 4-5年 1000000行
极大型 2000-5000 5-10年 1000000-10000000行

按软件的工作方式分类:按软件的工作方式可以将如啊你按分为实时软件、分时软件、交互式软件和批处理软件。

软件架构

软件架构的定义
软件架构是有关软件整体结构与组件的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个抽象组件之间的连接则明确和相对细致的组件之间的通信。在实现接阶段,这些抽象被细化为实际的组件,例如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口来实现。

软件架构的分层
目前的软件系统,特别是企业级的系统,越来越庞大、复杂,要满足设计目标越来越困难,而用分层对系统进行分而治之的管理是一种行之有效的办法。分层的优点在于每个层次的功能明确,逻辑清晰,高层只需要了解相邻的低层的细节即可,从而降低了层与层之间的耦合度,在这样的分布式分层应用系统中,高层的策略不会因为低层细节的变化而受到影响。

操作系统

什么是操作系统
操作系统是应用程序与计算机硬件的“中间人”,没有操作系统的统一安排和管理,计算机硬件没有办法执行应用程序的命令。操作系统为计算机硬件和应用程序提供了一个交互的界面,并指挥计算机各部分硬件的基本工作。

DOS
磁盘操作系统(DOS)是个人计算机上使用的一种操作系统,通过在命令行方式下输入命令对计算机资源进行管理。DOS由核心程序和命令程序组成,核心程序包括系统引导程序、MSDOS.SYS、IO,SYS和COMMAND.COM。

软件的开发

软件工程
1.软件危机
软件危机(software crisis),20 世纪60年代以前,计算机刚刚投入实际使用,软件设计往往只是为了一个特定的应用而在指定的计算机上设计和编制,采用密切依赖于计算机的机器代码或汇编语言,软件的规模比较小,文档资料通常也不存在,很少使用系统化的开发方法,设计软件往往等同于编制程序,基本上是个人设计、个人使用、个人操作、自给自足的私人化的软件生产方式。
60年代中期,大容量、高速度计算机的出现,使计算机的应用范围迅速扩大,软件开发急剧增长。高级语言开始出现;操作系统的发展引起了计算机应用方式的变化;大量数据处理导致第一代数据库管理系统的诞生。软件系统的规模越来越大,复杂程度越来越高,软件可靠性问题也越来越突出。原来的个人设计、个人使用的方式不再能满足要求,迫切需要改变软件生产方式,提高软件生产率,软件危机开始爆发 。
1968年,北大西洋公约组织(NATO)在联邦德国的国际学术会议创造软件危机(Software crisis)一词。而1960年代中期开始爆发众所周知的软件危机,为了解决问题,在1968、1969年连续召开两次著名的NATO会议,并同时提出软件工程的概念。
2.学科定义
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科,即是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。

软件开发过程
软件有一个从孕育、诞生。成长、成熟到衰亡的生存过程,这个过程即为软件的生命周期,在软件生命周期中,软件系统的开发是按阶段进行的,一般可划分为以下阶段:问题定义,可行性研究,需求分析,系统设计(概要设计、详细设计),程序开发,软件测试,以及软件维护。软件开发过程中要明确各阶段的工作目标、实现该目标所必需的工作内容以及达到的标准。只有在上一个阶段的工作完成后,才能开始下一阶段的工作。

用户界面与用户体验
用户界面在软件开发中占有非常重要的地位,随着软件技术的发展和用户需求的日益复杂化,软件的可用性显得尤为重要,而友好的用户界面正是其集中体现。过去由于计算机硬件的限制,编码设计成为软件开发的代名词,友好的图形化界面与人机交互方式没有得到充分的重视。随着计算机硬件的飞速发展,过去的软件设计已经不能适应用户的要求。用户界面与用户体验在软件开发过程中的重要性日益凸显。

你可能感兴趣的:(计算机导论第三章)