⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 (软件)设计方法(转).txt

📁 c_c++技巧集
💻 TXT
📖 第 1 页 / 共 2 页
字号:
2. 增量incremental模块,可被应用程序先行中断,而后再从中断点重新开始。
3. 并行parallel模块,在多处理器环境下可以与其他模块同时执行。
单独的模块更容易开发,因为功能可以被划分出来,而界面只是用来确保功能的独立。功能的独立性可以使用两个定性的标准来衡量:凝聚性cohesion -衡量模块的功能强度的相关性,和耦合性coupling -衡量模块间的相互依赖的相关性。
数据设计Data design 首先并且有些人也坚信,是最重要的设计行为。数据结构的影响和程序上的复杂性导致数据设计对软件质量有着深远的影响。这种质量由以下的原理来实施:
1. 适用于功能和行为分析的系统分析原理同样应该适用于数据。
2. 所有的数据结构,以及各自所完成的操作都应该被确定。
3. 创建数据词典并用来详细说明数据和程序的设计。
4. 底层的数据设计决定应该延迟至设计过程的后期。
5. 数据结构的陈述(具体说明)应该只被那些直接使用包含在此结构内的数据的模块所知道。
6. 有用的数据结构和操作库可以在适当的时候使用。
7. 软件设计和编程语言应该支持抽象数据类型的规范和实现。
体系设计Architectural Design 的主要目标是开发模块化的程序结构并表达出模块间的控制相关性。另外,体系设计融合了程序结构与数据结构,以及使得数据得以在程序中流动的界面定义。这种方法鼓励设计者关注系统的整体设计而不是系统中单独的组件。选用不同的方法会采用不同的途径来接近体系的原点,但所有这些方法都应该认识到具有软件全局观念的重要性。
程序设计Procedural Design 在数据、程序结构、和陈述详细算法的说明都已使用类似英语的自然语言来呈现后,再确定程序设计。使用自然语言来陈述的原因是当开发小组的绝大多数成员使用自然语言来交流的话,那么小组外的一个新手在不经学习的情况下会更容易理解这些说明。这里有个问题:程序设计必须毫无歧义的来详细说明程序,但我们都知道不含糊的自然语言也就不自然了。 


(软件)设计文档 
在任何系统中,开发文档都是有价值的东西。现在已经有许多不同的经过发展的文档计划可供您在创建系统时候进行选择。其中相当不错的一种模型就是所谓的设计规范(译者注:此处原有的超链接已经失效,所以无法得到其原始的模板。但CKER还有一套被称作的APM的文档模板似乎不错。以后也许会翻给大家来看看……^_^)。当您察看此文档的大纲的时候,请注意各级别的详细内容。第一部分展示了源自于系统说明和其他定义文档的设计成果的总体范围。第二部分展示的是涉及支持文档的详细说明。第三部分的内容又称作设计描述,在初步设计阶段完成。第四、五部分的内容将初步设计阶段的内容发展至详细设计阶段。第六部分展示了确保以下两条原则的交叉参考矩阵:
1. 用软件设计满足所有的需求。
2. 指出实现特定需求的关键模块。
第七部分在开发测试程序(步骤)的第一步对系统的功能性和正确性进行测试是必要的。如果在开发设计规范的同时已经并行开发了详细的测试程序规范的话,本部分可以删除。第八部分详细说明了将系统打包传送至用户站点的考虑和要求。在文档剩下的第九、十部分中包括了算法描述、选择程序、列表数据、流程图、伪代码、数据流图表、以及所有在设计规范开发时所用到的相关信息都可以放在此处。 


面向对象的(软件)设计
到目前为止我们所详细说明的一切都是如今在IT领域被广泛使用的设计方法论的基石。面向对象的设计(OOD)通过模块化信息及其加工方法而不单单是加工方法来让数据对象和加工操作得以互相连接。这个过程依赖于三个极其重要的设计概念:抽象、信息隐藏、和模块化。所有的设计方法都力争展现这些特性;但只有OOD的机制才能使设计者能够无需增加复杂性或加以折衷就获得所有三种特性。在OOD中,我们有objects(对象), operations(操作) ,和 messages(消息) 。Objects(对象),又称作类,可以是人、机器、命令、文件、汽车、房子,等等。operations(操作) ,包含了私有的数据结构和用于变换数据结构的加工方法。messages(消息)用于激活调用操作控制和对象的程序构造。这就是说对象的共享部分是其的接口而消息在接口之间移动并指定希望使用对象的何种操作,但并不知道操作是怎样具体实现的。对象在收到消息之后决定如何来执行消息。现在让我们来看看在面向对象的系统中的某些工具是如何使用的:
1. 伪代码 -接近计算机编程语言的指令,但使用的是近似英语的语言而不是真正的编程语言以便于查看程序逻辑。下面是一个加工文件中的记录的范例:
Start (开始)
Initialize program (初始化程序)
Read a record (读一个记录)
Process record (加工记录)
Move record to print area (将记录移至打印区)
Write a line (写一行)
End job (结束任务)
Stop run. (停止运行)
2. 原型 -在开发软件包的第一个版本或模型,或者计算机硬件准备好作生产前测试时的步骤。通常可以使用您所喜爱的RAD工具来创建。
3. TOE图表 - (Task 任务, Object 对象, Event 事件图表)用来展示需要完成的任务或工作、执行工作的对象、以及完成此过程的事件或动作。请看下面将两个数相加的TOE图表:
任务 对象 事件
启动程序 Main Form OnStartup
输入第一个数 EdtFirstNumber User types in
输入第二个数 EdtSecondNumber User types in
求和 EdtResult OnClick
程序退出 BtnExit OnClick
正如您在上例中所见,这正确说明了要执行什么、谁来执行、以及什么时候来执行。 



正如一开始所说的"您必须知道您要去哪儿得到一切",并且遵循特定的路径或方法可以给您所需的信心来实现您试图开发的系统。有很多方法可以遵循,在这里只想说几句话:您应该采用能被小组和您自己都能接受的方式。您所选择的方式应该让所有您计划中可能使用的人感觉简单明了和易于理解。试试在您的头脑中记住后面这个缩写的意义:KISS (Keep It Short and Simple)<让您的代码保持短小简单>。 


设计时的参考良书: 
"Software Engineering, A practitioner's approach 3rd edition", by Roger S. Pressman.
"Object-Oriented Design", by Peter Coad and Edward Yourdon

版权说明: 
国内的网站上,似乎有许多关于C++Builder的内容,但多以软件、组件为主。论坛也大都不太令人满意,很空虚的感觉。书籍又都昂贵,内容却有抢钱之嫌。对银子不足的初学者、自学者关爱不够,因而想尽自己的绵薄之力。文中的所有资料都是从国外网站上收集而来。因为E文不方便,所以翻成中文。由于E文和计算机都不是非常好,文中的错误在所难免。若大家觉得有用的话,我计划不断搜集翻译一些有用的东西。您可以随意复制、分发、下载此文档。未经本人同意,您不可以截取、改动本文片断,或用本文谋取任何形式的利益。
有任何意见和建议请写信: cker@sina.com

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -