Автор работы: Пользователь скрыл имя, 05 Октября 2011 в 16:20, дипломная работа
Мир компьютерных и информационных технологий без преувеличения можно назвать наиболее динамичной областью современных знаний. Практически каждый год появляются новые модели процессоров и комплектующих, новые версии операционных систем и программного обеспечения. Все это происходит на фоне постоянного усложнения не только отдельных физических и программных компонентов, но и лежащих в их основе концепций и идей. Появилась надобность создавать все более большие сложные программы.
ПОСТАНОВКА ЗАДАЧИ 6
ВВЕДЕНИЕ 7
1. ОБЩАЯ ЧАСТЬ 8
1.1. Обзор состояния вопроса 8
1.2. Основные этапы разработки программных продуктов 11
1.2.1. Концептуализация 12
1.2.2. Анализ разрабатываемого приложения 14
1.2.3. Проектирование разрабатываемого приложения 16
1.2.4. Эволюция приложения 17
1.2.5. Сопровождение приложения 19
1.3. Технологии разработки программных продуктов 20
1.3.1. Объектно-ориентированное программирование 20
1.3.2. Технология .NET 21
1.3.2.1. Компоненты .NET 23
1.3.2.2. Двоичный стандарт компонентов 25
2. СПЕЦИАЛЬНАЯ ЧАСТЬ 27
2.1. Разработка программы 27
2.1.1. Анализ разрабатываемого приложения 27
2.1.2. Проектирование разрабатываемого приложения 34
2.2. Языки программирования 35
2.3. Выбор языка программирования 37
2.4. Применение графиков в решении уравнений 38
3. ЭКОНОМИЧЕСКАЯ ЧАСТЬ 41
3.1. Исходные данные 41
3.2. Применяемые формулы с расшифровкой условных обозначений 42
3.3. Расчет полной себестоимости разработки программного
продукта по базовому варианту 45
3.4. Расчет полной себестоимости разработки программного
продукта по эксплуатационному варианту 46
3.5. Расчет полной себестоимости разработки программного
продукта по варианту разработки 57
3.6. Расчет экономической эффективности внедрения
программного продукта 48
3.7. Социально-психологические аспекты
использования разработки 50
4. ЭКСПЛУАТАЦИЯ ТЕХНИЧЕСКИХ И ПРОГРАММНЫХ
СРЕДСТВ 51
4.1. Эксплуатация технических средств 51
4.2. Эксплуатация разработанной программы 52
ЗАКЛЮЧЕНИЕ 54
СПИСОК ЛИТЕРАТУРЫ 55
ПРИЛОЖЕНИЕ 56
При эволюции системы на практике ожидаются следующие типы изменений:
1.2.5.
Сопровождение приложения
Сопровождение программ — это работы, связанные с обслуживанием программ процессе их эксплуатации.
Цель
сопровождения – это
Леман и Белади сделали несколько неоспоримых наблюдений, рассматривая процесс "созревания" уже внедренной программной системы [2]:
Сопровождение связано также с управлением списком новых заданий. Кроме тех требований, которые по каким-либо причинам не были учтены, вероятно, уже вскоре после выпуска работающей системы, разработчики и конечные пользователи обменяются множеством пожеланий и предложений, которые они хотели бы увидеть воплощенными в следующих версиях системы. Заметим, что когда с системой поработает больше пользователей, выявятся новые ошибки и неожиданные методы использования, которых не смогли предвидеть контролеры качества. В список заносятся обнаруженные дефекты и новые требования, которые будут учтены при планировании новых релизов в соответствии с их приоритетом.
Сопровождение несколько отличается от эволюции системы. Если первоначальная архитектура удалась, добавление новых функций и изменение существующего поведения происходят естественным образом.
Кроме обычных действий по эволюции, при сопровождении нужно определить приоритеты задач, собранных в список замечаний и предложений. Типичный порядок действий таков:
1.3.
Технологии разработки программных продуктов
1.3.1.
Объектно-ориентированное программирование
Это стиль программирования, который фиксирует поведение реального мира таким способом, при котором детали его реализации скрыты. ООП часто называют новой парадигмой программирования. Парадигмы в программировании определяют как проводить вычисления, как работа, выполняемая компьютером должна быть структурирована и организована.
ООП – это программирование, сфокусированное на данных, причем данные и поведение неразрывно связаны. Вместе данные и поведение представляют собой класс, а объекты являются экземплярами класса (или переменными класса). Программа написанная с использованием ООП - это совокупность взаимодействующих объектов. Каждый объект отвечает за конкретную задачу. Вычисление осуществляется посредством взаимодействия объектов.
Кроме
того классы обеспечивают сокрытие данных.
Права доступа могут
1.3.2.
Технология .NET
NET - это совершенно новая модель(платформа) для создания приложений под Windows (а в будущем, видимо, и под другими операционными системами). Она представляет собой высокопроизводительную многоязыковую среду, которая позволяет интегрировать существующие приложения с приложениями следующего поколения.
Перечисление основных возможностей .NET:
1) Полные возможности взаимодействия с существующим кодом.
2) Полное и абсолютное межъязыковое взаимодействие.
3) Общая среда выполнения для любых приложений .NET, вне зависимости от того, на каких языках они были созданы. Один из важных моментов при этом - то, что для всех языков используется один и тот же набор встроенных типов данных.
4)
Библиотека базовых классов,
.NET Framework является одной из самых совершенных на сегодня платформ разработки ПО. Она предоставляет практически неограниченные возможности для реализации любых задач.
.NET Framework состоит из трех основных частей – общеязыковой среды выполнения, общая системы типов и общеязыковой спецификации. Главная роль общеязыковой среды выполнения заключается в том, чтобы обнаруживать и загружать типы .NET и производить управление ими в соответствии с пользовательскими командами. Также она берет на себя всю низкоуровневую работу - например, автоматическое управление памятью, межъязыковым взаимодействием, развертывание (с отслеживанием версий) различных двоичных библиотек. Общая системы типов полностью описывает все типы данных, поддерживаемые средой выполнения, определяет, как одни типы данных могут взаимодействовать с другими и как они будут представлены в формате метаданных .NET. Общеязыковая спецификация - это набор правил, определяющих подмножество общих типов данных, в отношении которых гарантируется, что они безопасны при использовании во всех языках .NET. Если, например, создать типы .NET с использованием только тех возможностей, которые совместимы с общеязыковой спецификацией, то тем самым это сделает их пригодными для любых языков .NET.
Помимо выше перечисленных спецификаций платформа .NET предоставляет в распоряжение также библиотеку базовых классов, доступную из любого языка программирования .NET. Библиотека базовых классов не только прячет обычные низкоуровневые операции, такие как файловый ввод-вывод, обработка графики и взаимодействие с оборудованием компьютера, но и обеспечивает поддержку большого количества служб, используемых в современных приложениях.
С концептуальной точки зрения отношения между уровнем среды выполнения и библиотекой базовых классов .NET выглядят так, как показано на рис.1.5.
Рис.1.5
Отношения между средой выполнения и
библиотекой базовых классов .NET
1.3.2.1.
Компоненты .NET
Обычно приложение состоит из одного монолитного двоичного файла. После того, как приложение сгенерировано компилятором, он остается неизменным — пока не будет скомпилирована и поставлена пользователю новая версия. Чтобы учесть изменения в операционных системах, аппаратуре и желаниях пользователей, приходится ждать перекомпиляции. Приложение застывает, подобно скале посреди реки перемен. И по мере того, как вся индустрия программирования стремительно уходит все дальше в будущее, оно стареет — и устаревает. При современных темпах развития индустрии программирования приложениям нельзя оставаться застывшими. Разработчики должны найти способ вдохнуть новую жизнь в программы, которые уже поставлены пользователям. Решение состоит в том, чтобы разбить монолитное приложение на отдельные части, или компоненты (рис.1.6).
Рис.1.6
Разбиение монолитного приложения (слева)
на компоненты(справа)
По
мере развития технологии компоненты,
составляющие приложение, могут заменяться
новыми (рис.1.7). Приложение более не является
статичным, обреченным устареть еще до
выхода в свет. Вместо этого оно постепенно
эволюционирует с заменой старых компонентов
новыми. Из существующих компонентов легко
создать и абсолютно новые приложения.
Традиционно приложение состояло из отдельных
файлов, модулей или классов, которые компилировались
и компоновались в единое целое. Разработка
приложений из компонентов — так называемых
приложений компонентной архитектуры
— происходит совершенно иначе. Компонент
подобен миниприложению; он поставляется
пользователю как двоичный код, скомпилированный
и готовый к использованию. Единого целого
больше нет. Его место занимают специализированные
компоненты, которые подключаются во время
выполнения к другим компонентам, формируя
приложение. Модификация или расширение
приложения сводится просто к замене одного
из составляющих его компонентов новой
версией.
Рис.1.7
Замена компонента D на новую, улучшенную
версию
Для того, чтобы разбить монолитное приложение на компоненты, необходим мощный инструмент. Этот Инструмент называется .NET.
Более пяти лет назад .NET была разработана в Microsoft, чтобы сделать программный продукты фирмы более гибкими, динамичными и настраиваемыми.
Практически
все продаваемые сегодня
1.3.2.2.
Двоичный стандарт компонентов
Одной из наиболее важных черт .NET является его способность предоставлять двоичный стандарт для программных компонентов. Этот двоичный стандарт обеспечивает средства, с помощью которых объекты и компоненты, разработанные на разных языках программирования разными поставщиками и работающие в различных операционных системах, могут взаимодействовать без каких-либо изменений в двоичном (исполняемом) коде. Это является основным достижением создателей .NET и отвечает насущным потребностям сообщества разработчиков программ.
Многоразовое использование программного обеспечения является одной из первоочередных задач при его разработке и обеспечивается составляющими его модулями, которые должны работать в разнообразных средах. Обычно программное обеспечение разрабатывается с использованием определенного языка программирования, например C++, и может эффективно применяться только в том случае, если другие разработчики компонентов также применяют C++.
Например, если мы разрабатываем С++ - класс, предназначенный для манипулирования с данными, то необходимым условием его использования в других приложениях является их разработка на языке C++. Только С++ - компиляторы могут распознать С++ - классы.
Фактически, поскольку средства C++ не поддерживают никакого стандартного способа адаптации вызовов С++ - функций к новой программной среде, использование программного обеспечения в этой новой среде требует применения такого же (или аналогичного) инструментального средства для его обработки. Другими словами, использование класса в другой операционной среде требует обязательного переноса в эту среду исходного текста программы данного класса.
Применение
двоичного кода позволяет разработчику
создавать программные