-->

软件开发技术与发展精解

2019-07-13 13:56发布

1.软件分类:

系统软件、应用软件

2.软件特点:

组件化、模块化、强调可复用、可共享。

3.编程体系:

a.面向对象编程(OO):模块化--数据(属性)+程序(方法)==对象

b.面向构建编程:组件化--可复用---API接口

c.面向网络编程:Web Services体系 --万维网--基于网络的分布式的模块化组件发布与使用体系标准。

d.面向开放源码编程:--Linux操作系统、MySQL数据库管理系统、Apache HTTP服务器

4.系统软件分类:

a.系统管理程序:--环境:操作系统、操作环境;运行:数据库管理系统、通信管理器

b.系统支持程序:--支持类型:系统服务程序、系统执行管理器、安全管理器

c.系统开发程序:--包括:语言翻译器、程序设计工具、计算机辅助软件工程包(CASE)

5.操作系统【OS,operating system】:是一个软件包。

基本目标:

a.最有效的操作方式。

b.最大化计算机的生产效率

c.最小化操作过程人工干预

基本功能:

a.用户界面:命令驱动、菜单驱动、图形用户界面【GUI,graphical-user interface】、点触式设备

b.资源管理: CPU、主存储器、二级存储设备、I/O设备

c.文件管理:数据/文件的生成、删除、存取

d.任务管理:任务--时间碎片的映射

e.实用服务程序管理:多种支持服务

系统类型:

处理方式分:

a.分批处理操作系统:作业自动过渡,缩短CPU闲置时间,【提高效率】。

b.分时处理操作系统:时间碎片化-任务分段--多用户同时使用--【提高效率】--要求:主频高

c.实时操作系统:快速响应、即时处理--【高速度,高可靠】--武器控制系统、生产自动控制系统、自动售票系统等。

d.多处理器操作系统:两个CPU连接在一起,并行处理任务。

e.网络操作系统:关注点:充分利用计算机资源---> 友好高效的程序开发和运行环境【GUI】

6.其他系统管理程序

a.数据库管理系统[DBMS ,Database management system],系统软件包。

b.通信管理器:软件包,位置:网络后台(host)计算机端,通信网络前端处理机

c.系统支持程序:服务程序[utility program]、排序程序、执行监视器、安全监视器等

7.常见操作系统

1.Windows系统:1)Windows7--更好的连接无线网络 ;2)Windows Phone

2.UNIX系统: 贝尔实验室--互动式、多用户、多任务操作系统:--可以有多人或多个工作同时使用同一档案。

3.Linux系统: 开放源码的操作系统,可在不同硬件平台上操作

4.Mac OS X系统:苹果公司系统--简洁精美用户界面,能和任何网络环境兼容。

8.程序设计语言

【机器语言--汇编语言--高级语言--自然语言】

1.机器语言: “裸机”--只有0和1,执行速度快。

2.汇编语言:缺点-易出错,不直观,编程繁琐。

3.高级语言:-英语易表达,易找错,通用性强。

a.解释语言:JS/HTML--解释器(interpreter)--边翻译边执行计算【单位:句】-占用内存少,耗时

b.编译语言:C系列语言--编译器(compiler)--先编译,再执行计算【单位:整个程序包】--执行速度快,占内存

9.第四代语言与软件工具

第一代:机器语言

第二代:汇编语言

第三代:高级语言

第四代:非过程化语言:人-->机的辅助决策重心转化:

包括7类:

1.查询语言[query language]:DBMS 、SQL--数据

2.报表产生器[report generator]:--数据处理--报表格式展现

3.图形化语言[graphics language]:--数据处理--图形化展示/分析--SAS软件和Systat软件

4.应用程序产生器[application generator]:模块组化公共程序代码-加快开发速度-DBMS、数据字典查询语言、屏幕生成器、

图形生成器、报表生成器、支持决策模型、安全保护等

5.非常高阶程式语言[very high-level programming language]:是一种利用少量指令集来产生程序码的程序语言。APL和Nomad2是两个案例。

6.应用套装软件:一组事先写好的程序码。

7.个人计算机工具:

				a.办公自动化软件:Word、Excel、PPT、Access、Outlook、电子邮件等
b.万维网浏览器[Web Browser]:微软-IE、网景公司--Netscape Navigator、Mozilla公司--Firefox,Opera和Safari
c.群组软件[groupware]:一个网络连接多个群组成员计算机。--信息分享、电子会议、时程表和电子邮件等。

实例:IBM的Lotus Notes,微软的SharePoint[共享系统]和ExchangeServer[消息与协作系统]等

第五代:使用人工智能技术实现用户需求的语言:人-->机的智能决策重心转换。

10.互联网环境下的编程语言:

a.超文本标记语言[hypertext markup language,HTML]:网页设计语言--用于描述网页的超文本和超媒体[hypermedia]文件

b.扩展标记语言[eXtensible markup language,XML]:支持网络文件管理或者系统间资料的传递。

c.JAVA及其开发平台:普适性较强,同一个Java程序可在各种品牌、各种操作系统的计算机,甚至智慧型电话上执行。

J2EE[Java 2 Platform Enterprise Edition]体系结构--企业级应用设计,支持EJB[Enterprise JavaBeans]、JavaServlets API 、JSP[Java Sever Pages] 和XML技术等。

11.软件开发方法和工具

1.面向对象程序设计:类[class]和继承[inheritance]--> 可视化程序设计[更加简易化操作]

例子:

类1:交通工具 --父类 [属性和方法-公共]

类2:汽车 --子类[属性和方法--特殊]

关系:层属关系 [包含关系]

在描述汽车类时,描述他与交通工具类的不同之处。

2.UML:面向接口设计、图形化开发界面的建模语言。适用于软件开发全生命周期。

a.UML内容:5类9种图

1.用例图--用户角度描述系统功能

2.静态图--[类图、对象图和包图]

类图:类的静态结构包括联系[关联、依赖、聚合..]和内部结构[类的属性和操作]

对象图:类图的实例[对象]-- 存在生命周期

包图:包或类组成,表示包与包之间的关系,用于描述系统的分层结构。

3.行为图--描述系统的动态模型和组成对象间的交互关系。状态图描述类的对象所偶有可能的状态以及事件发生时状态的转移条件。

4.交互图--描述对象间的交互关系。 顺序图:强调时间和顺序;合作图:强调上下级关系。

5.实现图--构件图:描述代码部件的物理结构及各部件之间的依赖关系。

配置图:定义系统中软硬件的物理体系结构,他可以显示

注:用面向对象设计系统时:1.描述需求 2.根据需求建立静态模型,构造系统的结构 3.描述系统的行为。

b.按照动静状态划分UML标准建模建模内容:

静态建模机制:用例图、类图、包图、对象图、组件图和配置图

动态建模机制:状态图、活动图、顺序图和合作图。

3.UML的应用领域:机械系统、信息系统、工业系统和工业过程等。

12.MVC[model-view-controller]设计模式

视图[view]--用户交互界面,Web的HTML界面,但是有可能有XHTML、XML和Applet。

模型[model]--业务流程/状态的处理以及业务规则的制定。 --EJB模型/数据模型

控制[controller]--从用户接收请求,将模型与视图匹配,共同完成用户请求。

13.每日一问:

猜测一下未来语言的发展形态?

文章来源: https://www.toutiao.com/group/6694084574852416014/