admin / 25.05.2018

Программная инженерия

Содержание

Как научиться создавать идеальное ПО?

Информатик Сергей Зыков рекомендует, что читать о программной инженерии

Институт программной инженерии, являющийся, по сути дела, колыбелью программной инженерии, был создан сразу после исторической конференции НАТО 1968 года, когда было принято решение, что эта дисциплина необходима. Он разрабатывает стандарты программной инженерии не только для США, но и для всего мира. Поэтому книга Software Architecture in Practice является глобальным ответом на самые важные вопросы о том, как с систематической точки зрения следует разрабатывать программные комплексы.

Когда мы говорим об архитектуре программного обеспечения, речь идет о том, из каких частей — систем, подсистем, модулей и так далее — должны состоять программные комплексы. Все эти компоненты должны связываться и взаимодействовать между собой, чтобы обеспечить определенные критерии: отказоустойчивость, надежность, безопасность, эргономичность, доступность и, естественно, не проигрывать при этом в производительности. Это с учетом того, что при работе с такими большими и сложными системами у вас могут быть десятки тысяч одновременных пользователей, каждый из которых очень интенсивно проигрывает различные сценарии обращения к данным. Книга о том, как, учитывая все эти условия, создавать программное обеспечение.

Читать полностью

Книга Software Architecture in Practice выдержала уже три издания. Коллектив ее авторов представляет Институт программной инженерии, который, по сути дела, является колыбелью программной инженерии и разрабатывает программное обеспечение, в том числе для Пентагона.

Software Architecture in Practice Авторы: Len Bass, Paul Clements, Rick Kazman ISBN-13: 978-0321815736

Архитектура программного обеспечения

Программист Мэтью Басс об усложнении программного обеспечения, возникновении новой дисциплины и системах клиент-сервер

За последние 40 лет программное обеспечение усложнилось, и появились очень специализированные задачи. В то время как компании стали вкладывать все больше и больше в развитие программного обеспечения, организации в целом стали больше полагаться на компьютеры. Возникли ситуации, когда необходимо поддерживать работу с большим количеством одновременно подключенных пользователей или систем, доступных круглосуточно, возникла необходимость менять систему со временем для поддержки широкого спектра ожидаемых потребностей. Это та область, где архитектура программного обеспечения возникла как дисциплина.

Программное обеспечение обладает такими свойствами, как доступность, масштабируемость, производительность. Необходимо обращать внимание на общее строение, чтобы иметь возможность предсказывать свойства. «Святой Грааль» этой дисциплины очень похож на другие инженерные науки, когда есть набор структур, известные свойства, которые поддерживаются или подавляются данными структурами, и есть возможность все проанализировать до постройки системы. Это и есть задача, на которой пытаются сосредоточиться люди. Этим они занимаются в научно-исследовательской работе.

Читать полностью

Критерии качества на ранней стадии развития ПО

Доцент Университета Иннополис Мохамад Кассаб о новых подходах к разработке программного обеспечения

Программные системы характеризуют функциональные требования (что система делает) и критерии качества — как система ведет себя в плане различных наблюдаемых свойств, например времени отклика, безопасности, надежности. Ее также характеризуют ограничения и то, как система вписывается в эти ограничения. На рынке ПО функционально идентичные товары бьются за внимание клиентов, поэтому критерии качества становятся важным отличительным свойством на фоне конкурентов. Тем не менее на ранних стадиях разработки критериям качества уделяется очень мало внимания по сравнению с функциональностью, особенно в промышленности. Это, в частности, связано с уникальной природой критериев качества. Они субъективны, относительны, они часто интерактивны в том смысле, что реализация одного критерия качества может упростить или усложнить реализацию другого.

Критерии качества можно внедрять с помощью своеобразных «тактик». Тактика — это связующее звено между разработкой требований и архитектурой ПО. Архитектурная тактика — это проектные решения, которые можно интегрировать в архитектуру ПО с целью выполнения определенных критериев качества. Продумывая архитектуру программного продукта, разработчик опирается на определенные решения. Обычно их называют архитектурными шаблонами. В то время как архитектурные шаблоны представляют собой абстракции или наборы проектных решений, архитектурная тактика — это конкретное проектное решение, задача которого — выполнить определенный критерий качества.

Читать полностью

Компиляторы для языков программирования

Профессор Университета Иннополис Евгений Зуев о «святом Граале» компьютерных наук

Когда программист пишет некоторую программу, решающую определенную, необходимую ему задачу, он пишет эту программу на некотором языке программирования. В процессе этого он оперирует терминами, близкими к той предметной области, с которой он имеет дело. А компьютер не понимает понятий, которыми оперирует программист. Он знает только довольно простые вещи: переменные, числа, регистры, ячейки, оперативную память, жесткие диски. Поэтому задача компилятора заключается в том, чтобы перевести понятия, близкие к предметной области программиста, в понятия, которыми манипулирует компьютер. Компиляторы — один из краеугольных камней Computer Science, наряду с операционными системами и базами данных. Это базис информатики.

История, связанная с языками программирования и компиляторами, насчитывает уже больше шестидесяти лет. Несмотря на это, трудно сказать, что это направление в Computer Science является застывшим. С появлением новых задач, которые решают компьютеры, появляется потребность в создании новых языков программирования и, соответственно, в разработке компиляторов этих языков. Задача разработки компилятора представляет собой одновременно научную и инженерную задачу. И хотя структура многих компиляторов очень похожа, предпринимавшиеся еще 40 лет назад попытки создания универсального языка и, соответственно, универсального компилятора закончились неудачей по довольно простой причине: проблем, которые решает программное обеспечение, очень много, они различны различны по своей природе.

Читать полностью

Интеграция компиляторов в среды программирования

Профессор Университета Иннополис Евгений Зуев о современных подходах к созданию компиляторов

Продвинутая архитектура компиляторов, состоящая из нескольких компонент, взаимодействующих друг с другом и способных взаимодействовать с другими элементами интегрированных сред, требует нового инженерного подхода при их разработке. В начале 2000-х годов в лаборатории факультета ВМК МГУ мы начали работать над новой архитектурой компилятора для языка C++. Этот компилятор задумывался как совокупность компонентов, доступ к которым мог бы быть организован независимо друг от друга. Компилятор не представлял собой единую монолитную программу, это была именно совокупность компонент, и эти компоненты были спроектированы таким образом, чтобы обеспечить легкое включение в интегрированную среду.

Разработчики, которые занимаются созданием интегрированных сред и компиляторов, сталкиваются с большим числом проблем. И чисто инженерные проблемы здесь составляют только часть. Дело в том, что наряду с очень динамичным развитием информатики достаточно большое количество решений в настоящее время остаются теми же, которые были приняты 20–30 лет назад. Очень многие программисты до сих пор используют обычные командные компиляторы, которые были созданы в то время. Эти компиляторы, будучи спроектированными по-старому, очень трудно интегрировать в современную среду, потому что они разрабатывались как большие, монолитные программы.

Читать полностью

Моделирование интеграции веб-сервисов

Профессор Университета Иннополис Мануэль Маццара о пи-исчислениях и перспективах микросервисов

Пи-исчисление — это модель параллельных вычислений, у которой существуют десятки аналогов и постоянно появляются новые, но пальма первенства по-прежнему принадлежит ей. Создатель этой модели — всемирно известный ученый Робин Милнер, лауреат премии Тьюринга. Выбирая тему докторской диссертации, я решил изучать теорию параллелизма и, в частности, ее применение в веб-сервисах. В результате нашей работы с профессором Козимо Ланеве в Болонском университете мы спроецировали язык BPEL на модель пи-исчислений. Для каждого акта извлечения информации конструкция из одного языка должна быть переписана в аналогичную конструкцию другого языка. Более того, нужно доказать, что для внешнего наблюдателя результат такого перевода будет постоянным. То есть поведение первой программы должно быть внешне точно таким же, как поведение второй программы; обе они могут работать одновременно, выполняя абсолютно одинаковые задания, что означает единство алгоритмов их работы и исполняемых функций.

В литературе описано много подобных техник, мы воспользовались одной из них, предварительно адаптировав ее под нашу специфику. Результатом должно быть доказательство либо эквивалентности двух языков, либо ее отсутствия. В своем труде мы доказали, что взятые нами языки не полностью равноценны. Несмотря на некоторые сходства, не существует достаточно оснований, чтобы называть их эквивалентными. В общем, все дело в переводе с языка на язык. И машинные языки в этом плане намного легче в силу своего более ограниченного характера.

Читать полностью

«“Интернет вещей” может повлиять на будущее программного обеспечения»

Интервью с профессором Университета Иннополис Алешем Живковичем об этапах разработки программ, проблемах IT-индустрии и трендах в области создания ПО

— Что входит в процесс разработки программного обеспечения? Какие у этого процесса стадии и какие специалисты в него обычно вовлечены?

— Ключевой проблемой в разработке программного обеспечения является определение того, какой продукт мы собираемся создать и кто за это будет ответственным. Например, для проверки какого-либо решения нам нужен план тестирований. Мы можем начать разрабатывать его после того, как требования к продукту становятся ясными. Завершить этот процесс нужно к концу реализации задачи, ответственным за это может быть тест-менеджер. Иногда в ходе разработки вам уже предоставляется структура программного обеспечения или даже шаблоны, которые вы можете использовать.

Обычно процесс разработки программного обеспечения включает в себя разработку требований, анализ, проектирование, реализацию, тестирование и внедрение. Однако нужно совмещать этот процесс с проект-менеджментом, согласно которому проект состоит из нескольких фаз со своими ключевыми этапами, результатами, ресурсами и стоимостью.

Для большинства проектов требуется несколько разных специалистов, хотя все зависит от конкретного проекта. Например, во время моей последней разработки мы пользовались услугами разработчиков программного обеспечения, графических дизайнеров, психологов, врачей, специалистов по фитнесу и других. В идеале нужны люди с хорошими коммуникативными навыками, которые понимают технологию, специалисты по архитектуре программного обеспечения, менеджеры проектов и тим-лидеры, программисты и хорошие тестировщики. Также требуется обслуживающий персонал, который возьмет на себя заботу об инфраструктуре и средствах разработки.

— Как наука повлияла на методы создания программного обеспечения?

— Университеты и исследовательские лаборатории, включая Университет Иннополис, проводят фундаментальные исследования разных методов разработки программного обеспечения, собирают данные в индустрии для проведения эмпирических изысканий, устраивают контролируемые эксперименты со студентами и анализируют результаты. Эти результаты становятся известны практикующим разработчикам на конференциях и семинарах, посредством публикуемых статей и индивидуальных консультаций с различными группами разработчиков. У компаний есть свои насущные проблемы, и они часто отклоняются от исходной идеи о том, как разрабатывать программное обеспечение по выбранному методу. С нашей помощью методы и подходы меняются, проверяются и улучшаются на благо индустрии.

Читать полностью

Специальность «Программная инженерия»

МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «АВТОМАТИКА И ПРОГРАММНАЯ ИНЖЕНЕРИЯ»

Адрес редакции:

630090, г. Новосибирск, пр. Академика Лаврентьева, 6/1, ПАО «Новосибирский институт программных систем»

Официальный сайт журнала: http://www.jurnal.nips.ru

Главный редактор:

Жмудь Вадим Аркадьевич, доктор технических наук, (383) 330-87-40, e-mail: oao_nips@bk.ru

ТЕМАТИКА ЖУРНАЛА

Автоматика, робототехника, автомати­зиро­ванные системы, программные системы и средства (программная инженерия), защита информации, сетевые технологии, программные платформы, мультиагентные системы, облачные технологии, инновации, информаци­онные технологии, моделирование систем, свободное и открытое программное обеспечение.

СВЯЗЬ С ПРИОРИТЕТНЫМИ НАПРАВЛЕНИЯМИ

Тематика журнала связана со следующими приоритетными направлениями развития науки РФ и критическими технологиями. Приоритетные направления развития науки, технологий и техники в Российской Федерации: «Информационно-телекоммуникационные сис­темы». Перечень критических технологий Российской Федерации: «Нано-, био-, информационные, когнитивные технологии», «Технологии информационных, управля­ющих, навигационных систем», «Технологии наноустройств и микросистемной техники», «Технологии создания высокоскоростных транспортных средств и интеллектуальных систем управления новыми видами транспорта», и другими.

ЦЕЛЕВАЯ АУДИТОРИЯ ЖУРНАЛА

Научные, педагогические и инженерные кадры, аспиранты, докторанты и студенты, представители бизнеса в области информаци­онных технологий и автоматики.

Статьи следует направлять главному редактору на электронную почту. Основные требования и иную информацию см. на сайте журнала http://www.jurnal.nips.ru

Вложение Размер
Журнал "Автоматика и программная инженерия", №1 (2012), формат pdf 6.33 МБ
Журнал "Автоматика и программная инженерия", №2 (2012), формат pdf (архив zip) 7.66 МБ
Журнал "Автоматика и программная инженерия", №1 (2013), формат pdf (архив zip) 7.92 МБ
Automatics and Program Engineering, №1 (2012), short version in english, pdf (in zip archive) 1.51 МБ
Журнал "Автоматика и программная инженерия", №2 (2013), формат pdf 3.87 МБ
Журнал "Автоматика и программная инженерия", №3 (2013), формат pdf 3.74 МБ
Журнал "Автоматика и программная инженерия", №4 (2013), формат pdf 3.68 МБ
Журнал "Автоматика и программная инженерия", №1 (2014), формат pdf 5.01 МБ
Журнал "Автоматика и программная инженерия", №2 (2014), формат pdf 11.49 МБ
Журнал "Автоматика и программная инженерия", №3 (2014), формат pdf 3.14 МБ
Журнал "Автоматика и программная инженерия", №4 (2014), формат pdf 4 МБ
Журнал "Автоматика и программная инженерия", №1 (2015), формат pdf 6.62 МБ
Журнал "Автоматика и программная инженерия", №2 (2015), формат pdf 5.42 МБ
Журнал "Автоматика и программная инженерия", №3 (2015), формат pdf 3.41 МБ
Журнал "Автоматика и программная инженерия", №4 (2015), формат pdf 4.85 МБ
Журнал "Автоматика и программная инженерия", №1 (2016), формат pdf 5.06 МБ
Журнал "Автоматика и программная инженерия", №2 (2016), формат pdf 4.78 МБ
Журнал "Автоматика и программная инженерия", №3 (2016), формат pdf 3.7 МБ
Журнал "Автоматика и программная инженерия", №4 (2016), формат pdf 8.53 МБ
Журнал "Автоматика и программная инженерия", №1 (2017), формат pdf 8.91 МБ
Журнал "Автоматика и программная инженерия", №2 (2017), формат pdf 6.75 МБ
Журнал "Автоматика и программная инженерия", №3 (2017), формат pdf 13.31 МБ
Журнал "Автоматика и программная инженерия", №4 (2017), формат pdf 7.55 МБ
Журнал "Автоматика и программная инженерия", №1 (2018), формат pdf 7 МБ

 

Инженерная деятельность в программировании близка по своей сущности к определению инженерной деятельности (например, приборостроение), определенной в толковом словаре:

 

1) инженерия есть применение научных результатов в практику, что позволяет получать пользу от свойств материалов и источников энергии;

2) деятельность по созданию машин для предоставления полезных услуг.

 

В программной инженерии, инженеры – это специалисты, выполняющие практические работы по реализации программ с применением теории, методов и средств компьютерной науки, которая охватывает теорию и методы построения вычислительных и программных систем. Знание компьютерной науки необходимо специалистам в области ПО так же, как знание физики – инженерам-электронщикам [5]. Если для решения конкретных задач программирования не существует подходящих методов или теории, инженеры применяют свои знания, накопленные ими в процессе конкретных разработок ПО, а также исходя из опыта работы на соответствующих инструментальных программных средствах. Кроме того, инженеры должны работать в условиях заключенных контрактов и выполнять задачи с учетом их условий.

 

В отличие от другой науки, целью которой есть получение знаний, в инженерии знание является способом получения некоторой пользы. Ф.Брукс [7] считает, что «ученый строит, чтобы научиться, инженер учится, чтобы строить».

 

Таким образом, разработку ПО можно считать инженерной деятельностью. Она имеет важные отличия с традиционной технической инженериею:

 

– традиционные ветви инженерии имеют высокую степень специализации, а у программной инженерии специализация заметна только в довольно узких применениях (например, операционные системы, трансляторы, редакторы и др.);

– объекты традиционной инженерии хорошо определены и манипуляции с ними происходят в узком контексте типичных проектных решений и деталей, которые отвечают типовым требованиям заказчиков и касаются отдельных деталей, а не общих вопросов, тогда как у программной инженерии подобная типизация отсутствует;

– отдельные готовые решения и изделия в традиционной инженерии классифицированы и каталогизированы, а в программной инженерии каждое новое решение и разработка некоторого элемента ПО — это новая проблема, для которой довольно трудно установить аналогию с ранее выполненными разработками таких продуктов, как программа, компонент, система и т.п.

 

Приведенные отличия требуют значительных усилий и доработок для превращения программной инженерии в специальность. Мировая компьютерная общественность признала целесообразность и своевременность таких усилий. Подтверждением этого является совместное создание ядра SWEBOK, разных программ обучения (Cirricula -2001-2005) [23, 24], институтов и комитета международного профессионального объединения в области информатики.

Вузы России со специальностью программная инженерия – 09.03.04

Их главной целью является проведение работ по преобразованию программной инженерии в специальность, которая имела бы зафиксированные признаки для ее распознания и официального признания в мировом сообществе специалистов [25-28].

 

Практика специализации профессиональной деятельности, которая сложилась в цивилизованном мире, позволяет считать профессию "зрелой", если для нее существуют:

 

– система начального обучения специальности;

– механизмы развития умений и навыков персонала, которые необходимы для его практической деятельности;

– квалификация персонала организована в рамках профессии;

– лицензирование специалистов организовывается под управлением соответствующих государственных органов (в частности, для систем с повышенным риском, например, для атомных станций и т.п.);

– системы профессионального усовершенствования квалификации персонала и отслеживания современного уровня знаний и технологий по специальности, чтобы специалисты могли выжить в условиях интенсивного развития специальности;

– этический кодекс специалистов;

– профессиональное объединение.

 

Одним из дополнительных отличий программной инженерии состоит в большой сложности и недостаточной специализации большинства видов деятельности по ее основным направлениям, отсутствие научной системы классификации и каталогизации готовых решений в этой области.

 

Отметим, что указанные профессиональные организации в 1999г. приняли этический кодекс специалистов по программной инженерии [13], разработали руководства для обучения программной инженерии, а также создали программу обучения Computing Curricula (СС) 2001 [24]. Кроме того, в США работает комитет по сертификации учебных заведений (Computing Accreditation Commission of the Accreditation Board for Engineering and Technology [29].

 

Таким образом, инженерная деятельность в программировании приблизилась к энциклопедическому определению, отмечается ее становление как специальности большинством преподавательского состава Вузов, связанных с информатикой. Программная инженерия в соответствии с SWEBOK имеет связь со смежными дисциплинами:

 

– компьютерные науки;

– управление проектом;

– электротехническая инженерия;

– математика;

– телекоммуникации и сети;

– менеджмент;

– когнитивные науки;

– другие инженерные дисциплины.

 

В результате, можно сделать вывод о том, что содержание новой инженерной дисциплины "программная инженерия" является сформированной, ей уделяется большое внимание как специалистов, совершенствующих ее разные аспекты, так и разработчиков, которые используют ее в практике программирования и реализации разных видов и типов программных систем.


Читайте также:

XII. Обучение в области охраны труда
Биотехнология, генетическая и клеточная инженерия
Воспитание и обучение детей с нарушениями слуха в условиях специальных дошкольных учреждений и школ
Глава 2. Воспитание и обучение детей с особыми образовательными потребностями
Глава 2. Развитие слухового восприятия и обучение
Глава 5. Компьютерное обучение в медицинской психодиагностике
Глава 5. Компьютерное обучение в медицинской психодиагностике
Глава VIII. Обучение работников в области охраны труда
Двуполушарное обучение
ДИФФЕРЕНЦИРОВАННОЕ ОБУЧЕНИЕ УЧАЩИХСЯ ШКОЛЫ ДЛЯ СЛАБОСЛЫШАЩИХ И ПОЗДНООГЛОХШИХ ДЕТЕЙ

Читайте также:

Лекция « Генная инженерия».

Цели: сформировать у учащихся знания о генной инженерии, познакомить со стадиями метода рекомбинантных плазмид: созданием вектора, трансформацией, скринингом ; с задачами генной инженерии и значением для человека, растений, животных; продолжить формирование умений работать с текстом учебника и выделять главное, вести грамотно и аккуратно записи со слов учителя, работать с тестами, дополнительной литературой.

Оборудование: рисованная таблица «Стадии метода рекомбинантных плазмид», тесты.

Ход урока:

I.Организационный момент.

II.

Подготовка к восприятию нового материала.

Фронтальная беседа.

-Что называется геном? ( Ген-это участок ДНК, в котором записана информация о первичной структуре белка.)

-В виде чего записана информация о белках? ( Информация о белках записана в виде последовательности нуклеотидов). Обо всех белках организма? (В генах записана информация обо всех белках организма).

-Почему именно о белках? (Потому что белки выполняют много разных функ- ций строительную, ферментативную, защитную, транспортную и другие)

-Одинаковые ли белки образуются у различных организмов? (Нет. У каждого вида организмов образуются только ему присущий набор белков).

-Можно ли утверждать, что белки определяют видовую специфичность? ( Да, можно утверждать, что белки определяют видовую специфичность. Каждый вид имеет определённый, только ему присущий набор белков).

Проблемный вопрос. Как вы думаете, может ли какой-нибудь другой организм, например, бактерия, синтезировать белок человеческого организма?

Давайте выдвинем гипотезы. Гипотеза 1. Нет, не может другой организм синтезировать белок человеческого организма.

Гипотеза 2. Да, может другой организм синтезировать белок человеческого организма. (Гипотезы выдвигают учащиеся). Запишите гипотезы в тетради. Давайте найдём аргументы для доказательства или опровержения гипотез.

III. Изучение нового материала.

Сегодня на уроке мы познакомимся с методами генной инженерии, подробно остановимся на стадиях одного из методов — рекомбинантных плазмид, чтобы понять сущность этого процесса, поговорим о значении генной инженерии. План нашей лекции на доске. По ходу изучения вопросов, делайте в своих тетрадях соответствующие записи.

План лекции (на доске).

1 .Генная инженерия. Цели генной инженерии.

2. История генной инженерии.

3. Метод конструирования и переноса рекомбинантных плазмид. Стадии метода.

А) Создание вектора.

1.Рестрикция.

2.Лигирование.

Б) Трансформация.

В) Скрининг.

4. Синтез гена искусственным путём.

5. Значение и перспективы генной инженерии.

Слово учителя.

1.Генная инженерия. Цели генной инженерии.

Генная инженерия – это совокупность методов, позволяющих посредством операций in vitro (в пробирке, вне организма) переносить генетическую информацию из одного организма в другой. Цели генной инженерии в получении клеток (в первую очередь бактериальных), способных в промышленных масштабах нарабатывать некоторые «человеческие» белки; в возможности преодолевать межвидовые барьеры и передавать отдельные наследственные признаки одних организмов другим (использование в селекции растений, животных).

2. История генной инженерии.

Формальной датой рождения генной инженерии считают 1972 год. В этот год группа исследователей во главе с американским биохимиком Полом Бергом, работавшим в Стэнфордском университете, что неподалеку от Сан-Франциско в Калифорнии, сообщила о создании вне организма первой рекомбинантной ДНК. Ее еще называют гибридной, т.к. она состоит из ДНК- фрагментов различных организмов. Первая рекомбинантная молекула ДНК состояла из фрагментов кишечной палочки ( E. Coli – Escherihia coli), группы генов самой этой бактерии и полной ДНК вируса SV40, вызывающего развитие опухолей у обезьяны. Такая рекомбинантная структура теоретически могла обладать функциональной активностью в клетках, как кишечной палочки, так и обезьяны. Она могла как челнок «ходить» между бактерией и животным. За эту работу Полу Бергу в 1980 году присуждена Нобелевская премия. Основные методы генной инженерии были разработаны в начале 70-х годов прошлого (XX) века. Их суть заключается во введении в организм нового гена. Для этого инженеры-генетики создают специальные генетические конструкции − векторы, т.е. устройство для доставки нового гена в клетку. В качестве вектора используют плазмиды.

― Что такое плазмиды? [Кольцевая двухцепочечная молекула ДНК, которая есть в бактериальной клетке. (Она состоит из нескольких тысяч пар нуклеотидов)].

В бактериальной клетке, кроме основной, не покидающей клетку ДНК, может содержаться несколько различных плазмид, которыми она обменивается с другими бактериями. Плазмиды являются автономными генетическими элементами, редуплицирующимися в бактериальной клетке не в то же время, что основная молекула ДНК. Плазмиды несут жизненно важные для бактерии гены – гены лекарственной устойчивости к антибактериальным препаратам. Бактерия, имеющая различные плазмиды, приобретает устойчивость к различным антибиотикам, к солям тяжелых металлов. Поскольку плазмиды могут переходить из одной бактериальной клетки в другую, то они, быстро распространяясь среди бактерий, сохраняют им жизнь. Поэтому плазмиды называют даром природы генным инженерам.

3. Методы генной инженерии.

Наиболее распространенным методом генной инженерии является метод конструирования и переноса рекомбинантных ДНК. Этот метод включает несколько этапов.

1. Создание вектора.

Этот этап состоит из двух последовательных стадий: рестрикции и лигирования.

Рестрикция − означает «разрезание», «ограничение». При помощи фермента − рестрикционной эндонуклеазы или рестриктазы, открытой в 1974 году швейцарским ученым Вернером Арбером , происходит разрезание плазмидной ДНК, образуется расщепленная плазмида с «липкими» концами − ТТАА и ААТТ. ( Бактериальные клетки вырабатывают рестриктазы для разрушения инородной ДНК, чтобы защищаться от вирусной инфекции.) Этой же рестриктазой разрезают ДНК человека (выделенную из клетки) на множество различных фрагментов, но с одинаковыми «липкими» концами. Поскольку используется один и тот же фермент − рестриктаза − « липкие» концы плазмиды и «липкие» концы ДНК человека (чужеродный ген) будут являться комплементарными. <Рисунок 1>

Лигирование — «сшивание». Фрагменты ДНК человека включают в плазмиды и их комплементарные «липкие» концы «сшивают» ферментом лигазой. Образуется рекомбинантная плазмида.< Рисунок 1>

2.

Трансформация – введение.

Рекомбинантные плазмиды вводят в бактериальные клетки (E. Coli), обработанные специальным образом, чтобы они на короткое время стали проницаемы для макромолекул. Однако, плазмиды проникают лишь в часть обработанных клеток.<Рисунок 1>. Трансформированные бактерии вместе с плазмидой приобретают устойчивость к определённому антибиотику. Это позволяет отделить трансформированные бактерии от нетрансформированных, так как они погибают на среде, содержащей антибиотик. Чтобы их отделить друг от друга, бактерии высевают на питательную среду так, чтобы клетки находились на расстоянии друг от друга. Каждая из трансформированных клеток размножается и образует колонию из многочисленных потомков – клон.< Рисунок 2>

3.Скрининг – отбор среди клонов трансформированных бактерий тех, которые содержат плазмиды, несущие нужный ген человека.

Все бактериальные колонии покрывают специальным фильтром. Когда его снимают, на нём остаётся отпечаток колоний. Затем проводят молекулярную гибридизацию. Фильтры погружают в раствор с радиоактивно меченым зондом. Зонд – это полинуклеотид, комплементарный части искомого гена (Р32 ). Он гибридизируется лишь с теми рекомбинантными плазмидами, которые имеют нужный ген. После гибридизации на фильтр в темноте накладывают рентгеновскую плёнку и через несколько часов её проявляют. Засвечиваются те участки на плёнке, где располагаются клоны трансформированных бактерий с нужным геном. Их отбирают, размножают (клонируют), так как они способны вырабатывать белок, кодируемый этим геном.<Рисунок 2>

Закрепление объяснённого материала.

— Как называется рассмотренный нами метод генной инженерии? (Метод конструирования и переноса рекомбинантных плазмид)

— Из каких этапов он состоит? (Он состоит из трёх этапов: создание вектора, трансформации, скрининга).

— Что такое вектор? (Вектор-это устройство для переноса рекомбинантных плазмид в бактериальную клетку).

— Сколько стадий включает этап создания вектора?(Он включает две стадии:рестрикцию и лигирование).

— Опишите эти стадии.

— Что такое трансформация?(Трансформация – это внедрение рекомбинантной плазмиды в бактериальную клетку).

— Что такое скрининг?(Скрининг – это отбор клонов трансформированных бактерий содержащих плазмиды, несущих нужный ген человека).

— Опишите скрининг.

Вернёмся к проблемному вопросу, к выдвинутым гипотезам. Гипотеза 1. Нет, не может другой организм синтезировать «человеческие» белки. Гипотеза верна, так как сама бактерия вырабатывает только собственные белки – это зашифровано в её ДНК. И белки других организмов она вырабатывать не может. Гипотеза 2. Да, может другой организм синтезировать «человеческие» белки. Гипотеза верна, так как есть инженеры-генетики, которые конструируют векторы для внедрения гена человека в ДНК бактерий. И тогда бактерия может синтезировать «человеческий» белок. Но без человека это невозможно. Механизм конструирования вектора ученые взяли из природы, «подсмотрев» за вирусами.

4. Синтез гена искусственнымпутём.

Не всегда удаётся вырезать точный ген с помощью рестриктаз. Многие гены расщепляются этими ферментами на несколько частей, некоторые не содержат последовательностей, узнаваемых рестриктазами. Тогда поступают другим образом. Самостоятельная работа с текстом учебника. Прочитайте текст стр. 102 – 103 со слов «Поэтому в ряде случаев…» до слов « С помощью клонирования….» и ответьте на вопрос: «Как получить клон с нужным в данном случае геном?»

Ответ.

Начинается клонирование с целенаправленного получения нового гена. Для этого из клеток человека выделяют и – РНК – копию этого гена. С помощью фермента обратной транскриптазы , открытой в 1970 году Д. Балтимором и Г. Теминым (американские ученые – лауреаты Нобелевской премии) синтезируют коплементарную цепь ДНК. Затем эта цепь ДНК служит матрицей для синтеза обратной транскриптазой комплементарной второй цепи ДНК, которая называется к-ДНК (комплементарная ДНК). Она соответствует гену, с которого считала информация и – РНК, запущенная в систему обратной транскриптазой. Комплементарная ДНК ( к – ДНК) встраивается в бактериальную плазмиду, которую трансформируют в бактерии и получают клоны, содержащие только выбранные гены человека.

5. Значение и перспективы генной инженерии.

Значение генной инженерии велико. О достижениях генной инженерии и перспективах послушаем сообщение учащегося. (Приложение 1).

.

VI. Закрепление.

Тестовая работа. Выбери правильный ответ. Четыре варианта. (Приложение2, 3). На развороте доски написаны ответы для проверки. Учащиеся обмениваются тестами, проверяют и оценивают их.

Доска. Ответы на тесты.

Варианты – 1, 3. Варианты – 2 ,4.

1.в 1.б

2.г 2.в

3.б 3.г

4.б 4.в

5.а 5.в

Оценка.

«5» -5 правильных ответов.

«4» — 4 правильных ответов.

«3» — 3 правильных ответа.

V. Домашнее задание.

По учебнику В.К. Шумного параграф 17, вопросы после параграфа, записи в тетради.

Литература.

  1. Общая биология: Учеб. Для 10-11кл. с углубл.

    Инженерия программного обеспечения

    изуч. биологии в шк./ Л. В. Высоцкая, С. М. Глаголев, Г. М. Дымшиц и др.; Под ред. В. К. Шумного и др.-2-е изд. Перераб. – М.: Просвещение, 2002.-544с.: ил.

  2. Захаров В.Б. «Введение в генетику: история развития». Журнал «Биология в школе» №5 2003 год.

  3. Новикова Т. А. «Генная инженерия бактерий». Журнал «Биология в школе» №1 2004 год.



Похожие документы:

  1. Генная инженерия и мораль

    Документ

    С появлением новых биомедицинских технологий человечество в очередной раз оказалось на перепутье. Причем от выбора пути будет зависеть не просто социально-экономический уклад нашей жизни, но и само существование человеческой расы,

  2. Лекция с использованием коммуникационных технологий. Тема урока: Генная инженерия

    Урок

    Цель урока: Форматирование умения анализировать материал и решать поставленные задачи. Самостоятельно работать с источниками, отбирая нужную информацию.

  3. Рабочая программа дисциплины «Генная инженерия» Код дисциплины по учебному плану дс. Ф. 11

    Рабочая программа

    Изучить современную концепцию генной инженерии как междисциплинарного комплекса знаний, связывающего воедино основные положения молекулярной биологии и генетики микроорганизмов.

  4. Лекции по экобиотехнологии д б. н., проф. Орловой В. С. Биотехнология

    Лекции

    Биосенсоры — это аналитические устройства, использующие биологические материалы для "узнавания" определенных молекул и выдающие информацию об их присутствии и количестве в виде электрического сигнала.

  5. Лекция 1 (15)

    Лекция

    Лекция 1. Генетическая инженерия как основа биотехнологии. Принципы получения трансгенных растений. Успехи и перспективы современной агробиотехнологии.

Другие похожие документы..

Введение 5

1 Основы программной инженерии 6

1.1 Кризисы программирования и возникновение программной инженерии 6

1.2 Программная инженерия и сущность инженерного подхода к созданию программного обеспечения 9

1.3 Системная инженерия программного обеспечения 11

1.4 Управление жизненным циклом программных средств 15

1.4.1 Понятие жизненного цикла 15

1.4.2 Масштабы программных средств 16

1.4.3 Классификация процессов жизненного цикла по ИСО/МЭК 12207 19

1.4.4 Стадии разработки программных средств по ЕСПД 20

1.4.5 Типичная схема управления процессом создания программного обеспечения 23

1.5 Модели жизненного цикла 24

1.5.1 Каскадная (водопадная) модель 24

1.5.2 Итеративная и инкрементальная модель – эволюционный подход 26

1.5.3 Спиральная модель 28

2 Процессы жизненного цикла программного средства 33

2.1 Управление требованиями к программному обеспечению 33

2.1.1 Программные требования 33

2.1.2 Процесс управления требованиями 39

2.1.3 Извлечение требований 41

2.1.4 Анализ программных требований 43

2.1.5 Документирование требований 45

2.1.6 Проверка требований (верификация и аттестация) 45

2.1.7 Измерение программных требований 47

2.2 Проектирование программных средств 48

2.2.1 Принципы проектирования 48

2.2.2 Структура и архитектура программного обеспечения 49

2.2.3 Анализ качества и оценка программного дизайна 52

2.2.4 Нотации проектирования 53

2.2.5 Подходы и методы проектирования программного обеспечения 55

2.2.6 Гибкие методы разработки 60

2.3 Использование UML в программной инженерии 63

2.3.1 Основные компоненты UML 63

2.3.2 Диаграмма вариантов использования 69

2.3.3 Диаграмма классов 79

2.3.4 Диаграмма состояний 95

2.3.5 Диаграмма деятельности 109

2.3.6 Диаграмма последовательности 114

2.3.7 Диаграмма кооперации 120

2.3.8 Диаграмма компонентов 121

2.3.9 Диаграмма развертывания 127

2.4 Тестирование программного обеспечения 133

2.4.1 Основы тестирования 133

2.4.2 Уровни тестирования 136

2.4.3 Техники тестирования 139

2.4.4 Измерение результатов тестирования 142

2.4.5 Процесс тестирования 144

2.5 Сопровождение программного обеспечения 146

2.5.1 Основы сопровождения программного обеспечения 148

2.5.2 Ключевые вопросы сопровождения программного обеспечения 152

2.5.3 Процесс сопровождения 161

2.5.4 Техники сопровождения 165

2.6 Конфигурационное управление 168

2.6.1 Управление конфигурационным процессом 168

2.6.2 Идентификация программных конфигураций 174

2.6.3 Контроль программных конфигураций 177

2.6.4 Учет статусов конфигураций 179

2.6.5 Аудит конфигураций 180

2.6.6 Управление выпуском и поставкой 181

3 Инструменты и методы программной инженерии 183

3.1 Инструменты 183

3.1.1 Инструменты работы с требованиями 183

3.1.2 Инструменты проектирования и конструирования 184

3.1.3 Инструменты тестирования 185

3.1.4 Инструменты сопровождения 186

3.1.5 Инструменты конфигурационного управления 186

3.1.6 Инструменты управления инженерной деятельностью 186

3.1.7 Инструменты поддержки процессов 187

3.1.8 Инструменты обеспечения качества 187

3.2 Методы 188

3.2.1 Эвристические методы 188

3.2.2 Формальные методы 188

3.2.3 Методы прототипирования 189

4 Качество и эффективность в программной инженерии 191

4.1 Обеспечение качества программного обеспечения 191

4.1.1 Качество программного продукта 191

4.1.2 Культура и этика программной инженерии 191

4.1.3 Значение и стоимость качества 192

4.1.4 Повышение качества ПС с использованием процессного подхода 193

4.1.5 Показатели качества программных средств 194

4.1.6 Количественная оценка качества программного обеспечения 197

4.2 Модели качества процессов конструирования 199

4.2.1 Качество процессов 199

4.2.2 CMM/CMMI 200

4.2.3 TickIT 204

4.2.4 Прочие подходы 210

4.3 Процессы управления качеством программного обеспечения 212

4.3.1 Подтверждение качества программного обеспечения 213

4.3.2 Проверка (верификация) и аттестация 214

4.3.3 Оценка и аудит 214

4.3.4 Характеристика дефектов 217

4.3.5 Методы управления качеством программного обеспечения 218

4.4 Стандартизация качества программного обеспечения 220

4.4.1 Стандарты в сфере программной инженерии 220

4.4.2 Стандартизация программных продуктов в ЕСПД 222

4.4.3 Виды стандартных программных документов 224

4.4.4 Действующие международные стандарты в сфере разработки программных средств и информационных технологий 244

4.5 Документирование программных средств 248

4.6 Сертификация программных средств 248

4.6.1 Правовые акты по сертификации программных продуктов 248

4.6.2 Сертификация ПС 251

4.6.3 Перечень объектов, подлежащих сертификации и их характеристики 253

Заключение 255

Библиография 256

Введение

1Основы программной инженерии

1.1Кризисы программирования и возникновение программной инженерии

На рубеже 60-х – 70-х годов прошлого века стоимость программного обеспечения стала приближаться к стоимости аппаратного обеспечения (компьютеров), а динамика её роста позволяла прогнозировать, что к середине 90-годов все человечество будет заниматься разработкой программ Это событие явилось первым кризисом программирования. Благодаря ему появилась идея для сокращения стоимости программ использовать инженерные методы в производстве программ, которая постепенно оформилась в программную инженерию (или технологию программирования в нашей стране).

С тех пор программная инженерия бурно развивается. Причём этапы её развития связаны с решением очередной системной проблемы:

  1. Появление модульного подхода к программированию

На начальных этапах становления программной инженерии большие затраты на создание программ часто были связаны с разработкой однотипных фрагментов кода, поскольку в разных программах зачастую решались одинаковые задачи. Очевидной идеей явилось использование при создании новых программ ранее написанных фрагментов. В результате возник модульный подход к программированию.

Суть модульного подхода к программированию состоит в выделении типовых фрагментов и оформлении их в виде модулей. Каждый модуль снабжается описанием, содержащим правила его использования в разделе интерфейса модуля, который устанавливал связи модуля с основной программой.

Наиболее простыми в этом отношении оказались модули решения математических задач: решения уравнений, систем уравнений, задач оптимизации. К настоящему времени накоплены и успешно используются большие библиотеки таких модулей.

Для многих других типов модулей возможность их повторного использования оказалась проблематичной в виду сложности их связей с основной программой. Повторное использование модулей со сложными интерфейсами является проблемой, достаточно актуальной и по сей день. Для ее решения разрабатываются специальные формы (структуры) представления модулей и организации их интерфейсов.

  1. Формирование структурного подхода к программированию

В дальнейшем, с возникновением задач по созданию сложных программных комплексов, таких как: автоматизированные системы управления производствами, системы управления сложными техническими объектами (например, самолётом) и т.д. резко выросла сложность программного обеспечения. В результате объёмы программного кода, коллективы разработчиков и количество модулей стали стремительно увеличиваться, что стало приводить к крупным провалам и общему снижению эффективности разработки таких систем. Оказалось, что львиная доля стоимости больших систем приходится не на их создание, а на их внедрение и эксплуатацию. Появилась идея управления жизненным циклом программного продукта, как последовательностью конкретных стадий: проектирования, разработки, тестирования, внедрения и сопровождения.

Компьютерные науки или программная инженерия – что выбрать?

Стадия сопровождения программного комплекса традиционно связан с исправлением ошибок и внесением изменений в программу в соответствии с изменившимися требованиями пользователей. Низкое качество программного кода и, особенно, программной документации явились причина высокой стоимости (а порой и невозможности выполнения) сопровождения программного комплекса. В результате сформировались основные принципы технологии структурного проектирования, призванные обеспечить заданное качество и кода, и документации:

  • использование нисходящего функционального проектирования, основанном на методе пошаговой структурной декомпозиции;
  • применение специальных языков проектирования, которые сейчас принято называть CASE-средствами и средств автоматизации использования этих языков;
  • стандартизация всех этапов жизненного цикла программного комплекса;
  • стандартизация оформления и содержания программных документов;
  • отказ в программировании от свободного использования операторов безусловного перехода.
  1. Становление объектно-ориентированного подхода

Дальнейшее развитие программной инженерии высветило проблему определения требований и управления ими, поскольку в отличие от других инженерий, где заказчик – это обычно следующее звено в цепочке создания продукта, в программной инженерии заказчик, как правило, – совершенно не представляет конечную модель программного продукта и, соответственно, не может сформулировать корректные требования к нему. В результате создание программного продукта превратилось в его постоянную модернизацию и даже перепроектирование. Возникла необходимость обеспечения возможности внесений изменений в программу, не меняя ранее написанного кода.

Решением указанной проблемы стало использование объектно-ориентированного подхода к проектированию, основанного на понятии класса, являющегося развитием понятия модуля с определенными свойствами и поведением, характеризующими его. Каждый класс может порождать объекты – экземпляры данного класса, которые поддерживают следующие механизмы:

  1. Инкапсуляция – объединение в классе свойств и методов.
  2. Наследование – возможность порождения нового класса из существующего с частичным изменением свойств и методов.
  3. Полиморфизм – определение свойств и методов объекта по контексту.

Объектно-ориентированный подход позволил успешно перейти к спиральной модели разработки программных продуктов, значительно снизив потери от необходимости учёта всё новых требований заказчика.
Таким образом, развитие программной инженерии, направленной на снижение себестоимости создания программ, стимулируется всё новыми проблемами и очевидно ещё далеко от завершения.

следующая страница >>
Смотрите также:

5 1 Основы программной инженерии 6

3111.42kb.

Пленарное заседание, 206 ауд. Ведущий Позин Б. А

111.65kb.

Цель Школы привлечение наиболее одаренных студентов, аспирантов и молодых ученых к научной работе в области программной инженерии, верификации и анализа программ

13.43kb.

Продолжая тщательно анализировать и сопоставлять древние сакральные тексты, Ситчин приходит к сенсационным выводам

4720.89kb.

Лосев алексей Сергеевич

379.05kb.

Тест по теме «Основы логики и логические основы компьютера»

82.22kb.

Его научные интересы : Переработка и дизайн полимеров, Микрокапсулирование, самовосстановливающие композиты и системы

11.01kb.

Оценка сейсмических воздействий для локальной площадки

58.85kb.

Рабочая программа учебной дисциплинЫ «Теоретические основы электротехники» Направление подготовки бакалавра

225.64kb.

Основы религиозных культур и светской этики. Модуль: Основы иудейской культуры

75.29kb.

«Защита Отечества»

204.99kb.

HTTP Status 500 — Request processing failed; nested exception is java.lang.IndexOutOfBoundsException: Index: 0, Size: 0


type Exception report

messageRequest processing failed; nested exception is java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

descriptionThe server encountered an internal error that prevented it from fulfilling this request.

exception

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:948) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827) javax.servlet.http.HttpServlet.service(HttpServlet.java:620) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:98) org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:186) org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:166) org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:102) org.springframework.security.oauth2.client.filter.OAuth2ClientContextFilter.doFilter(OAuth2ClientContextFilter.java:60) org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:102) org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:82) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ru.esstu.uportal.security.AicLogoutFilterUportal.doFilterInternal(AicLogoutFilterUportal.java:38) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

root cause

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 java.util.ArrayList.rangeCheck(ArrayList.java:657) java.util.ArrayList.get(ArrayList.java:433) ru.esstu.uportal.dao.jdbc.DirectionJdbcDaoImpl.getDirection(DirectionJdbcDaoImpl.java:454) sun.reflect.GeneratedMethodAccessor487.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:498) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96) org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) com.sun.proxy.$Proxy210.getDirection(Unknown Source) ru.esstu.uportal.web.controllers.DirectionController.viewSubject(DirectionController.java:274) sun.reflect.GeneratedMethodAccessor507.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:498) org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:471) org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:408) org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827) javax.servlet.http.HttpServlet.service(HttpServlet.java:620) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:98) org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:186) org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:166) org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:102) org.springframework.security.oauth2.client.filter.OAuth2ClientContextFilter.doFilter(OAuth2ClientContextFilter.java:60) org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:102) org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:82) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ru.esstu.uportal.security.AicLogoutFilterUportal.doFilterInternal(AicLogoutFilterUportal.java:38) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

noteThe full stack trace of the root cause is available in the Apache Tomcat/7.0.52 (Ubuntu) logs.


Apache Tomcat/7.0.52 (Ubuntu)

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*