3.走进软件
3.1软件的定义
软件时用户与硬件之间的接口,用户主要是通过软件与计算机进行交流的。传统意义上讲,软件是计算机系统中的非硬件成分,它是包括程序,数据及其相关文档的集合。
程序是按照实现设计的功能和性能要求执行的指令序列;数据包括使程序能正常运行的参数及程序运行过程中处理的对象;文档使与程序开发、维护和使用有关的资料总称。
软件=程序+数据+文档。
3.2软件的分类
3.2.1按功能分类
1.系统软件
(1)操作系统 常用的有DOS、Linux、Mac OS、OS/2、UNIX、Windows
(2)支撑软件 包括一系列基本工具(例如编译器,环境数据库,各种接口软件和工具组)
2.应用软件
这是为了满足某一领域、某类问题的应用需求而提供的软件。例如Excel等
3.2.2按规模分类
以参加人数,研制期限,源程序代码行数为参考标准,可分成微型,小型,中型,大型,甚大型,极大型。
3.2.3 按工作方式分类
1.实时处理软件(数据一产生就进行处理)
2.分时软件(允许多个用户同时使用一台计算机)
3.交互式软件(如操作系统软件,游戏软件等,用户能通过输入设备等与之进行交互)
4.批量处理软件
3.3软件的架构
3.3.1 定义
软件架构(software architecture)是有关软件整体结构与组件的抽象模式,用于知道大型软件系统各方面的设计,是系统的一个草图。
3.3.2 软件架构的分层
按功能分组的规则:应用程序专用功能位于高层,跨越应用程序的功能位于中层,配置环境专用功能位于低层。
软件架构四层结构从上到下依次为:应用程序子系统(包括应用程序专用的服务)、业务专用(包括在一些应用程序中使用的业务专用构件)、中间件(包括各个构件,例如GUI构建器、与数据库管理系统的接口等)、系统软件(它为底层,包括操作系统、数据库、与特定硬件的接口等构件)。
系统分层标准:①可见性 ②易变性 ③通用性 ④层数
3.4 操作系统
3.4.1 定义
用以控制和管理计算机系统资源的软件
1.系统观点——计算机资源管理:操作系统的作用类似于城市交通的决策、指挥、控制和调度中心,它组织和管理整个计算机系统的硬件和软件资源,在用户和程序之间分配系统资源,使之协调一致、高效地完成各种复杂任务。
2.用户观点——用户使用计算机的界面:用户一般从三种方面获得计算机系统提供的服务:命令方式,体统调用,图形界面
3.软件观点——程序、数据和文档的集合
3.4.2 几种操作系统
DOS、Windows、UNIX、Linux、Mac OS
3.4.2 智能手机操作系统
塞班、 Windows Phone、IOS、Android、黑莓。
现在主要以Android和IOS系统为主
3.5软件的开发
3.5.1 软件工程
学科定义:软件工程是研究如何以系统的、规范化的、可定量的过程方法去开发和维护软件,以及如何把经过时间考验而被证明是正确的管理技术和当前能够得到的做好的软件开发于维护方法结合起来的学科,即使一本研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
3.5.2 软件开发过程
1.问题定义——要解决的问题是什么
2.可行性研究——对上一个阶段所确定的问题是否有行得通的解决方法
3.需求分析——为了解决这个问题,目标系统需要做什么
4.总体设计——概括地说,应该如何实现目标系统。
5.详细设计——如何具体地实现这个系统
6.程序开发
7.软件测试
8.软件维护
3.5.3用户界面与用户体验
1.用户界面
用户界面设计的三大原则:置界面于用户的控制之下,减少用户的记忆负担,以及保持界面的一致性。
(1)设计流程
1.确认目标用户
2.采集目标用户的习惯交互方式
3.提示和引导用户
(2)一致性原则
1.设计目标的一致性
2.元素外观的一致性
3.人机交互行为的一致性
(3)可用性原则
1.可理解 2.可达到 3.可控制
2.用户体验
用户体验的设计目标使有用、易用和友好。对用户体验的理解可参考IPhone的用户界面,1.只用了一个HOME键。2.使用隐喻在界面视觉提示和功能之间建立了直接的逻辑关系 3.使用大量动画达到华丽的效果。 4.一目了然,用户一看就立刻理解。减少不必要的功能和输入,为用途提供直接的选项,避免不必要的交互 5.作为手机还提供了灵活的手势支持。
3.6软件行业职业简
一、项目管理类
1.项目经理: 是项目的总负责人,指导小组在预算内按时按量完成任务
2.质量保证(QA)工程师 : 负责保证工程的质量
二、开发类
1.软件需求分析师
2.软件开发工程师 :用编程语言和开发技术进行软件开发
3.系统分析师:是抽象模型的建立者
4.系统架构师:最终确认和评估系统需求,给出开发规范,搭建系统实现的核心架构,明确技术细节,解决主要难点。
三、测试类
1.测试工程师
2.软件产品测试经理
四、系统、安全及维护类
1.网络工程师:对计算机网络系统进行设计、建设、运行及维护
2.IT基础设施工程师:负责IT设施的规划、设计、实施、管理、沟通、组织
3.网络安全管理员
4.安全开发工程师
5.数据库管理员
6.系统管理员:网络系统管理员和信息系统管理员
四、销售类
1.售前工程师:开发人员与销售人员的桥梁
2.售后技术工程师:满足用户的售后需求,解决用户的问题
3.系统集成工程师:用户买下软件后,分析用户的业务需求,完成产品的实施。
包括硬件集成,系统初始化,系统配置,高可用性软件安装,应用软件安装,与产品规划人员沟通,掌握产品需求及变更。