当前位置:首页 » 软件设计 » 软件模块设计

软件模块设计

发布时间: 2021-02-02 04:05:34

1. 如何软件系统设计

一、善用UML工具

用例图
用于需求分析阶段,从用户角度描述系统功能。

用例图

静态图:类图、对象图、包图

  • C4组件图
  • 类图:同UML静态图,此处不再展开。

    2. 什么是软件系统架构设计

    “架构”一词最早来自建筑学,原意为建筑物设计和建造的艺术。但是在软件工程领域,软件架构不是一个新名词,只是在早期的著作中人们将软件架构称为软件体系架构。这就是架构的概念。所谓架构,就是人们对一个结构内的元素及元素间关系的一种主观影射的产物。
    系统架构的主要任务是界定系统级的功能与非功能要求、规划要设计的整体系统的特征、规划并设计实现系统级的各项要求的手段,同时利用各种学科技术完成子系统的结构构建。
    在系统架构中,由于对软件越来越深入的依赖,软件架构的任务也体现出重要的作用。而且系统架构与软件架构是紧密联系和相互依赖的。
    1997年,Eberhadrt Rechtin 与MarkW Maier 在其论著中,为计算机科学总结了系统架构方面的实践成果,从而奠定了系统科学和系统架构在计算机科学中的基石:
    无论何种系统架构应用领域,目的都是一样的,即完整地、高一致性的、平衡各种利弊的、有技术和市场前瞻性的设计系统和实施系统。

    3. linux 怎么写软件模块详细设计

    概要设计阶段通常得到软件结构图
    详细设计阶段常用的描述方式有:流程图、N-S图、PAD图、伪代码等

    概要设计和详细设计
    在软件设计中,大家经常问到的一个问题是:概要设计应该怎样一个概要法,详细设计应该怎样一个详细法?
    这个问题在公司内部经常有人问。现在陈述一下。
    我们公司的研发流程是瀑布型的,这个模型中的分析、设计阶段是基于经典的结构化方法。
    结构化设计方法的基本思路是:按照问题域,将软件逐级细化,分解为不必再分解的的模块,每个模块完成一定的功能,为一个或多个父模块服务(即接受调用),也接受一个或多个子模块的服务(即调用子模块)。模块的概念,和编程语言中的子程序或函数是对应的。
    这样一来,设计可以明显地划分成两个阶段:
    概要(结构)设计阶段:把软件按照一定的原则分解为模块层次,赋予每个模块一定的任务,并确定模块间调用关系和接口。
    详细设计阶段:依据概要设计阶段的分解,设计每个模块内的算法、流程等。

    概要设计阶段:
    在这个阶段,设计者会大致考虑并照顾模块的内部实现,但不过多纠缠于此。主要集中于划分模块、分配任务、定义调用关系。模块间的接口与传参在这个阶段要定得十分细致明确,应编写严谨的数据字典,避免后续设计产生不解或误解。概要设计一般不是一次就能做到位,而是反复地进行结构调整。典型的调整是合并功能重复的模块,或者进一步分解出可以复用的模块。在概要设计阶段,应最大限度地提取可以重用的模块,建立合理的结构体系,节省后续环节的工作量。
    概要设计文档最重要的部分是分层数据流图、结构图、数据字典以及相应的文字说明等。以概要设计文档为依据,各个模块的详细设计就可以并行展开了。
    详细设计阶段:
    在这个阶段,各个模块可以分给不同的人去并行设计。在详细设计阶段,设计者的工作对象是一个模块,根据概要设计赋予的局部任务和对外接口,设计并表达出模块的算法、流程、状态转换等内容。这里要注意,如果发现有结构调整(如分解出子模块等)的必要,必须返回到概要设计阶段,将调整反应到概要设计文档中,而不 能就地解决,不打招呼。

    详细设计文档最重要的部分是模块的流程图、状态图、局部变量及相应的文字说明等。一个模块一篇详细设计文档。
    概要设计文档相当于机械设计中的装配图,而详细设计文档相当于机械设计中的零件图。文档的编排、装订方式也可以参考机械图纸的方法。
    我们公司对模块的认识和传统定义有所不同,认为是较大的软件功能单元才可以称作模块。这种认识使大家对概要设计和详细设计的分工产生了混乱的理解,降低了文档的可用性,应该予以纠正。
    概要设计中较顶层的部分便是所谓的方案。方案文档的作用是在宏观的角度上保持设计的合理性。
    有的项目采用面向对象的分析、设计方法。可能在概要设计、详细设计的分工上疑问更多。其实,面向对象的分析、设计方法并没有强调结构化方法那样的阶段性,因此一般不引入概要、详细设计的概念。如果按照公司的文档体系,非要有这种分工的话,可以将包的划分、类及对象间的关系、类的对外属性、方法及协作设计看做 概要设计;类属性、方法的内部实现看做详细设计。

    1.需求分析--产生软件功能规格说明书,需要确定用户对软件的需求,要作到明确、无歧义。不涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作(概要设计)。
    2.概要设计--产生软件概要设计说明书,说明系统模块划分、选择的技术路线等,整体说明软件的实现思路。并且需要指出关键技术难点等。
    3.详细设计--产生软件详细设计说明书,对概要设计的进一步细化,一般由各部分的担当人员依据概要设计分别完成,然后在集成,是具体的实现细节。理论上要求可以照此编码。

    概要设计和详细设计的区别与联系
    软件设计采用自顶向下、逐次功能展开的设计方法,首先完成总体设计,然后完成各有机组成部分的设计。
    根据工作性质和内容的不同,软件设计分为概要设计和详细设计。概要设计实现软件的总体设计、模块划分、用户界面设计、数据库设计等等;详细设计则根据概要设计所做的模块划分,实现各模块的算法设计,实现用户界面设计、数据结构设计的细化,等等。
    概要设计是详细设计的基础,必须在详细设计之前完成,概要设计经复查确认后才可以开始详细设计。概要设计,必须完成概要设计文档,包括系统的总体设计文档、以及各个模块的概要设计文档。每个模块的设计文档都应该独立成册。
    详细设计必须遵循概要设计来进行。详细设计方案的更改,不得影响到概要设计方案;如果需要更改概要设计,必须经过项目经理的同意。详细设计,应该完成详细设计文档,主要是模块的详细设计方案说明。和概要设计一样,每个模块的详细设计文档都应该独立成册。
    概要设计里面的数据库设计应该重点在描述数据关系上,说明数据的来龙去脉,在这里应该结合我们的一个结果数据,说明这些结果数据的源点,我们这样设计的目的和原因。详细设计里的数据库设计就应该是一份完善的数据结构文档,就是一个包括类型、命名、精度、字段说明、表说明等内容的数据字典。
    概要设计里的功能应该是重点在功能描述,对需求的解释和整合,整体划分功能模块,并对各功能模块进行详细的图文描述,应该让读者大致了解系统作完后大体的结构和操作模式。详细设计则是重点在描述系统的实现方式,各模块详细说明实现功能所需的类及具体的方法函数,包括涉及到的sql语句等。

    4. 软件设计思路

    这个很难用一本书来进行概括。自主要靠工作经验,而且要做好一个设计方案,不是一会就能完成的事。建议你先按照你的想法把具体的需求先整理出来。然后根据需求,整理出软件功能模块,针对每个功能模块进行具体的设计。等把具体的设计做完之后,你可以从中找出共通的模块,抽象出共同类或函数。再往后就是界面的设计以及数据库、数据表的设计了。

    5. 软件设计包括哪些方面

    1基本内容

    基本内容详细设计详细设计的主要任务是设计每个模块的实现算法、所需的局部数据结构。详细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明易懂。
    传统软件开发方法的详细设计主要是用结构化程序设计法。详细设计的表示工具有图形工具和语言工具。图形工具有程序流程图、PAD(Problem Analysis Diagram)图、NS(由 Nassi和 Shneidermen开发,简称 NS)图。语言工具有伪码和 PDL(Program Design Language)等。
    主要任务:
    1.为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述;
    2.确定每一模块使用的数据结构;
    3.确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部模块的接口,以及模块输入数据、输出数据及局部数据的全部细节。
    在详细设计结束时,应该把上述结果写入详细设计说明书,并且通过复审形成正式文档。交付给下一阶段(编码阶段)的工作依据。
    4.要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试,模块的测试用例是软件测试计划的重要组成部分,通常应包括输入数据,期望输出等内容。
    详细设计的工具:
    1.图形工具
    利用图形工具可以把过程的细节用图形描述出来。
    2.表格工具
    可以用一张表来描述过程的细节,在这张表中列出了各种可能的操作和相应的条件。
    3.语言工具
    用某种高级语言(称之为伪码)来描述过程的细节。

    6. 什么是软件设计

    软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案
    软件设计是把许多事物和问题抽象起来,并且抽象它们不同的层次和角度。将问题或事物分解并模块化使得解决问题变得容易,分解的越细模块数量也就越多,它的副作用就是使得设计者考虑更多的模块之间耦合度的情况
    软件设计是从软件需求规格说明出发,形成软件的具体设计方案的过程,也就是说在需求分析阶段明确软件是“做什么”的基础上,解决软件“怎么做”的问题。结构化设计方将把软件设计分为概要设计和详细设计两个阶段。概要设计的主要任务是,通过分析需求规格说明对软件进行功能分解,确定软件的总体结构;详细设计阶段确定每个模块功能所需要的算法和数据结构,设计出每个模块的逻辑结构。软件设计阶段结束时的工作成果是软件设计说明书,它描述软件系统的组成模块结、模块间的调用关系,以及每个模块的输入、输出和详细的过程描述
    设计基础
    软件设计的基本目标是用比较抽象、概括的方式确定目标系统如何完成预定的任务,软件设计是确定系统的物理模型。软件设计是开发阶段最重要的步骤,是将需求准确地转化为完整的软件产品或系统的唯一途径[4] 。
    从技术观点上看,软件设计包括软件结构设计、数据设计、接口设计、过程设计
    (1)结构设计定义软件系统各主要部件之间的关系
    (2)数据设计将分析时创建的模型转化为数据结构的定义;
    (3)接口设计描述软件内部、软件和协作系统之间及软件与人之间如何通信
    (4)过程设计则把系统结构部件较换为软件的过程性描述
    软件设计
    基本原理
    (1)抽象
    软件设计中考虑模块化解决方案时,可以定出多个抽象级别。抽象的层次从概要设计到详细设计逐步降低
    (2)模块化
    模块是指把一个待开发的软件分解成若干小的简单的部分。模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程
    (3)信息隐蔽
    信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的
    (4)模块独立性
    模块独立性是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单。模块的独立程度是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。内聚性是信息隐蔽和局部化概念的自然扩展。一个模块的内聚性越强,则该模块的独立性越强。一个模块与其他模块的耦合性越强则该模块的独立性越弱。
    内聚性是度量一个模块功能强度的一个相对指标。内聚是从功能角度来衡量模块的联系,它描述的是模块内的功能联系。内聚有如下种类:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚。它们之间的内聚度由弱到强排列[4] 。
    耦合性是模块之间互相连接的紧密程度的度量。耦合性取决于各个模块之间接口的复杂度、调用方式及哪些信息通过接口。耦合可以分为下列几种:内容耦合、公共耦合、外部耦合,控制耦合、标记耦合、数据耦合、非直接耦合。它们之间的耦合度由高到低排列

    7. 软件模块化设计的优点是什么

    如果是一抄个人或者是很小的软件,他们没有任何的优越性,反而显得更加复杂。但是如果是许多人协同作业,或者软件工程非常大是,它就会有非常明显的优越性,因为其他人不需要知道你这个工作组究竟是怎样写的,只是需要知道你这部分所实现的功能,知道他所拥有的接口就可以了,这样程序设计就会更加简便,而且你还可以把某个部分外包,可以集中人力、物力先完成其中一部分的模块,等等

    热点内容
    美发店认证 发布:2021-03-16 21:43:38 浏览:443
    物业纠纷原因 发布:2021-03-16 21:42:46 浏览:474
    全国著名不孕不育医院 发布:2021-03-16 21:42:24 浏览:679
    知名明星确诊 发布:2021-03-16 21:42:04 浏览:14
    ipad大专有用吗 发布:2021-03-16 21:40:58 浏览:670
    公务员协议班值得吗 发布:2021-03-16 21:40:00 浏览:21
    知名书店品牌 发布:2021-03-16 21:39:09 浏览:949
    q雷授权码在哪里买 发布:2021-03-16 21:38:44 浏览:852
    图书天猫转让 发布:2021-03-16 21:38:26 浏览:707
    宝宝水杯品牌 发布:2021-03-16 21:35:56 浏览:837