专业导论-课后总结-2019.12.05-V1.0

3.1、软件的定义

软件是用户与硬件之间的接口,用户主要是通过软件与计算机进行交流的。
软件 = 程序 + 数据 + 文档
程序:按照事先设计的功能和性能要求执行的指令序列。
数据:使程序能正常运行的参数及程序运行过程中所处理的对象。
文档:与程序开发,维护和使用有关的资料总称。

3.2、软件的分类

3.2.1、按照功能分类

3.2.1.1、系统软件
(1)操作系统
工作职责:决定系统资源供需的优先次序,管理与配置内存,控制输入输出设备,操作网络与管理文件系统等。

常用的操作系统:DOS,Linux,Mac OS,OS/2,UNIX,Windows;

(2)支撑软件

主要的软件开发环境有IBM公司的WebSphere,Microsoft公司的Studio.NET等。

3.2.1.2、应用软件

1、应用软件是为了,满足某一领域,某类问题的应用需求而提供的软件。
2、统软件并不针对某一特定应用领域,而应用软件则相反,不同的应用软件根据用户和所服务的领域提供不同的功能。
3、应用软件是为了某种特定的用途而被开发的软件。它可以是一个特定的程序,比如一个图像浏览器。也可以是一组功能联系紧密,可以互相协作的程序的集合,比如微软的Office软件。也可以是一个由众多独立程序组成的庞大的软件系统,比如数据库管理系统。
4、如今智能手机得到了极大的普及,运行在手机上的应用软件简称手机软件。所谓手机软件就是可以安装在手机上的软件,完善原始系统的不足与个性化。随着科技的发展,手机的功能也越来越多,越来越强大。不是像过去的那么简单死板,发展到了可以和掌上电脑相媲美。
5、手机软件与电脑一样,下载手机软件时还要考虑你购买这一款手机所安装的系统来决定要下相对应的软件。手机主流系统有以下:Windows Phone、Symbian、iOS、Android。

3.2.2、按照软件的规模划分

按照所需的人力,时间以及完成的源代码行数,划分软件为6类。

3.2.3、按软件的工作方式分类

3.2.3.1、实时处理软件:主要包括数据采集,数据分析,数据传输。
3.2.3.2、分时软件:允许多个用户使用用一台计算机,允许多个程序分时共享硬件和软件源,允许多个联机用户同时使用计算机的软件。
3.2.3.3、交互式软件:实现人—机通信的软件。
3.2.3.4、批处理软件:将一组输入作业或者一批数据以批处理的方式依次运行,并按照顺序逐个输出处理的软件。

3.3、软件构架

3.3.1、定义

软件架构所指的就是说相应的系列性的抽象模式,可以为设计大型软件系统的各个方面提供相应的指导。 从本质上来看,软件架构是属于一种系统草图。在软件架构所描述的对象就是直接的进行系统抽象组件构成。连接系统的各个组件之间就是做到把组件之间所存在的通讯比较明确与相对细致的实施描述。处于相应的系统实现环节,那么就会使得细化这些抽象组件成为现实的组件,比如可以是具体的某个类或者是对象。从面向对象领域进行分析,那么各个组件之前实施的连接实现往往是接口。

软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用、指导构件集成的模式以及这些模式的约束组成。软件架构不仅显示了软件需求和软件结构之间的对应关系,而且指定了整个软件系统的组织和拓扑结构,提供了一些设计决策的基本原理。

3.3.2、软件架构的分层

专业导论-课后总结-2019.12.05-V1.0_第1张图片
1、单体结构
专业导论-课后总结-2019.12.05-V1.0_第2张图片
2、分布式!应用
专业导论-课后总结-2019.12.05-V1.0_第3张图片3、微服务架构
专业导论-课后总结-2019.12.05-V1.0_第4张图片4、Serverless架构
专业导论-课后总结-2019.12.05-V1.0_第5张图片

3.4、操作系统

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

1、在计算机中,操作系统是其最基本也是最为重要的基础性系统软件。
2、从计算机用户的角度来说,计算机操作系统体现在其提供的各项服务;从程序员的角度来说,其主要是指用户登录的界面或者接口;如果从设计人员的角度来说,就是指各式各样模块和单元之间的联系。
3、事实上,全新操作系统的设计和改良的关键工作就是对体系结构的设计,经过几十年以来的发展,计算机操作系统已经由一开始的简单控制循环体发展成为较为复杂的分布式操作系统,再加上计算机用户需求的愈发多样化,计算机操作系统已经成为既复杂而又庞大的计算机软件系统之一。

3.4.1、磁盘操作系统(disk operation system,DOS)

个人计算机上使用的一种操作系统,通过在命令行方式下输入对计算机资源进行管理。

在Windows运行对话框中,输入“cmd”,将打开运行窗口,显示命令提示符。他就是Windows所提供的的支持DOS命令的环境,在这里可以运行DOS命令。
专业导论-课后总结-2019.12.05-V1.0_第6张图片

3.4.2、Windows操作系统

Microsoft Windows
1、Microsoft Windows系列操作系统是在微软给IBM机器设计的MS-DOS的基础上设计的图形操作系统。 现在的Windows系统,如Windows 2000、Windows XP皆是创建于现代的Windows NT内核。NT内核是由OS/2和OpenVMS等系统上借用来的。Windows可以在32位和64位的Intel和AMD的处理器上运行,但是早期的版本也可以在DEC Alpha、MIPS与PowerPC架构上运行。
2、Windows系统也被用在低级和中阶服务器上,并且支持网页服务的数据库服务等一些功能。最近微软花费了很大研究与开发的经费用于使Windows拥有能运行企业的大型程序的能力。
3、Windows XP在2001年10月25日发布,2004年8月24日发布服务包2(Service Pack 2),2008年4月21日发布最新的服务包3(Service Pack 3)Windows 7,是由微软公司(Microsoft)开发的操作系统,内核版本号为Windows NT 6.1。Windows 7可供家庭及商业工作环境:笔记本电脑 、多媒体中心等使用。和同为NT6成员的Windows Vista一脉相承,Windows 7继承了包括Aero风格等多项功能,并且在此基础上增添了些许功能。
Windows 10是由美国微软公司开发的应用于计算机和平板电脑的操作系统,于2015年7月29日发布正式版。
4、**Windows 10操作系统在易用性和安全性方面有了极大的提升,除了针对云服务、智能移动设备、自然人机交互等新技术进行融合外,还对固态硬盘、生物识别、高分辨率屏幕等硬件进行了优化完善与支持。**截至2019年7月28日,Windows 10正式版已更新至五月更新10.0.18945版本。
5、微软上一款操作系统Windows Vista(开发代码为Longhorn)于2007年1月30日发售。 Windows Vista增加了许多功能,尤其是系统的安全性和网上管理功能,并且其拥有接口华丽的Aero Glass。但是整体而言,其在全球市场上的口碑却并不是很好。其后继者Windows 7则是于2009年10月22日发售,Windows 7改善了Windows Vista为人诟病的性能问题,相较于Windows Vista,在同样的硬件环境下,Windows 7的表现较Windows Vista为好。而最新的Windows 10则是于2015年7月29日发售。

专业导论-课后总结-2019.12.05-V1.0_第7张图片

3.4.3、UNIX操作系统

类Unix
1、所谓的类Unix家族指的是一族种类繁多的OS,此族包含了System V、BSD与Linux。由于Unix是The Open Group的注册商标,特指遵守此公司定义的行为的操作系统。而类Unix通常指的是比原先的Unix包含更多特征的OS。
2、类Unix系统可在非常多的处理器架构下运行,在服务器系统上有很高的使用率,例如大专院校或工程应用的工作站。
3、1991年,芬兰学生林纳斯·托瓦兹根据类Unix系统Minix编写并发布了Linux操作系统内核,其后在理查德·斯托曼的建议下以GNU通用公共许可证发布,成为自由软件Unix变种. Linux近来越来越受欢迎,它们也在个人桌面计算机市场上大有斩获,例如Ubuntu系统。
4、某些Unix变种,例如惠普的HP-UX以及IBM的AIX仅设计用于自家的硬件产品上,而SUN的Solaris可安装于自家的硬件或x86计算机上。苹果计算机的Mac OS X是一个从NeXTSTEP、Mach以及FreeBSD共同派生出来的微内核BSD系统,此OS取代了苹果计算机早期非Unix家族的Mac OS。
5、经历数年的披荆斩棘,自由开源的Linux系统逐渐蚕食以往专利软件的专业领域,例如以往计算机动画运算巨擘──硅谷图形公司(SGI)的IRIX系统已被Linux家族及贝尔实验室研发小组设计的九号项目与Inferno系统取代,皆用于分散表达式环境。它们并不像其他Unix系统,而是选择内置图形用户界面。九号项目原先并不普及,因为它刚推出时并非自由软件。后来改在自由及开源软件许可证Lucent Public License发布后,便开始拥有广大的用户及社群。Inferno已被售予Vita Nuova并以GPL/MIT许可证发布。
6、当前,计算机按照计算能力排名世界500强中472台使用Linux,6台使用Windows,其余为各类BSD等Unix。
专业导论-课后总结-2019.12.05-V1.0_第8张图片

3.4.4、Linux操作系统

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

1、Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。 伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器操作系统方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善这个操作系统,使其最大化地适应用户的需要。
2、 Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。 在很多企业网络中,为了追求速度和安全,Linux操作系统不仅仅是被网络运维人员当作服务器使用,Linux既可以当作服务器,又可以当作网络防火墙是Linux的 一大亮点。
3、Linux与其他操作系统相比 ,具有开放源码、没有版权、技术社区用户多等特点 ,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。 尤其系统中内嵌网络协议栈 ,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。
专业导论-课后总结-2019.12.05-V1.0_第9张图片

主要特性
1、基本思想
Linux的基本思想有两点:**第一,一切都是文件;第二,每个软件都有确定的用途。**其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
2、完全免费
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
3、完全兼容POSIX1.0标准
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
4、多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
5、良好的界面
Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
6、支持多种平台
Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
优点:
1)Linux由众多微内核组成,其源代码完全开源;
2)Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、 TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈;
3)Linux系统工具链完整,简单操作就可以配置出合适的开发环境, 可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性;

3.4.5、Mac OS

MacOS和MacOS X
macOS,前称“MacOS X”或“OS X”,是一套运行于苹果Macintosh系列计算机上的操作系统。Mac OS是首个在商用领域成功的图形用户界面系统。Macintosh开发成员包括比尔·阿特金森(Bill Atkinson)、杰夫·拉斯金(Jef Raskin)和安迪·赫茨菲尔德(Andy Hertzfeld)。从OS X 10.8开始在名字中去掉Mac,仅保留OS X和版本号。2016年6月13日在WWDC2016上,苹果公司将OS X更名为macOS,现行的最新的系统版本是10.14,即macOS Mojave。
专业导论-课后总结-2019.12.05-V1.0_第10张图片

3.5、智能手机操作系统简介

3.5.1、iOS
iOS的智能手机操作系统的原名为iPhoneOS,其核心与Mac OS X的核心同样都源自于Apple Darwin。它主要是给iPhone和iPodtouch使用。就像其基于的Mac OSX操作系统一样,它也是以Darwin为基础的。iPhoneOS的系统架构分为四个层次:核心操作系统层(th
e Core OSlayer),核心服务层(the Core Serviceslayer),媒体层(the Media layer),可轻触层(theCocoa Touchlayer)。系统操作占用大概1.1GB的存储空间。
专业导论-课后总结-2019.12.05-V1.0_第11张图片
3.5.2、Android
安卓(Android)是一种基于Linux的自由及开放源代码的操作系统。

主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy
Rubin开发,主要支持手机。

2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机、智能手表等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。

Android一词的本义指“机器人”,同时也是Google于2007年11月5日
宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。

专业导论-课后总结-2019.12.05-V1.0_第12张图片
专业导论-课后总结-2019.12.05-V1.0_第13张图片

3.5、软件的开发

3.5.1、软件工程
1、软件危机,指在计算机软件的开发维护过程中所遇到的一系列严重问题。
2、学科定义,software engineering,SE 研究如何以系统性的,规范性的,可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而被证明正确的管理技术和当前能够得到的最好的软件开发与维护方法结合起来的学科,即是一门研究用工程化方法构建和维护有效的,实用的和高质量的软件学科。涉及,程序设计,数据库,软件开发工具,系统平台,标准及设计模式等方面。

3.5.2、软件开发过程
1、计划
对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计,制订完成开发任务的实施计划。
2、分析
软件需求分析就是对开发什么样的软件的一个系统的分析与设想。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。在任何软件或系统开发的初始阶段必须先完全掌握用户需求,以期能将紧随的系统开发过程中哪些功能应该落实、采取何种规格以及设定哪些限制优先加以定位。系统工程师最终将据此完成设计方案,在此基础上对随后的程序开发、系统功能和性能的描述及限制作出定义。
3、设计
样式软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。模块,然后进行模块设计。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。
4、编码
软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的“源程序清单”。充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。
当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。
5、测试
软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例(测试数据与功能和预期的输出结果组成了测试用例)。如何才能设计出一套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。
6、维护
维护是指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写软件问题报告、软件修改报告。
一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其运行或工作时间可能持续五年至十年。那么它的维护阶段也是运行的这五年至十年期间。在这段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护工作本身特有的问题。做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。然而遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。而事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。

在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。

3.6、软件行业职业简介

3.6.1、项目管理类

3.6.1.1、项目经理
在一系列的项目计划,组织和控制活动中做好领导工作,从而实现项目目标。
3.6.1.2、QA工程师
quality assurance,负责质量管理体系标准所要求的有关质量保证的人员。

3.6.2、开发类

3.6.2.1、软件需求分析师

3.6.2.2、软件开发工程师

3.6.2.3、系统分析师

3.6.2.4、系统架构师

3.6.3、测试类

3.6.3.1、软件测试工程师

3.6.3.2、软件产品测试经理

3.6.4、系统,安全及维护类

3.6.4.1、网络工程师

3.6.4.2、IT基础设施工程师

3.6.4.3、网络安全管理员

3.6.4.4、安全开发工程师

3.6.4.5、数据库管理员

3.6.4.6、系统管理员

3.6.5、销售类

3.6.5.1、售前工程师

3.6.5.2、售后技术工程师

3.6.5.3、系统集成工程师

你可能感兴趣的:(课后总结)