Программа как формализованное описание процесса о бработки данных. Программное средство. Целью программирования является описание процессов обработки данных в дальнейшем  просто

Вид материалаПрограмма
Раздел Требования к программе или программному изделию включает следующие разделы
В разделе Технико-экономические показатели
В разделе Стадии и этапы разработки
Начальные этапы разработки
Выбор типа пользовательского интерфейса.
Выбор подхода к разработке.
Выбор языка программирования
UML диаграммы
Диаграмма прецедентов
Диаграммы классов
Подобный материал:
1   2   3   4   5   6   7   8

Раздел Требования к программе или программному изделию включает следующие разделы:

  • требования к функциональным характеристикам – описывается выполняемые функции, характеристики и фор­мы представления исходных данных и результатов, указывают критерии эффективности.
  • требования к надежности - указывают уровень надежнос­ти, который должен быть обеспечен разрабатываемой системой и время восстановления системы после сбоя;
  • требования к составу и параметрам технических средств – в данном подразделе описывают минимальную и рекомендуемую конфигурацию, при которой программа работает, указывают тип процессора, сколько памяти и т.д.
  • требования к информационной и программной совместимости; - определяют среду и язык программирования, используемую операционную систему, какие дополнительные программные средства необходимо установить.
  • требования к маркировке и упаковке;
  • требования к транспортированию и хранению;
  • специальные требования.

Раздел Требования к программной документации указывают необхо­димость наличия руководства программиста, руководства пользователя, ру­ководства системного программиста, пояснительной записки и т. п

В разделе Технико-экономические показатели рекомендуется указывать ориентировочную экономическую эффективность, предполагаемую годовую потребность и экономические преимущества по сравнению с существующи­ми аналогами.

В разделе Стадии и этапы разработки указывают стадии разработки, этапы и содержание работ с указанием сроков разработки и исполнителей.

В разделе Порядок контроля и приемки указывают виды испытаний и общие требования к приемке работы.

Начальные этапы разработки


На начальных этапах принимаются ключевые решения, определяющие дальнейший ход выполнения разработки, к ним относят:
  • выбор архитектуры программного обеспечения;
  • выбор типа пользовательского интерфейса;
  • выбор подхода к разработке (структурного или объектного);
  • выбор языка и среды программирования.

Выбор архитектуры программного обеспечения. Архитектура программного обеспечения определяет­ся сложностью решаемых задач, степенью универсальности разрабатывае­мого программного обеспечения и числом пользователей, одновременно ра­ботающих с одной его копией. Различают:
  • однопользовательскую архитектуру, при которой программное обеспе­чение рассчитано на одного пользователя, работающего за персональным компьютером;
  • многопользовательскую архитектуру, которая рассчитана на работу в
    локальной или глобальной сети.

Многопользовательскую архитектуру реализуют системы, построенные по принципу «клиент-сервер»

Выбор типа пользовательского интерфейса. Можно разделить на три основных вида интерфейсов.
  • текстовые - реализуют единственный сценарий работы, например,
    ввод данных - обработка - вывод результатов;
  • графические – в основном Windows-приложения, меню, ввод данных, выбор и т.д.
  • WEB-интерфейс. – разработка приложений, ориентированных на работу в сети Интернет или Интранет.

Выбор подхода к разработке.

Если выбран графический тип интерфейса, то предполагает использование событийного програм­мирования и объектного подхода, так как современные среды визуального программирования, такие как Visual C++, Delphi, Builder C++ и им подобные, предоставляют интерфейсные компоненты именно в виде объектов библио­течных классов.

При текстовом интерфейсе и WEB-интерфейсе используется как структурный, так и объектный подходами к разработке.

Выбор языка программирования

Определяется исходя из следующих факторов.
  • доступности языка программирования. Какой есть язык программирования такой и используем.
  • программистом, который по возможности всегда будет использовать
    хорошо знакомый язык;
  • возможностями языка программирования (работа с базами данных и т.д.)
  • скорость обработки данных (ассемблер, программирование на уровне машинных команд, быстрота выполнения команд, минимально занимаемое место в памяти машины)
  • от типа пользовательского интерфейса
  • условие, предъявляемое заказчиком
  • поддержка платформонезависимости
  • наличие доступных библиотек.
  • возможность программирования на низком (системном) уровне, написание драйверов.


Объектное программирование

В основе объектного программирования программного обеспечения лежит объектная декомпозиция, т.е представление разрабатываемого программного обеспечения в виде совокупности объектов, в процессе взаимодействия которых происходит выполнение требуемых функций. Сложность при объектном программировании заключается в полной декомпозиции создаваемого программного обеспечения, состоящий из более чем нескольких десятков или сотен объектов. Для решения подобной задачи существуют различные методы анализа и проектирования программного обеспечения, один из них это UML.

Унифицированный язык моделирования (Unified Modeling Language, UML 1994г.) является графическим языком для визуализации, специфицирования, конструирования и документирования систем. С помощью UML можно разработать детальный план создаваемой системы, отображающий не только ее концептуальные элементы, такие как системные функции и бизнес-процессы, но и конкретные особенности реализации, в том числе классы, написанные на специальных языках программирования, схемы баз данных и программные компоненты многократного использования.

Язык UML имеет сложную иерархическую 3-x уровневую структуру



Первый иерархический уровень языка UML составляют сущности, отношения между сущностями и наглядные диаграммы.

Язык UML имеет четыре вида сущностей, представленные на втором уровне: структурные, поведенческие, группирующие и аннотационные сущности:

Понятие структурные сущности является именем семи видов пиктограмм (или рисунков), которые называются классами, интерфейсами, кооперациями, прецедентами, активными классами, компонентами и узлами.

Поведенческие сущности делятся на два вида диаграмм. Диаграммы первого вида называются взаимодействиями, второго вида - автоматами. Группирующие сущности имеют только один вид пиктограмм, называемых пакетами. Аннотационные сущности также имеют один вид пиктограмм, называемых примечаниями.

Все перечисленные выше сущностей имеют свои диаграммы, к примеру несколько из них : класс, вариант использования, действующие лицо.


Действующие лицо

Вариант использования

Класс изображается прямоугольником, разделенным на три поля. В первом поле помещается имя класса, однозначно определяющее данный класс среди множества других классов. Во втором поле помещаются атрибуты (общие свойства) класса. В третьем поле располагаются типовые операции, выполняемые объектами, принадлежащими данному классу. Рассмотрим пример одного класса:



Window


Height

width


open()

close()

display()

В данном примере рассматривается объект с именем Window и основные свойства (характеристики) присущие объектам этого класса. Детализированность класса дает возможность программистам визуализировать, специфицировать, конструировать и документировать класс на любом желаемом уровне детализации свойств класса, достаточном для поддержки прямого и обратного проектирования моделей и кода.

Действующие лицо – внешняя по отношению к разрабатываемому программному обеспечению сущность, которая взаимодействует с ним с целью получения или предоставления какой-либо информации. Это могут быть пользователи, другое программное обеспечение или какие-либо технические средства, взаимодействующие с разрабатываемым программным обеспечением.

Вариант использования – некоторая процедура или функция решающая конкретную задачу пользователя.

Рассмотрим пиктограммы (рисунки) отношений (Связи-зависимости), используемых в UML. Однонаправленные отношения представляются на UML диаграммах стрелками различных видов, а двунаправленное отношение представляется линией



Однонаправленной зависимостью называют связь по использованию, когда изменение в спецификации одного класса может повлиять на поведение другого, использующего первый класс. Зависимости применяются в диаграммах классов, чтобы отразить в сигнатуре операции одного класса тот факт, что параметром этой операции могут быть объекты другого класса.



Ассоциация – это структурное двунаправленное отношение, описывающее совокупность взаимоотношений между объектами.

Цифры означают количественное отношение объектов друг к другу.



Обобщение - это однонаправленное отношение, называемое "потомок/прародитель", в котором объект "потомок" может быть подставлен вместо объекта прародителя (родителя или предка). Потомок наследует структуру и поведение своего родителя. Стрелка всегда указывает на родителя.

Реализация – это семантическое однонаправленное отношение, которое может устанавливаться, во-первых, между интерфейсами и реализующими их классами или компонентами, во-вторых, между прецедентами и реализующими их кооперациями.



Интерфейс – это совокупность операций, предоставляемых классом или компонентом. Интерфейс описывает поведение класса или компонента, видимое извне. Интерфейс определяет только описание (спецификации) операций класса или компонента, но он никогда не определяет физические реализации операций. Рис.3.7.

Кооперация определяет взаимодействие, например классов. Участвуя в кооперации классы совместно производят некоторый общий результат. Один и тот же класс может принимать участие в нескольких кооперациях. Графически кооперация изображается в виде эллипса, ограниченного пунктирной линией, как показано на Рис.3.7.

Компонент – это физическая часть компьютерной или иной системы. Компонент соответствует некоторому набору интерфейсов и обеспечивает физическую реализацию этого набора. Компоненты могут быть разных видов. Например, одним из видов компонент, используемых для моделирования программного обеспечения компьютерной системы, могут быть файлы исходного кода. Компонент, как правило, представляет собой физическую упаковку логических элементов, таких как классы, интерфейсы и кооперации.

UML диаграммы

UML диаграммы строятся используя девять основных видов диаграмм. Рассмотрим только три из них - диаграммы прецедентов (вариант использования), диаграммы классов и диаграммы действий.

Диаграмма прецедентов (вариантов использования) – это графическое представление всех или части действующих лиц, прецедентов и взаимодействий между ними. В каждой системе обычно есть главная диаграмма прецедентов, которая описывает внешнюю границу системы и основные внешние функции (внешнее поведение) системы. В качестве примера диаграммы прецедентов рассмотрим диаграмму, изображающую все прецеденты для одного действующего лица, которым является регистратор учебных курсов.




Диаграммы классов применяются для моделирования объектно-ориентированных систем. На простых диаграммах показываются классы и отношения между классами. На сложных диаграммах показываются классы, интерфейсы, кооперации и отношения между ними. Диаграммы классов дают статический вид системы. Диаграммы классов являются основой для создания диаграмм компонентов и развертывания, они нужны не только для визуализации, специфицирования и документирования структурных моделей, но также для прямого и обратного проектирования исполняемых кодов систем. На Рис.3.9 приведен пример простой диаграммы классов, моделирующей объекты системы регистрации курсов и отношения между ними.




UML диаграммы классов включают в себя как частный случай диаграммы "сущность-связь" (Entity-relationship diagrams), которые используются для логического проектирования реляционных, объектно-ориентированных и гибридных объектно-реляционных баз данных.

Диаграммы действий предназначены для конкретизации (уточнения) основных функций разрабатываемого программного обеспечения, также является обобщенным представлением разрабатываемого алгоритма.

Основные диаграммы действий



В языке UML действие изображается в виде прямоугольника с закругленными углами, переходы - в виде направленных стрелок, элементы выбора - в виде ромбов, линии синхронизации (параллельных процессов) - в виде горизонтальных и вертикальных линий




Разработка пользовательских интерфейсов


Пользовательский интерфейс представляет собой совокупность программных и аппаратных средств, обеспечивающих взаимодействие пользователя с компьютером –диалогами. Под диалогом понимают регламентированный обмен информацией между человеком и компьютером, осуществляемый в реальном масштабе времени и направленный на совместное решение конкретной задачи: обмен информацией и координацией действий.

Основные устройства обеспечивающий обмен информацией:
  • для вывода информации: мониторы, принтеры, графопостроители, звуковые карты и т.д.
  • для ввода информации: клавиатура, мышь, сканеры и т.д.