МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Разработка системы автоматизации для малого коммерческого предприятия работающего в сфере информационных услуг

    должно принять решение об относительной важности следующих характеристик:

    1) своевременное выполнение;

    2) эффективность использования таких ресурсов, как:

    а) процессоры;

    б) память;

    в) периферийные устройства;

    3) аспекты обслуживания программы, такие как:

    а) понимаемость;

    б) модифицируемость;

    в) удобство переноса с ЭВМ на ЭВМ.

    Важность входящих в данный перечень характеристик изменяется в

    зависимости от того, в какой организации используется данное программное

    обеспечение. Разработчики программных библиотек могут предпочесть

    эффективности удобство переноса, в то время как создатели систем учета

    кадров могут сосредоточить свое внимание на модифицируемости.

    Метрики Боэма, Брауна и Лайпоу.

    Чтобы оценить качество, необходимо определить измеряемые

    характеристики. Боэм, Браун и Лайпоу описали иерархическое дерево

    характеристик программного обеспечения, в котором направление стрелок

    задает логическое следование. Так, например, хорошо поддерживаемая

    программа должна быть хорошо тестируемой, понимаемой и модифицируемой.

    Самый высокий уровень структуры отражает используемую оценку качества

    программного обеспечения. Боэм, Браун и Лайпоу подчеркивают достоинства

    пакетов программ и считают, что наибольшее значение для них имеют ответы на

    такие вопросы:

    1. Как хорошо (просто, надежно, эффективно) могу я использовать

    данный пакет в том виде, как он есть?

    2. Насколько просто его обслуживать (разобраться в нем,

    модифицировать, перепроверить)?

    3. Могу ли я пользоваться этим пакетом, если сменю оборудование

    (удобство переноса)?

    Характеристики самого нижнего уровня представляют собой "примитивы",

    комбинации которых образуют характеристики среднего уровня. Эти примитивы

    предлагаются в качестве количественных метрик как самих примитивных

    характеристик, так и характеристик более высоких уровней.

    Боэм, Браун и Лайпоу разработали 51 возможную метрику оценки

    примитивных характеристик, а затем провели сравнение этих метрик по степени

    их корреляции с качеством программы. Это подробная и сложная схема,

    опирающаяся на практический опыт, однако, Боэм, Браун и Лайпоу не

    предложили четкой демонстрации ее эффективности, надежности или

    применимости в различных контекстах. Длинный список понятий используется

    скорее как контрольный лист для рецензирования программы, чем как

    руководство по ее составлению.

    Метрики программного обеспечения Джилба.

    Джилб приводит не претендующий на полноту набор метрик программного

    обеспечения. Он обращает внимание на то, что каждое приложение требует

    введения собственных понятий и инструментов; его книга предназначена для

    введения основных понятий, от которых может оттолкнуться пользователь.

    Среди прочих характеристик Джилб упоминает надежность программы,

    которую он определяет как вероятность того, что данная программа

    проработает определенный период времени без логических сбоев.

    Прагматической оценкой программной надежности является единица минус

    отношение числа логических сбоев к общему числу запусков.

    Отношение количества правильных данных ко всем данным приводится

    Джилбом в качестве меры точности (свободы от ошибок). Так же, как Боэм,

    Браун и Лайпоу, Джилб считает, что точность необходима для надежности

    программы. Прецизионность определяется как мера того, насколько часты

    ошибки, обусловленные одинаковыми причинами. Джилб оценивает ее дробью, в

    числителе которой стоит число фактических ошибок на входе, а в знаменателе

    - общее число наблюденных ошибок, причинами которых явились эти ошибки на

    входе. Так, например, если одна ошибка вызывает в течение определенного

    периода времени 100 сообщений об ошибках, то прецизионность равна 0.01.

    Второй большой категорией, введенной Джилбом, является гибкость, в

    которую входят:

    1) логическая сложность;

    2) внутренняя гибкость;

    3) открытость (адаптируемость);

    4) толерантность (к изменениям входа системы);

    5) универсальность;

    6) удобство переноса;

    7) совместимость.

    В качестве меры логической сложности Джилб предложил число логических

    "двоичных принятий решений". Такая оценка может быть получена вручную или

    автоматически. Абсолютная логическая сложность задается числом

    нестандартных выходов из операторов, в которых происходит принятие решений.

    Джилб предполагает, что логическая сложность окажется значимым фактором для

    предсказания стоимости программы.

    Кроме этих, Джилб приводит еще большое количество иных метрик, но это

    длинное перечисление скорее будит воображение, чем приносит пользу. Работа

    Джилба демонстрирует новые возможности, однако реальное применение этих

    идей на практике дает обескураживающие результаты. Большинство

    характеристик очень трудно получить; сбивает с толку и то, что оценки

    сильно связаны, что затрудняет программисту предсказание влияния изменения

    программы на некоторую группу характеристик.

    Оценка сложности Маккейба.

    Маккейб описывает оценку сложности с помощью теории графов и

    демонстрирует ее применение для управления, тестирования и контроля за

    сложностью программы. Следует оговорить, что в данном исследовании Маккейб

    под сложностью программы понимал ее логическую сложность. В его теории

    предполагается, что сложность не зависит от размера, а только от структуры

    выборов решений в программе.

    Маккейб предлагает математический метод, дающий количественные

    основания для модуляризации и позволяющий выявлять модули, которые будет

    трудно тестировать или обслуживать.

    Согласно его подходу вычисляется и контролируется число путей в

    программе. В математические предпосылки входит определение цикломатического

    числа V(G) для графа с n вершинами, e ребрами и p компонентами связности:

    V(G) = e - n + p

    Маккейб использует следующую теорему: в сильно связанном графе G

    цикломатическое число равно максимальному числу линейно-независимых циклов.

    Применяя эту теорему, Маккейб связывает с программой ориентированный

    граф с одним выходом. Каждой вершине графа соответствует блок кода с

    последовательным управлением, а каждой дуге соответствует ветвление

    программы. Каждой вершины можно достигнуть из входной вершины и из каждой

    вершины может быть достигнута выходная вершина. Этот граф сильно связан,

    так как для любой пары вершин существует связывающий их путь.

    Общий подход состоит в оценке сложности программы с помощью

    вычисления числа линейно-независимых путей, цикломатической сложности V(G),

    а также управления размером программ с помощью ограничения V(G) и

    использования V(G) как основы для методологии тестирования. Маккейб

    обнаружил, что разумной верхней границей для цикломатической сложности

    является 10. Если программисты переступают эту границу, им следует или

    переписать программу, или разбить ее на модули.

    Оценка цикломатической сложности Маккейба полезна при подготовке

    тестовых данных и может дать нужную информацию о логической сложности

    программы. Однако при такой оценке не принимается во внимание выбор

    структур данных, алгоритмов, мнемонических имен переменных или

    комментариев, отсутствует обсуждение таких важных понятий, как удобство

    переноса, гибкость, эффективность. Необходимы дополнительные исследования,

    чтобы прояснить, когда полезно использовать цикломатическую сложность. В

    рассмотренном программном модуле по созданию базы данных абонентов

    автоматизированной системы оповещения циклическая граница сложности модуля

    равняется 6, что не превышает верхнюю границу сложности. Ориентированный

    граф модуля представлен на рис.14.1. Это позволяет сделать вывод о

    правильном подходе к написанию отдельных модулей программного обеспечения

    системы оповещения, который применялся при разработке данного дипломного

    проекта.

    Понимаемость.

    Понимаемость программы можно назвать ее психологическую сложность,

    так как психологическая сложность связана с теми же характеристиками

    программы, которые затрудняют понимание программы человеком.

    Авторы работы "Predicting Software Comprehensibility"

    экспериментировали с 36 профессиональными программистами, предложив им по

    25 минут изучать 3 программы, а затем восстановить их за 20 минут. Были

    использованы 3 класса задач (инженерные, статические и не численные) и 3

    типа структурирования (полное, частичное и неструктурированные программы).

    Было также введено 3 уровня мнемоничности имен переменных.

    Результаты эксперимента показали, что хуже всего восстанавливаются

    неструктурированные программы, лучше всего - частично структурированные.

    Уровень мнемоничности имен переменных не оказал влияния на проведение

    эксперимента.

    Важным заключением этого эксперимента явилось то, что на способность

    правильно воспроизводить программы оказали влияние индивидуальные

    особенности участников, характеристики программы и уровень их

    структурированности.

    Выводы.

    Качество управляемо и может быть повышено. Администратор может

    выбрать принципы руководства, определив, что является основной целью -

    своевременная выдача результата, эффективное использование ресурсов или

    надежное обслуживание. В любом из этих случаев не следует забывать о

    психологической сложности программ. Как показывает опыт, в случае создания

    и отладки большого программного комплекса очень важно, чтобы программа

    каждого из авторов была понятна остальным, что обеспечивает четкую и

    безболезненную стыковку. К сожалению, приемлемый набор оценок пока еще не

    разработан. Глубокое теоретическое понимание поведения человека в

    программировании может привести к разработке более совершенных оценок, но

    проверить их пригодность следует экспериментально.

    Список литературы к специальной части.

    1. Р.Ахаян и др. «Эффективная работа с СУБД», Санкт-Петербург,

    «Питер», 1997г.

    2. «Проектирование и разработка систем автоматизации предприятий».

    3. «Database Unleashed», Indianapolis USA, «SAMS Publishing»,

    1996г.

    4. Боуман Джудит, Эмерсон Сандра, Дарновски Марси. «Практическое

    руководство по SQL. 3-е издание». Пер с англ. – Киев,

    Диалектика. 1997.

    5. Дейт, К. «Введение в системы баз данных».-М.:Наука, Диалектика.

    1980.

    6. Мартин, Дж. «Организация баз данных в вычислительных системах».-

    М.:Наука, Диалектика. 1980.

    7. ANSI SQL Standart. The 1992 ISO-ANSI SQL standart is available

    through ANSI as document X3.135-1992 and through ISO as document

    ISO/EC 9075:1992.

    8. Кодд, Е.Ф. «Реляционная модель данных». Пер с англ. – Киев,

    Диалектика. 1996.

    9. Ипстейн, Роберт. «Реляционная производительность: Понимание

    производительности реляционных баз данных». Пер с англ. – Киев,

    Диалектика. 1996.

    10. Ross, Ronald G. «Entity Modeling: Techniques and Application».

    Boston: Database Research Group, Inc. 1995.

    11. Гайн, Крисс. «Введение в SQL» .-М.:Наука, Диалектика. 1980.

    12. Праг, Керри Н. и др. «Секреты Access 97» Пер с англ. – Киев,

    Диалектика. 1997.

    13. Кент, Вилиам. «Введение в пять нормальных форм в теории

    реляционных баз данных». Пер с англ. – Киев, Диалектика. 1996.

    14. Ларcон, Брюс. «Руководство по экспертным базам данных». Пер с

    англ. – Киев, Диалектика. 1996.

    15. Date C.J. «An Introduction to Database Systems» Volume 1,

    Reading, Mass.: Addison-Wesley Publishing Company, 1989.

    16. Date C.J. «An Introduction to Database Systems» Volume 2, 2-th

    edition. Reading, Mass.: Addison-Wesley Publishing Company,

    1989.

    17. Перкинсон, Р.С. «Анализ данных: Ключ к проектированию баз

    данных». Пер с англ. – Киев, Диалектика. 1996.

    18. Microsoft Corporation. «Описание Transact-SQL» .-М.:Наука,

    Диалектика. 1980.

    Приложение А

    Листинг программ

    1) Преобразование числового денежного номера в строчное выражение

    Public Function NewNumber(nnn As Double) As String

    Dim numb(21) As String

    Dim numb1(11) As String

    Dim numb2(11) As String

    Dim mil, tus, ed As Long

    Dim sot, des, ed1 As Integer

    Dim strval, strkop As String

    Dim kop As Integer

    Dim str1, str2 As String

    Dim numstr As Integer

    If (nnn > 999999999) Then

    MsgBox ("Слишком большое число!")

    Exit Function

    End If

    '

    nnn = CDbl(Format(nnn, "Currency"))

    If GetStrAfterSign(CStr(nnn) & "0") = "" Then

    NewNumber = "00 копеек"

    Exit Function

    End If

    kop = CInt(Left(GetStrAfterSign(CStr(nnn) & "0"), 2))

    nnn = kop

    numb(0) = " один"

    numb(1) = " двe"

    numb(2) = " три"

    numb(3) = " четыре"

    numb(4) = " пять"

    numb(5) = " шесть"

    numb(6) = " семь"

    numb(7) = " восемь"

    numb(8) = " девять"

    numb(9) = " десять"

    numb(10) = " одиннадцать"

    numb(11) = " двенадцать"

    numb(12) = " тринадцать"

    numb(13) = " четырнадцать"

    numb(14) = " пятнадцать"

    numb(15) = " шестнадцать"

    numb(16) = " семнадцать"

    numb(17) = " восемнадцать"

    numb(18) = " девятнадцать"

    numb1(0) = " двадцать"

    numb1(1) = " тридцать"

    numb1(2) = " сорок"

    numb1(3) = " пятьдесят"

    numb1(4) = " шестьдесят"

    numb1(5) = " семьдесят"

    numb1(6) = " восемьдесят"

    numb1(7) = " девяносто"

    numb2(0) = " сто"

    numb2(1) = " двести"

    numb2(2) = " триста"

    numb2(3) = " четыреста"

    numb2(4) = " пятьсот"

    numb2(5) = " шестьсот"

    numb2(6) = " семьсот"

    numb2(7) = " восемьсот"

    numb2(8) = " девятьсот"

    numb(19) = " одна"

    numb(20) = " две"

    mil = nnn \ 1000000

    tus = (nnn - mil * 1000000) \ 1000

    ed = nnn - mil * 1000000 - tus * 1000

    If (mil <> 0) Then

    sot = mil \ 100

    des = (mil - sot * 100) \ 10

    ed1 = mil - sot * 100 - des * 10

    If (sot > 0) Then

    strval = strval & numb2(sot - 1)

    End If

    If (des > 0) Then

    If (des = 1) Then

    strval = strval & numb(des * 10 + ed1 - 1) & " миллионов"

    GoTo nex

    Else

    strval = strval & numb1(des - 2)

    End If

    End If

    If (ed1 = 0) Then

    strval = strval & " миллионов"

    ElseIf (ed1 = 1) Then

    strval = strval & " один миллион"

    ElseIf (ed1 > 1 And ed1 < 5) Then

    strval = strval & numb(ed1 - 1) & " миллиона"

    Else

    strval = strval & numb(ed1 - 1) & " миллионов"

    End If

    End If

    nex:

    If (tus <> 0) Then

    sot = tus \ 100

    des = (tus - sot * 100) \ 10

    ed1 = tus - sot * 100 - des * 10

    If (sot > 0) Then

    strval = strval & numb2(sot - 1)

    End If

    If (des > 0) Then

    If (des = 1) Then

    strval = strval & numb(des * 10 + ed1 - 1) & " тысяч"

    GoTo nex1

    Else

    strval = strval & numb1(des - 2)

    End If

    End If

    If (ed1 = 0) Then

    strval = strval & " тысяч"

    ElseIf (ed1 = 1) Then

    strval = strval & " одна тысяча"

    ElseIf (ed1 = 2) Then

    strval = strval & " две тысячи"

    ElseIf (ed1 > 2 And ed1 < 5) Then

    strval = strval & numb(ed1 - 1) & " тысячи"

    Else

    strval = strval & numb(ed1 - 1) & " тысяч"

    End If

    End If

    nex1:

    If (ed <> 0) Then

    sot = ed \ 100

    des = (ed - sot * 100) \ 10

    ed1 = ed - sot * 100 - des * 10

    If (sot > 0) Then

    strval = strval & numb2(sot - 1)

    End If

    If (des > 0) Then

    If (des = 1) Then

    strval = strval & numb(des * 10 + ed1 - 1) & " копеек"

    GoTo nex2

    Else

    strval = strval & numb1(des - 2)

    End If

    End If

    If (ed1 = 0) Then

    strval = strval & " копеек"

    ElseIf (ed1 = 1) Then

    strval = strval & " одна копейка"

    ElseIf (ed1 > 1 And ed1 < 5) Then

    strval = strval & numb(ed1 - 1) & " копейки"

    Else

    strval = strval & numb(ed1 - 1) & " копеек"

    End If

    Else

    strval = strval & " копеек"

    End If

    nex2:

    strval = LTrim(strval)

    NewNumber = strval

    End Function

    2) Занесение денежных средств по счету на авансовый остаток.

    Sub Кнопка347_Click()

    On Error GoTo Err_Кнопка347_Click

    Dim dbs As Database

    Dim rst, rstПоCчету, rstПоАО As Recordset

    Dim rstПоДате As Recordset

    Dim strSQL As String

    Dim i, j As Integer

    Dim Цена, ЦенаП, Сопровождение, Сумма As Double

    Dim Дата As Date

    Dim ДатаTMP As Date

    Dim ДатаПМС As Date

    Dim ДатаTMP2 As Date

    Dim ДАТАПМП As Date

    Dim flagДата As Boolean

    Dim flagБольше As Boolean

    Dim flagГолоеСопр As Boolean

    Dim Разница As Currency

    Dim sing As String

    'Dim ЦенаП_Р, Сумма_Р As Currency

    flagБольше = False

    Set dbs = CurrentDb

    Me.Refresh

    sing = Chr(34)

    Set dbs = CurrentDb

    strSQL = "SELECT DISTINCTROW ОсновныеСчета.НомерСчета, Дистрибутивы.Цена AS

    Цена, Дистрибутивы.Сопровождение AS Сопровождение FROM [ОсновныеСчета]

    INNER JOIN Дистрибутивы ON ОсновныеСчета.КодСчета = Дистрибутивы.КодСчета

    WHERE (((ОсновныеСчета.НомерСчета)=" & sing &

    Forms![Просмотр]![ОсновныеСчета].Form![НомерСчета] & sing & "));"

    Set rst = dbs.OpenRecordset(strSQL)

    Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.