
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习java编程等达内互联网IT培训课程,今天我们就通过案例分析来简单了解一下,开发软件需要掌握哪些设计方法。
系统设计
ppt画完了当然就要动手啦,系统设计是把需求转换为软件系统重要的环节
系统设计一共有四个方面:体系结构,模块结构,数据结构与算法,用户界面
体系结构设计
体系结构是软件系统中本质的东西
体系结构是对复杂事物的一种抽象。良好的体系结构是普遍适用的,它可以高效地处理多种多样的个体需求。
体系结构在一定的时间内保持稳定。
层次结构:有些事情比较复杂,我们没法一口气干完,就把事情分为好几层,一层一层地去做。高层的工作总是建立在低层的工作之上。层次关系主要有两种:上下级关系和顺序相邻关系
上下级关系的层次结构:上层子系统可以使用下层子系统的功能,而下层子系统不能够使用上层子系统的功能
顺序相邻关系的层次结构:顺序相邻关系的层次结构表明通讯只能在相邻两层之间发生,信息只能被一层一层地顺序传递
其他层次结构
客户机/服务器结构
以集中的方式高效率地管理通讯。前面讲电话系统的故事就是要说明这一点。
可以共享资源。比如在信息管理系统中,服务器将信息集中起来,任何客户机都可以通过访问服务器而获得所需的信息。
模块设计
评价模块设计优劣的三个特征因素:“信息隐藏”、“内聚与耦合”和“封闭——开放性
信息隐藏
如果不想让坏事传播开来,就应该把坏事隐藏起来,“家丑不可外扬”就是这个道理
模块的信息隐藏可以通过接口设计来实现。
内聚耦合【内聚耦合翻译过来就是反连坐制度,一个人出问题不影响周围的邻居】
内聚强度
偶然内聚。如果一个模块的各成分之间毫无关系,则称为偶然内聚。
逻辑内聚。几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。如一个模块读取各种不同类型外设的输入。尽管逻辑内聚比偶然内聚合理一些,但逻辑内聚的模块各成分在功能上并无关系,即使局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。
时间内聚。如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。
过程内聚。如果一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行,则称为过程内聚。
通信内聚。如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。
顺序内聚。如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入,则称为顺序内聚。
功能内聚。模块的所有成分对于完成单一的功能都是必须的,则称为功能内聚。
耦合强度:依赖于以下几个因素耦合的强度依赖于以下几个因素:一个模块对另一个模块的调用;一个模块向另一个模块传递的数据量;一个模块施加到另一个模块的控制的多少;模块之间接口的复杂程度。耦合按从强到弱的顺序可分为以下几种类型
内容耦合。当一个模块直接修改或操作另一个模块的数据,或者直接转入另一个模块时,就发生了内容耦合。此时,被修改的模块完全依赖于修改它的模块。
公共耦合。两个以上的模块共同引用一个全局数据项就称为公共耦合。
控制耦合。一个模块在界面上传递一个信号(如开关值、标志量等)控制另一个模块,接收信号的模块的动作根据信号值进行调整,称为控制耦合。
标记耦合。模块间通过参数传递复杂的内部数据结构,称为标记耦合。此数据结构的变化将使相关的模块发生变化。
数据耦合。模块间通过参数传递基本类型的数据,称为数据耦合。
非直接耦合。模块间没有信息传递时,属于非直接耦合。如果模块间必须存在耦合,就尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,坚决避免使用内容耦合。
封闭开放性:如果一个模块可以作为一个独立体被其它程序引用,则称模块具有封闭性。如果一个模块可以被扩充,则称模块具有开放性。
数据结构算法设计
该部分内容想必对于经常刷算法题的同学来说已经烂熟于心,因此不做过多解释
对于这部分内容不熟练的同学请去刷leetcode官网多刷题
用户界面设计
这部分内容就是我们平常看到的界面,如果太难看的程序往往我们就没有用下去的想法,正所谓人要衣装,佛要金装,这让笔者想起了学校的教务系统,怎一个烂字了得
这里其实和程序员的关系联系就稍微少一些了,更多的是美学,因此同学们千万不要沉迷于编程对其他事物充耳不闻,据说爱因斯坦身为科学家对艺术有着很高的研究,怎么样是不是颠覆了同学们的认知,在这里只简单介绍界面美相对有三个方面
界面核实性
界面的风格
界面的广义美
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。