标签:style color strong 使用 文件 数据
基本知识点:
1、软件工程的基本思想:就是用工程学的方法进行软件的开发与维护,并对软件生产过程进行工程化的管理。
2、软件生命周期:需求分析、设计、编码、测试、维护。
3、软件工程的主要内容:工程方法、技术细则、文档规范、技术支持、管理制度、人员组织以及质量保证体系。
4、实行软件工程的主要意义:提高软件产品的质量、提高软件生产率。
5、软件开发方法:功能分析法、数据流法(结构化方法)、快速原型法、信息模型法、面向对象方法。
6、软件过程模型:瀑布模型、螺旋模型、增量模型、喷泉模型、原型模型。
原型模型的适用范围:不能预先确切定义需求的软件系统开发,项目组成员不能很好交流或者通信有困难的情况。
7、面向对象系统分析(OOA):主要工作内容是研究问题域和用户需求,运用面向对象的观点和原则发现问题域中与系统责任有关的对象,以及对象的特征和相互关系。
8、面向对象系统设计(OOD):主要工作内容是以OOA模型为基础,按照实现的要求进行设计决策,包括全局性的决策和局部细节的设计。
OOD所考虑的具体实现条件包括:硬件、操作系统及网络设施;数据管理系统;图形用户界面系统;编程语言;能够得到的可复用构件。
9、面向对象系统编程(OOP)
10、面向对象系统测试(OOT):白盒测试、黑盒测试(边界数据、极限数据)
11、面向对象软件工程各阶段建模:需求建模、分析建模、设计建模、实现建模
12、UML(统一建模语言):用统一的图形化方法表示模型。建模方法有:RUP、XP、ICONIX。
OOA与OOD的区别
面向对象方法学讲的是迭代,不是传统的瀑布式,因此分析和设计之间的界限变得更加模糊,但并不是说没区别,搞清之间的区别还是很有益的,软件工程讲究的是在适当的时机做适当的事,而不要在分析时做设计,在设计时又去分析.
总的来说,分析是从现实问题的角度来考虑,而设计是从计算机实现的角度来考虑.一种分析的属性,关系很多时候是无法用OO语言直接实现的,这就需要应用设计的知识来进行转化.比如两个类之间的多对多关联,就不能用OO语言直接实现,需要转化.
下面拿类图来说,谈一下分析类图与设计类图的区别,从四个方面:
1.类本身:
分析阶段的类来源于问题领域的核心概念,通过这些概念以及之间的相互关系来反映业务逻辑.分析阶段的类图主要对应领域层,而不涉及UI和数据持久层.在分析阶段类主要有实体,值对象,服务等,这可以参考
分析模式与领域驱动设计.而设计阶段不仅要考虑领域层,还要考虑UI和数据持久层,以及这三者之间如何交互,如何解藕,在这个过程中可以使用GRASP模式与GOF的设计模式.
2.类的属性
在分析阶段,属性考虑的是对象本身的本质特征(从现实问题角度);而在设计阶段,会引入"伪属性",即对其它类的引用,从而实现类之间的关联.
3.类的操作
在分析阶段,主要是从职责分配的角度为类指定操作,这通常都是公用接口;而到了设计阶段,要考虑这些接口如何实现,可能会把一个公用操作又分解为几个小的操作,其中有些操作会是私有的,对用户不可见.
4.类之间的关系
在分析阶段,对于类之间的关系主要是两大类:泛化与关联(连接,聚合,组合),这两种关系都是来源于问题本身,而不是从计算机的角度来考虑继承,引用之类.另外还有一类关系是依赖,它与具体实现有关,通常在分析阶段不会突出它.
而到了设计阶段,连接,聚合,组合可能都被实现为一种东西:即对象的引用,但这并不代表这三种关系都是一样的,没有区分.从被关联的两个类自身来看,可能 实现上没有区别,但从外部与这两个类的通信来说,就有区别,如果是聚合,有聚合根,消息是先发给聚合根,之后由根再发给内部其它对象;而如果是连接,就是 对等的关系,二者都可以和外界通信.
从对象的创建角度来看,也有区别,如果是聚合,内部对象可能是由聚合根来创建,而如果是对等关系,则不一定.
面向对象分析与设计设计步骤
标签:style color strong 使用 文件 数据
原文地址:http://www.cnblogs.com/coffee_jiahui/p/3786429.html