- •1. Кризис программирования
- •2. Понятие жизненного цикла по
- •3. Требования к технологии проектирования
- •4. Понятия профессионального программирования
- •5. Проект и команда
- •6. Задача профессионального программирования
- •7. Алгоритмы
- •8. Модели и моделирование
- •9. Структурный подход
- •9.1. Проблема сложности
- •9.2. Сущность структурного подхода
- •9.3. Метод функционального моделирования (sadt)
- •9.3.1. Состав функциональных моделей
- •9.3.2. Методика построения модели
- •9.4. Метод моделирования процессов - потоков данных (dfd)
- •9.4.1. Общая концепция
- •9.4.2. Состав диаграмм потоков данных
- •13. Венгерская нотация
- •14. Методология и парадигма программирования
- •15. Современные методологии программирования
- •16. Методология императивного программирования
- •17. Методология объектно-ориентированного программирования
- •18. Методология функционального программирования
- •19. Методология логического программирования
- •20. Методология программирования в ограничениях
- •21. Методология структурного императивного программирования
- •22. Методология параллельного императивного программирования
- •23. Методология нейросетевого программирования
- •23.1. Модель нейрона с линейной функцией активации
- •23.2. Модель нейрона с радиальной функцией активации
- •23.3. Разработка нейросетевой модели
- •24. Основные типы ошибок в программах
- •25. Отладка и тестирование
- •26. Режимы работы компилятора Delphi для поиска ошибок
- •27. Задание режимов работы отладчика с помощью переключающих директив
- •28. Пользователи и их поддержка
- •29. Поддержка программиста: общие требования
- •29.1. Пролог модуля
- •29.2. Проектная документация
- •29.3. Оформление текста программы
- •30. Поддержка конечного пользователя
- •31. Технология программирования графики
- •31.1. Графическая подсистема оболочек Win32/64
- •31.2. Графические средства Delphi
- •31.3. Проектирование интерфейса с пользователем: компоненты стандартных диалогов
- •32.Технология компонентного программирования
- •32.1. Технология com
- •32.1.1. Общая концепция
- •32.1.2. Интерфейс com
- •32.1.3. Сервер com
- •32.2. Технология ole
- •32.2.1 Суть и содержание ole
- •32.2.2.Терминология ole
- •32.2.3. Автоматизация ole
- •32.2.4. Структурированная память
- •32.3. Технология corba
- •32.4. Технология Java
- •32.5.Технология .Net
- •33. Технология описания аппаратуры
- •Input clock, reset, en;
- •If(!reset)
- •34. Технология коллективной разработки
- •34.1. Авторская разработка
- •34.2. Коллективная разработка
- •34.2.1. Технические командные роли
- •34.2.2. Психологические командные роли
- •34.2.3. Типы совместной деятельности
- •34.3. Общинная модель разработки
- •35. Технология оценки качества по
- •35.1. Подходы к оценке качества по
- •35.2. Характеристики качества по
- •35.3. Оценка качества процесса разработки
- •35.3.1. Модель зрелости процесса разработки по
- •35.3.2. Определение возможностей и улучшение процесса создания по
- •35.4. «Достаточно хорошее» по
- •33.5. Стандартизация информационных технологий
- •Международные организации, входящие в структуру оон.
- •Промышленные профессиональные или административные организации.
- •Промышленные консорциумы.
- •36. Инструментальные средства поддержки некоторых технологических подходов
- •36.1. Инструментальные системы
- •36.1.1. Инструментальные среды программирования
- •36.1.2. Средства автоматизации разработки программ (case-средства)
- •36.1.3. Интегрированные среды
- •36.1.4. Репозитории проекта
- •36.2. Поддержка коллективной разработки: системы управления версиями
- •37. Организация диалогов
- •38. Защита программного кода
Input clock, reset, en;
output [Width-1:0] out;
reg [Width-1:0] out;
always @(posedge clock or negedge reset)
If(!reset)
out = 8'b0;
else if(en)
out =out +1;
endmodule
в) описание сдвигового регистра на языке Verilog
Высокоуровневые языки описания аппаратуры позволяют при описании электронных компонентов задавать уровень абстракций (сокрытия деталей) – от функционального до полностью вентильного описания.
Использование различных уровней абстракции подобно использованию различных языков программирования для процессоров: если надо написать программу, отвечающую требованию очень короткого времени исполнения, то используют Ассемблер. Если же надо написать очень сложную программу, используют, например, языковую среду Delphi.
С помощью технологии описания аппаратуры возможно на программном уровне разрабатывать и синтезировать аппаратные проекты в широком диапазоне (от простых комбинационных схем до микропроцессорных систем).
Использование программного обеспечения для синтеза позволяет проектировщику устраниться от непосредственного участия в процессах трансляции и минимизации HDL-кода, а также от проверки соответствия временным ограничениям.
Существуют несколько различных видов синтеза:
Логический синтез: трансляция (и минимизация) булевых функций в вентильную схему.
RTL-синтез: трансляция в схему, содержащую не только вентили, но и триггеры и представляющую собой цифровой автомат.
Синтез на поведенческом уровне: может использовать один и тот же схемный компонент для более чем одной последовательной конструкции языка.
Обобщая, можно отметить, что процесс синтеза можно сравнить с компиляцией: HDL-код транслируется в принципиальную схему.
Среди систем автоматизированного проектирования и моделирования на основе языков описания аппаратуры известны следующие: Foundation Series (фирмы Xilinx, Aldec, Synopsys), Model Sim (фирмa Model Technology), StateCad (фирмa Visual Software Solutions), MAX+Plus II (фирмa Altera), IDS (фирмa Atmel), VHDL Simili (фирмa Symphony EDA) и другие.
34. Технология коллективной разработки
Все множество разработок в зависимости от количества участников и типов взаимоотношений между ними может быть сведено к триаде разработок:
34.1. Авторская разработка
Авторская разработка – принцип создания программных продуктов, при котором весь жизненный цикл разработки поддерживается единственным разработчиком.
Авторская разработка предполагает достижение профессионального успеха, известности и славы в одиночку.
Примеры известных авторских разработок: текстовый редактор Лексикон (Е. М. Веселов), трансляторы с языков Algol-68 (П. Наур), и Pascal (H. Вирт) и др.
Принцип авторской разработки неприменим для многих современных разработок из-за их сложности, объема и требований к качеству и сопровождению.
Наиболее приемлем принцип авторской разработки в области наукоемких приложений. Для таких приложений характерна необходимость многолетнего изучения предметной области, отсутствие начального финансирования проекта и малая рентабельность, определяемая узким кругом пользователей.
Считается, что авторская разработка может выигрывать по производительности в несколько раз у коллективной за счет следующих характеристик:
исключения межличностных коммуникаций, связанных с необходимостью порождения и изучения большого количества технологической документации;
исключения работ по разбиению проекта на составляющие, по распределению их между исполнителями, по координации деятельности исполнителей и контролю за их работой.
Однако объем программного продукта, выполненного методом авторской разработки обычно в 5÷20 раз меньше по сравнению с индустриальными аналогами.
Наибольшую популярность современная авторская разработка получила при создании условно-бесплатных программных продуктов (shareware).