2012-2013 东南大学 软件学院 研究生 复试题 答案仅供参考(切勿照搬请可自行整理)
2013年东南大学计算机专业考研真题

2013专业课真题一、选择题(1~20题,共40分)1.在利用栈将中缀表达式A-(B+C/D)×E转化成后缀表达式的过程中,当扫描到符号”)”时,栈中的内容是A (+/B -(+C -(/D -(+/2.现有一颗含有25个结点的4叉树T,若T中所有分支(即度不为0的)结点的度均为4,则T的叶子节点数是A 15B 17C 19D 213.下列序列中,不可能是任意二叉搜索树后序遍历序列的个数是①5,3,4,10,12,8②5,4,3,10,12,18③3,4,5,12,10,8④10,12,5,4,3,8A 0B 1C 2D 34.带权无向图G如下图所示,若分别用Prim算法(从顶点0开始)和Kruskal算法求G的最小生成树,则最后选中的边的权值分别是A 5,3B 3,5C 5,4D 5,55.已知序列25,13,10,12,9,5,6,8是大根堆,在插下新元素20的过程中,共进行比较操作的次数是A 0B 1C 2D 36.若数据元素序列9,10,11,8,5,12,2,4,7是采用下列排序方法之一得到的第二遍排序后的结果,则该排序算法只可能是A 冒泡排序B 选择排序C 插入排序D 二路归并排序7.若依次将关键码20,30,50,52,60,68,70插入到初始为空的3阶B树中,则最后得到B树的根结点中所包含的关键码是A 50B 52 D 60 D 50,528.下列关于机器字长的叙述中,错误的是A通用寄存器位数等于机器字长B系统总线宽度等于机器字长C主存单元长度不大于机器字长 D ALU位数等于机器字长9.为了使计算机的数据传送和数据处理的功能可以并行实现,下列方法中有效的是A多种总线互联B以存储器为中心C多重存储器共存D以运算器为中心10.某计算机存储器按字节编址,主存容量配置为64KB,下列设计方案中,所用芯片的MOS 管门电路等基本元件性能相当,则性能最优的方案是A 4片16KB×8位SRAM芯片B 4片16KB×8位DRAM芯片C 4片32KB×4位SRAM芯片D 8片64KB×1位DRAM芯片11.下列寻址方式中,只能用于指令寻址的是A立即寻址B寄存器寻址 C 相对寻址 D 基址寻址12.下列有关微指令的叙述中,错误的是A垂直型微指令全部是功能性指令B垂直型微指令指令长度比较短C水平型微指令可完成多个微操作D水平型微指令显示表示顺序控制信息13.下列有关总线定时的叙述中,错误的是A异步全互锁定时方式的通信速度最慢B异步不互锁定时方式的通信可靠性最差C异步定时方式的握手信息可不通过联络信号产生D同步定时方式的时钟信号可由设备自行提供14.下列有关I/O接口的描述中,错误的是A每个I/O接口中至少包含一个I/O端口B一个I/O接口可以连接多个I/O设备C程序控制方式的I/O接口中可以没有状态口D不同I/O接口的I/O端口之间允许独立编址15.一个请求分页系统,测得如下利用率:CPU为5%,分页磁盘为97.5%,外设为4%,则下列措施中,可改善CPU利用率的是A更换速度更快的CPU B更换更大容量的分页磁盘C挂起内存中的某个用户进程D增加内存中的用户进程16.以下关于页式内存管理系统页面大小的叙述中,正确的是A页越大,页表也越大B页越大,则I/O开销越大C页越大,则内部碎片越大D页越大,则产生缺页中断的可能性越大17.某系统中有11台打印机,N个进程共享打印机资源,每个进程要求3台,为使系统不产生死锁,N的取值最多是A 4B 5C 6D 718.以下关于进程说法正确的是I.进程从运行状态转换到就绪状态,系统一定会发生CPU调度II.当I/O完成时,一个进程的状态有可能从等待状态转换为运行状态III.进程从等待状态转换为就绪状态,系统一定会发生CPU调度IV.进程进入终止状态,系统一定会发生CPU调度A I和IVB II和IIIC III和IVD IV19.页式内存管理系统中,物理内存地址为16位,逻辑地址为24位,页面大小为512B ,采用两级页表结构,外层页表有256页,则以下正确的是I.一个进程中最多有128个页II.一个进程中最多有32K 个页III.逻辑地址中表示外层页表、页号和页内偏移量的位数分别为8、7、9IV.逻辑地址中表示外层页表、页号和页内偏移量的位数分别为7、8、920.系统中四个进程(P1~P4)和三类资源(3个R1,2个R2,2个R3),进程资源分配和请求状况如下表所示,则正确的是二、综合应用题(21~32,共110分)21(8分)归并排序一般从用2路归并,即在两两归并过程中,从两个有序子序列中逐次挑选关键字最小的元素。
东南大学 软件学院2014复试经验

6、住的方面:软院的复试一般是三天,在南京本部和其他专业是一起的,所有说,住的方面
还是有些紧张的,需要提前预定房间;
7、时间流程:第一天上午:体检,在学校附属医院,其余时间无事;
第二天上午:笔试;
第三天:面试,一般是多组同时面试,分组,然后拍好队一个一个面试,刚
5、笔试:软件工程+(数据库、网络工程、微机)三选一。软件工程的问题是比较主观的,
主要问问你对软件工程的看法、有时候会问一些比较火热的话题,如对大数据的看法,网
络工程的问题还是比较基础的,网址的计算、TCP、UDP协议一些问题,数据库也是比较
基础的,我差不多半个小时就答完了,微机题目没有关注;
20号左右就要复试,月底出结果。
如果本科是计算机或者软件专业,面试的时候比较有优势,老师们还是比较偏向这类学生;
4、面试的时候,一般会有英语口语的问答,我是先中文自我介绍的,然后老师会问几个英文
问题,都是比较简单的,不过在那种场合下容易答不上来,我就是两个问题都没回来出来,
不过老师很和善替我解围了。有些同学是先英文自我介绍的,然后就没有英文问答了;
1、能进复试就不要太担心被刷掉,放平心态;
2、首先是项目经验,如果有,就花时间回想下项目里面的知识,东南的面试老师
对这个比较感兴趣。没有的话也不要担心,课程设计或者平时的一些实验也可以拿出来;
3、东南不会对二本或者三本有歧视,他们看中的更是实际的能力,每年虽然有不少东南本
部或者一些985、211的院校的学生,但是同样的,普通院校的也是很多的。还有一点,
开始大概10分钟左右一个人,后面的就快些了。
目前能想到的就是这些了,对复试要有信心,东南的老师还是很和善的,至少我哪一组
2013东大真题解答

图 1 题二电路图
= 解:Ru0/r/(ss)C10
−uc(s) R1+sC11
T(s) = − (R0C0s+1)(R1C1s+1)
R0C1s
三、(共 20 分)已知控制系统结构图如图 2 所示,其中������������(������)的单位脉冲响应为������������ − ������������������−������。 试分析内反馈������������的存在对系统稳定性以及系统稳态误差的影响。
继电器特性描述函数:������(������) = ������������ √������ − (������)������ ,������ ≥ ������。
������������
������
图 4 题七系统结构图
解:W (s)
3
, W ( j)
j3
s(0.8s 1)(s 1)
(s + 2)[(s + 2)(s + 5) − (s − 1)(2s + 10 + s + 2)] = 0 ������1 = −2,为两个开环极点 ������2 + ������ − 11 = 0
������ = −1±√1+44 = −1±6.7,
2
2
������2 = 2.85(舍去),������3 = −3.85——分离点
−1]Βιβλιοθήκη Kz−1(0.368 + 0.264Zz−1) = (1 − 0.368z−1)[1 + (K − 1)z−1]
所以,Wk(Z)
=
Z
[1]
s
∙
Wk1(Z)
东南大学软件学院2012年硕士生复试录取工作细则

东南大学软件学院 2012 年硕士生复试录取工作细则根据“东南大学2012 年硕士研究生复试录取工作办法”,结合具体情况,特制定软件学院2012 年硕士研究生复试录取工作细则。
一、专业复试线参考国家A 类地区分数线二、复试形式、内容和要求1、笔试:专业笔试分两部分:第一部分:软件工程基础知识。
第二部分:下列科目任选一门:计算机网络、数据库原理、微机系统与接口技术。
考试形式:闭卷,时间为3 小时,满分为150 分。
2、面试:其中英语听说能力 40 分。
面试主要是对考生的外语听力水平、口语水平,知识结构和综合能力等进行测试。
满分150 分。
面试成绩=(各位面试教师成绩之和/面试教师数)×组别系数,组别系数=总平均分/组平均分。
3、复试成绩=笔试成绩*50%+面试成绩*50%三、拟录取原则综合成绩=初试成绩(按满分150 分折算)*60%+复试成绩(满分150 分)*40%面试合格、以综合成绩作为拟录取依据,第一志愿报考者优先。
经学校研究生招生办公室审核后及时公布。
四、复试阶段各环节安排1、资格审查时间:3 月27 日(周二)上午 8:30 开始,地点:南京市进香河路 35 号软件学院 104 会议室。
资格审查:准考证、有效身份证件、毕业证书(应届生提供学生证)原件及复印件一份等;体检表发放(请各位考生带本人一寸近照一张)。
2、笔试时间:3 月 28 日(周三)上午 8:30 开始,具体地点请关注东南大学软件学院网页和学院公告栏。
3、面试时间:3 月29 日(周四)上午 8:30 开始,拟分组同时进行,分组名单和面试地点将在学院公告栏内公布。
4、体检时间:3 月27 日(周二)下午 14:00—17:00,地点:南京市成贤街 82 号东南大学校医院四牌楼校区。
五、复试费缴纳方式:校内调剂的考生:请登录东南大学研招办网页,查看 2012 年硕士研究生复试名单查询及复试费交纳说明,进行复试名单的查询和复试费(80 元整)的支付。
东南大学心理学复试题及答案

东南大学心理学复试题及答案一、选择题1. 心理学研究的主要内容是什么?A. 心理过程B. 心理状态C. 心理特征D. 心理过程和心理状态答案:D2. 弗洛伊德的精神分析理论中,人格结构分为哪三个层次?A. 本我、自我、超我B. 意识、前意识、潜意识C. 认知、情感、意志D. 感知、记忆、思维答案:A3. 以下哪项不是心理学研究方法?A. 实验法B. 观察法C. 调查法D. 推理法答案:D二、简答题1. 简述认知失调理论的主要内容。
答案:认知失调理论由费斯汀格提出,主要内容包括个体在持有两个或多个相互矛盾的认知时,会产生心理不适感,从而驱使个体改变其中一个认知,以减少或消除这种不一致的状态。
2. 描述马斯洛的需求层次理论。
答案:马斯洛的需求层次理论认为人的需求可以分为五个层次,从低到高依次是生理需求、安全需求、社交需求、尊重需求和自我实现需求。
只有当较低层次的需求得到满足后,个体才会追求更高层次的需求。
三、论述题1. 论述情绪智力在个人发展中的重要性。
答案:情绪智力是指个体识别、理解、管理和使用情绪的能力。
在个人发展中,情绪智力对人际交往、决策能力、压力管理等方面都有重要影响。
高情绪智力的个体通常能更好地处理人际关系,更有效地应对挑战和压力,从而在职业和生活中取得更好的成就。
四、案例分析题案例:某大学生在期末考试前感到极度焦虑,导致无法集中注意力复习。
问题:请分析该学生可能的心理问题,并提出相应的应对策略。
答案:该学生可能面临考试焦虑,这是一种常见的心理问题,通常与对考试结果的过度担忧和对失败的恐惧有关。
应对策略包括:1) 学习放松技巧,如深呼吸、冥想等,以缓解紧张情绪;2) 制定合理的复习计划,避免临时抱佛脚;3) 正确认识考试的意义,调整对成绩的期望值;4) 寻求心理咨询帮助,以更专业的方式处理焦虑情绪。
结束语:以上是东南大学心理学复试题及答案的示例,希望能够帮助考生更好地复习和准备考试。
心理学是一个涉及广泛领域的学科,通过学习和理解心理学的基本概念和理论,我们可以更好地认识自己和他人,提高生活质量。
2012-13南大东大面试真题及其他

南京大学2013年面试真题:1、常有人把单词"Chemistry"拆分为chem is try,谈谈你的看法。
2、有人说一切历史都是当代史,谈谈你的看法。
3、跟正方形四条边都能构成等腰三角形的点有多少个?在同一个平面内有多少个?4、微波炉门上常加有铁丝网格,能起什么作用?手机在铁盒里为什么就听不到铃声?5、说说四大文明古国有哪些思想家。
6、对吴仁宝的华西村模式,谈谈理解和看法。
7、说说SARS和H7N9的关系,以及区别。
8、简述光电效应,第一个因研究光子而获得诺贝尔奖的是谁?9、对越来越多的家长送学生出国说说你的看法。
10、中国的传统节日有哪些?11、对网络文化中传统经典日渐衰落的看法分析。
12、对爱因斯坦相对论的理解。
13、“人生而平等,但又无时无刻不在枷锁之中”你怎么看?14、母狮子收养了一只小羚羊,你觉得为什么?15、百家讲坛一开始都是请杨振宇等物理学家讲授专业的物理学知识,可是在最火的时候却是请易中天、于丹等学者讲授传统的中国传统文化知识,你怎么看?16、说出地壳结构中最多的前五位元素。
17、清明节有哪些习俗?18、国家的GDP怎么算?19、中国有四大发明,如果选出第五大发明,你觉得是什么?20、能用若干个不同的小正方形组成一个大正方形吗?21、你对《哥特巴赫的猜想》怎么看?22、从物理和人文的角度谈谈“惯性”一词23、中国文明从石器,青铜器,铁器一步步的进化,你怎么看?24、二氧化碳含量上升,海水酸度上升,会有什么影响,应该有哪些对策? 南京大学2012年面试真题:1.爱因斯坦说“上帝不会掷色子”,你如何理解这句话?2.孔子说“人所不欲,不逾矩”,也有人认为“人所不欲,要逾矩”,你支持哪种观点?3.氢化植物油是什么结构成分?它有什么危害?4.为什么下雪之后人会感到特别安静?5.你对“蝴蝶效应”这种现象,如何理解?6.如果你是某地的政府领导,亲人发生意外需要人提供帮助,而与此同时当地又发生了气候灾害,你在二者之间会如何权衡应对?7.雪和冰有什么区别?8.“如何看待沈从文说的‘爱与死为邻’?”9.20只母鸡的产蛋率高还是20只母鸡和1只公鸡的产蛋率高?东南大学 2013 自主招生面试题导读:东南大学2013年自主招生面试选拔,考生被分成五个小组,现场抽签确定面试的顺序。
(完整版)东北大学软件工程复试大全软件工程

一、判断题1、软件危机是指软件开发和维护过程中存在的周期长、成本高、质量低等问题( )。
2、软件危机是指计算机硬件发展的太快,软件开发跟不上硬件的更新()3、软件工程是指以质量为核心,为经济的开发满足客户需求的软件而研究、建立和应用的系统化的、有规则的、可度量的、可控制的工程原则和方法。
()1、软件危机是指软件开发和维护过程中存在的周期长、成本高、质量低等问题( )。
2、软件危机是指计算机硬件发展的太快,软件开发跟不上硬件的更新()3、软件工程是指以质量为核心,为经济的开发满足客户需求的软件而研究、建立和应用的系统化的、有规则的、可度量的、可控制的工程原则和方法。
()4、软件工程是指编制软件的工程项目。
()5、软件工程是一个零散的相关知识点的集合。
( )6、软件工程包含软件过程、项目管理、开发方法、软件度量和开发工具等各相关方面的知识的有机组合()7、软件开发具有难以描述性()8、软件开发的质量保证主要是通过程序员的经验来保证的()9、软件满足客户需求的程度是衡量软件质量的最重要因素()10、项目管理的内容涉及人力资源管理、项目计划、风险管理、项目跟踪、质量保证、配置管理等方面()11、项目管理的内容涉计算机硬件管理和软件管理两方面( * )二、选择题1、下面描述哪些不属于软件的开发特性()A) 软件开发具有难以描述性 B) 软件开发缺乏可见性C) 软件开发具有独立性 D)软件开发具有变化性2、下面描述中那些属于软件的开发特性()A) 软件开发具有风险性 B) 软件开发具有随意性C) 软件开发具有可描述性 D) 软件开发不具有变化性3、以下对于软件危机的描述正确的是()A)软件危机是指软件开发过程越来越长 B) 软件危机是指软件开发成本越来越高C) 软件危机是指软件质量越来越低 D) 软件危机是指以上三项的综合4、软件危机的表现不正确的是( )A) 缺乏计划性 B)软件需求获取不充分、不准确C)缺乏团队开发的合作 D)开发过于规范5、软件危机的表现不正确的是()A)缺乏良好的质量评测手段 B)软件的可维护性C)软件种类过少 D)软件可复用性差6、有关软件工程的描述正确的是()A)软件工程只包括软件的开发过程B)软件工程涉及软件过程、项目管理、开发方法、开发工具甚至企业文化.C) 软件工程的目标是提高开发的软件的运行速度。
计算机考研复试题目及答案

计算机考研复试题目及答案### 计算机考研复试题目及答案#### 题目一:数据结构问题:请解释什么是二叉搜索树,并说明其基本操作。
答案:二叉搜索树(Binary Search Tree,简称BST)是一种特殊的二叉树,它具有以下性质:1. 若任意节点的左子树不为空,则左子树上所有节点的值均小于它的节点值。
2. 若任意节点的右子树不为空,则右子树上所有节点的值均大于它的节点值。
3. 任意节点的左、右子树也分别为二叉搜索树。
4. 没有键值相等的节点。
二叉搜索树的基本操作包括:- 插入操作:将一个新值插入到树中,保持树的有序性。
- 查找操作:在树中查找一个给定值的节点。
- 删除操作:删除树中具有特定值的节点,并重新调整树以保持其性质。
#### 题目二:操作系统问题:请简述死锁的必要条件,并说明如何避免死锁。
答案:死锁是指多个进程在执行过程中因争夺资源而造成的一种互相等待的状态,若无外力作用,这些进程都无法继续执行。
死锁的必要条件包括:1. 互斥条件:至少有一个资源不能被共享,只能由一个进程使用。
2. 占有和等待条件:至少有一个进程至少占有一个资源,并且等待获取其他进程占有的资源。
3. 不可剥夺条件:已分配给一个进程的资源,在未使用完之前,不能被其他进程强行剥夺。
4. 循环等待条件:存在一个进程序列,使得每个进程都在等待下一个进程所占有的资源。
避免死锁的方法:- 资源分配策略:如银行家算法,确保分配资源时不会导致死锁。
- 资源有序分配:确保所有进程按照相同的顺序请求资源。
- 避免循环等待:通过资源的有序分配来打破循环等待的条件。
#### 题目三:计算机网络问题:描述TCP协议的主要特点。
答案:传输控制协议(TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,其主要特点包括:1. 数据传输的可靠性:通过三次握手建立连接,确保数据传输的可靠性。
2. 数据传输的有序性:通过序列号和确认应答机制,保证数据按序到达。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013 年东南大学软件学院研究生复试笔试部分:科目:(软件工程基础)+三选一今年是分网络、数据库、微机原理三个方面的,卷子上都有,由考生自己选,但只能选一门。
我当时选的是网络,所以也只记得网络的,其他两门大家自己再搜搜看吧。
软件工程基础有四题,都是论述题,挺简单的,大体如下:1、谈谈开源软件,比如历史、特点、未来发展等;2、软件工程师应该具备的素质;3、什么是软件架构,谈谈软件架构设计的历史,发展及作用;4、谈谈结构化软件设计和面向对象软件设计的区别网络部分有十个选择题跟四个论述题,选择题不难,就不多说了,论述题大体如下:1、谈谈防火墙,并根据一个具体例子说说防火墙的原理;2、一个主机能访问本网段其他主机,却不能访问其他网段主机,分析可能的原因;3、“分组/组装”技术,在什么情况下使用;4、主机之间怎么为不同服务提供通信的,一个服务怎么同时为多个客户提供服务的。
2012年软件工程基础1.结构化软件开发和面向对象的软件开发各有什么特点。
2. 你认为软件开发和软件管理的关系是什么?3.谈谈你对软件工程这门学科的理解。
4,你认为软件工程师应该具备什么样的素质。
计算机网络选择15题,都是基础问答题1. 用什么方法保证帧间隔符“01111110”的唯一性和传输的透明性2. 在什么情况下使用“分组/组装“技术,并举例。
3. 配置一台接入网络的计算机设备的时候,如果DNS没有配置会怎样,如果不配置,在什么情况下会有影响。
4.学校要弄无线网络,在原有的网络基础上该怎么办?2.软件工程师应具备基本素质因特网的迅速崛起,使计算机的应用越来越广泛,人们对计算机软件的需求也急剧膨胀。
传统的“作坊式”软件开发时代,我们更多的培养了一批称得上“个人英雄”的“程序员”,随着目前不断迅速增长的系统软件需求,软件生产必须走向工程化,形成产业,从而也开始逐渐出现一个新的职业人群和称谓——“软件工程师”。
良好的编码能力。
软件人员的一个重要职责是把用户的需求功能用某种计算机语言予以实现。
编码能力直接决定了项目开发的效率。
这就要求软件工程师至少精通一门编程语言,比如当前国内企业常用的C/C++、VB和国际上最流行的Java语言,熟悉它的基本语法、技术特点和API(应用程序接口)。
自觉的规范意识和团队精神。
随着软件项目规模越来越大,仅仅依靠个人力量已经无法完成工作,因此,现代软件企业越来越重视团队精神。
一般来讲,软件企业中的程序员可以分为两种,一种是程序游击队员;,他们可能对编程工具很熟,能力很强,把编码编得很简洁高效,但却缺乏规范和合作的观念;另一种程序员编程不一定很快,但是很规范,个人能力不一定很强,但合作意识很好。
第二种人更加适合现代软件企业发展的潮流。
对于基础软件工程师来说,他们在企业中的角色决定了他们必须具有良好的规范意识和团队精神。
认识和运用数据库的能力。
信息是以数据为中心的,因此与数据库的交互在所有软件中都是必不可少的,了解数据库操作和编程是软件工程师需要具备的基本素质之一。
目前常用的数据库软件有甲骨文公司的Oracle数据库和微软公司的SQL Server等。
较强的英语阅读和写作能力。
程序世界的主导语言是英文,编写程序开发文档和开发工具帮助文件离不开英文,了解业界的最新动向、阅读技术文章离不开英文,与世界各地编程高手交流、发布帮助请求同样离不开英文。
作为基础软件工程师,具有一定的英语基础对于自身的学习和工作极有帮助。
具有软件工程的概念。
基础软件工程师处于软件企业人才金字塔的底层,是整个人才结构的基础,虽然他们从事的工作相对于系统分析师和高级程序员要单纯一些,但是他们是整个软件工程中重要的一环,因此,基础软件工程师同样要具有软件工程的概念。
从项目需求分析开始到安装调试完毕,基础软件工程师都必须能清楚地理解和把握这些过程,并能胜任各种环节的具体工作,这样的能力正好符合了当前企业对基础软件工程师的全面要求。
求知欲和进取心。
软件业是一个不断变化和不断创新的行业,面对层出不穷的新技术,软件人才的求知欲和进取心就显得尤为重要,它是在这个激烈竞争的行业中立足的基本条件。
软件工程师应具有较强的学习总结能力、需求理解能力和对IT新技术比较敏感,同时,掌握最新的IT实用技术。
具有敏锐的洞察力软件测试工程师应当善于发现问题,要肯于钻研,有打破砂锅问到底的精神,对于只出现过一次的bug ,一定找出原因,不解决誓不罢休。
在这种情况下发现的问题往往是非常严重或者容易被人忽视的问题。
追求完美对于测试人员来说,努力的追求完美,这对你很好,尽管有些事无法做到,但你应该去尝试。
测试需要多角度的去考虑问题,这在集成测试和系统测试过程中显得尤为重要。
遵守职业道德规范,树立正确的技能观决不能利用自己的技能去从事危害公众利益的活动,包括构造虚假信息和不良内容、制造电脑病毒、参与盗版活动、黑客活动等。
具有良好的工作责任性,不能以追求个人利益为目的,不随意向他人泄露工作和客户机密。
4、谈谈结构化软件设计和面向对象软件设计的区别1.开源软件的发展历程开源软件的发展,和互联网的发展密不可分。
真正有规模的开源软件,应该是从上个世纪90 年代开始进入公众视线,也就是互联网开始兴起的年代。
我们大致可以将开源软件的发展分为如下三个阶段:1萌芽阶段(上世纪九十年代之前)。
这个阶段主要以个人和大学为主,因为发布条件受限,大多数开源软件无法得到有效传播,而仅仅流传于互相熟悉的程序员和老师、学生之间。
这个阶段的典型开源软件为BSD 操作系统。
2以非盈利组织为主的阶段。
这个阶段应从上个世纪九十年代算起,说起这个阶段,我们不得不提到Richard Stallman 发起的自由软件基金会,还有Apache 基金会等。
前者发起的GNU 项目(1983 年发起,九十年代后随Linux普及),成就了Linux 操作系统;后者维护的Apache WEB服务器,在互联网上几乎占据了统治地位。
3以大型IT企业为主的阶段。
这个阶段出现于2005 年之后,以谷歌为代表的大型互联网企业,开始以各种方式发布开源软件,最为著名的是Chrome 浏览器以及Android 操作系统;当然还有Intel、Nokia 等企业主导的Moblin、MeeGo 等基于Linux 的智能手机操作系统。
3.什么是软件架构,谈谈软件架构设计的历史,发展及作用软件架构是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。
软件架构是一个系统的草图。
软件架构描述的对象是直接构成系统的抽象组件。
各个组件之间的连接则明确和相对细致地描述组件之间的通讯。
在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。
在面向对象领域中,组件之间的连接通常用接口来实现。
历史和发展早在1960年代,诸如艾兹格·迪杰斯特拉就已经涉及软件架构这个概念了。
自1990年代以来,部分由于在Rational Software Corporation和Microsoft内部的相关活动,软件架构这个概念开始越来越流行起来。
卡内基梅隆大学和加州大学埃尔文分校在这个领域作了很多研究。
卡内基·梅隆大学的Mary Shaw和David Garlan于1996年写了一本叫做Software Architecture perspective on an emerging discipline的书,提出了软件架构中的很多概念,例如软件组件、连接器、风格等等。
加州大学埃尔文分校的软件研究院所做的工作则主要集中于架构风格、架构描述语言以及动态架构。
作用软件体系结构是构建计算机软件实践的基础。
与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础。
从和目的、主题、材料和结构的联系上来说,软件架构可以和建筑物的架构相比拟。
1.结构化软件开发和面向对象的软件开发各有什么特点。
1.基本思想的比较结构化方法的基本思想主要体现在三个方面。
1自顶向下,逐步求精:把程序看成是一个逐步演化的过程。
把一个系统与程序看成是一层一层的。
例如:户籍管理系统可以划分为:户籍迁入迁出,人员迁入迁出,户籍注销,人员注销等几个子系统,而每个子系统又划分为接收用户信息,实施处理,提供返回信息等等部分。
2模块化:即将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。
模块跟模块之间通过接口传递信息,模块最重要的特点就是独立性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。
3语句结构化:顺序结构、分支结构、循环结构,都是常用的语句结构。
面向对象方法的基本思想主要有:1客观世界中的事物都是对象,对象之间存在一定的关系,并且复杂对象由简单对象构成。
2具有相同属性和操作的对象属于一个类,对象是类的一个实例。
3类之间可以有层次结构,即类可以有子类,其中,子类继承父类的全部属性和操作,而且子类有自己的属性和操作。
4类具有封装性,把类内部的属性和一些操作隐藏起来,只有公共的操作对外是可见的,对象只可通过消息来请求其他对象的操作或自己的操作。
五、强调充分运用人在日常逻辑思维中经常采用的思想方法与原则。
例如:抽象,分类,继承,聚合,封装,关联等。
2、基本原则的比较结构化方法遵循基本原则有:1抽象原则:是一切系统科学方法都必须遵循的基本原则,它注重把握系统的本质内容,而忽略与系统当前目标无关的内容,它是一种基本的认知过程和思维方式。
2分解原则:是结构化方法中最基本的原则,它是一种先总体后局部的思想原则,在构造信息系统模型时,它采用自顶向下、分层解决的方法。
3模块化原则:结构化方法最基本的分解原则的具体应用,它主要出现在结构化设计阶段中,其目标是将系统分解成具有特定功能的若干模块,从而完成系统指定的各项功能。
面向对象方法遵循基本原则有:1抽象:是处理现实世界复杂性的最基本方式,在OO方法中它强调一个对象和其他对象相区别的本质特性,对于一个给定的域确定合理的抽象集是面向对象建模的关键问题之一。
2封装:是对抽象元素的划分过程抽象,由结构和行为组成,封装用来分离抽象的原始接口和它的执行。
封装也称为信息隐藏,它将一个对象的外部特征和内部的执行细节分割开来,并将后者对其他对象隐藏起来。
3模块化:是已经被分为一系列聚集的和耦合的模块的系统特性,对于一个给定的问题,确定正确的模块集几乎与确定正确的抽象集一样困难,通常每个模块应该足够简单以便能够被完整地理解。
4层次:抽象集通常形成一个层次,层次是对抽象的归类和排序,在复杂的现实世界中有两种非常重要的层次,一个是类型层次,另一个是结构性层次。
确定抽象的层次是基于对象的继承,它有助于在对象的继承中发现抽象间的关系,搞清问题的所在,理解问题的本质。