走进软件

软件定义

一个软件系统通常包括在计算机运行中能够提供所希望的功能和性能的程序;使程序能够正确运行的数据结构和数据;描述系统结构的系统文档和如何使用与维护该系统的用户文档。如图所示为一般软件的组成要素:

程序是软件的窗口,它展示着系统的能力;
数据是软件的根本,它决定了系统的价值;
文档是软件的灵魂,它关系到系统的命运。

软件分类

1>按功能划分:
系统软件
支撑软件
应用软件
2>按软件工作方式划分
实时处理软件
分时处理软件
交互式软件
批处理软件
3>按服务对象划分
通用软件
定制软件
4>按有偿性和无偿性划分
商业软件
共享软件
免费软件
共用软件

软件架构

软件架构设计的目的

1、为大规模开发提供基础和规范,并提供可重用的资产,软件系统的大规模开发,必须要有一定的基础和遵循一定的规范,这既是软件工程本身的要求,也是客户的要求。架构设计的过程中可以将一些公共部分抽象提取出来,形成公共类和工具类,以达到重用的目的。
2、一定程度上缩短项目的周期,利用软件架构提供的框架或重用组件,缩短项目开发的周期。
3、降低开发和维护的成本,大量的重用和抽象,可以提取出一些开发人员不用关心的公共部分,这样便可以使开发人员仅仅关注于业务逻辑的实现,从而减少了很多工作量,提高了开发效率。
4、提高产品的质量,好的软件架构设计是产品质量的保证,特别是对于客户常常提出的非功能性需求的满足。

软件架构设计的原则

软件架构设计必须遵循以下原则:
1、满足功能性需求和非功能需求。这是一个软件系统最基本的要求,也是架构设计时应该遵循的最基本的原则。
2、实用性原则,就像每一个软件系统交付给用户使用时必须实用,能解决用户的问题一样,架构设计也必须实用,否则就会“高来高去”或“过度设计”。
3、满足复用的要求,最大程度的提高开发人员的工作效率。

操作系统

1.算机系统由硬件子系统和软件子系统组成
2.硬件系统主要由中央处理器,主存储器,辅助存储器,输入/输出设备组成
3.操作使用者认为操作系统是一组命令的集合,程序设计人员认为操作系统是一组功能调用程序的集合,一般认为,操作系统是一种管理计算机资源 ,控制程序执行,改善人机界面和为其他软件提供支持的系统软件。
4.操作系统主要的设计原则:使用方便,高效工作
5.操作系统分为:批处理操作系统,实时操作系统,网络操作系统,分时操作系统,分布式操作系统,多机操作系统和嵌入式操作系统。其中批处理操作系统,分时操作系统,实时操作系统是最基本的操作系统。
6.把用户要求计算机进行处理的一个计算问题称为一个作业,批量处理作业的操作系统为批处理操作系统,实现了计算机操作的自动化。分为批处理单道系统和批处理多道系统。
7.每个用户感到好像自己独占一台支持自己请求服务的计算机系统称为分时操作系统。也是支持多道处理程序的系统。
8.分时操作系统的特点:同时性,独立性,及时性,交互性
9.把由分时操作系统控制的作业为前台作业。批处理操作系统控制的为后台作业
10.能使计算机系统接收到外部信号后及时进行处理,并且在严格的规定时间内处理结束,在给出反馈信号的操作系统为实时操作系统。
11.设计实时操作系统必须要考虑实时性和可靠性
12.把若干台地理上分散的并具有自治功能的计算机系统用通信线路连接起来构成计算机网络称为网络操作系统。
13.分布式计算机系统是由多台计算机组成的一种特殊的计算机网络。称为分布式操作系统。
14.嵌入式操作系统是指运行在嵌入式系统中对各种部件,装置等资源进行统一协调,处理和控制的系统软件。主要特点为:微型化和实时性
15.从资源管理的观点看,操作系统的功能分为处理器管理,存储管理,文件管理和设备管理。处理器管理主要进行处理器的分配调度,存储管理是对主存储器进行管理。

软件的开发

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值