1、数据结构数据结构指是数据之间相互关系,即数据组织形式。数据结构是计算机存放、组织数据 方法。数据结构是指相互之间存在一 种或多个特定关系数据元素集合 。通常情况下,精心选择数据结构 能够带来更高运行或存放效率。 数据结构往往同高效检索算法和索 引技术相关。我们把数据结构设计、数据库设计、甚至数据文件设计等统一称为数据模型设计。 在数据模型设计中有一个关键概念:持久数据操作,它包含写入、查询、更新和删除四类基础操作和由它们复合而成业务数据操作。 在很多软件系统中,数据是其关键,所以,对数据元素格式、结构、访存、表示等机制进行良好建模和优化,是提升软件设计质量和系统性能基础,对软件系统应用含相关键
2、意义。面向组件设计面向组件思想是在软件规模扩大,复杂度上升背景下,以面向对象为基础而提出一个软件设计思想。能够把它了解为一个更粗粒度面向对象,其粒度通常大于对象,但具体要到什么程度,又能够依据实际情况来决定。这种思想以组件为基础,强调“服务”概念。在面向组件开发中,应用程序是由一系列能够相互交互二进制模块组合而成。一个具体二进制组件可能并不能完成什么工作。有些组件是为了提供部分常规服务而编写,比如通信封装或文件访问组件。也有部分是为了一些特定应用而专门开发。一个应用程序设计者能够经过把这些不一样组件提供功效粘合在一起来实现她们需要商业逻辑。很多面向组件技术比如: COM 、 J2EE 、 CO
3、RBA 和 .NET 全部为二进制组件提供了无缝链接机制。而唯一不一样就是你需要在组件通信上花费力气。通常多用于对dll,lib处理上。简单说,就是QQ、迅雷和IE捆绑起来就叫面向组件。面向组件含有以下特点:低耦合性,高重用性,高互操作性,进程透明性,语言和开发环境独立性软件体系结构风格软件体系结构风格是软件设计人员在长久软件设计过程中总结出来部分规律性东西,经过提炼总结而成。软件体系结构风格是软件体系结构设计上模式,所以能够看作是一个广义软件设计模式,但通常不认为是侠义软件设计模式。定义:在构件和连接子层次描述可反复使用软件设计问题处理方案。管道/过滤器风格:一个显著特征是:系统中构件之间经
4、过数据流松散耦合。也就是说,构件之间依靠仅仅是数据流,而不是通常接口函数调用火消息传输。编译器采取也是管道/过滤器风格层次风格:这种设计风格便于将复杂系统进行分解;同时也便于构件替换:只要保持接口一致,就能够将某一层软件替换,而不会影响到系统其它部分。层次风格优点是结构清楚、可替换性好、便于控制复杂性;但也有缺点,如效率低。用户/服务器风格:从向外提供服务构件出发,沿着连接关系递次搜索各构件和连接子,假如形成拓扑结构是一棵倒置树,那么这个系统体系结构就是用户/服务器风格,这种风格使得服务功效实现很集中,便于系统实现,所以得到广泛使用。软件开发过程模型软件生存周期包含了软件从概念形成到最终退伍全
5、部活动,而对于一个含有软件项目,开发人员愈加关注是开发过程中包含活动和其具体安排。软件开发是一个复杂过程,尤其是在多数项目开发中,不能一次就全部、正确地生成需求规格说明,所以软件开发各个阶段之间关系极少是严格线性次序,相反应该是带有反馈迭代过程。这种对软件开发中对所含活动安排方法,能够用软件开发过程模型表示。它给出了软件开发中各个活动之间关系,它是软件开发过程概括,是软件工程关键内容。它能为软件工程管理提供里程碑和进度表,为软件开发过程提供标准和方法。经典软件开发模型大致可分为三种类型:第一个是以软件需求完全确定为前提瀑布模型;第二种是在软件开发初始阶段只能提供基础需求时采取渐进式开发模型,如
6、原型模型、螺旋模型等;第三种是以形式化开发方法为基础变换模型。软件体系结构和算法结构区分和联络软件体系结构是软件系统结构,包含软件元素、软件元素外部可见属性和这些软件元素之间关系。软件体系结构是软件系统基础组织,包含构件、构件之间、构件和环境之间关系,和相关设计和演化标准。软件体系结构风格(style)描述某一特定领域中系统组织方法常见模式,反应了领域中众多系统所共有结构和语义特征。算法结构三种结构次序结构:按从上到下次序进行。选择结构:先依据条件作出判定,再决定实施哪一个操作,必需包含判定框。循环结构:从某处开始,根据一定条件,反复实施某一处理步骤,有两类:直到和当型循环结构。软件开发过程模
7、型和软件文档模型区分和联络软件生命周期包含了软件从概念形成到最终退伍全部活动,而对于一个具体软件项目,开发人员愈加关注是开发过程中包含活动和其具体安排。 软件开发过程模型给出了软件开发中各个活动之间关系,它是软件开发过程概括,是软件工程关键内容。能为软件工程管理提供里程碑和进度表,为软件开发过程提供标准和方法软件开发过程模型关键有:瀑布模型(V模型、喷泉模型 )、螺旋模型、原型模型(锯齿模型、快速原型)、构件组装模型 (增量模型)、统一软件过程RUP模型软件体系结构风格和设计模式区分和联络软件体系结构风格是软件设计人员在长久软件设计过程中总结出来部分规律性东西,经过提炼总结而成。软件体系结构风
8、格是软件体系结构设计上模式,所以能够看作是一个广义软件设计模式,但通常不认为是侠义软件设计模式。关键区分在于:软件体系结构风格描述系统整体结构框架上特点,粒度更大;而软件设计模式则愈加面向具体问题,指出是一个在更小粒度上设计特点。软件设计模式和软件体系结构风格全部是可反复使用软件设计问题处理方案,只不过前者描述是类和对象层次问题、粒度大小,以后者描述是构件和连接子层次问题、粒度更大。设计模式是对通用设计问题反复处理方案。软件体系结构风格是描述某一特定应用领域中系统组织方法常见模式。软件框架是整个或部分系统可重用设计模式比框架愈加抽象框架是模式特例化设计模式被实现成为框架后,能够极大减轻从设计到
9、实现鸿沟利用了模式框架比没有利用模式框架更轻易了解、更能被设计和实现重用通常成熟框架包含了多个设计模式一个框架不仅能够具体实现一个模式,还能够具体实现多个模式设计模式和风格二者为近义词,通常情况下能够相互通用风格关键是指大,宏观设计。模式既可宏观,又可微观。抽象概念抽象是从众多事物中抽取出共同、本质性特征,而舍弃其非本质特征。要抽象,就必需进行比较,没有比较就无法找到共同部分。 共同特征是指那些能把一类事物和她类事物区分开来特征,这些含有区分作用特征又称本质特征。所以抽取事物共同特征就是抽取事物本质特征,舍弃不一样特征。所以抽象过程也是一个裁剪过程,不一样、非本质性特征全部裁剪掉了。 所谓共同
10、特征,是相正确,是指从某一个刻面看是共同。所以在抽象时,同和不一样,决定于从什么角度上来抽象。抽象角度取决于分析问题目标。 软件工程过程中每一步部能够看作是对软件处理方法抽象层次一次细化。在进行软件设计时,抽象和逐步求精、模块化亲密相关,帮助我们定义软件结构中模块实体,由抽象到具体地分析和结构出软件层次结构,提升软件可了解性“抽象”是一个心理学概念,它要求大家将注意力集中在某一层次上考虑问题,而忽略那些低层次细节。 “逐步求精” 可视为一个早期自顶向下设计策略,其关键思想是,针对某个功效宏观描述用逐步求精方法不停地分解,逐步确立过程细节,直至该功效用程序语言描述算法实现为止。 在软件设计过程中
11、,抽象和逐步求精是通常全部是结合起来进行应用。列举抽象实例假如我们开发一个系统时需要对职员进行建模,职员包含3个属性:姓名、工号和工资。经理也是职员,除了含有职员属性外,另外还有一个职员属性。请使用继承思想设计出职员类和经理类。要求类中提供必需方法进行属性访问。职员类: name id pay经理类:继承了职员,并有自己特有bonus.abstract class Employee private String name; private String id; private double pay; Employee(String name,String id,double pay) this
12、.name=name; this.id=id; this.pay=pay; public abstract void work();class Manager extends Employee private double bonus; Manager(String name,String id,double pay,double bonus) super(name,id,pay);/注意这里调用父类结构函数; this.bonus=bonus; public void work() System.out.println(manager work); class emplo extends E
13、mployee emplo(String name,String id,double pay) super(name,id,pay); public void work() System.out.println(employ work); class AbDemo public static void main(String args) Manager manager=new Manager(zhang,JL01,5000,10000); manager.work();内聚和耦合内聚是前述信息隐藏和局部化概念自然扩展,它标志一个模块内部各成份相互结合紧密程度。 耦合是对软件结构中模块间关联程度一个度量。耦合强弱取决于模块间接口复杂性、进入或调用模块位置和经过接口传送数据多少等。 追求高内聚、低耦合。