- •Технология программирования. Основные этапы ее развития. (и 2 вопрос тут же)
- •Этапы развития технологии программирования. (см. Пункт первый)
- •Технологии com и corba.
- •Проблемы, возникающие при разработке сложных программных систем.
- •Блочно-иерархический подход к созданию сложных систем.
- •Жизненный цикл и этапы разработки программного обеспечения. Кратко охарактеризуйте основные этапы.
- •Постановка задачи, анализ требований и определение спецификаций.
- •Проектирование, реализация и сопровождение.
- •Модели жизненного цикла программного обеспечения.
- •Case-технологии.
- •Оценка качества процессов создания программного обеспечения.
- •Использование cmm при оценке качества процессов создания программного обеспечения.
- •Использование стандартов iso 9000 и spice при оценке качества процессов создания программного обеспечения.
- •Понятие технологичности программного обеспечения.
- •Модули и их свойства.
- •Сцепление модулей.
- •Связность модулей.
- •Нисходящая и восходящая разработка программного обеспечения.
- •Структурное программирование.
- •Средства описания структурных алгоритмов.
- •Стиль оформления программы.
- •Эффективность и технологичность программного обеспечения.
- •Программирование с «защитой от ошибок».
- •Сквозной структурный контроль
- •Классификация программных продуктов по функциональному признаку.
- •Эксплуатационные требования к программным продуктам.
- •Предпроектные исследования предметной области.
- •Техническое задание. Основные разделы.
- •Архитектура программного обеспечения.
- •Тип пользовательского интерфейса.
- •Выбор языка и среды программирования.
- •1). Выбор языка программирования.
- •Спецификация программного обеспечения при структурном подходе.
- •Язык описания разработки программных продуктов uml.
- •Тестирование программного обеспечения.
Выбор языка и среды программирования.
1). Выбор языка программирования.
Все сущ-е языки программирования можно разделить на:
универсальные языки высокого уровня;
С и С++
Object Pascal, использованная в среде Delphi
Basic
Modula
Ada
специализированные языки разработчика программного обеспечения;
языки баз данных;
языки создания сетевых приложений;
языки создания систем искусственного интеллекта и т.д.
специализированные языки пользователя (обычно являются частью профессиональных сред пользователя,характеризуются узкой направленностью и разработчиками программного обеспечения не используются);
языки низкого уровня.
языки типа Ассемблера.
Универсальные языки высокого уровня имеют ряд существенных достоинств:
многоплатформенность;
наличие операторов, реализующих основные структурные алгоритмические конструкции;
возможность программирования на низком уровне;
огромные библиотеки подпрограмм и классов.
(Каждый из указанных выше языков, имеет свои особенности и, соответственно, свою область применения)
Специализированные языки разработчика - для создания конкретных типов ПО.
Специализированные языки пользователя - являются частью профессиональных сред пользователя, характеризуются узкой направленностью и разработчиками ПО не используются.
Языки низкого уровня позволяют осуществлять программирование практически на уровне машинных команд. Эти языки не годятся для создания больших программ и программных систем (низкий уровень абстракций)
2). Выбор среды программирования. Среда программир-я - программный комплекс, который включает спец-ый текстовый редактор, встроенные компилятор, компоновщик, отладчик, справочную систему и другие программы, использование которых упрощает процесс написания и отладки программ.
Наиболее часто используемыми являются визуальные среды Delphi, C++ Builder фирмы Borland (Inprise Corporation), Visual C++, Visual Basic.
М/у основными визуальными средами этих фирм Delphi, C++ Builder и Visual C++ имеется существенное различие: визуальные среды фирмы Microsoft обеспечивают более низкий уровень программирования «под Windows». Достоинство –уменьшается вероятность возникновения «нестандартной» ситуации, недостаток –существенно загружает программиста «рутинной» работой.
В общем случае, если речь идет о выборе между этими средами, то он в значительной степени должен определяться характером проекта.
Спецификация программного обеспечения при структурном подходе.
- полное и точное описание функций и ограничений разрабатываемого ПО. Одна часть спецификаций (функциональные) описывает функции разрабатываемого ПО, а другая (эксплуатационные) определяет требования к техническим средствам, надежности, информационной безопасности и т.д.
полнота - спецификации должны содержать всю существенную информацию, где ничего важного не было бы упущено, и отсутствует несущественная информация, например детали реализации, чтобы не препятствовать разработчику в выборе наиболее эффективных решений;
требование точности - спецификации должны однозначно восприниматься как заказчиком, так и разработчиком.
Точные спецификации можно определить, только разработав некоторую формальную модель разрабатываемого ПО. Формальные модели можно разделить на: 1)модели, зависящие от подхода к разработке (структурного или объектно-ориентированного), и 2) не зависящие от него.
В рамках структурного подхода на этапе анализа и определения спецификаций используют три типа моделей: ориентированные на функции, ориентированные на данные и ориентированные на потоки данных.
Диаграммы переходов состояний определяют основные аспекты поведения ПО во времени, диаграммы потоков данных – направление и структуру потоков данных, а концептуальные диаграммы классов – отношение между основными понятиями предметной области.
Так методологии структурного анализа и проектирования, основанные на моделировании потоков данных, используют комплексное представление проектируемого программного обеспечения в виде совокупности моделей:
диаграмм потоков данных (DFD – Data Flow Diagrams), описывающих взаимодействие источников и потребителей информации через процессы, которые должны быть реализованы в системе;
диаграмм «сущность-связь» (ERD – Entity-Relationship Diagrams), описывающих базы данных разрабатываемой системы;
диаграмм переходов состояний (STD – State Transition Diagrams), характеризующих поведение системы во времени;
спецификаций процессов;
словаря терминов.