Сопровождение программного продукта. Сопровождение программного продукта.. Жц жизненный Цикл по программное обеспечение
Скачать 0.97 Mb.
|
- суммарная норма времени при обработке данных ручным способом; Н - суммарная норма времени при обработке данных автоматизированным способом; Д - среднее число рабочих дней в году (принимаем 48 дней, так как программа используется 48 дней). Э г = ( 1,17 – 0,69 ) * 48 = 23,04 час/год 3.2 Оценка трудоёмкости разработки Трудоемкость продукции - показатель затрат рабочего времени на производство единицы продукции или на выполнение определенной технологической операции. Для чего необходимо весь процесс проектирования программного изделия разбить на этапы. Таблица 2 - Удельный вес трудоемкости всех этапов работы
Трудозатраты по каждому из этапов рассчитывается по формуле Тэi = Tэ * Уэi / Уэ, (2) где Тэi - трудозатраты i-го этапа научно-исследовательской работы; Тэ - трудоемкость одного этапа исследования, рассчитанное методом прямого счета (час); Уэi - удельный вес трудоемкости i-го этапа; Уэ - удельный вес трудоемкости данного этапа, рассчитанного методом прямого счета. За основу Тэ берется первый этап, рассчитывается время затраченное на этот этап методом прямого счета. Таблица З - Расчет трудоемкости работ
Трудоемкость всей работы рассчитывается по формуле Tобщ =∑19 Tэi, (3) Т общ = 15 + 10 + 35 + 15 +25 = 100 час. 3.3 Расчет себестоимости разработки программного изделия 3.3.1 Расчет затрат на материалы Затраты на материалы рассчитываются в таблице 4 Таблица 4 - Затраты на материалы
3.3.2 Расчет затрат на оплату труда разработчикам программного изделия Рассчитывается по формуле Ф зп = З осн + П + У к + З доп + Отч, (4) Ф зп = 4000 + 1200 + 780 + 1196 + 1865,76 = 9041,76 руб. Расчет основной заработной платы производится по формуле З осн = Т * Т ст, (5) где Т - трудозатраты (н/час); Тст - тарифная ставка инженера (40 руб). З осн = 100 * 40 = 4000 руб. Размер премии рассчитывается по формуле П = Зосн * 0.3, (6) П = 4000 * 30% / 100% = 1200 руб. Уральский коэффициент рассчитывается по формуле Ук = (Зосн + П) * 0.15, (7) У к = ( 4000 + 1200 ) * 15% / 100% = 780 руб. Дополнительная заработная плата инженера рассчитывается по формуле З доп = (З осн + П + Ук) * 0.2, (8) З доп = ( 4000 + 1200 + 780 ) * 20% / 100% = 1196 руб. Размеры отчислений с заработной платы в государственные фонды рассчитываются по формуле Отч = ( З осн + П + У к + З доп ) * 0.26, (9) Отч = ( 4000 + 1200 + 780 + 1196 ) * 26% / 100% = 1865,76 руб. Расчет общей заработной платы производится по формуле ЗП общ = ЗП осн + ЗП доп +Пр + У к, (10) ЗП общ = 4000 + 1200 + 780 + 1196 = 7176 руб. 3.3.3 Расчет общепроизводственных расходов Это расходы на электроэнергию, потребляемую компьютером и принтером за время разработки программного изделия и их амортизационных отчислений. Затраты на электроэнергию рассчитываются в таблице 5 Таблица 5 - затраты на электроэнергию
Затраты на амортизационные отчисления рассчитаны в таблице 6 Таблица 6 - Амортизационные отчисления
Сумма амортизационные отчисления рассчитывается по формуле А =C перв* Na/100*Траб/12/ФРВ, (11) где А – амортизационные отчисления; Cперв- первоначальная стоимость; Na – норма амортизации; Траб – время работы; ФРВ – месячный фонд рабочего времени, принимаем 175 ч. А1 = 25000 0,13 60 / (12*175) = 92,8 А2 = 8000 0,13 0,5 / (12*175) = 0,2 Аобщ = 92,8 + 0,2 = 93 3.3.4 Расчет накладных расходов Накладные расходы составляют 30% от основной заработной платы. Расчет накладных расходов рассчитывается по формуле Р н = 30% / 100% * ЗП осн, (12) Рн = 4000 * 30% / 100% = 1200 руб. 3.3.5 Расчет коммерческих расходов Коммерческие расходы составляет 1% от производственной себестоимости. Расчет коммерческих расходов производится по формуле Р ком = С произ * 0.01, (13) Р ком = 10401,76 * 1% / 100% = 104,01 руб. 3.3.6 Расчет полной себестоимости программного изделия Данные заносятся в таблицу 7. Таблица 7 - Калькуляция себестоимости программного изделия
Структура себестоимости разработки программного изделия представлена на рисунке 18. Рисунок 18 – Структура себестоимости разработки программного изделия. 3.4 Расчет цены программного изделия Плановый уровень прибыли составляет 25% от полной себестоимости, рассчитывается по формуле П = С произ * 0.25, (14) П = 10505,77 * 25% / 100% = 2626,44 руб. Цена расчетная рассчитывается по формуле Црасч= Сполн+П, (15) Ц расч = 10505,77 + 2626,44 = 13132,21 руб. Цена отпускная рассчитывается по формуле Цотп= Црасч+ НДС, (16) НДС рассчитывается по формуле НДС = Црасч * 18% / 100%, (17) НДС = 13132,21 * 18% /100% = 2363,79 руб. Ц отп = 13132,21 + 2363,79 = 15495,91 руб. Все расчеты сводятся в таблицу 8. Таблица 8 - Расчет цены программного изделия
3.5 Расчет годовой экономии текущих затрат Относительная годовая экономия текущих затрат определяется по формуле ∆С = (Тpj * Цр – Тmj * Цм)*Д р, (18) где - норма времени на каждом этапе, затраченная при ручном способе (ч); - стоимость одного часа не автоматизированной работы (35 руб); - нормы времени на каждом этапе, затраченные при автоматизированном способе (ч); - стоимость одного часа автоматизированной работы (40 руб); - количество рабочих дней в году (48 дней). ДС = ( 1,17 * 35 – 0,69 * 40 ) * 48 = 640,8 руб. 4. Организация труда 4.1 Общие требования К работе с компьютерами, принтерами, ксероксами и другими электрическими приборами допускаются лица, обученные данной специальности, прошедшие вводный инструктаж по охране труда, инструктаж по охране труда, инструктаж по технике безопасности непосредственно на рабочем месте и инструктаж в объеме 1-й группы по электробезопасности. При работе с дисплеями не допускается расположение рабочих мест в помещениях без естественного освещения. Рабочие места с дисплеями от стены с оконными проемами должны находиться на расстоянии не менее 1,5 м, от других стен - не менее 1 м. Расстояние от задней и боковых стен дисплея до другого работника должно быть не менее 1,5 м. Размеры рабочей поверхности столешницы должны быть не менее 1600 х 900 мм. Под столешницей рабочего стола должно быть свободное пространство для ног с размерами по высоте не менее 600 мм, по ширине - 500 мм, по глубине - 650 мм. Рабочее место должно быть оборудовано подставкой для ног шириной 350 мм и длиной 400 мм. Для защиты от прямых солнечных лучей должны предусматриваться солнцезащитные устройства (пленка с металлизированным покрытием, регулируемые жалюзи с вертикальными ламелями и др.) Для исключения бликов отражения на экранах от светильников общего освещения необходимо применить специальные фильтры для экранов, защитные козырьки или располагать источники света параллельно направлению взгляда на экран. Пол помещения должен быть покрыт материалами, не выделяющими вредных веществ, поглощающими шум, не накапливающими статического электричества. Допускаемые уровни напряженности электростатических полей на рабочих местах не должны превышать 20 кв/м (ГОСТ 120,145-84). Мощность экспозиционной дозы низкоэнергетического рентгеновского излучения на расстоянии 5 см от экрана, задней и боковых стенок дисплея не должна превышать 100 мкр/ч (0,03 мкр/с). Мощность ультрафиолетового излучения не должна превышать 10 Вт/мч-2 Вт/мч на расстоянии 5 и 30 см от экрана дисплея (ГОСТ 27954-88). Клавиатура дисплея не должна быть жестко связана с монитором. Площадь помещения из расчета на одного человека следует предусматривать не менее 6,0 кв.м. На рабочих местах необходимо обеспечивать микроклиматические параметры, уровни освещенности шума и состояния.воздушной среды согласно санитарным нормам. Освещение должно быть смешанным (естественным и искусственным). Осветительные установки должны обеспечивать равномерную освещенность с помощью преимущественно отраженного или рассеянного светораспределения. Они не должны создавать слепящих бликов на клавиатуре и других частях пульта, а также на экране дисплея в направлении глаз оператора. Для исключения отражения на экране бликов от светильников необходимо применять специальные фильтры для экранов, антибликерные сетки, козырьки или располагать источники света параллельно направлению взгляда на экран ВДТ с обеих сторон. Для предотвращения образования и защиты от статического электричества необходимо использовать нейтрализаторы и увлажнители, а полы должны иметь антистатическое покрытие. Защита от статического электричества должна проводиться в соответствии с санитарно- гигиеническими нормами допускаемой напряженности электрического поля. О случаях травмирования и обнаружения неисправности оборудования работники должны немедленно сообщить руководителю. Работать на неисправном оборудовании запрещается. Не разрешается допускать на свое рабочее место лиц, не имеющих отношения к данной работе. Работники обязаны выполнять правила безопасности, при обнаружении возможной опасности предупредить окружающих и немедленно сообщить руководителю; содержать в чистоте рабочее место и не загромождать его посторонними предметами. Лица, виновные в нарушении требований, изложенных в данной инструкции, привлекаются к дисциплинарной ответственности в соответствии с действующим законодательством. 4.2 Требования безопасности перед началом работы Осмотреть и убедиться в исправности оборудования, заземления электропроводки. В случае обнаружения неисправностей к работе не приступать. Сообщить об этом руководителю и только после устранения неполадок и его разрешения приступить к работе. Проверить освещение рабочего места, при необходимости принять меры к его нормализации. 4.3 Требования безопасности во время работы Не включать оборудование в неисправную розетку, во время работы следить, не греется ли электровилка, не нарушена ли целостность электрошнура. Не приступать к работе с влажными руками. Не оставлять включенное оборудование без присмотра. Не класть предметы на оборудование и дисплей. Режим труда и отдыха предусматривает соблюдение регламентированных перерывов. Основным перерывом является перерыв на обед. В режиме труда должны быть дополнительные регламентированные перерывы по 10 минут каждый; два перерыва при 8-часовом рабочем дне. При 8-часовом рабочем дне с обеденным перерывом через 4 часа работы, дополнительные перерывы необходимо делать через 3 часа работы и за 2 часа до окончания. Режим труда и отдыха персонала, непосредственно работающего с дисплеем, зависит от характера работы: при вводе данных, редактировании программ, чтении информации с экрана; непрерывная продолжительность работы с дисплеем не должна превышать четырех часов при 8-часовом рабочем дне. 4.4 Требования безопасности в аварийных случаях При возникновении возгорания немедленно отключить оборудование, обесточить электросеть за исключением осветительной сети, сообщить о пожаре всем работающим и приступить к тушению очага загорания имеющимися средствами пожаротушения. Если на металлических частях оборудования обнаружено напряжение (ощущение тока), заземляющий провод оборван - отключить оборудование немедленно, доложить руководителю о неисправности электрооборудования и без его указания к работе не приступать. При прекращении подачи электроэнергии отключить оборудование. При несчастном случае необходимо в первую очередь освободить пострадавшего от травмирующего фактора. При освобождении пострадавшего от действия электротока следите за тем, чтобы самому не оказаться в контакте с токоведущей частью и под напряжением. 4.5 Требования безопасности по окончании работ Отключить оборудование от электросети. Привести в порядок рабочее место. Закрыть оборудование чехлами. Заключение В ходе сопровождения программного продукта был проведен анализ работы программного продукта, выявлены замечания заказчика. Внесены изменения в соответствии с сделанными замечаниями: - отредактирован внешний вид приложения; - откорректирован бланк рецензии; - изменён программный код некоторых форм; - изменён отчет для подсчета суммы работы преподавателей; - создана web-страница с выводом на неё отчета по студенту. Программный продукт сдан в эксплуатацию. Отработана принципиальная возможность вывода web-страницы в Internet. Список используемых источников 1. Р. Гласс «Руководство по надежному программированию», 1982г., Москва. 2. Игорь Одинцов «Профессиональное программирование. Системный подход», 2006г., Санкт-Петербург. 3. Л.Г. Гагарина, Б.Д. Висман, А.В. Игошин «Основы технологии разработки программных продуктов», 2006г., Москва. 4. http://swebok.sorlik.ru/ Приложение А Техническое задание А.1 Введение Тема дипломного проекта: «Сопровождение БД и приложения для учета часов работы преподавателей на заочном отделении ВМТ». А.2 Основание для разработки Данная разработка ведется на основе технического задания к дипломному проекту. А.З Назначение для разработки Данное программное изделие предназначено для автоматизации ввода вывода, поиска, хранения информации. А.4 Требования к программному изделию Должны быть произведены следующие изменения, не нарушающие функциональность приложения: - отредактирован внешний вид приложения; - откорректирован бланк рецензии; - изменён программный код некоторых форм; - изменён отчет для подсчета суммы работы преподавателей; - создана web страница с выводом на неё отчета по студенту. При работе с программой должны быть предоставлены условия: - комнатная температура (15С-25С); - количество персонала не менее одного человека; - персонал должен быть хорошо ознакомлен с работой приложения. Требования к техническим средствам: - 1 Гб на жестком диске; - ОЗУ 512 Мб; Требования к информационной и программной совместимости: - OC Windows 2000/ XP; - Ms Office, Access 2003; - Denwer; - MySQL; - Web браузер. А.5 Стадии и этапы разработки - изучение программного продукта; - анализ программного продукта; - тестирование программного продукта; - корректировка программного продукта; - перенос данных из MS Access в MySQL; - создание web страницы; - обучение персонала; - устранение замечаний персонала; - разработка подробного руководства пользователя; - заключение. Приложение Б Программный код Программный код обработки нажатия кнопки «Восстановить дисциплину» на форме «Ввод дисциплины» Private Sub cboVosst_Click() If CboVosst.Caption <> "Отмена восстановления" Then cboydal_reg.Visible = True txtSpravka.Visible = True cmdok.Enabled = False CboVosst.Caption = "Отмена восстановления" Else cboydal_reg.Visible = False txtSpravka.Visible = False cmdok.Enabled = True CboVosst.Caption = "Восстановить удаленных" End If End Sub Программный код обработки нажатия кнопки «Восстановить из удаленных» на форме «Ввод студента» Private Sub CboVosst_Click() If CboVosst.Caption <> " Отмена восстановления " Then cboydal_reg.Visible = True txtSpravka.Visible = True cmdok.Enabled = False CboVosst.Caption = " Отмена восстановления " Else cboydal_reg.Visible = False txtSpravka.Visible = False cmdok.Enabled = True CboVosst.Caption = " Восстановить удаленных " End If End Sub Программный код обработки нажатия кнопки «Восстановить из удаленных» на форме «Ввод преподавателя» Private Sub CboVosst_Click() If CboVosst.Caption <> " Отмена восстановления " Then cboydal_reg.Visible = True txtSpravka.Visible = True Кнопка10.Enabled = False cboPerehod.Visible = False CboVosst.Caption = " Отмена восстановления " Else cboydal_reg.Visible = False txtSpravka.Visible = False Кнопка10.Enabled = True cboPerehod.Visible = True CboVosst.Caption = " Восстановить удаленных " End If End Sub Программный код обработки нажатия кнопки «Закончил курс обучения» на форме «Перевод на другой курс» Private Sub cmdzanos_Click() a = cbogruppa.Value d = txtdata.Value If IsNull(a) = True Then MsgBox "Вы не выбрали группу или она уже удалена!" Exit Sub End If ' Для закончивших курс strConnect = "Provider = Microsoft.jet.Oledb.4.0; " & _ "Data Source= " & CurrentProject.Connection Set cnn = New ADODB.Connection cnn.ConnectionString = strConnect cnn.Mode = adModeReadWrite Debug.Print a Debug.Print d f = a & " " & Date Debug.Print f cnn.Open 'обновление названия группы в таблице Группа strqryprx = "UPDATE gruppa SET gruppa.Shifr_gruppa = 'В_'& [o] " & _ "WHERE (((gruppa.Shifr_gruppa)=[u]));" Set cmd = New ADODB.Command cmd.ActiveConnection = cnn cmd.CommandText = strqryprx cmd.CommandType = adCmdText Set prm1 = cmd.CreateParameter("oper", adChar, adParamInput, 20, f) cmd.Parameters.Append prm1 Set prm2 = cmd.CreateParameter("oper", adChar, adParamInput, 20, a) cmd.Parameters.Append prm2 Set rst = cmd.Execute 'обновление названия группы в таблице Студент strqryprx = "UPDATE Student SET Student.Shifr_gruppa = a & Date() " & _ "WHERE (((Student.Shifr_gruppa)=[Forms]![frm_perevod]![cbogruppa].[Value]));" Set cmd = New ADODB.Command cmd.ActiveConnection = cnn cmd.CommandText = strqryprx cmd.CommandType = adCmdText Set prm1 = cmd.CreateParameter("oper", adChar, adParamInput, 10, Date) cmd.Parameters.Append prm1 Set prm2 = cmd.CreateParameter("oper", adChar, adParamInput, 10, a) cmd.Parameters.Append prm2 Set rst = cmd.Execute cboinfo.AddItem ("Группа " & cbogruppa.Value & " закончила курс. Контрольные занесены в архив!") End Sub Программный код обработки события нажатия кнопки «Весь список» на форме «Регистрация контрольных работ». Private Sub cmdspisok_Click() If cmdspisok.Caption = "Весь список" Then cboprepod.RowSource = "SELECT Prepodavatel.Tabel_nomer, [familiaPR] & ' ' & [imayPR] & ' ' & [otchestvoPR] AS Выражение1, Prepodavatel.[status prepodavatelya] " & _ "FROM Prepodavatel " & _ "WHERE (((Prepodavatel.[status prepodavatelya])=1));" cmdspisok.Caption = "По дисциплине" Else cboprepod.RowSource = "SELECT Prepodavatel.Tabel_nomer, [familiaPR] & ' ' & [imayPR] & ' ' & [otchestvoPR] AS Выражение1, Prepodavatel.[status prepodavatelya] " & _ "FROM Prepodavatel INNER JOIN peresechenie ON Prepodavatel.Tabel_nomer = peresechenie.Tabel_nomer " & _ "WHERE (((peresechenie.Shifr_disziplina)=[Forms]![frm_registrazia_rabot]![cbodisziplina].[Value]) AND ((Prepodavatel.[status prepodavatelya])=1));" cmdspisok.Caption = "Весь список" End If End Sub Программный код обработки события открытия формы «Журнал регистрации» Private Sub cbovubord_AfterUpdate() Dim stDocName As String Dim stLinkCriteria As String If cbovuborg.Value <> "" Then strConnect = "Provider = Microsoft.jet.Oledb.4.0; " & _ "Data Source= " & CurrentProject.Connection Set cnn = New ADODB.Connection cnn.ConnectionString = strConnect cnn.Mode = adModeReadWrite cnn.Open strqryprx = "INSERT INTO zhurnal ( nomer_kontr_raboty, data_registr, Выражение1, data_proverki, Выражение2, id_ozenki ) " & _ "SELECT Kontrolnay_rabota.nomer_kontr_raboty, Kontrolnay_rabota.data_registr, [familiaST] & ' ' & [imaySt] & ' ' & [OtchestvoST] AS Выражение1, Kontrolnay_rabota.data_proverki, [familiaPR] & ' ' & [imayPR] & ' ' & [otchestvoPR] AS Выражение2, Kontrolnay_rabota.id_ozenki " & _ "FROM ozenka INNER JOIN ((Gruppa INNER JOIN Student ON Gruppa.Shifr_gruppa = Student.Shifr_gruppa) INNER JOIN (Kontrolnay_rabota INNER JOIN Prepodavatel ON Kontrolnay_rabota.Tabel_nomer = Prepodavatel.Tabel_nomer) ON Student.Nomer_bileta = Kontrolnay_rabota.Nomer_bileta) ON ozenka.id_ozenki = Kontrolnay_rabota.id_ozenki " & _ "WHERE (((Gruppa.Shifr_gruppa) = [Forms]![Frm_zhurnal_nachalo]![cbovuborg].[Value]) And ((Kontrolnay_rabota.Shifr_disziplina) = [Forms]![Frm_zhurnal_nachalo]![cbovubord].[Value])) " & _ "ORDER BY Kontrolnay_rabota.nomer_kontr_raboty;" Set cmd = New ADODB.Command cmd.ActiveConnection = cnn cmd.CommandText = strqryprx cmd.CommandType = adCmdText Set prm = cmd.CreateParameter("oper", adChar, adParamInput, 10, [Forms]![Frm_zhurnal_nachalo]![cbovuborg].[Value]) cmd.Parameters.Append prm Set prm1 = cmd.CreateParameter("oper", adChar, adParamInput, 150, [Forms]![Frm_zhurnal_nachalo]![cbovubord].[Value]) cmd.Parameters.Append prm1 cmd.Execute cnn.Close stDocName = "frm_zhurnal_konez" DoCmd.OpenForm stDocName, acNormal,, stLinkCriteria Exit Sub www: MsgBox "В журнале нет зарегистрированных контрольных работ" Exit Sub End If End Sub Программный код обработки события «Проверка контрольной работы». Private Sub naimenovanie_ozenka_AfterUpdate() strConnect = "Provider = Microsoft.jet.Oledb.4.0; " & _ "Data Source= " & CurrentProject.Connection Set cnn = New ADODB.Connection cnn.ConnectionString = strConnect cnn.Mode = adModeReadWrite cnn.Open Debug.Print [Forms]![frm_zhurnal_konez]![raboty].[Value] n = [Forms]![frm_zhurnal_konez]![raboty].[Value] Debug.Print "n " & n dp1 = Forms![frm_zhurnal_konez]![data_proverki].[Value] oc1 = Forms![frm_zhurnal_konez]![naimenovanie_ozenka].[Value] Do strqryprx = "UPDATE Kontrolnay_rabota SET Kontrolnay_rabota.data_proverki = [dp], Kontrolnay_rabota.id_ozenki = [oc] " & _ "WHERE (((Kontrolnay_rabota.nomer_kontr_raboty)=[u]));" Set cmd = New ADODB.Command cmd.ActiveConnection = cnn cmd.CommandText = strqryprx cmd.CommandType = adCmdText Set prm = cmd.CreateParameter("oper", adChar, adParamInput, 10, dp1) cmd.Parameters.Append prm Set prm1 = cmd.CreateParameter("oper", adChar, adParamInput, 10, oc1) cmd.Parameters.Append prm1 Set prm2 = cmd.CreateParameter("oper", adChar, adParamInput, 10, n) cmd.Parameters.Append prm2 Debug.Print prm cmd.Execute Loop While dp1 <> Null cnn.Close End Sub Программный код обработки события нажатия кнопки «Весь список» на форме «Регистрация контрольный работ» Private Sub cmdspisok_Click() If cmdspisok.Caption = "Весь список" Then cboprepod.RowSource = "SELECT Prepodavatel.Tabel_nomer, [familiaPR] & ' ' & [imayPR] & ' ' & [otchestvoPR] AS Выражение1, Prepodavatel.[status prepodavatelya] " & _ "FROM Prepodavatel " & _ "WHERE (((Prepodavatel.[status prepodavatelya])=1));" cmdspisok.Caption = "По дисциплине" Else cboprepod.RowSource = "SELECT Prepodavatel.Tabel_nomer, [familiaPR] & ' ' & [imayPR] & ' ' & [otchestvoPR] AS Выражение1, Prepodavatel.[status prepodavatelya] " & _ "FROM Prepodavatel INNER JOIN peresechenie ON Prepodavatel.Tabel_nomer = peresechenie.Tabel_nomer " & _ "WHERE (((peresechenie.Shifr_disziplina)=[Forms]![frm_registrazia_rabot]![cbodisziplina].[Value]) AND ((Prepodavatel.[status prepodavatelya])=1));" cmdspisok.Caption = "Весь список" End If End Sub Программный код php-скрипта для обновления таблицы с контрольными работами в БД MySQL echo ""; echo " |