- •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. Защита программного кода
32.5.Технология .Net
.NET (произносится «дот-нет») — программная технология, предложенная фирмой Microsoft в качестве платформы для создания, как обычных программ, так и Web-приложений. Во многом является развитием идей и принципов, заложенных в технологии Java.
Одной из основных идей .NET является совместимость различных служб, написанных на разных языках. Например, служба, написанная на C++ для .NET, может обратиться к методу класса из библиотеки, написанной на Delphi; на C# можно написать класс, наследующий от класса, написанного на Visual Basic .NET, а исключение, выброшенное методом, написанным на C#, может быть поймано и обработано в Delphi. Каждая библиотека (сборка) в .NET имеет сведения о своей версии, что позволяет устранить возможные конфликты между разными версиями сборок.
В настоящее время существует реализация .NET для платформы Microsoft Windows, FreeBSD (от Microsoft) и ограниченный вариант технологии для ОС Linux в рамках свободных проектов Mono, DotGNU.
Рассматриваемая технология является патентованной технологией фирмы Microsoft, что является препятствием для её распространения на другие платформы. Однако компиляторы для .NET выпускаются множеством фирм для различных языков свободно. Множество используемых языков является несомненным преимуществом технологии .NET по сравнению с Java.
Технология приложение .NET подразделяется на две основные части:
среда выполнения (по сути виртуальная машина);
инструментарий разработки.
Среды разработки .NET-приложений: Visual Studio .NET (C++, C#, J#), SharpDevelop, Eclipse, Borland Developer Studio (Delphi, C#) и т. д. Приложения можно разрабатывать в текстовом редакторе и использовать традиционный консольный компилятор.
Так же как и технология Java, среда разработки .NET создаёт байт-код, предназначенный для исполнения виртуальной машиной. Входной язык этой машины в .NET называется MSIL (Microsoft Intermediate Language) или просто IL. Применение байт-кода позволяет получить кроссплатформенность на уровне скомпилированного проекта (в терминах .NET: сборка), а не на уровне исходного текста, как, например, в С. Перед запуском сборки в среде исполнения (Common Language Runtime – CLR) байт-код преобразуется встроенным в среду JIT-компилятором (just in time, компиляция на лету) в машинные коды целевого процессора.
Следует отметить, что один из первых JIT-компиляторов для Java был также разработан фирмой Microsoft (в настоящее время в Java используется более совершенная многоуровневая компиляция – Sun HotSpot). Современная технология динамической компиляции позволяет достигнуть аналогичного уровня быстродействия с традиционными «статическими» компиляторами (например, С++) и вопрос быстродействия зачастую зависит от качества того или иного компилятора.
33. Технология описания аппаратуры
Технология описания аппаратуры – это метод однозначного описания межэлементных соединений и работы электрической и электронной частей аппаратных средств вычислительной техники.
Технология опирается на применение Hardware Description Language (HDL) – языков описания аппаратуры. Написание HDL-кода вместо использования схемотехнических компонентов (например, логических вентилей) является в настоящее время основным направлением в области проектирования цифровых систем.
Сегодня широкое распространение в рамках представленной технологии получили такие высокоуровневые языки как VHDL, Verilog, Schematik и некоторые другие. Среди перечисленных языков описания аппаратуры наиболее универсальным является VHDL.
Общая технология использования языков HDL предполагает, что:
проектируемое устройство иерархически разбивается на составные части (компоненты);
каждый компонент имеет четко очерченный интерфейс (для его соединения с другими компонентами) и точное функциональное описание для моделирования его поведения;
функциональное описание может быть основано либо на структуре, либо на алгоритме, которыми определяется функционирование данного компонента.
Внутренняя структура компонента может быть скрыта от проектировщика по принципу «черного ящика». В определенных случаях абсолютно не нужно знать, как структурирован компонент. Разработчика обычно интересуют лишь входы и выходы компонента, спецификация его функций и время доступа. В качестве «черных ящиков» традиционно используют программируемые интегральные схемы – ПЛИС (FPGAs, СPLDs).
Описание компонента состоит из двух частей:
описания интерфейса («сущность»), которое описывает взаимосвязи между компонентом и средой его «обитания» (функционирования);
архитектуры (архитектурное тело), описывающей поведение компонента с функциональной или структурной точки зрения относительно входов и выходов.
Возможные варианты реализации модели сдвигового регистра по данной схеме на языках Schematik, VHDL и Verilog представлены ниже на рисунках (а), (б) и (в) соответственно.
а) описание сдвигового регистра на языке Schematik
library ieee;
use ieee.std_logic_1164.all;
entity na_vhdl is
port (CLOCK, D: in STD_LOGIC;
Q: out STD_LOGIC_VECTOR(4 downto 0));
end na_vhdl;
architecture na_vhdl_arch of na_vhdl is
signal IQ: STD_LOGIC_VECTOR(4 downto 0);
begin
process(CLOCK, D, IQ)
begin
if (CLOCK'event and CLOCK='1') then
IQ <= D & IQ(4 downto 1);
end if;
Q <= IQ;
end process;
end na_vhdl_arch;
б) описание сдвигового регистра на языке VHDL
module Verilog (en, clock, reset, out);
parameter Width = 8;