Внимание ! Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier! Что такое генерация исходного кода?
это такая модификация исходного кода, при котором генератор его понимает это автоматическое создание программного кода специальным приложением, при котором по заданным условиям полностью или частично формируется исходный код программы это разработка исходного кода программы вручную это применение всех шагов цикла разработки программного кода
генерация кода предназначена для автоматического описания требований к программному проекту генерация кода уменьшает объем разработки рутинного характера генерация кода - это автоматическое создание исходного кода программой генерация кода избавляет программиста от задачи проектирования приложения
Автоматическое создание программного кода специальным приложением, при котором по заданным условиям полностью или частично формируется исходный код программы это:
применение всех шагов цикле разработки программного кода генерация исходного программного кода разработка кода программы вручную тестирование исходного программного кода
Если заданы шаблоны программного кода, метаданные, правила предметной области, то что можно получить?
предметную область сгенерированный программный код ключевые составляющие для генерации кода генератор кода
Чем являются шаблоны программного кода, метаданные, правила предметной области по отношению к генерации кода?
Для генерации кода необходимо наличие следующих ключевых составляющих:
базы данных, промежуточный уровень и пользовательский интерфейс шаблоны, базы данных и пользовательский интерфейс шаблоны программного кода, метаданные, правила предметной области метаданные, базы данных и генератор
Выберите верное утверждение, касающееся шаблонов программного кода
указывают на структуру метаданных предметной области генератор на их основе создает программный код являются повторяющимися участками кода всегда являются нестандартными участками кода
Шаблоны программного кода это:
образцы, по которым генерируется программный код сгенерированный программный код структура, которая моделируется в сгенерированной программе правила, которые определяют структуру и поведение метаданных предметной области
Пусть есть программа, генерирующая запросы SELECT. Что будет являться шаблоном для этой программы?
имена таблиц, полей и типов полей правила написания запросов SELECT образец текста, содержащий ключевые слова SELECT, FROM, WHERE и специально отведенные места для имен таблиц и полей готовый запрос SELECT с конкретными именами таблиц и полей
Пусть есть программа, генерирующая запросы SELECT. Что будет являться метаданными для этой программы?
правила написания запросов SELECT образец текста, содержащий ключевые слова SELECT, FROM, WHERE и специально выделенные места для имен таблиц и полей имена таблиц, полей и типов полей готовый запрос SELECT с конкретными именами таблиц и полей
Выберите верное утверждение, касающееся метаданных предметной области
код генерируется согласно информации из метаданных являются структурой, которая моделируется в генерируемой программе являются повторяющимися участками кода определяют правила, по которым формируются шаблоны
Метаданные предметной области это:
структура, которая моделируется в сгенерированной программе правила, которые определяют структуру и поведение метаданных предметной области сгенерированный программный код образцы, по которым генерируется программный код
Выберите верное утверждение, касающееся правил предметной области
определяют структуру и поведение метаданных являются повторяющимися участками кода являются изменяющимися участками кода определяют правила, по которым формируются шаблоны
Правила предметной области это:
правила, которые определяют структуру и поведение метаданных предметной области образцы, по которым генерируется программный код сгенерированный программный код структура, которая моделируется в сгенерированной программе
Пусть есть программа, генерирующая запросы SELECT. Что будет являться правилами предметной области для этой программы?
образец текста, содержащий ключевые слова SELECT, FROM, WHERE и специально выделенные места для имен таблиц и полей имена таблиц, полей и типов полей готовый запрос SELECT с конкретными именами таблиц и полей правила написания запросов SELECT
Что является преимуществами применения генерации кода?
структурированность и согласованность исходного кода приложения высокое качество кода и облегченное исправление ошибок согласованность на уровне архитектуры приложения необходимость сопровождения генератора
Что является преимуществами применения генерации кода?
гибкость к изменениям практически всегда присутствует часть кода, которую нужно создать вручную скорость разработки единый источник информации о приложении
Что является преимуществами применения генерации кода?
улучшение удобства работы программистов применение генератора может быть эффективно не во всех случаях усовершенствованный процесс разработки кода наглядность бизнес логики
Что является недостатком применения генерации кода?
практически всегда присутствует часть кода, которую нужно создать вручную скорость разработки единый источник информации о приложении гибкость к изменениям
Что является недостатком применения генерации кода?
необходимость сопровождения генератора согласованность на уровне архитектуры приложения высокое качество кода и облегченное исправление ошибок структурированность и согласованность исходного кода приложения
Что является недостатком применения генерации кода?
наглядность бизнес логики усовершенствованный процесс разработки кода применение генератора может быть эффективно не во всех случаях улучшение удобства работы программистов
Завершенность сгенерированного кода означает, что
сгенерированный код не нуждается в модификации и его можно выложить в производственную схему, опубликовать программный проект не содержит вручную созданного кода сгенерированный код нуждается в дальнейшей ручной модификации программный код уже создан автоматически и больше не нуждается в повторной генерации
Где могут храниться метаданные?
в XML-файлах в текстовых файлах в базах данных в коде генератора
В каком случае масштаб генерации достигает уровня языковой техники?
когда генерируется только отдельный файл кода когда выработано достаточное количество шаблонов достаточного качества, чтобы покрывать основные возможности языка или технологии когда на каждом уровне приложения применяется сгенерированный код когда генерируется один уровень в архитектуре приложения
Какие применяются основные методы генерации кода?
метод полного перебора с применением шаблонов объектное моделирование манипуляции текстом
Дан файл со следующими комментариями:
//a=1 //b=a+2 //c=6 //a=c-b
Также имеется приведенный ниже программный код:
List<string> program = new List<string>(); string line; string var; using (StreamReader sr = File.OpenText(filepath)) { while (!sr.EndOfStream) { line = sr.ReadLine(); var = line[2].ToString(); program.Add("int " + line.Substring(2) + ";"); } } Output.PutResult(program, resultpath);
В переменной filepath хранится путь к файлу с комментариями. Переменная resultpath содержит путь, куда выводится результат работы программы, а метод Output.PutResult осуществляет этот вывод. Что будет выведено в файл в результате работы программы?
int a=1; int b=a+2; int c=6; int a=c-b;
int a=1; int b; b=a+2; int c=6; a=c-b;
int a=1; int b=a+2; int c=6; a=c-b;
int a; a=1; int b; b=a+2; int c; c=6; a=c-b;
Дан файл со следующими комментариями:
//a=1 //b=a+2 //c=6 //a=c-b
Также имеется приведенный ниже программный код:
List<string> program = new List<string>(); List<string> vars = new List<string>(); string line; string var; using (StreamReader sr = File.OpenText(filepath)) { while (!sr.EndOfStream) { line = sr.ReadLine(); var = line[2].ToString(); if (!vars.Contains(var)) { program.Add("int " + line.Substring(2) + ";"); vars.Add(var); } else program.Add(line.Substring(2)); } } Output.PutResult(program, resultpath);
В переменной filepath хранится путь к файлу с комментариями. Переменная resultpath содержит путь, куда выводится результат работы программы, а метод Output.PutResult осуществляет этот вывод. Что будет выведено в файл в результате работы программы?
int a=1; int b=a+2; int c=6; int a=c-b;
int a=1; int b; b=a+2; int c=6; a=c-b;
int a=1; int b=a+2; int c=6; a=c-b;
int a; a=1; int b; b=a+2; int c; c=6; a=c-b;
Дан файл со следующими комментариями:
//a=1 //b=a+2 //c=6 //a=c-b
Также имеется приведенный ниже программный код:
List<string> program = new List<string>(); List<string> vars = new List<string>(); string line; string var; using (StreamReader sr = File.OpenText(filepath)) { while (!sr.EndOfStream) { line = sr.ReadLine(); var = line[2].ToString(); if (!vars.Contains(var)) { program.Add("int " + line[2] + ";"); vars.Add(var); } program.Add(line.Substring(2) + ";"); } } Output.PutResult(program, resultpath);
В переменной filepath хранится путь к файлу с комментариями. Переменная resultpath содержит путь, куда выводится результат работы программы, а метод Output.PutResult осуществляет этот вывод. Что будет выведено в файл в результате работы программы?
int a=1; int b=a+2; int c=6; int a=c-b;
int a=1; int b; b=a+2; int c=6; a=c-b;
int a=1; int b=a+2; int c=6; a=c-b;
int a; a=1; int b; b=a+2; int c; c=6; a=c-b;
Дана следующая программа List<string> program = new List<string>(); List<string> vars = new List<string>(); string line; string var; string rest; int k; using (StreamReader sr = File.OpenText(filepath)) { while (!sr.EndOfStream) { line = sr.ReadLine(); if (line.Contains("//")) k = 2; else k = 0; var = line[k].ToString(); rest = line.Substring(k); if (!vars.Contains(var)) { program.Add("int " + rest + ";"); vars.Add(var); } else program.Add(rest + ";"); } } Output.PutResult(program, resultpath); В переменной filepath хранится путь к файлу с комментариями. Переменная resultpath содержит путь, куда выводится результат работы программы, а метод Output.PutResult осуществляет этот вывод. Каким должен быть входной файл, чтобы на выходе работы программы получить следующий результат?
int a=1; int b=2; int x=a+b; int y=b-a;
//int a=1; //int b=2; //int x=a+b; //int y=b-a;
//x=a+b //y=b-a a=1 b=2
a=1 b=2 //x=a+b //y=b-a
a=1 //b=2 //x=a+b //y=b-a
Какие действия нужно проводить для более эффективного применения генерации?
время от времени проводить перегенерацию автоматического кода проводить обучение по генератору, создать документацию на него внедрить генератор на как можно более ранней стадии поддерживать генератор для долгосрочного применения
Дана следующая программа
List<string> program = new List<string>(); List<string> vars = new List<string>(); string line; string var; string rest; int k; using (StreamReader sr = File.OpenText(filepath)) { while (!sr.EndOfStream) { line = sr.ReadLine(); if (line.Contains("//")) k = 2; else k = 0; var = line[k].ToString(); rest = line.Substring(k); if (!vars.Contains(var)) { program.Add("int " + rest + ";"); vars.Add(var); } else program.Add(rest + ";"); } } Output.PutResult(program, resultpath); В переменной filepath хранится путь к файлу с комментариями. Переменная resultpath содержит путь, куда выводится результат работы программы, а метод Output.PutResult осуществляет этот вывод. Каким должен быть входной файл, чтобы на выходе работы программы получить следующий результат?
Дана следующая программа List<string> program = new List<string>(); List<string> vars = new List<string>(); string line; string var; string rest; int k; using (StreamReader sr = File.OpenText(filepath)) { while (!sr.EndOfStream) { line = sr.ReadLine(); if (line.Contains("//")) k = 2; else k = 0; var = line[k].ToString(); rest = line.Substring(k); if (!vars.Contains(var)) { program.Add("int " + rest + ";"); vars.Add(var); } else program.Add(rest + ";"); } } Output.PutResult(program, resultpath);
В переменной filepath хранится путь к файлу с комментариями. Переменная resultpath содержит путь, куда выводится результат работы программы, а метод Output.PutResult осуществляет этот вывод. Каким должен быть входной файл, чтобы на выходе работы программы получить следующий результат?
int a=1; int b=a+2; int c=6; a=c-b;
//int a=1; //int b=a+2; //int c=6; a=c-b;
a=1 b=a+2 c=6 a=c-b
a=1 //b=a+2 c=6 //a=c-b
//a=1 //b=a+2 //c=6 //a=c-b
Дан файл со следующими комментариями:
//read x y=x+5; //write y //z=2*x+y //write z
Также имеется приведенный ниже программный код:
List<string> program = new List<string>(); List<string> vars = new List<string>(); List<string> declarations = new List<string>(); string line; string var; string lineoutput; using (StreamReader sr = File.OpenText(filepath)) { while (!sr.EndOfStream) { line = sr.ReadLine(); if (line.Contains("read")) { var = line[7].ToString(); program.Add("Console.Read(" + line[7].ToString() + ");"); } else if (line.Contains("write")) { var = line[8].ToString(); program.Add("Console.WriteLine(" + line[8].ToString() + ");"); } else if (line.Contains("//")) { var = line[2].ToString(); program.Add(line.Substring(2) + ";"); } else { var = line[0].ToString(); program.Add(line); } if (!vars.Contains(var)) { vars.Add(var); declarations.Add("int " + var + ";"); } } } declarations.AddRange(program); Output.PutResult(declarations, resultpath); В переменной filepath хранится путь к файлу с комментариями. Переменная resultpath содержит путь, куда выводится результат работы программы, а метод Output.PutResult осуществляет этот вывод. Что будет выведено в файл в результате работы программы?
Console.Read( x); y=x+5; Console.WriteLine( y); z=2*x+y; Console.WriteLine( z); int x; int y; int z; Console.Read(x); y=x+5; Console.WriteLine(y); z=2*x+y; Console.WriteLine(z);
Console.Read( x); y=x+5; Console.WriteLine( y); int z=2*x+y; Console.WriteLine( z);
int x; Console.Read(x); int y; y=x+5; Console.WriteLine(y); int z; z=2*x+y; Console.WriteLine(z);
Дан файл со следующими комментариями:
//read x y=x+5; //write y //z=2*x+y //write z Также имеется приведенный ниже программный код:
List<string> program = new List<string>(); string line; using (StreamReader sr = File.OpenText(filepath)) { while (!sr.EndOfStream) { line = sr.ReadLine(); if (line.Contains("read")) program.Add("Console.Read(" + line[7].ToString() + ");"); else if (line.Contains("write")) program.Add("Console.WriteLine(" + line[8].ToString() + ");"); else if (line.Contains("//")) program.Add(line.Substring(2) + ";"); else program.Add(line); } } Output.PutResult(program, resultpath);
В переменной filepath хранится путь к файлу с комментариями. Переменная resultpath содержит путь, куда выводится результат работы программы, а метод Output.PutResult осуществляет этот вывод. Что будет выведено в файл в результате работы программы?
Console.Read(x); y=x+5; Console.WriteLine(y); int z=2*x+y; Console.WriteLine(z)
int x; Console.Read(x); int y; y=x+5; Console.WriteLine(y); int z; z=2*x+y; Console.WriteLine(z); int x; int y; int z; Console.Read(x); y=x+5; Console.WriteLine(y); z=2*x+y; Console.WriteLine(z);
Чем является следующий код?
<#@ template debug="false" language="C#" #> <#@ output extension=".cs" #> <# string[] vars = new string [] {"A", "B", "C"}; #> class MyClass { <# foreach (string variable in vars) { #> private int <#= variable #> = 0; <# } #> }
незавершенным кодом кодом на ASP шаблоном XSLT шаблоном T4
List<string> program = new List<string>(); string line; Regex pattern = new Regex(@"^//\s*(?<val>.*?)\s*=", RegexOptions.Singleline); using (StreamReader sr = File.OpenText(filepath)) { while (!sr.EndOfStream) { line = sr.ReadLine(); foreach (Match m in pattern.Matches(line)) { program.Add("private int " + m.Groups["val"].Value + ";"); } program.Add(Regex.Replace(line,@"^//\s*","")); } } Output.PutResult(program, filepath);
шаблоном T4 программой с применением XML регулярным выражением программой с применением регулярных выражений
Чем является незавершенный код с точки зрения генерации кода?
код, генерация которого завершилась неудачно любая часть завершенного кода сгенерированный код, который нуждается в последующей ручной модификации для возможности применения его в приложении код приложения, часть которого была сгенерирована автоматически без ручной модификации, а часть была разработана вручную
Что выполняется, если меняются требования к приложению?
если приложение уже применяется в работе, то эти требования отменяются заново генерируется код, но в тестировании он уже не нуждается, так как предыдущий вариант кода был уже протестирован код разрабатывается или генерируется заново при необходимости выполняется перепроектирование, изменяется, удаляется или добавляется код с последующим тестированием и отладкой
Каковы основные шаги в разработке и верификации программного кода?
проектирование, разработка, тестирование, отладка сбор данных, разработка инструкции, составление документации разработка, отладка, настройка, распространение проектирование, разработка, установка, настройка
Выберите верные утверждения касательно применения генераторов
отладка сгенерированного кода необходима также как и отладка ручного кода производительность сгенерированного кода зависит от производительности генератора если тестирование сгенерированного кода завершилось неудачей, выполняется отладка генератора и шаблонов нет необходимости отладки сгенерированного кода
Выберите верные утверждения касательно применения генераторов
практически всегда в программном проекте имеется код, который требуется разработать вручную если требования и генерируемому коду изменились, то достаточно только изменить шаблоны, чтобы учесть их если имеется генератор, то применение кода, разработанного вручную не имеет никаких приемуществ для генерации кода необходимо создать шаблоны, ввести метаданные, разработать генератор и запустить его
Выберите верные утверждения касательно применение генератора
достаточно тестировать только ручной код, сгенерированный код в тестировании не нуждается, так как генератор и шаблоны были уже протестированы сгенерированный код необходимо тестировать также, как и ручной отдельным этапом процесса верификации является тестирование самого генератора и шаблонов на соответствие текста сгенерированного кода ожидаемому результату производительность генератора является главным критерием его работы
Какой минимум информации должны содержать метаданные, чтобы можно было сгенерировать запросы для добавления полей к таблицам, подобные этому?
alter table equipment add (service_description varchar2(1000 char))
имя таблицы, имя поля, тип поля имя таблицы, имя поля, новое имя поля имя таблицы, имя поля имя таблицы, имя поля, новый тип поля
Какой минимум информации должны содержать метаданные, чтобы можно было сгенерировать запросы для изменения типов полей таблиц, подобные этому?
alter table drawing modify (revision number)
имя таблицы, имя поля, тип поля имя таблицы, имя поля имя таблицы, имя поля, новое имя поля имя таблицы, имя поля, новый тип поля
Какой минимум информации должны содержать метаданные, чтобы можно было сгенерировать запросы для удаления полей из таблиц, подобные этому?
alter table equipment drop column model
имя таблицы, имя поля имя таблицы, имя поля, тип поля имя таблицы, имя поля, новый тип поля имя таблицы, имя поля, новое имя поля
Какой минимум информации должны содержать метаданные, чтобы можно было сгенерировать запросы для переименования полей таблиц, подобные этому?
alter table equipment rename column id to equipment_id
имя таблицы, имя поля, новое имя поля имя таблицы, имя поля имя таблицы, имя поля, новый тип поля имя таблицы, имя поля, тип поля
Дан следующий запрос
select 'alter table '|| lower(table_name) || ' add('||lower(column_name)||'_text varchar2(4000 char));' from cols where cols.data_type='NUMBER' order by table_name, column_name Представление cols в Оракл содержит информацию о полях таблицы в базе данных. В поле column_name хранится имя поля, а в поле table_name содержится имя таблицы, в которой находится поле. В полях же data_type и data_length хранятся соответственно тип данных и длина поля. Что делает вышеприведенный запрос?
создает новое текстовое поле для каждого целочисленного поля, с аналогичным именем и добавлением суффикса к нему генерирует запрос для замены всех числовых полей на текстовые с аналогичным именем и добавлением суффикса добавляет новое текстовое поле генерирует запрос для каждого целочисленного поля, создающее новое текстовое поле с аналогичным именем и добавлением суффикса к нему
Дан следующий запрос
select 'alter table '|| lower(table_name) || ' modify('||lower(column_name)|| ' varchar2(4000 char));' from cols where cols.data_type like '%VARCHAR2%' and data_length between 1000 and 3999 order by table_name, column_name
Представление cols в Оракл содержит информацию о полях таблицы в базе данных. В поле column_name хранится имя поля, а в поле table_name содержится имя таблицы, в которой находится поле. В полях же data_type и data_length хранятся соответственно тип данных и длина поля. Что делает вышеприведенный запрос?
увеличивает длину текстовых полей, размерность которых составляет от 1000 до 3999 генерирует запросы, которые увеличивают длину текстовых полей до 4000, размерность которых составляет от 1000 до 3999 уменьшает длину текстовых полей, размерность которых составляет 4000 на величину от 1000 до 3999 генерирует запросы для добавления текстового поля длиной 4000, если в таблице есть другие поля размерностью от 1000 до 3999
Дан следующий запрос
select 'update '|| lower(table_name) || ' set '||lower(column_name)||'_text = to_char('||lower(column_name)||') where '||lower(column_name)||' is not null;' from cols c1 where c1.data_type='NUMBER' and exists (select 1 from cols c2 where c1.table_name = c2.table_name and lower(c1.column_name||'_text') = lower(c2.column_name) and c2.data_type like '%CHAR%') order by c1.table_name, c1.column_name
Представление cols в Оракл содержит информацию о полях таблицы в базе данных. В поле column_name хранится имя поля, а в поле table_name содержится имя таблицы, в которой находится поле. В полях же data_type и data_length хранятся соответственно тип данных и длина поля. Что делает вышеприведенный запрос?
генерирует запросы, заменяющие целочисленное поле на текстовое или наоборот, для случаев, когда в таблице нет хотя бы одного поля, причем имя текстового поля аналогично имени целочисленного поля, но с добавлением окончания генерирует запросы, записывающие значение из целочисленного поля в текстовое, для случаев, когда в таблице имеются оба поля, причем имя текстового поля аналогично имени целочисленного поля, но с добавлением окончания записывает значение из целочисленного поля в текстовое, причем имя текстового поля аналогично имени целочисленного поля, но с добавлением окончания генерирует запросы, записывающие значение из текстового поля в целочисленное, для случаев, когда в таблице имеются оба поля, причем имя текстового поля аналогично имени целочисленного поля, но с добавлением окончания
инструмент для генерации кода на основе шаблонов приложение, выполняющее генерацию кода объектная модель документа язык преобразований XSL
Блок кода это:
часть шаблона, содержащая программный код и заключенная между знаками <# и #> часть шаблона, содержащая код на языке C# или Visual Basic и заключенная между знаками <#% и #> часть шаблона, содержащая метод и заключенная между знаками <#+ и #> часть шаблона, содержащая выражение и заключенная между знаками <#= и #>
Блок вспомогательных методов это:
часть шаблона, содержащая программный код и заключенная между знаками <# и #> часть шаблона, содержащая выражение и заключенная между знаками <#= и #> часть шаблона, содержащая код на языке C# или Visual Basic и заключенная между знаками <#% и #> часть шаблона, содержащая метод и заключенная между знаками <#+ и #>
Блок выражений это:
часть шаблона, содержащая метод и заключенная между знаками <#+ и #> часть шаблона, содержащая выражение и заключенная между знаками <#= и #> часть шаблона, содержащая код на языке C# или Visual Basic и заключенная между знаками <#% и #> часть шаблона, содержащая программный код и заключенная между знаками <# и #>
Управляющие блоки это:
часть шаблона, содержащая вспомогательный метод и заключенная между знаками <#& и #> часть шаблона, содержащая простой текст, выводимый в результат шаблона без изменений часть шаблона, содержащая правила его обработки и заключенная между знаками <#@ и #> это блоки кода, вспомогательных методов и выражений
Блок директив это:
это блок кода, вспомогательных методов и выражений часть шаблона, содержащая простой текст, выводимый в результат шаблона без изменений часть шаблона, содержащая правила его обработки и заключенная между знаками <#@ и #> часть шаблона, содержащая вспомогательный метод и заключенная между знаками <#& и #>
Внимание ! Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier! Текстовый блок это:
это блок кода, вспомогательных методов и выражений часть шаблона, содержащая простой текст, выводимый в результат шаблона без изменений часть шаблона, содержащая правила его обработки и заключенная между знаками <#@ и #> часть шаблона, содержащая вспомогательный метод и заключенная между знаками <#& и #>
Какое назначение у директивы template:
указывает расширение и кодировку выходного файла указывает правила обработки файла шаблона указывает, является ли файл шаблоном устанавливает параметры, которые передаются в шаблон
Какое назначение у директивы output:
указывает язык, на котором сгенерирован код в результате работы шаблона устанавливает параметры, которые передаются в шаблон указывает расширение и кодировку выходного файла указывает правила обработки файла шаблона
Какое назначение у директивы parameter в технологии T4:
указывает правила обработки файла шаблона указывает, имеет ли файл параметры устанавливает параметры, которые передаются в шаблон указывает расширение и кодировку выходного файла
Какое назначение у директивы include:
импортирует в шаблон пространства имен и позволяет использовать простые имена классов вместо полных имен заключает содержимое данного шаблона внутрь содержимого другого шаблона включает в шаблон содержимое другого файла загружает в шаблон сборку и позволяет применять ее классы и методы
Какое назначение у директивы import:
импортирует в шаблон пространства имен и позволяет использовать простые имена классов вместо полных имен загружает в шаблон сборку и позволяет применять ее классы и методы включает в шаблон содержимое другого файла заключает содержимое данного шаблона внутрь содержимого другого шаблона
Какое назначение у директивы assembly:
импортирует в шаблон пространства имен и позволяет использовать простые имена классов вместо полных имен загружает в шаблон сборку и позволяет применять ее классы и методы включает в шаблон содержимое другого файла заключает содержимое данного шаблона внутрь содержимого другого шаблона
В состав шаблона включены следующие директивы. Укажите их назначение
код внутри шаблона написан на языке C#, результат является текстовым файлом код внутри шаблона написан на языке C#, требуется доступ к API Visual Studio, выходной файл имеет расширение ".txt" требуется доступ к API Visual Studio, выходной файл имеет расширение ".txt" и является кодом на языке C#, генерируется код на языке C#, доступ к API Visual Studio не требуется, выходной файл имеет расширение ".txt"
В состав шаблона включены следующие директивы. Укажите их назначение
генерируется код на языке C#, включена сборка System.Xml, к ее классам можно обращаться по короткому имени выходной файл имеет расширение ".cs", включена сборка System.Xml, импортировано пространство имен System.Xml код внутри шаблона написан на языке C#, включена сборка System.Xml, к ее классам можно обращаться по короткому имени выходной файл имеет расширение ".cs", включена сборка System.Xml, в шаблон включен файл "System.Xml"
требуется отладка шаблона, нужен доступ к службам Visual Studio, в коде шаблона используется язык C# отладка шаблона не требуется, нужен доступ к службам Visual Studio, в коде шаблона используется язык C# требуется отладка шаблона, доступ к службам Visual Studio не нужен, в коде шаблона используется язык C# отладка шаблона не требуется, доступ к службам Visual Studio не нужен, в коде шаблона используется язык C#
Как работают шаблоны T4?
на первом шаге производится отладка шаблона, а на втором выполняется его компиляция на первом шаге выполняется компиляция шаблона, на втором шаге запускается скомпилированный код, который генерирует текст на первом шаге запускается код шаблона, на втором шаге компилируется сгенерированный код на первом шаге выполняется компиляция шаблона, на втором шаге запускается скомпилированный код, который генерирует код, и этот код запускается на третьем шаге
Какие методы позволяют установить отступы в результирующем тексте?
PushIndent и PopIndent служат для добавления и удаления одного отступа в/из стека отступов RemoveAllIndent служит для очистки стека отступов ClearIndent служит для очистки стека отступов ResetIndent служит для очистки стека отступов AddIndent и RemoveIndent служат для добавления и удаления одного отступа в/из стека отступов
Что относится к минусам применения технологии T4?
зависимость от дальнейшей поддержки технологии T4 использование пользовательских директив в шаблоне в некоторых случаях шаблоны будут очень сложными шаблоны T4 поддерживают два языка - C# и Visual Basic шаблон T4 изначально предназначен для создания только одного файла
Что относится к плюсам применения технологии T4?
наглядность и простота шаблонов шаблон предназначен для создания одного файла возможность расширения функциональности T4 возможность генерации любой текстовой информации
Какие есть возможности расширения функциональности T4?
предоставление нового базового класса. создание пользовательских директив создание собственного хоста включение в шаблон других шаблонов
Что будет результатом выполнения следующего шаблона?
Что будет результатом выполнения следующего шаблона?
<#GetMonthName(3); GetMonthName(15); GetMonthName(9); GetMonthName(0); #> <#+ public void GetMonthName(int a) { if(a>2&&a<6) PutMonth(2,"Весенний месяц"); if(a>5&&a<9) PutMonth(3,"Летний месяц"); if(a>8&&a<12) PutMonth(4,"Осенний месяц"); if(a>0&&a<3||a==12) PutMonth(1,"Зимний месяц"); if(a<1||a>12) PutMonth(0,"Нет такого месяца"); }#> <#+ public void PutMonth(int n, string s) { for(int i=0;i<n;i++) Write("\t"); WriteLine(s); }#>
Весенний месяц Нет такого месяца Осенний месяц
Весенний месяц Осенний месяц Нет такого месяца
Весенний месяц Нет такого месяца Осенний месяц Нет такого месяца
Весенний месяц Осенний месяц
Что будет результатом выполнения следующего шаблона?
<#GetMonthName(2); GetMonthName(-1); GetMonthName(7); GetMonthName(13); #> <#+ public void GetMonthName(int a) { if(a>2&&a<6) WriteLine("\t\tВесенний месяц"); if(a>5&&a<9) WriteLine("\t\t\tЛетний месяц"); if(a>8&&a<12) WriteLine("\t\t\t\tОсенний месяц"); if(a>0&&a<3||a>11) WriteLine("\tЗимний месяц"); }#> Зимний месяц Летний месяц Зимний месяц
Зимний месяц Летний месяц
Зимний месяц Зимний месяц Летний месяц Зимний месяц Зимний месяц Летний месяц Зимний месяц
XSL это:
каскадные стили шаблонов расширяемый язык стилей файл для преобразования документа XML язык преобразования стилей
Технология XSLT это:
язык для преобразования документов XML стили, которые применяются к документам XML каскадные шаблоны стилей язык программирования для генерации кода
XSLT был разработан
комитетом IEEE в ноябре 1999 года - первая версия и в январе 2007 года - вторая версия консорциумом W3C в декабре 1996 года - первая версия и в мае 1998 года - вторая версия консорциумом W3C в ноябре 1999 года - первая версия и в январе 2007 года - вторая версия комитетом IEEE в декабре 1996 года - первая версия и в мае 1998 года - вторая версия
Процессор XSLT это:
приложение, которое на основе документов XML генерирует стили XSLT приложение, выполняющее преобразование стиля XSLT файл стиля, который используется для выполнения преобразования над документом XML приложение, принимающее в качестве входных данных документы XML и стили XSLT и выполняющее преобразование
Файл стиля XSLT должен быть:
валидным документом XML валидным и откорректированным документом XML корректным и валидным документом XML корректным документом XML
Как работает XSLT:
процессор XSLT на основе заданного документа XML и стиля XSLT выполняет преобразование, результатом которой является выходной документ на основе заданного документа XML и процессора XSLT выполняется преобразование, результатом которой является выходной документ процессор XSLT на основе заданного документа XML и выходного документа формирует стиль XSLT на основе заданного документа XML стиль XSLT выполняет трансформацию, результатом которой является выходной документ
XPath это:
язык запросов к элементам XML-документа язык доступа к стилям XSLT навигатор в файлах стилей путь к элементу XML-документа
Что включает в себя модель XSLT?
документы XML, стили XSLT, процессор XSLT стили XSLT, процессор XSLT, входные документы документы XML, стили XSLT, процессор XSLT, выходные документы документы XML, стили XSLT
Выберите верные утверждения:
xsl:stylesheet содержит правила, по которым будет преобразовываться документ XMLxsl:template служит для указания пути к файлу стиля xsl:apply-templates служит для вызова шаблона xsl:template по имени либо по соответствию набора узлов выражению xml-stylesheet содержится в файле стилей
Выберите верные утверждения:
xsl:apply-templates содержит правила, по которым будет преобразовываться документ XML xml-stylesheet служит для указания пути к файлу стиля xsl:template служит для вызова шаблона по имени xsl:stylesheet указывает на то, что данный XML-файл является файлом стиля и содержит все остальные XSLT-элементы
Выберите верные утверждения:
xsl:apply-templates служит для вызова шаблона по имени xsl:template содержит правила, по которым будет преобразовываться документ XMLxsl:stylesheet служит для указания пути к файлу стиля xml-stylesheet указывает на то, что данный XML-файл является файлом стиля и содержит все остальные XSLT-элементы
xsl:for-each служит для
извлечения значения из документа XML и вывода в результат трансформации выполнения проверки сразу по нескольким условиям установки условия над содержимым документа XML циклического прохождения по узлам документа, которые соответствуют критерию выборки
xsl:value-of служит для
установки условия над содержимым документа XML циклического прохождения по узлам документа, которые соответствуют критерию выборки выполнения проверки сразу по нескольким условиям извлечения значения из документа XML и вывода в результат трансформации
xsl:if служит для
извлечения значения из документа XML и вывода в результат трансформации циклического прохождения по узлам документа, которые соответствуют критерию выборки установки условия над содержимым документа XML выполнения проверки сразу по нескольким условиям
Выберите верные утверждения:
порядок расположения инструкции xsl:include не играет роли порядок расположения инструкции xsl: import имеет значение функция last() возвращает общее число позиций xsl:when содержится внутри xsl:otherwise
Выберите верные утверждения:
класс XslCompiledTransform используется для выполнения преобразования программным путем порядок условий xsl:when не имеет значения функция position() возвращает номер позиции данного контекста порядок расположения инструкции xsl: import не играет роли
Выберите верные утверждения:
функция position() возвращает номер последней позиции xsl:variable позволяет декларировать переменные функция last() возвращает номер позиции данного контекста xsl:import позволяет одному стилю XSLT импортировать другой стиль
Что относится к плюсам применения преобразований XSLT?
для генерации кода заново нужно перекомпилировать приложение простой декларацией можно выполнять многие стандартные функции поддерживается разделение метаданных и шаблонов шаблоны наглядны и проще для понимания
Что относится к плюсам применения преобразований XSLT?
XSLT уже поддерживает работу со специальными символами в XSLT затруднена реализация сложных алгоритмов поддерживается разделение метаданных и шаблонов можно заново генерировать код, только изменив шаблон
Что относится к плюсам применения преобразований XSLT?
XSLT достаточно прост для изучения есть возможность менять шаблоны XSLT динамически, программным путем шаблоны визуально идентичны выводимому коду XSLT является стандартом, который поддерживают все производители программного обеспечения
не применять существующие средства тестирования приложений экономить время, затрачиваемое на создание тестов и тестовых данных улучшить качество тестирования уменьшить время, затрачиваемое на проектирование системы тесторования
Как генерируется код с применением технологии CodeDom?
строится шаблон T4 с примением классов из пространства имен CodeDom, провайдером кода одного из языков шаблон трансформируется в программный код на этом языке строится модель кода с примением классов из пространства имен CodeDom, провайдером кода одного из языков эта модель конвертируется в программный код на этом языке с примением классов из пространства имен CodeDom строится дерево кода и генерируется программный код с помощью провайдера кода одного из языков создается модель кода, применением классов CodeDom формируется сгенерированный код
Выгодами применения генераторов кода для манипуляции данными являются:
одновременная поддержка множества форматов данных сведение ошибок к минимуму гибкость к применению данных с различной внутренной структурой отсутствие необходимости тестировать существующий код
В каких случаях однозначно эффективно применять генератор?
наличие кода для работы с базами данных присутствие уникального алгоритма большинство кода хорошо стандартизировано наличие большого обьема повторяющегося кода
Каким методом генерируется код из корневого элемента дерева?
гибкость к изменениям возможность систематизировать пользовательский интерфейс абстрагирование бизнес процесса от конкретной реализации пользовательского интерфейса возможность ее тестирования
Что дает генерация пользовательского интерфейса?
быструю скорость разработки снижение количества ошибок улучшение оформления пользовательского интерфейса возможность применения генератора тестов
более точная и актуальная документация, согласованная с программным кодом гибкость к изменению формата и шаблонов документации экономия времени и усилий, требуемых для разработки документации уменьшение времени, необходимое для проектирования документации
Что дает генерация пользовательского интерфейса?
улучшение оформления пользовательского интерфейса быструю скорость разработки возможность применения генератора тестов снижение количества ошибок/
Что нужно сделать для улучшения генерации пользовательского интерфейса?
интегрировать генератор с существующими инструментами разработки пользовательского интерфейса генерировать только уровень пользовательского интерфейса, не включая другие уровни приложения разделить ручной и сгенерированный код улучшить структуру кода и сделать его более однородным
Какие параметры надо взвешивать при оценке выгоды применения генератора?
выгоды от генерации в виде согласовенности, безошибочности время на создание и сопровождение генерации время на создание шаблонов и введение метаданных время на проектирование приложения
генерируемый код стараться стандартизировать во всем: начиная от именования объектов и заканчивая их соведением должно быть создана система разделения ручного и сгенерированного кода стандартные образцы генерируемого кода должны быть в начале написаны вручную и протестированы если генератор уже протестирован, то нет необходимости тестировать сгенерированный код
Выберите верные утверждения касательно разработки генератора:
интерфейс генератора сделать удобным и дружественным язык реализации генератора должен выбираться независимо от языка генерируемого приложения интегрировать генератор в среду разработки язык реализации генератора должен быть объектно-ориентированным.
Для представления процедуры в CodeDom используется объект типа