Создание автоматизированной системы расчета трудоемкости разработки и сопровождения программных средств (UIR_PRL3)

Посмотреть архив целиком

36



Приложение 3

Программная реализация функций системы

1. Реализация функций расчета трудоемкости разработки ПС

'Значение Кн из таблицы 2.1

'Только для чтения

Public Property Get Kn() As Double

Kn = da.table21GetKn(novelty, isNewComp, isNewOS)

End Property


'Определение значения Li из таблицы 2.2

Public Property Get Li(index As Integer) As Double

If checkStage(index) Then

Li = da.table22GetLi(novelty, casetech, index)

Else

Li = 0

End If

End Property


'Значение Кт из таблицы 2.3

Public Property Get Kt() As Double

Kt = da.table23GetKt(usage)

End Property


'Добавление Ki из таблицы 2.6

Public Sub setKi(ByVal index As Integer)

KiPr(index) = da.table26GetKi(index)

End Sub


'Удаление Ki

Public Sub unsetKi(ByVal index As Integer)

KiPr(index) = 0#

End Sub


'Проверка добавлено Ki или нет

Public Function checkKi(ByVal index As Integer) As Boolean

If KiPr(index) = 0# Then

checkKi = False

Else

checkKi = True

End If

End Function


' Определение значения Ki по таблице 2.6

Public Property Get Ki(index As Integer) As Double

Ki = da.table26GetKi(index)

End Property


Public Property Get Ksl() As Double

Dim i As Integer

Ksl = 0#

For i = 1 To 4

Ksl = Ksl + KiPr(i)

Next i

Select Case CountCharPS

Case 2

setKi (5)

Ksl = Ksl + KiPr(5)

Case 3

setKi (6)

Ksl = Ksl + KiPr(6)

Case Is > 3

setKi (7)

Ksl = Ksl + KiPr(7)

End Select

Ksl = Ksl + 1

End Property


'Добавление CharPS из таблицы 2.5

Public Sub setCharPS(ByVal index As Integer)

CharPSPr(index) = index

End Sub


'Удаление CharPS

Public Sub unsetCharPS(ByVal index As Integer)

CharPSPr(index) = 0#

End Sub


'Проверка добавлено CharPS или нет

Public Function checkCharPS(ByVal index As Integer) As Boolean

If CharPSPr(index) = 0# Then

checkCharPS = False

Else

checkCharPS = True

End If

End Function


Public Property Get CountCharPS() As Double

Dim i As Integer

CountCharPS = 0#

For i = 1 To 12

If checkCharPS(i) Then

CountCharPS = CountCharPS + 1

End If

Next i

End Property


'Добавление стадии из таблицы

Public Sub setStage(ByVal index As Integer)

Stage(index) = index

End Sub


'Удаление стадии

Public Sub unsetStage(ByVal index As Integer)

Stage(index) = -1#

End Sub


'Проверка добавлена стадия или нет

Public Function checkStage(ByVal index As Integer) As Boolean

If Stage(index) = -1# Then

checkStage = False

Else

checkStage = True

End If

End Function


'Добавление функции из таблицы 2.7

Public Sub setVi(ByVal index As Integer)

ViPr(index) = da.table27GetVi(index, compType)

End Sub


'Удаление функции из таблицы 2.7

Public Sub unsetVi(ByVal index As Integer)

ViPr(index) = 0#

End Sub


'Проверка на наличие функции

Public Function checkVi(ByVal index As Integer) As Boolean

If ViPr(index) = 0# Then

checkVi = False

Else

checkVi = True

End If

End Function


'Определение значения Vi

Public Property Get Vi(index As Integer) As Double

Vi = da.table27GetVi(index, compType)

End Property


'Общий объем ПС

Public Property Get Vo() As Double

Dim i As Integer

Vo = 0#

For i = 1 To 16

Vo = Vo + ViPr(i)

Next i

Vo = Format(Vo, "#####0.00")

End Property


'Кур из таблицы 2.8

Public Property Get Kur() As Double

Kur = da.table28GetKur(tools, osType)

End Property


'Тб из таблицы 2.4

Public Property Get Tb() As Double

Tb = Format(da.table24GetTimeNorm(Vo / 1000, difficulty), "#####0.00")

End Property


'Расчет Тур

Public Property Get Tur() As Double

Tur = Format(Tb * Kur, "#####0.00")

End Property


'Расчет To

Public Property Get T() As Double

T = Format(Tur * Ksl, "#####0.00")

End Property


'Public Property Get Ti(index As Integer) As Double

If index = 3 Then

If isep Then

Ti = Li(3) * Kn * T

Else

Ti = (Li(2) + Li(3)) * Kn * T

End If

If isTrp Then

Ti = Format(Ti(3) * 0.85, "#####0.00")

End If

Else

Ti = Li(index) * Kn * T

If index = 4 Then

Ti = Ti * Kt

End If

End If

Ti = Format(Ti, "#####0.00")

End Property


'Расчет Tобщ

Public Property Get Tob() As Double

Tob = 0#

If isCase Then

Tob = Ti(0) + Ti(4) + Ti(5)

Else

Tob = Ti(1) 'стадия тз

If isep Then

Tob = Tob + Ti(2)

End If

If isTrp Then

Tob = Tob + Trp

Else

Tob = Tob + Ti(3) + Ti(4)

End If

Tob = Tob + Ti(5)

End If

Tob = Format(Tob, "#####0.00")

End Property

2. Реализация функции расчета сопровождения ПС.

' Определение значения Кан из таблицы 3.1

Public Property Get Kan() As Double

Kan = da.table31GetKan(haveAnalog)

End Property


Определение значения Kuch из таблицы 3.2

Public Property Get Kuch() As Double

Kuch = da.table32GetKuch(PartService)

End Property


Определение значения Ksli по таблице 3.3

Public Property Get Ksli(index As Integer) As Double

Ksli = da.table33GetKsli(index)

End Property


'Добавление Ksli

Public Sub setKsli(ByVal index As Integer)

KsliPr(index) = da.table33GetKsli(index)

End Sub


'Удаление Ksli

Public Sub unsetKsli(ByVal index As Integer)

KsliPr(index) = 0#

End Sub


'Проверка добавлено Ksli или нет

Public Function checkKsli(ByVal index As Integer) As Boolean

If KsliPr(index) = 0# Then

checkKsli = False

Else

checkKsli = True

End If

End Function


Public Property Get Ksl() As Double

Dim i As Integer

Ksl = 0#

For i = 1 To 10

Ksl = Ksl + KsliPr(i)

Next i

Ksl = Ksl + 1

End Property


Определение значения Krz по таблице 3.4

Public Property Get Krz() As Double

Krz = da.table34GetKrz(ToolsOfDevel)

End Property


Определение значения Kxp по таблице 3.5

Public Property Get Kxp() As Double

Kxp = da.table35GetKxp(delivery)

End Property


Определение значения Kxv из таблицы 3.6.

Public Property Get Kxv() As Double

Kxv = da.table36GetKxv(vnedrenie)

End Property


Определение значения Кte из таблицы 3.7.

Public Property Get Kte() As Double

Kte = da.table37GetKte(ComplOfTesting)

End Property


Определение значения Nvros из таблицы 3.8.

Public Property Get Nvros() As Double

Nvros = da.table38GetNvros(VolDocum, VolProg)

End Property


Определение значения Nvrvf из таблицы 3.9.

Public Property Get Nvrvf() As Double

Nvrvf = da.table39GetNvrvf(VolDocum, VolProg)

End Property


Определение значения Nvrpr из таблицы 3.10.

Public Property Get Nvrpr() As Double

Nvrpr = da.table310GetNvrpr(VolDocum, VolProg)

End Property


Определение значения Nvran из таблицы 3.11.

Public Property Get Nvran() As Double

Nvran = da.table311GetNvran(VolDocum, VolProg)

End Property


Определение значения Nvrkr из таблицы 3.12.

Public Property Get Nvrkr() As Double

Nvrkr = da.table312GetNvrkr(VolProg)

End Property


Определение значения Nvrie из таблицы 3.13.

Public Property Get Nvrfe() As Double

Nvrfe = da.table313GetNvrfe(VolDocum, VolProg)

End Property


Определение значения Nvrp из таблицы 3.14.

Public Property Get Nvrp() As Double

Nvrp = da.table314GetNvrp(VolDocum, VolProg)

End Property


Определение значения Nvrpf из таблицы 3.15.

Public Property Get Nvrpf() As Double

Nvrpf = da.table315GetNvrpf(VolProg)

End Property


Определение значения Nvrnp из таблицы 3.16.

Public Property Get Nvrnp() As Double

Nvrnp = da.table316GetNvrnp(VolProg)

End Property


Определение значения Nvrgv из таблицы 3.17.

Public Property Get Nvrgv() As Double

Nvrgv = da.table317GetNvrgv(VolProg)

End Property


Определение значения Nvrve из таблицы 3.18.

Public Property Get Nvrve() As Double

Nvrve = da.table318GetNvrve(VolProg)

End Property


Определение значения Nvrkm из таблицы 3.19.

Public Property Get Nvrkm() As Double

Nvrkm = da.table319GetNvrkm(VolProg)

End Property


Определение значения Nvrdr из таблицы 3.20.

Public Property Get Nvrdr() As Double

Nvrdr = da.table320GetNvrdr(VolDorab, VolProg)

End Property


Определение значения Nvrrd из таблицы 3.21.

Public Property Get Nvrrd() As Double

Nvrrd = da.table321GetNvrrd(VolDopRaz)

End Property


Определение значения Nvrts

Public Property Get Nvrts() As Double

Nvrts = Ksl * Kuch * Nvran

End Property


Определение значения Nvrpa

Public Property Get Nvrpa() As Double

Nvrpa = 0.3 * Kxv * Nvrpf

End Property


Определение значения Nvrvp

Public Property Get Nvrvp() As Double

Nvrvp = 2

End Property


Определение значения Nvrrr

Public Property Get Nvrrr() As Double

Nvrrr = Ksl * Kuch * Nvran

End Property


Определение значения Nvrob из таблицы 3.22.

Public Property Get Nvrob() As Double

Nvrob = da.table322GetNvrob(VolDocum, VolProg)

End Property


Определение значения Nvrop из таблицы 3.23.

Public Property Get Nvrop() As Double

Nvrop = da.table323GetNvrop(VolProg)

End Property


Определение значения Tos

Public Property Get Tos() As Double

Tos = Ksl * Kan * Kuch * Nvros

End Property


Определение значения Tvf

Public Property Get Tvf() As Double

Tvf = 0.8 * Ksl * Nvrvf

End Property


Определение значения Ted_vf

Public Property Get Ted_vf() As Double

Ted_vf = Tvf / 4

End Property


Определение значения Tpr

Public Property Get Tpr() As Double

Tpr = Ksl * Kuch * Nvrpr

End Property


Определение значения Tan

Public Property Get Tan() As Double

Tan = Ksl * Kuch * Nvran

End Property


Определение значения Tkr

Public Property Get Tkr() As Double

Tkr = Ksl * Kuch * Nvrkr * Krz

End Property


Определение значения Tps

Public Property Get Tps() As Double

Tps = 0.4 * Ksl * Kuch * Kan * Nvros

End Property


Определение значения Tfe

Public Property Get Tfe() As Double

Tfe = Ksl * Nvrfe

End Property


Определение значения Tvk

Public Property Get Tvk() As Double

Tvk = 5

End Property


Определение значения Tie

Public Property Get Tie() As Double

Tie = 0.4 * Ksl * Nvrfe

End Property


Определение значения Tip

Public Property Get Tip() As Double

Tip = 1

End Property


Определение значения Tp

Public Property Get Tp() As Double

Tp = Kxp * Nvrp

End Property


Определение значения Tp

Public Property Get Tpi(index As Integer) As Double

Tpi = Kxp * Nvrp

End Property


Определение значения Tkomp

Public Property Get Tpk() As Double

Dim j As Integer, NPS As Integer

NPS = 3

For j = 1 To NPS

Tpk = Tpk + Tpi(j)

Next j

End Property


Определение значения Tsg

Public Property Get Tsg() As Double

Tsg = 0.2 * (Tan + Tkr) + Tie + Tp

End Property


Определение значения Tpf

Public Property Get Tpf() As Double

Tpf = Kxv * Nvrpf

End Property


Определение значения Tnp

Public Property Get Tnp() As Double

Tnp = Kxv * Ksl * Nvrnp


Случайные файлы

Файл
130960.rtf
17288.rtf
8743.rtf
4426-1.rtf
97936.doc