关于软件工程整体框架的学习可以参考这篇博客,是自己在复习面试宝典时候所撰写的总结点击打开链接
1、 需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面。软件需求规格说明书是描述需求中的重要文档,是软件需求分析的主要成果。
2、 软件需求规格说明应重点描述软件的目标,软件的功能需求、性能需求、外部接口、属性及约束条件等。
功能需求是软件需求规格说明,给出软件要执行什么功能的详尽描述。
性能需求是指定量的描述软件系统应满足的具体性能需求,即各种软件功能的速度、响应时间、恢复时间。
外部接口指软件如何与人、系统的硬件及其他硬件和其他软件进行交互。属性是指与软件有关的质量属性,如正确性、可用性、可靠性、安全性、可维护性等。
约束条件包括影响软件实现的各种设计约束,如使用的标准、编程语言、数据库完整性方针、资源限制、运行环境等方面的要求。
3、 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句。
4、
1).桥接模式产生原因:同一个类型,有两个变化的维度(两个维度的抽象:一个抽象部分的抽象,一个实现部分的抽象)
Bridge模式是一种抽象与其实现相分离的模式。它主要应用于:当事物是一组变化量,和对这些事物的操作方法(实现)也是一组变化量的情况,也就是说它们都是多变的。
2).组合模式(Composite)属于结构性模式,它描述了对象间的组合关系。对象间常常通过树结构来组织(包含)起来,以实现整体-部分的层次结构。
3).Facade外观模式,是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。 为子系统的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
4).单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。
5.抽象工厂就是换了个地方;
singleton单例模式,简单说就是只有自己,为自己设计。降低了重复使用,降低资源使用率。
原型模式适用于在初始化信息不发生变换的情况,克隆的方法比较适合,主要的目的是避免重新初始化对象,如果后面需要对新对象进行,还需要区分深拷贝和浅拷贝。无论是深拷贝还是浅拷贝只是复制了资源,并没有降低资源使用率。
享元模式(Flyweight):基于共享技术用于把一些共同的信息(或模块)抽象出来,避免了大量相似类的开销,也降低了资源的使用率。
如Java和C++ 初始化一个string类的信息,以C++为例: string s ="hello"; string p= "hello"。(这个在C++中有问题,容易混淆,特此说明,也有考察C++中string实现的问题。建议用C来描述 char *s = "hello"和char *p ="hello",s和p指向同一个地址),他们其实是一个相同的实例,字符串对象在内存中的共享
6、将数据流图映射为程序结构时,所用映射方法涉及信息流的类型。其信息流分为事物流和变换流。
7、设计元素主要指出现在设计模型中的模块,这些模块的表现形式包括子系统、构件、类。