软件设计师考试大纲 软件设计

软件设计包括哪两个阶段?软件设计包括的两个阶段:
1、对软件的全局观点 。系统通过逐步求精使得设计陈述逐渐接近源代码 。这里有两个基本步骤,第一步是初步设计,关注于如何将需求转换成数据和软件框架 。
2、详细设计,关注于将框架逐步求精细化为具体的数据结构和软件的算法表达 。发生中的设计行为、数据、算法和程序设计都需要由现代程序所需的界面设计这一清晰的行为来结合起来 。界面设计建立程序布局和人机交互机制 。贯穿设计过程的质量由一系列的正式技术评定或设计排演来评价 。
软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案 。
软件设计是把许多事物和问题抽象起来,并且抽象它们不同的层次和角度 。将问题或事物分解并模块化使得解决问题变得容易,分解的越细模块数量也就越多,它的副作用就是使得设计者考虑更多的模块之间耦合度的情况 。
扩展资料:
设计要素:
软件设计包括软件的结构设计,数据设计,接口设计和过程设计 。
1、结构设计:定义软件系统各主要部件之间的关系 。
2、数据设计:将模型转换成数据结构的定义 。
3、接口设计:软件内部,软件和操作系统间以及软件和人之间如何通信 。
4、过程设计:系统结构部件转换成软件的过程描述 。
参考资料来源:百度百科-软件设计
软件设计模式主要有哪几种软件设计模式主要有以下三大类共23种:
一、创建型模式:
1、工厂方法模式
工厂方法模式的创建是因为简单工厂模式有一个问题,在简单工厂模式中类的创建依赖工厂类,如果想要拓展程序,必须对工厂类进行修改,这违背了开闭原则,所以就出现了工厂方法模式,只需要创建一个工厂接口和多个工厂实现类 。
子类可以自己决定实例化哪一个工厂类,client类针对抽象接口进行编程,如果需要增加新的功能,继承工厂接口,直接增加新的工厂类就可以了,创建过程延迟到子类中进行,不需要修改之前的代码,满足了开闭原则,达到灵活地生产多种对象 。
2、抽象工厂模式
抽象工厂模式是提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类 。区别于工厂方法模式的地方,工厂方法模式是创建一个工厂,可以实现多种对象;而抽象工厂模式是提供一个抽象工厂接口,里面定义多种工厂,每个工厂可以生产多种对象 。
前者的重点在于"怎么生产",后者的重点在于"生产哪些";前者是一个抽象产品类,可以派生出多个具体产品类,后者是多个抽象产品类,每个抽象产品类可以派生出多个具体产品类 。
3、单例模式
单例模式能保证一个类仅有一个实例,并提供一个访问它的全局访问点,同时在类内部创造单一对象,通过设置权限,使类外部无法再创造对象 。单例对象能保证在一个JVM中,该对象只有一个实例存在 。
在创建的时候,省去了new操作符,降低了系统内存的使用频率,减轻了系统的压力 。同时单例模式保证在一个jvm中仅存在一个实例的好处就在于好比一个军队当中只会存在一个最高级别的军官来指挥整个军队,这样才能保证独立控制整个过程,否则如果出现多个,肯定会杂乱无序 。
4、建造者模式
建造者模式是将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示 。在程序当中就是将一些不会变的基本组件,通过builder来进行组合,构建复杂对象,实现分离 。
这样做的好处就在于客户端不必知道产品内部组成的细节;同时具体的建造者类之间是相互独立的,对系统的扩展非常有利,满足开闭原则;由于具体的建造者类是独立的,因此可以对建造过程逐步细化,而不对其他的模块产生任何影响 。
5、原型模式
原型模式是用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 。其实就是将对象复制了一份并返还给调用者,对象需继承Cloneable并重写clone()方法 。原型模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象 。
分为浅复制和深复制,前者是将一个对象复制后,基本数据类型的变量都会重新创建,而引用类型,指向的还是原对象所指向的;后者是将一个对象复制后,不论是基本数据类型还有引用类型,都是重新创建的 。

秒懂生活扩展阅读