软件设计即根据软件需求,产生一个软件内部结构的描述,并将其作为软件构造的基础,通过软件设计,描述出软件架构及相关组件之间的接口,然后进一步详细地描述组件,以便能构造出这些组件。
(1)软件设计分类:
①从工程管理的角度来看,软件设计分:
概要设计,将软件需求转化为数据结构和软件的系统结构。
详细设计,(即过程设计)通过对系统结构进行细化,得到软件的详细数据结构和算法。
②从技术角度来看,软件设计包括:
数据设计:将实体关系图中描述的对象和关系,以及数据字典中描述的详细数据内容转化为数据结构的定义。
体系结构设计:划分软件系统模块及模块之间的关系。
接口设计:根据数据流图定义软件内部各成份之间、软件与其它协同系统之间及软件与用户之间的交互机制。
过程设计(即详细设计):把结构成份(模块)转换成软件的过程性描述
(2)软件设计方法
①结构化设计(SD)
SD是一种面向数据流的设计方法,其基本思想是将软件设计成由相对独立且具有单一功能的模块组成的结构,分为概要设计(又称总体设计)和详细设计两种。
SD设计原则:高内聚、低耦合。
②面向对象设计(OOD)
OOD是OOA方法的延续,其基本思想包括抽象、封装和可扩展性,其中可扩展性主要通过继承和多态来实现的。OOD的主要任务是对类和对象进行设计,包括:类的属性、方法,以及类与类之间的关系。如何提高软件的可维护性和可复用性是其需要解决的核心问题之一。
◆对象三个基本要素:对象标识、对象状态(属性)、对象行为。
◆类:现实世界中实体的形式化描述。如果将对象比作房子,那么类就是房子的设计图纸。
◆对象:强调给出与应用相关的特性,抛弃不相关的特性。
◆封装:将相关概念组成一个单元模块,并通过一个名称来引用它。
◆消息:体现了对象间的交互,通过它向目标对象发送操作请求(即调用某个对象的某个方法)。
◆组件:组件技术是软件复用实现的关键。
OOD原则 :
◆单一职责原则:设计功能单一的类。
◆开放-封闭原则:对扩展开放,对修改封闭。
◆李氏(Liskov)替换原则:子类可以替换父类。
◆依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程。
◆接口隔离原则:使用多个专门的接口比使用单一的总接口更好。
◆组合重用原则:要尽量使用组合,而不是继承关系达到重用的目的。
◆迪米特(Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解(如同结构化方法中的低耦合原则)。
「艾尔登法环」梅琳娜手办开订 立体手办▪
万代「艾尔登法环」白狼战鬼手办开订 立体手办▪
「夏目友人帐」猫咪老师粘土人开订 立体手办▪
「五等分的新娘∬」中野三玖·白无垢版手办开订 立体手办▪
「海贼王」乌索普Q版手办开订 立体手办▪
良笑社「初音未来」新手办开订 立体手办▪
「黑岩射手DAWN FALL」死亡主宰手办开订 立体手办▪
「盾之勇者成名录」菲洛手办登场 立体手办▪
「魔法少女小圆」美树沙耶香手办开订 立体手办▪
「咒术回战」七海建人粘土人登场 立体手办▪
「五等分的新娘」中野二乃白无垢手办开订 立体手办▪
「为美好的世界献上祝福!」芸芸粘土人开订 立体手办▪
「公主连结 与你重逢」六星可可萝手办开订 立体手办▪
「女神异闻录5」Joker雨宫莲手办开订 立体手办▪
「间谍过家家」约尔・福杰粘土人登场 立体手办▪
「街角魔族 2丁目」吉田优子手办开订 立体手办▪
「火影忍者 疾风传」旗木卡卡西·暗部版粘土人登场 立体手办▪
「佐佐木与宫野」宫野由美粘土人开订 立体手办▪
「盾之勇者成名录」第2季拉芙塔莉雅手办开订 立体手办▪
「咒术回战」两面宿傩Q版坐姿手办开订 立体手办▪
「DATE·A·BULLET」时崎狂三手办开订 立体手办▪
「狂赌之渊××」早乙女芽亚里粘土人开订 立体手办▪
「魔道祖师」魏无羨粘土人开订 立体手办▪
「新·奥特曼」奥特曼手办现已开订 立体手办▪