软件工程——理论、方法与实践 之 面向对象设计
我们注重于考虑系统是做什么,在设计阶段我们将集中研究系统的软件实现问题,包括体系结构设计、详细设计、用户界面设计和数据库设计等。
与建模一样,设计也是一个建模的活动,它在分析模型上完成在实现环境的类建模,状态图建模,协作建模,组建建模,部署建模,持久建模和用户界面建模,实现从需求分析到软件实现的跨越。设计原则主要有模块化、耦合度和内聚性和复用性。模块化可以使复杂的系统简化;耦合度和内聚性分别是子系统间的关联程度和系统内部的相关程度,降低耦合性提高内聚性;复用性利用以开发的软件元素生成新的软件系统。
对于大型复杂系统而言,软件体系结构设计显得尤为重要,它的好坏往往会成为一个系统设计成败的关键。通常,软件体系结构涉及软件系统的总体组织、全局控制、数据存取以及子系统之间的通信协议等。而在MVC结构中,子系统划分为三种类型:模型,视图与控制器。
系统设计主要讲了识别设计元素、数据存储策略、部署子系统和系统设计评审。1.识别设计元素是在选择软件体系结构策略之后对分析模型中的分析类与设计模型的设计元素对应操作。2.数据存储策略中数据存储管理有三种方式:数据文件、关系数据库和面向对象数据库。3.UML部署图反映了系统中软件和硬件的物理框架,表示系统运行时处理节点以及节点中组件的配置。4.系统设计评审主要检查正确性、完整性、一致性和可行性。
详细设计包括方法建模、属性建模、状态建模和关系建模等。
设计模式描述了系统设计过程中常见问题的解决方案,它是从大量的成功实践中总结出来的。
用户界面设计对于一个系统的成功是至关重要的,是一个设计多学科的活动,一个好的用户界面设计要求图形艺术家、需求分析人员、系统设计人员、程序开发人员、技术专家、社会和行为学家甚至还有一些与系统特性相关的专业人员的共同协作。在需求阶段,分析人员只是根据用户的要求给出一些文本性的描述;在设计阶段,设计人员将这些笼统的描述进行屏幕的可视化,这时可能还要咨询有关的技术专家;在编程实现之前,用户的可视原型应该由图形艺术家和行为艺术家进一步改进,达到“用户友好”的定义标准;实现阶段,程序开发人员可能还需要在程序设计的环境下进行一些必要修改。其以用户为中心,所以我们要知道用户界面设计原则、Web界面的设计及用户支持。