模块
1.提高功能模块独立性
在得到软件结构之后,就应首先着眼于改善功能模块的独立性,考验是否应该把一些功能模块提取或合并,力求降低耦合提高内聚。例如,多个功能
模块共有的一个子功能可以独立成一个功能模块,由这些功能模块调用,有时可以通过分解或合并功能模块以减少控制信息的传递及对全局数据的引用,并且降低接口的复杂度。
2.功能模块规模适度
经验表明,当功能模块过大时,功能模块的可理解性就会迅速下降。但是对过大的功能模块分解时,也不应降低功能模块的独立性。因为当对一个大的功能模块分解时,有可能增加功能模块之间的依赖。
3.深度、宽度、扇出和扇入要适当
如果深度过大则说明有的控制模块可能简单了。如果宽度过大则说明系统的控制过于集中。而扇出过大则意味着功能模块过于复杂,需要控制和协调过多的下级模块,这时应适当地增加中间层次,扇出太小则可以把下级模块进一步分解成若干个子功能模块,或者合并到上级功能模块中去。一个功能模块的扇入是表明有多少个上级功能模块直接调用它,扇入越大则共享该模块的上级模块数目越多,这是有好处的。
功能模块的作用范围是指受该功能模块内一个判定影响的所有功能模块的集合。功能模块的控制范围是指这个功能模块本身以及所有直接或间接从属于它的功能模块的集合。在一个设计得很好的系统中,所有受判定影响的功能模块应该都从属于作出判定的那个功能模块,最好局限于做出判定的那个功能模块本身及它的直接下级模块。对于那些不满足这一条件的软件结构修改的办法是:将判定点上移或者将那些在作用范围内但是不在控制范围内的功能模块移植到控制范围内。
5.应减少功能模块的接口的复杂性和冗余度,并改善一致性
功能模块接口复杂是软件发生错误的一个主要原因。应该仔细设计模块接口,使得信息传递简单并且和模块的功能一致。
6.设计成单入口、单出口的功能模块,避免病态连接
要防止内容耦合性,如果功能模块都是从顶部入口、从底部出口的话,这样的软件也更易于理解和易于维护。病态连接关系是指从中部进入或访问一个模块。
7.模块的功能可预测
如果一个功能模块可以当做一个黑箱,即只要输入的数据相同就产生同样的输出,这个模块的功能就是可以预测的。而那些具有内部记忆的功能模块则可能是不可预知的,因为它可能记载了某个内部标志并且利用这个标志去选择处理方案。由于这个标志对上级功能模块来说是看不见的,因而可能引起混乱。
8.组装软件根据设计的约束和移植的需要
组装是指用来把软件组合起来,以便把软件放入特定的处理环境或送往其他的地方。有时,设计约束要求一个程序要在内存中覆盖自己。如果有这种要求的话,原设计结构就可能必须重新组织以便按照重复的次数、存取的频率以及各次调用之间的间隔来把功能模块组合起来。
1746-OA8
DFC401005M
Ni-PCi-6024E
Ni-PCi-6221
PTQ-PDPMV1
MPL-B230P-VJ44AA
MPL-A310P-MK22AA
TPC-1260TE
C79040-A7520-C386-03-86
OP413G1G
OP413G1GSFCL
OP413G5MSFCL
PP30012HS
SCHUNK PFH 40-AS 302041
1794-L34
1794-ps3
TK-FTEB01
1771-Ian
LP090-M02-50-111-000
3BSE010796R1
1756-L55
1756-M12
1756-L55M12
1756-L55M13
6DR2410-5
6FC5210-0DA20-2AA1
PSA-110-401-1
700-RTC10110U1
USAHEM-03CB2X
2094-BM01-S
MV156-PDPMV1
SST-PFB-CLX
MVI56-PDPS
TE5S240
1762-IF4
1761-NET-ENI
1769-PA2
1769-PA4
1769-ECR
1794-ACN15
1794-PS13
1794-IB16
1756-CNB
1756-PA75
1769-L32C 00000000000000
2711P-RPE
1756-L55
1756-L61
1746-P4
140CPU65150
KHU8-DW-1.D
EGE3100FFG
140CRA93200
1756-ba2
MRJ010411A-10008
CE06550
1756-L62
MX603-4001
MX603-0116-263
1769-L33ERM
1775K PMPP 1700
1775T PMPP 1700
1794-OE12
TPC-1260TE
1769-OF2
1769-OF8C
MZ2A-102-0-1-1
MZ2A-101-0-1-1
MZ2A-106-0-1-1
GCM-ETH-001
GCM-86120
LCM-84210
LCMA-116
1756-IF8
SDN30-24-480
JPG100-1
338-4BC01
6ES7 338-4BC01-0AB0
GCM-ETH-001
GCM-86120
1747-L543
SST-PB3-CLX-RLL
GHR9010100R
HP Agilent 5517C
PXI-7813R
PXIe-7962R
1746-NO8V
2094-BM05-S
电路板Matrox Corona 2 7030 02
140CPU65150
140DDO35310
1757-SRM
P0904HA
41391-454-01-S1FX
1756-L62
1756-IM16I
Teklogix 8255
1771-IFE
MPL-B230P-VJ44AA
1768-L43
2094-BC01-M01-S
3721
3503E
9563-810
9771-210
6sn1118-0ae11-0aa1
DTMT-5270B
MATROX-CORONA-2 7030-02
1756-CN2R
1747-L551 35200
1747-L552 40000
1747-L553 45800
1756-RM 57600
1756-ENBT 23200
1756-CNB 16800
1756-L61 63400
1756-L62 91700
1756-L63 132800
1756-IF16 17200
1756-OF8 22100
1756-IT6I 29200
REF542 1个
1394C-SJT10-C-RL
1394C-AM07
MPL-B220T-VJ74A
IC693CMM321
1746-A7
1771-OFE1
1771-ODD
1756-L63
1746-OX8
6SE7014-OTP50-Z
48515-1
1746-IB16 2550
1746-OB16 3330
1746-OW16 3410
1746-OW8 2730
1746-OB16E 4250
1769-IQ6XOW4 2430
1769-IQ16 2410
1746-NI4 7530
1747-L541 22400
1747-L543 35000
1747-SDN 14600
1746-P1 4060
1746-P2 5350
1784-PCMK 18700
2711-K5A2L1
873RS-JIPFGZ
871CC-A2-4
3511
3805E
4351B
3625
3503E
3008
3806E
8312
3700A
1794-ACNR15
1746-IB32 5010
1746-OB32 6020
1746-ni16I 15600
IC693MDL390
IC660BBA021
140NOE77101
AS-MBKT-085
ACE949-2-2
1794-IF2XOF2I
1769-OF4CI
1769-0F4V1
1794-OA16
1794-IM16
1794-ACNR15
1764-LSP
1747-L552
1746-IB32
1746-0B32
1492-IFM40F-2
1492-IFM40F-3
1756-A10
1783MS06T
1769IF8
1756ib32
1746Ia16
1756-l73
1769L30ER
1756PA72
Matrox Orion ORI-AGP/RGB
912-0101
a02b-0259-c221#A
1756-L63
1734-IE8C
1771-PS7
2711-T9C3
1769-L32E
1769-L35E
1769-IQ32
1769-IQ16
FWA-ECODR3-SMT-02VRS-MS
DKC11.3-040-7-FW
1746-NO4V
卡件FBI10E
卡件FBM01
卡件FBM03
1794-IF2XOF2I
1769-OF4CI
1794-OA16
1794-IM16
1769-OF4VI
1747-L531
AX9000GS
1756-ENBT
2094-BC04M03-S
2094-BM03-S
TC-PRS021
CKD N3S0660-FL
CKD N4S020
1746-P2
3HAC031851-001
81ET03C-E/R1010, 5个
TC-FPCXX2
TK-PRS021
6SE7016-0TP60-Z
00-168-334 3PC KUKA示教器
07AC91 5252300R0101
DSQC 562 (3HAC 16014-1)
1785-LT2
1785-LT
1769-L32C
592-JOV16 热继电器
500-TOD94 B 接触器
1746-A10
1746-A7
150-FS1FX
41391-454-01-S1FX
PCI-7432
PCI-8164
C320KG1
140CPS22400
GV300/SE
140M-C2E-B25
2711-T9C3
1768-PA3
1769-OB16p
1768-ENBT
1768-M04SE
1768-L45
1769-L35CR
1784-CF64
PC-0984-680
PC-0984-685
1336-MOD-KB010
PERCEPTRON 916-4128
140ACO13000
140ERT85410
c825kn10
1761-NET-ENI
A5E01231722-F2
6RA7087-6DS22-0
1747-SDN
TC-IAH161
1756-OF6CI
MEC 549-022
2711C-T6C
METEOR2-MC/4
1746-OW16
1746-P4
1746-A13
1746-A4
dvop1340
AK-BX556M
BC9-30-10
1794-AENT
1784-PCMK
OPTO SNAP-AIVRMS-I
OPTO SNAP-AOV-27
MC-PLAM02
1794-IF2XOF2I
IC697PWR711
PTQ-PDPMV1
6ES7922-3BF00-0AC0
1747-L532E
1746-IB32
1746-OB33
1746-NO8I
1746-NI8
1746-P1
1746-P7
1794-acn15
1794-ib16
1794-ob16
A300W-20
1794-IF2XOF2I
1794-OA16
1794-IM16
MMC-BDPV41PNA
1756-ENBT/A
1756-L61A
TPC-1260TE触摸屏
1755K PMPP 1700
1775K PMPP 1700
1785KPMPP1700
1785K-PMPP-1700
1755T PMPP 1700
1775T PMPP 1700
AUMA Z013.718
AN16SNO
C306NN3
DKS01.1-W100A-DS01-02-FW
1756-CN2R
ABB IMHSS03
ABB NTCL01
MOTOROLA CPU ACE3600
PS-M06D12S5-NJ(S)
matrox Orion PCI 979-0101 ORI-PCI/RGB
1794-IB32
1794-OB32P
1794-IE12
1794-OE12
1492-IFM40F
MDX60A0110-5A3-4-00
1746-IM16
6EP1 437-3BA00电源
MPL-B430P-MJ74AA
2094-BC02-M02-M
2094-BM01-M
2094-BMP5-M
2094-SE02F-M00-S1
500-TOD
592-JOV
1756-BA2
6AV6545-0BA15-2AX0
6AV6 545-0CC10-0AX0
1794-AENT
1794-IB16
NI PCI-1407
2711-M3A18L1
AS-BDEO-216
AS-BDAU-208
1746-NI16I
1769-IQ32
1769-IQ16
1756-A17
1756-IB32
AM-SA85-000
HLD3600F
MDX61B0014-5A3-4-00
A05B-2518-C202#MEH
A05B-2518-C200#MEH
ABB DSDO 110
P0903CV
PCI-6033E
PCI-6031E
SK 616 002-B
ACE949-2-2
PTQ-PDPMV1
prosoft的适配器 PS69-DPS
IC693ALG220C
140ACI04000
A05B-2518-C202#EGN
1770-KF2
1 1756-A7
2 1756-PA75
3 1756-L72
4 1756-IB16
5 1756-TBNH
6 1756-OW16I
7 1756-TBCH
8 1756-IF16
9 1756-N2
10 MVI56E-MCM
1747-L532
1756-L1M1
1747-L40A
通讯卡:PERCEPTRON 500-0243 REV.A
放大器:PERCEPTRON 10014294
1747-L553
1771-P7
1756-ENBT
1771-imd
1769-IQ16
1769-IF4
1769-PA2
1769-L32E
1769-OW16
PCI-2726CM
PCI-MIO-16E-1
WESTINGHOUSE J20
FOXBORO CP60
MC-4/11/10/400
kuka 00-168-334
Matrox 7007-0201
1746-P4
MC07B0055-5A3-4-00
1770-KFD
TPC2105-1
1785-LT
1785-LT2
CB06551
Modicon PC-0984-485
1784-PCM4
1769-AENTR
2094-BM01-S
1756-PA75
140CPU21304
MAS51A060-503-00
DIGITRIP 3000
MP-3000
MC07B0003-5A3-4-00
AN16DN0BB
IC693MDL754
IC693ALG392
1756-ENET
1756-TBCH
1756-EN2TC
A5E00190843
1771-IXE
TRICONEX 3008
TRICONEX 4211
TRICONEX 4351B
TRICONEX 4210
TRICONEX 3806E
TRICONEX 3721
TRICONEX 3805E
TRICONEX 8312
TRICONEX 9863-710
AN16GN0
6410-030-N-N-N
1756-L62S
1756-L72S
1756-l61
1756-cnb
1785-BCM/C
PCI-MIO-16E-4
1771-P4R
IC693CPU374
atlas copco 4230 1901 80
1FK7100-5AZ91-1ZZ9-Z
1746-IB16
MVI56 MNETC
FOXBORO CP60
6FC5211-0AA10-0AA0
A5E01231722-F2
1747-l551
MKS51A015-503-00
1769-PA4
1769-L32C
1769-IQ16
1769-OB16
MELCE C-780SAv1 脉冲发生仪
PTQ-PDPMV1
Heidenhain LIDA 48
6SE7012-0TP50-Z
MAS51A010-503-00
MAS51A060-503-00
MAS51A010-503-00
MPL-B230P-VJ44AA
1756-RM
1756-CNBR
140ERT85410
PTQ-PDPMV1
1756-DNB
PERCEPTRON 916-4104
00-104-841
140CPU43412A
194r-NN030P3
1747-L542
1746-P2
1756-M02AE
1794-ASB
1747-ASB
1757-FFLD4
1756-IB32
1769-OF8C
1746-NI4
57340001-T/DSPB120
1747-L551
1761-L32BWA
MPL-B540K-MJ72AA
2094-BM02-S
PCS090劳尔操作面板
MPL-B230P-VJ44AA
AN16SN0-B
DV-RA1000HD
MDX61B0011-5A3-4-00
1771-P7
1746-NI8
1746-NO4I
1769-L32E
6AV6 643-0AA01-1AX0
1746-P3
1747-L532
1746-IB16
1746-OW16
1746-A7
A300W-20
JZNC-JRKS10M-110-00
JZNC-JRKS10M-110-00
A16B-2203-0110/03A
hve02.2-w018n
1746-P2
1747-L551
1746-IB16
1746-OB16
1746-NI8
1746-N04I
Wago 750-337
DURANT 56450-403
1746-IB16
1746-OB16
1746-A13
2711-T10C8L1
2711-B5A2
BASLER DECS-100-B15
1746-NO8V
1756-CN2R
A03B-0819-C060
NW-RR85-001
Meteor2 mc/4
1785-L80E
1784-PKTX
2711P-T7C6D1
1756-L62
1756-PA75
1756-CNB
1756-IM16I
1756-ENBT
ABB COMMANDER 350
ABB COMMANDER 150
MATROX 7030-02
SEW网卡 DFE24B
1746-A7
A20B-2100-0800/08D
20B-2100-0800/08D
MAS51A060-503-00
MAS51A010-503-00
1784-U2DHP
1784-PCMK
1770-KF2
1784-KT
DKC01.1-040-7-FW FWA-ECODRV-ASE-02VRS-mS
C320TP1
SST-PB3-CLX-RLL
a16b-2202-0420
1746-IB16
1746-OB16
1756-CNBR
MVI56E-MCMXT
150-F108NBD
1771-IXE
PERCEPTRON 916-4104
PERCEPTRON 310-0790
140AC002000
170ADO54050
170INT11000
140AC002000
140CRA93100
ALPHA LP090-M01-10-111-000
140CRP93200
140ACI03000
140NOE77101
140ACI04000
140ACI04000
140DAO84000 01768-L43
1746-OB32E
1756-M16SE
1C31234G01
SNAP-AOV-25
10250T/91000T
1746-IM16
1746-OA16
1756-L72S
1756-L7SP
1756-ENBT
Cutler Hammer KD3400F
1784-PCM5
IC693CMM321
1757-SRM
GJR5252300R0101
P09E-DN21
1747-ke
PGN64-1
1747-L551
140DDi35300
140CRA93200
IC693ALG392
1768-L43
伺服驱动器 00-122-285
伺服驱动器 00-117-344
伺服驱动器 00-122-286
伺服驱动器 00-117-345
1784-PCC
AS-BDAU-204
IC200CPUE05
PCI-2726CM
1746-IB32
1746-OB32
1746-IB16
1746-OB16
1746-OW16
1746-OW8
1746-OB16E
1769-IQ6XOW4
1769-IQ16
1746-NI16I
1746-NI4
1747-L541
1747-L532
1747-SDN
1764-LRP
1771-ASB
2711-K5A2L1
1746-P1
1746-P2
1784-PCM5
1784-PCMK
1784-PKTX
Microe M10
A5E01231722
P09E-DN21
MPL-B230P-VJ44AA
1756-PA72/C
1756-PA72
1747-L542
1734-AENT
MPL-A330P-MJ22AA
1746-ib16
1746-ow16
1734-IR2
PCI-1407
Banner LT3PU
1771-P5
41391-454-01-s1fx
140CRP93200
1755K PMPP 1700
1775K PMPP 1700
AS-BDAU-204
AS-BADU-204
PCI-GPIB
140CPU43412AC
140CPU43412A
PGN+100-1
PGN+100-1(371102)
KD3400F
ABB 3HAC028357-001
DSQC679
1784-PKTX
P0904HM P0904HN
IC693CMM321
1771-IFE
1771-OEF2
1771-NOC
1771-IAN
1771-OW16
1785-L80E
979-0101
1756-L55M12
PCI-2726CM
1746-IM16
1746-OW16
KEYENCE dh-220
AB 1783-US08T交换机
140XBP01000
主板A16B-2201-0391/050
A20B-2900-0803/02A
A20B-2900-0790/05A
OPI显示板A16B-2200-091
CPU显示板A20B-2900-0350/03A
A20B-2900-0311/03B
A20B-2902-0278/03B
MAS51A010-503-50
MC07B0005-2B1-4-00
MVI56-PDPMV1
AB 1440-VST02-01RA
PCI-GPIB
6FC5373-0AA00-0AA2
1756-EN3TR
1746-IM16
AN16NN0
AN16NNO
150-A240NBD
1771-OQ16
1785-BCM
MATROX-CORONA-2 Y7030-02
MATROX-CORONA-2 7030-02
示教器 3HNE 00313-1
测量板 3HAC16014-1/07
IC693ALG442
IC693ALG220
FX2N-80MR
METEOR2-MC/4
1734-IE4C
FR-E5NC 10个
1398-DDM-019
KAMN4012
MVI56
MVI56-ADM
Rexroth VT 5035 S13 R5
1747-L553
PERCEPTRON 916-3079
1756-L73
MVI56E-MCM
MVI56-PDPMV1
PLX31-EIP-MBS4
SKP326-3
140CRP93200
PK566NAW
1771-A4B
1771-A2B
1756-OC8
microe m10
979-0101
1756-L63
3ZX1012-0RT04-1AA1
A16B-2201-0101
1769-PA4
1769-OW16
41391-454-01-S1FX
150-F201NBD
PGN100/2
1756-RM/A
1747-L553
IC698CRE030
METEOR2-MC/4
C79040-A7520-C386-03-86
1756-ba2
6se7012-0tp50
BC9-30-10
1746-A13
KEB D-32677
软启动控制头 41391-454-01-S1FX
PIO-32/32L(PCI)H
JWS600-24
PGN-50-1
1747-L531
1784-PCICS
1756-PA75
IC693CPU350-CG
TEKLOGIX 8255
HFPP-PIC8
IBSIL24BK-T/U
siemens 77-16
1756-DNB
PGN100-1
1746-IM16
1746-OW16
1794-L34
IC693ALG223C
140CRA93200
1784-PCM5
1747-ke
DSQC679
mks 628B01TBE1B
1756-rm
1756-L55M12
D120-PM33
D120-PM32
D120-PM8
D120-PM20
1756-IF16
1756-IB32
1771-OQ16
1771-OFE2
1771-IBN
1771-OBN
1771-ASB
1771-NR
1771-IXE
1771-P7
1771-WC
1771-WB
1785-L30B
1771-P6S
PGN+80/1AS 371401
IC693ALG392
PSA-110-401-1
1747-L542
IC697ALG230
IC697ALG320
IC697MDL750
IC697MDL340
140ACI03000
140DDI84100
140DDO84300
FD3040L
fr-e5nc
6ES7 400-1JA01-0AA0
cutler-hammer CE15FN3Y1
Mitsubishi FR-A5NN
1756-ENBT 23200
2711P-RDT10C(带以太网卡)
100-C09DJ10
1756-PA72
1756-A4
1756-CNBR
1747-BA
1771-ASB
6SE7012-OTP50
tt6000-401
PCI-MIO-16E-1
MC-4/11/03/400
MC-4/11/01/400
MC-4/11/05/230
MC-4/11/10/400
140CPU53414A
Matrox Corona2 7030-02
MMS6110
MMS6120
MMS6312
1747-L551
1747-L514
CR06250
1794-IB32
1794-OB32P
1794 IE12
1794 OE12
电源1756-PA72
电源模块1734EP24DC
BURR-BROWN MPV904-2
MPV904
OCXO MV180
1747-L532 E
IC697PWR711
CB06551
BURR-BROWN MPV904-2
1769-PA4
170NEF11021
140ACI03000
140CPU53414
140DDO35300
140DDI35300
140DDO35300
140EHC20200
140NOE21100
140XBP01600
170BEF-11020
1785-bcm
1746-NI16I
1761-NET-ENI
10250T/91000T
SK 616 001-B
1784-PCIC/B
1746-OW16
979-0101
a16b-3200-0270
416NHM30032
1786-RPA
1786-RPCD
MVI56E-MCM
RD-023MS
rvc10-1/5A
1756-RM
1794-IB32
1794-IB16
1794-IF4I
1756-IB32
1756-CNB
6ES7 400-1JA01-0AA0
MPL-B320P-MJ72AA
140DAI75300
140ACI04000
140AVI03000
140NOE77101
1746-IM16
RMBA-01
ATV32HU75N4
1784PKTXD
SBC456E B1.0
SBC456E-B1.0
RD-122
80363972-150 PDIY22
1756-ob32
1746-OA8
DFC401005M
Ni-PCi-6024E
Ni-PCi-6221
PTQ-PDPMV1
MPL-B230P-VJ44AA
MPL-A310P-MK22AA
TPC-1260TE
C79040-A7520-C386-03-86
OP413G1G
OP413G1GSFCL
OP413G5MSFCL
PP30012HS
SCHUNK PFH 40-AS 302041
1794-L34
1794-ps3
TK-FTEB01
1771-Ian
LP090-M02-50-111-000
3BSE010796R1
1756-L55
1756-M12
1756-L55M12
1756-L55M13
6DR2410-5
6FC5210-0DA20-2AA1
PSA-110-401-1
700-RTC10110U1
USAHEM-03CB2X
2094-BM01-S
MV156-PDPMV1
SST-PFB-CLX
MVI56-PDPS
TE5S240
1762-IF4
1761-NET-ENI
1769-PA2
1769-PA4
1769-ECR
1794-ACN15
1794-PS13
1794-IB16
1756-CNB
1756-PA75
2711P-RPE
1756-L55
1756-L61