Концептуализация — процедура введения онтологических представлений в накопленный массив эмпирических данных; первичная теоретическая форма, обеспечивающая теоретическую организацию материала; схема связи понятий, отображающих возможные тенденции изменения референтного поля объектов, позволяющая продуцировать гипотезы об их природе и характере взаимосвязей; способ организации мыслительной работы, позволяющей двигаться от материала и первичных теоретических концептов ко все более и более абстрактным конструктам, отображающим в пределе допущения, положенные в основание построения картины видения исследуемого сегмента реальности.
Концептуальная схема задает теоретическое понимание целостности объекта, поддерживает системные представления о нем в исследовательских процедурах, удерживает смысловое единство внутри научно исследовательского сообщества. Проблематизация или (и) дискредитация сложившейся системы представлений происходит не только под воздействием новых данных, им противоречащих (что ведет скорее к уточнениям концептуальной схемы), но, главным образом, через разрушение задаваемых концептуальной схемой предметностей (а, следовательно, и ее самой.
Информатика 9 Этапы разработки программы Структура простой программы
Таким образом, концептуальную схему можно определить как определенную совокупность гипотез и предложений (допущений) о природе исследуемых объектов, основанную на имеющихся теоретических выводах и заключениях, схватывающую тенденции и зависимости (законы) между отдельными компонентами исследуемой области и соответствующую сложившейся системе понятий и позволяющую выходить (через интерпретационную схему) на уровень эмпирической работы с заданными предметами (установление внешних связей понятий).
Анализ. Метод научного исследования (познания) явлений и процессов, в основе которого лежит изучение составных частей, элементов изучаемой системы. В экономике анализ применяется с целью выявления сущности, закономерностей, тенденций экономических и социальных процессов, хозяйственной деятельности на всех уровнях (в стране, отрасли, регионе, на предприятии, в частном бизнесе, семье) и в разных сферах экономики(производственная, социальная). Анализ служит исходной отправной точкой прогнозирования, планирования, управления экономическими объектами и протекающими в них процессами.
Экономический анализ признан обосновывать с научных позиций решения и действия в области экономики, социально-экономическую политику, способствовать выбору лучших вариантов действий. Макроэкономический анализ охватывает экономику страны или даже мировую экономику, целые отрасли хозяйства и социальную сферу. Микроэкономический анализ распространяется на отдельные объекты и процессы, чаще всего имеет место в форме анализа финансово-хозяйственной деятельности предприятий, фирм, включая анализ объемов производства, издержек, прибыльности.
Ретроспективный анализ представляет изучение сложившихся в прошлом тенденций. Перспективный анализ направлен на изучение будущего.
Проектирование — (от латинского projectus, что означает «брошенный вперед») — это процесс составления описания, необходимого для создания в заданных условиях еще не существующего объекта по первичному описанию этого объекта путем его детализации, дополнения, расчетов и оптимизации.
Как бы я начал учить кодинг сейчас?
Описание объекта может быть задано по-разному: в виде текста, алгоритма, программы, чертежа, таблицы или, что чаще всего, комбинировано в традиционно бумажном или электронном виде.
Таким образом, главной особенностью проектирования является работа с еще не существующим объектом.
В этом отличие проектирования от моделирования, где объект не может не существовать.
Проектирование можно рассматривать с одной стороны, как заключительную фазу исследований, а с другой как начальную фазу производства.
Кодирование информации — процесс преобразования сигнала из формы, удобной для непосредственного использования информации, в форму, удобную для передачи, хранения или автоматической переработки (см., например, Аналого-цифровой преобразователь).
Когда мы представляем информацию в разных формах или преобразуем ее из одной формы в другую, мы информацию кодируем.
Код — это система условных знаков для представления информации.
Кодирование — это операция преобразования символов или группы символов одного кода в символы или группы символов другого кода.
Человек кодирует информацию с помощью языка. Язык — это знаковая форма представления информации.
Языки бывают естественные (русский, английский и т.д.) и формальные (язык математики, химии, программирования и т.д.) Любой язык имеет свой алфавит — набор основных символов, различимых по их начертанию. Алфавит обычно бывает жестко зафиксирован и имеет свой синтаксис и грамматику.
Одну и туже информацию можно кодировать разными способами. Например, объект КОМПЬЮТЕР: можно представить в виде текстовой информации — написать на русском языке, на английском. Можно представить в виде графической информации — фото и видео. Можно в виде звука — произнести это слово. И т.д.
Это разные способы кодирования одного и того же объекта.
Тестирование (testing) программного обеспечения (ПО) — это процесс исследования ПО с целью выявления ошибок и определения соответствия между реальным и ожидаемым поведением ПО, осуществляемый на основе набора тестов, выбранных определённым образом. В более широком смысле, тестирование ПО — это техника контроля качества программного продукта, включающая в себя проектирование тестов, выполнение тестирования и анализ полученных результатов.
Очень часто современные программные продукты разрабатываются в сжатые сроки и при ограниченных бюджетах проектов. Программирование сегодня перешло из разряда искусства в разряд ремесел для многих миллионов специалистов. Но, к сожалению, в такой спешке разработчики зачастую игнорируют необходимость обеспечения защищённости своих продуктов, подвергая тем самым пользователей неоправданному риску. Контроль качества (тестирование) считается важным в процессе разработки ПО, потому что обеспечивает безопасность, надёжность, удобство создаваемого продукта. В настоящее время существует великое множество подходов и методик к решению задачи тестирования ПО, но эффективное тестирование сложных программных систем — процесс творческий, не сводящийся к следованию строгим и чётким правилам.
Уровни тестирования. Модульное тестирование — это процесс исследования ПО, при котором тестируется минимально возможный компонент, например, отдельный класс или функция. Часто модульное тестирование осуществляется разработчиками ПО. Интеграционное тестирование — это процесс исследования ПО, при котором тестируется интерфейсы между компонентами или подсистемами.
Системное тестирование — это процесс исследования ПО, при котором тестируется интегрированная система на её соответствие требованиям заказчика. Альфа и Бета тестирование относятся к подкатегориям системного тестирования.
Существует несколько признаков, по которым принято производить классификацию видов тестирования.
Функциональное тестирование (functional testing) — тестирование ПО, направленное на проверку реализуемости функциональных требований. При функциональном тестировании проверяется способность ПО правильно решать задачи, необходимые пользователям.
Тестирование производительности (performance testing) — тестирование ПО, позволяющее осуществлять оценку быстродействия программного продукта при определённой нагрузке. Тест производительности выполняется до и после проведения оптимизации с целью выявить изменения в производительности. Если оптимизация не удается, и производительность снижается, то программист может отказаться от неудачной оптимизации. В случае повышения производительности величину этого повышения можно сравнить с ожидаемыми результатами, чтобы убедиться в успешности оптимизации. Задачей теста производительности является выявление фактов повышения и понижения производительности, чтобы можно было избежать неудачных модернизаций.
Нагрузочное тестирование (load testing) — тестирование ПО, позволяющее осуществлять оценку быстродействия программного продукта при плановых, повышенных и пиковых нагрузках. Осуществление нагрузочного тестирования перед вводом системы в промышленную эксплуатацию позволяет избегать неожиданных потерь в производительности через полгода — год, когда система будет заполнена данными.
Стресс-тестирование (stress testing) — тестирование ПО, которое оценивает надёжность и устойчивость системы в условиях превышения пределов нормального функционирования. Это проверка программы в таких стрессовых ситуациях как наличие большого объёма входных параметров, нехватка дискового пространства или маломощный процессор. Стресс тестирование предназначено для проверки настроенного решения и серверной группы на одновременное обслуживание большого количества пользователей. При таком тестировании проверяется не только серверная группа, но и влияние, оказываемое настройками на производительность системы в целом и ее отказоустойчивость. Для проведения такого тестирования необходимо иметь набор компьютеров, эмулирующих работу групп пользователей.
Эволюция. Технология программирования — совокупность методов и средств, используемых в процессе разработки программных средств.
Технология программирования включает:
— указание последовательности выполнения технологических операций;
— перечисление условий, при которых выполняется операция;
— описание самих операций;
— способы описания моделей, используемых на различных этапах разработок.
Рассмотрим этапы становления технологии программирования.
1. Стихийное программирование (С момента появления первых вычислительных машин до середины 60-х годов ХХ в.)
Практически отсутствовали сформулированные технологии, программирование было близко к искусству. Первые программы имели простейшую структуру, состояли из собственно программы на машинном языке и обрабатываемых ею данных.
Сложность программ в машинных кодах ограничивалась способностью программиста одновременно мысленно отслеживать последовательность выполняемых операций и местонахождение данных при программировании. Создание языков программирования высокого уровня (Фортран, Алгол) упростило программирование вычислений, увеличило сложность программ. В языках появились средства, позволяющие оперировать подпрограммами. В результате созданы огромные библиотеки расчетных и служебных подпрограмм, которые по мере нужности вызывались из разрабатываемой программы.
Типичная программа того времени состояла из основной программы, области глобальных данных и набора подпрограмм. Недостаток такой архитектуры˸ при увеличении количества подпрограмм возрастала вероятность искажения части глобальных данных какой-либо подпрограммой.
Чтобы сократить количество ошибок предложено использовать локальные данные в подпрограммах.
Появление средств поддержки подпрограмм позволило разрабатывать программное обеспечение нескольким программистам параллельно.
2. Структурное программирование (60 — 70-е годы ХХ в.) — совокупность рекомендуемых технологических приемов, охватывающих выполнение всех этапов разработки программного обеспечения. В корне подхода — декомпозиция сложных систем с целью последующей реализации в виде отдельных небольших (до 40 — 50 операторов) подпрограмм. Это процедурная декомпозиция.
Структурный подход — представление задачи в виде иерархии подзадач простейшей структуры. Проектирование проводилось ʼʼсверху-внизʼʼ. Вводились ограничения на конструкции алгоритмов, рекомендовались формальные модели их описания, специальный метод проектирования алгоритмов — метод пошаговой детализации.
3. Объектный подход (с середины 80-х до конца 90-х годов ХХ в.).
Объектно-ориентированное программирование — технология создания сложного программного обеспечения, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типа (класса), а классы образуют иерархию с наследованием свойств. Взаимодействие программных объектов в такой системе осуществляется путем передачи сообщений.
Поддерживается в языках программирования Pascal, C++, Modula, Java. Объектный подход предлагает новые способы организации программ, основанные на механизмах наследования, полиморфизма, композиции, наполнения. Эти механизмы позволяют конструировать сложные объекты из сравнительно простых. Создаются среды, поддерживающие визуальное программирование (Delphi, Visual C++).
4. Компонентный подход и CASE-технологии. Компонентный подход— построение программного обеспечения из отдельных компонентов — физически отдельно существующих частей программного обеспечения, которые взаимодействуют между собой через стандартизованные двоичные интерфейсы. В отличие от обычных объектов объекты — компоненты можно собрать в динамически вызываемые библиотеки или исполняемые файлы, распространять в двоичном виде (без исходных текстов) и использовать в любом языке программирования, поддерживающем соответствующую технологию.
Компонентный подход лежит в базе технологий, разработанных на базе COM (компонентная модель объектов), и технологии создания распределенных приложений CORBA (общая архитектура с посредником обработки запросов объектов). Эти технологии используют сходные принципы и различаются лишь особенностями их реализации.
Отличительная особенность современного этапа развития технологии программирования — создание и внедрение автоматизированных технологий разработки и сопровождения программного обеспечения, которые названы CASE-технологиями. Существуют CASE-технологии, поддерживающие структурный и объектный (в том числе компонентный) подходы к программированию.
Сопровождение
Сопровождение — это обычный процесс изменения системы после ее поставки заказчику. Эти изменения могут быть как элементарно простыми (исправление ошибок программирования), так и более серьезными, связанными с корректировкой отдельных недоработок либо приведением в соответствие с новыми требованиями. Сопровождение не связано со значительным изменением архитектуры системы. При сопровождении тактика простая: изменение существующих компонентов системы либо добавление новых.
Существует три вида сопровождения системы.
1. Сопровождение с целью исправления ошибок. Обычно ошибки в программировании достаточно легко устранимы, однако ошибки проектирования стоят дорого и требуют корректировки или перепрограммирования некоторых компонентов. Самые дорогие исправления связаны с ошибками в системных требованиях, так как здесь может понадобиться перепроектирование системы.
2. Сопровождение с целью адаптации ПОк специфическим условиям эксплуатации. Это может потребоваться при изменении определенных составляющих рабочего окружения системы, например, аппаратных средств, операционной системы или программных средств поддержки. Чтобы адаптироваться к этим изменениям, система должна быть подвергнута определенным модификациям.
3. Сопровождение с целью изменения функциональных возможностей системы. В ответ на организационные или деловые изменения в организации могут измениться требования к программным средствам. В таких случаях применяется данный тип сопровождения. Наиболее существенные изменения при этом претерпевает именно программное обеспечение.
Источник: cyberpedia.su
Создание библиотеки классов (.dll): теория
Ненадолго вернемся к основам. Возвращаться будем очень глубоко, приблизительно и грубо. И излагаться всё это будет в моем понимании, которое может быть местами неточным, специфическим (моя сфера интересов: язык программирования C++, операционные системы «Windows», приложения для настольных компьютеров), а где-то, возможно, вообще ошибочным (но я надеюсь, что ошибок нет).
Процессор
Сердце компьютера — это процессор, он и выполняет все программы. У любого процессора есть фиксированный список команд (система команд). Так как процессор принимает на вход только поток нулей и единиц, каждая команда представляет собой последовательность нулей и единиц фиксированной длины.
Машинный язык
Получается, на самом нижнем (близком к процессору) уровне программа представляет из себя последовательность команд, а каждая команда представляет из себя последовательность нулей и единиц, которые называют машинными инструкциями. А язык программы машинных инструкций — машинный язык (машинный код). Понятно, что все команды на машинном языке представлены в двоичном коде (последовательности нулей и единиц).
ОЗУ, ПЗУ, операционная система
Откуда процессор берет программу на машинном языке (двоичный код) для выполнения? Из оперативной памяти (оперативное запоминающее устройство, ОЗУ).
Как и откуда программа на машинном языке (двоичный код) попадает в оперативную память? Изначально программа на машинном языке (двоичный код) хранится в исполняемом файле .exe на накопителе данных (постоянное запоминающее устройство, ПЗУ). Например, на жестком диске компьютера. Когда пользователь запускает исполняемый файл на выполнение, операционная система извлекает программу на машинном языке (двоичный код) из исполняемого файла на жестком диске и помещает (загружает) в оперативную память, откуда ее получает и выполняет процессор.
Компиляция (сборка)
Откуда берется исполняемый файл .exe , содержащий программу на машинном языке (двоичный код)? Он является результатом компиляции (перевода, «сборки») программы на языке высокого (далёкого от процессора) уровня (C++, Паскаль и тому подобных) в программу на языке низкого (близкого к процессору) уровня (машинный язык). То есть программа условно на человеческом языке (язык программирования высокого уровня) переводится (компилируется) в программу условно на компьютерном языке (языке низкого уровня).
Как происходит компиляция (перевод, «сборка») программы на языке высокого уровня в программу на машинном языке? Эту работу выполняет специальная программа, которая называется «компилятором». Для каждого языка высокого уровня нужен свой компилятор. Также для каждого языка высокого уровня существует куча компиляторов, написанных разными отдельными людьми или организациями (например, для языка C++ существуют компиляторы «Microsoft Visual C++» (MSVC), «GNU Compiler Collection» (GCC), «Minimalist GNU for Windows» (MinGW) и так далее).
Этапы компиляции, компоновщик
Обычно компиляцию (сборку) делят на три этапа: обработка директив препроцессора, трансляция, компоновка (связывание). Трансляция — это, собственно, и есть перевод с языка высокого уровня (исходный текст программы, исходные файлы .cpp и .h ) на машинный язык (двоичный код, объектные файлы .obj ). Часть компилятора, выполняющая последний этап, компоновку, называется компоновщиком (по-английски «linker», что дословно означает «связыватель»). На вход компоновщика поступают объектные файлы .obj , а на выходе получается исполняемый файл .exe .
Зачем нужен компоновщик и что он связывает?
При трансляции программы на языке высокого уровня в программу на машинном языке компилятор составляет списки (таблицы) идентификаторов («символов») различных программных сущностей (функций, переменных, структур данных и так далее). Для каждого объектного файла .obj составляются таблицы экспорта и импорта таких символов (идентификаторов).
То есть, если компилятор в процессе трансляции встречает в программе обращение к некой, к примеру, функции, он записывает ее идентификатор в таблицу импорта. Если же компилятор встречает определение некой функции, он помещает ее адрес в таблицу экспорта. После этого компоновщик ищет связи между всеми элементами таблиц импорта и таблиц экспорта и связывает их. Если все связи найдены успешно, формируется исполняемый файл .exe с итоговой программой на машинном языке. Если какие-то связи не найдены, компилятор выдает сообщение об ошибке компоновки.
Особенно ясно видна роль компоновщика, если в нашей программе используются программные сущности (например, функции) из библиотеки функций или классов. Для библиотеки функций (или библиотеки классов) компилятор составляет таблицу экспорта, содержащую идентификаторы и адреса определенных в библиотеке функций. Для нашей программы составляется таблица импорта с идентификаторами библиотечных функций, к которым обращается наша программа. После этого компоновщик, сравнивая таблицу экспорта библиотеки и таблицу импорта нашей программы, связывает вызовы библиотечных функций из нашей программы и определения вызываемых функций в библиотеке.
Статическое и динамическое связывание,
жизненный цикл программы
Статическим связыванием называется описанная выше работа компоновщика на этапе компиляции программы. Почему для этого понятия используется прилагательное «статический»? Жизненный цикл программы состоит из разных этапов (фаз), которые грубо можно разделить на две группы: до запуска пользователем исполняемого файла программы (проектирование, написание, компиляция [compile time] и тому подобные) и после его запуска (загрузка в оперативную память [load time], исполнение [runtime] и тому подобные). Пока программа не запущена на выполнение, считается, что она находится в состоянии покоя, то есть в статическом состоянии. Отсюда связывание во время статического состояния программы назвали статическим связыванием.
«Динамическое» связывание — аналогичная вышеописанной работа по связыванию элементов таблиц экспорта и таблиц импорта идентификаторов («символов»), но не на этапе покоя (создания) программы, а на этапе ее запуска и выполнения («динамический» этап существования программы).
Отсюда же существование понятий «статической» библиотеки функций или библиотеки классов (ее связывание с нашей программой происходит на этапе компиляции) и «динамической» (динамически подключаемой) библиотеки (DLL) (ее связывание с нашей программой происходит после запуска нашей программы на выполнение).
Между статическим и динамическим связыванием есть еще одно отличие. Статическое связывание выполняет на этапе компиляции программы (compile time) компоновщик, входящий в состав компилятора. А динамическое связывание на этапе загрузки программы в оперативную память (load time) или на этапе выполнения программы (runtime) выполняет компоновщик, являющийся частью операционной системы. Это совершенно разные программы.
Именно потому, что динамическое связывание выполняет компоновщик, являющийся частью операционной системы, эта область выходит за рамки стандарта языка программирования C++ и компания «Microsoft» вынуждена (а, может, ей того и надо, см. принцип «EEE») вводить нестандартные модификаторы.
Виды динамического связывания
Описанное выше динамическое связывание DLL и нашей программы, использующей DLL, подразделяется на два вида:
а) динамическое связывание на этапе загрузки (load time) нашей программы в оперативную память;
б) динамическое связывание на этапе выполнения (runtime) нашей программы.
В другой терминологии те же виды динамического связывания называют:
а) неявное связывание;
б) явное связывание.
Почему они называются «неявным» и «явным» связыванием? Чтобы связать DLL и нашу программу, использующую эту DLL, на этапе создания DLL необходимо пометить «экспортируемые» программные сущности (функции, классы, переменные и т.п.), которые будут использоваться прикладными программами. А на этапе создания нашей программы, использующей DLL, необходимо либо пометить «импортируемые» программные сущности и тогда компоновщик операционной системы неявно (незаметно для программиста) произведет динамическое связывание DLL и нашей программы на этапе загрузки (load time) нашей программы в оперативную память; либо программист явно (то есть самостоятельно, посредством вызова функций типа LoadLibrary и GetProcAddress) произведет загрузку нужной DLL и получение адреса нужной функции из этой DLL для последующего вызова этой функции по ее адресу на этапе выполнения (runtime) нашей программы.
Источник: ilyachalov.livejournal.com
Лекция 2-Средства разработки программ. Средства разработки программ средства разработки программного обеспечения

Единственный в мире Музей Смайликов
Самая яркая достопримечательность Крыма

Скачать 319.31 Kb.
СРЕДСТВА РАЗРАБОТКИ ПРОГРАММ
Средства разработки программного обеспечения – совокупность приемов, методов,
методик, а также набор инструментальных программ (компиляторы, прикладные/системные
библиотеки и т.д.), используемых разработчиком для создания программного кода Программы,
отвечающего заданным требованиям.
Разработка программ – сложный процесс, основной целью которого является создание, сопровождение программного кода, обеспечивающего необходимый уровень надежности и качества. Для достижения основной цели разработки программ используются средства разработки программного обеспечения.
ОСНОВНЫЕ СРЕДСТВА, ИСПОЛЬЗУЕМЫЕ НА РАЗНЫХ ЭТАПАХ РАЗРАБОТКИ ПРОГРАММ
В зависимости от предметной области и задач, поставленных перед разработчиками, разработка программ может представлять собой достаточно сложный, поэтапный процесс, в котором задействовано большое количество участников и разнообразных средств. Для того, чтобы определить, когда и в каких случаях какие средства применяются, выделяют следующие основные этапы разработки программного обеспечения:
1.
Проектирование приложения.
2.
Реализация программного кода приложения.
3.
Тестирование приложения.
Средства проектирования приложений
На этапе проектирования приложения в зависимости от сложности разрабатываемого программного продукта, напрямую зависящего от предъявляемых требований, выполняются следующие задачи проектирования:
1.
Анализ требований.
2.
Разработка архитектуры будущего программного обеспечения.
3.
Разработка устройств основных компонент программного обеспечения.
4.
Разработка макетов Пользовательских интерфейсов.
Результатом проектирования обычно является «Эскизный проект» (Software Design
Document) или «Технический проект» (Software Architecture Document).
Задача «Анализ требований» обычно выполняется с использованием методов системологии (анализа и синтеза) с учетом экспертного опыта проектировщика. Результатом анализа обычно является содержательная или формализованная модель процесса функционирования программы. В зависимости от сложности процесса для построения данных моделей могут быть применены различные методы и вспомогательные средства. В общем случае для описания моделей обычно применяются следующие нотации (в скобках приведены программные средства, которые могут быть использованы для получения моделей):
BPMN (Vision 2003 + BPMN, AcuaLogic BPMN, Eclipse, Sybase Power Designer).
Блок-схемы (Vision 2003 и многие другие).
ER-диаграмы (Visio 2003, ERWin, Sybase Power Designer и многие другие).
UML-диаграмы (Sybase Power Designer, Rational Rose и многие другие).
макеты, мат-модели и т.д.
Результаты анализа позволяют сформировать обоснованные требования к той или иной функциональности разрабатываемой программы и просчитать реальную выгоду от внедрения разрабатываемого продукта. Более того, иного получается так, что по результатам анализа первоначальные цели и задачи автоматизации кардинально меняются или по результатам оценки эффективности разработки и внедрения принимается решение продукт не разрабатывать.
Целью второй и третьей задачи из приведенного списка задач является разработка модели
(описания) будущей системы, понятной для кодировщика – человека, который пишет код программы. Здесь огромное значение имеет то, какую парадигму программирования необходимо использовать при написании программы. В качестве примера основных парадигм необходимо привести следующее:
Функциональное программирование;
Структурное программирование;
Императивное программирование;
Логическое программирование;
Объектно-ориентированное программирование (прототипирование; использование классов; субъективно-ориентированное программирование).
Выбор её во многом зависит от сложившихся привычек, опыта, традиций, инструментальных средств, которыми располагает коллектив разработчиков. Иногда разрабатываемый программный продукт настолько сложен, что для решения ряда задач в разных компонентах системы используются разные парадигмы. Выбор того или иного подхода накладывает ограничения на средства, которые будут применены на этапе реализации программного кода. Результатом решения данной задачи в зависимости от подхода могут быть
(в скобках приведены программные средства, которые могут быть использованы для их получения):
диаграмма классов и т.д (Ration Rose, Sybase PowerDisigner и многие другие).
описание модулей структур и их программного интерфейса (например, Sybase
PowerDisigner и многие другие).
Разработка макетов пользовательских интерфейсов подразумевает создание наглядного представления того, как будут выглядеть те или иные видеоформы, окна в разрабатываемом приложении. Решение данной задачи основывается на применение средств дизайнера.
Средства реализации программного кода
На этапе реализации программного кода выполняется кодирование отдельных компонент программы в соответствии с разработанным техническим проектом. Средства, которые могут быть применены, в значительной степени зависит от того, какие подходы были использованы во время проектирования и, кроме этого, от степени проработанности технического проекта. Тем не менее, среди средств разработки программного кода необходимо выделить следующие основные виды средств:
• методы и методики алгоритмирования.
языки программирования (C++,Си, Java, C#, php и многие другие);
средства создания пользовательского интерфейса (MFC, WPF, QT, GTK+ и т.д.)
средства управления версиями программного кода (cvs, svn, VSS).
средства получения исполняемого кода (MS Visual Studio, gcc и многие другие).
средства управления базами данных (Оracle, MS SQL, FireBird, MySQL и многие другие).
отладчики (MS Visual Studio, gdb и т.д.).
Средства тестирования программ
Основными задачами тестирования является проверка соответствия функциональности разработанной программы первоначальным требованиям, а также выявление ошибок, которые в явном или неявном виде проявляются во время работы программы. Среди основных работ по тестированию можно выделить следующее:
Тестирование на отказ и восстановление.
Функциональное тестирование.
Тестирование безопасности.
Тестирование взаимодействия.
Тестирование процесса установки.
Тестирование удобства пользования.
Конфигурационное тестирование.
Нагрузочное тестирование.
Среди основных видов средств, которые могут быть применены для выполнения поставленных работ можно привести следующие:
средства анализа кода, профилирования (Code Wizard – ParaSoft, Purify – Rational
Softawre. Test Coverage – Semantic и т.д.);
средства для тестирования функциональности (TEST – Parasoft, QACenter –
Compuware, Borland SilkTestи т.д.);
средства для тестирования производительности (QACenter Performance –
Compuware и т.д).
Источник: topuch.com