Реферат по предмету "Информатика, программирование"


Организация процесса экстремального программирования. ARIS-модель

Федеральное агентство пообразованию
ФГАОУ ВПО «Уральский федеральныйуниверситет имени первого Президента России Б.Н.Ельцина»

Контрольная работа
«Организация процессаэкстремального программирования. ARIS-модель»
Выполнилистуденты гр. ИМ-38031:
МельниковА.Е. Семин Р.С.
гр.ИМ-38041: Ильин С.В.
Проверила:Шутова Ю.В.
Екатеринбург 2011

Оглавление
 
Введение
Описание нотаций ARIS
Основные концепции экстремальногопрограммирования
Описание модели «Организация процессаэкстремального программирования
Заключение
Список литературы
Приложение

/>Введение
 
ARIS (сокр.от англ. Architectureof IntegratedInformation Systems) —методология и программный продукт компании IDSScheer для моделирования бизнес-процессовкомпании.
Цельюнашей работы являлась разработка оптимальной и функциональной ARIS-моделидля организации процесса экстремального программирования.
Данную цель мыреализовывали через следующие задачи:
1) Ознакомлениес программой ARIS.
2) Изучениеметодологий и подходов экстремального программирования./>/>/> 
Описание нотаций ARIS
/>
Длясоставления модели мы использовали следующие нотации ARIS.
Табл.1.нотации ARIS.

Наименование
Описание
Графическое представление 1 Функция Объект «Функция» служит для описания функций (процедур, работ), выполняемых подразделениями/сотрудниками предприятия
/> 2 Событие Объект «Событие» служит для описания реальных состояний системы, влияющих и управляющих выполнением функций
/> 3 Персонал Должности, выполняющие определенные функции на предприятии (например, программист или менеджер)
/> 4 Документ Объект, отражающий реальные носители информации, например бумажный документ
/> 8 Логическое «ИЛИ» Логический оператор, определяющий связи между событиями и функциями в рамках процесса. Позволяет описать ветвление процесса
/>
Основные концепцииэкстремального программирования
Экстремальноепрограммирование (Extreme Programming, XP) возникло как эволюционный методразработки ПО «снизу-вверх». Этот подход является примером так называемогометода «живой» разработки (AgileDevelopment Method).Основные принципы «живой» разработки ПО зафиксированы в манифесте «живой»разработки, появившемся в 2000 году.
• Люди, участвующие впроекте, и их общение более важны, чем процессы и инструменты
• Работающая программаболее важна, чем исчерпывающая документация
• Сотрудничество сзаказчиком более важно, чем обсуждение деталей контракта
• Отработка измененийболее важна, чем следование планам.
«Живые» методыпоявились как протест против чрезмерной бюрократизации разработки ПО, обилияпобочных, не являющихся необходимыми для получения конечного результатадокументов, которые приходится оформлять при проведении проекта в соответствиис большинством «тяжелых» процессов, дополнительной работы по поддержкефиксированного процесса организации. Большая часть таких работ и документов неимеет прямого отношения к разработке ПО и обеспечению его качества, апредназначена для соблюдения формальных пунктов контрактов на разработку,получения и подтверждения сертификатов на соответствие различным стандартам.«Живые» методы позволяют большую часть усилий разработчиков сосредоточитьсобственно на задачах разработки и удовлетворения реальных потребностейпользователей. Отсутствие кипы документов и необходимости поддерживать их всвязном состоянии позволяет более быстро и качественно реагировать на измененияв требованиях и в окружении, в котором придется работать будущей программе.
• Живое планирование(planning game)
Его задача как можнобыстрее определить объем работ, который нужно сделать до следующей версии ПО.Решение принимается, в первую очередь, на основе приоритетов заказчика (т.е.его потребностей, того, что нужно ему от системы для более успешного ведениясвоего бизнеса) и, во вторую, на основе технических оценок (т.е. оценоктрудоемкости разработки, совместимости с остальными элементами системы и пр.).Планы изменяются, как только они начинают расходиться с действительностью илипожеланиями заказчика.
• Частая смена версий(small releases)
Самая первая работающаяверсия должна появиться как можно быстрее, и тут же должна начатьиспользоваться. Следующие версии подготавливаются через достаточно короткие промежуткивремени (от нескольких часов при небольших изменениях и небольшой программе, домесяца-двух при серьезной переработке крупной системы).
• Метафора (metaphor)системы
Метафора в достаточнопростом и понятном команде виде должна описывать основной механизм работысистемы. Это понятие напоминает архитектуру, но должно гораздо проще, всего ввиде одной-двух фраз описывать основную суть принятых технических решений.
• Простые проектныерешения (simple design)
В каждый момент временисистема должна быть сконструирована так просто, насколько это возможно. Не надодобавлять функции заранее — только после явной просьбы об этом. Вся лишняясложность удаляется, как только обнаруживается.
• Разработка на основетестирования (test-driven development)
Разработчики сначалапишут тесты, потом пытаются реализовать свои модули так, чтобы тестысрабатывали. Заказчики заранее пишут тесты, демонстрирующие основныевозможности системы, чтобы можно было увидеть, что система действительнозаработала.
• Постояннаяпереработка (refactoring)
Программисты постоянноперерабатывают систему для устранения излишней сложности, увеличения понятностикода, повышения его гибкости, но без изменений в его поведении, что проверяетсяпрогоном после каждой переделки тестов. При этом предпочтение отдается более элегантными гибким решениям, по сравнению с просто дающими нужный результат. Неудачнопереработанные компоненты должны выявляться при выполнении тестов иоткатываться к последнему целостному состоянию (вместе с зависимыми от нихкомпонентами).
• Программированиепарами (pair programming)
Кодирование выполняетсядвумя программистами на одном компьютере. Объединение в пары произвольно именяется от задачи к задаче. Тот, в чьих руках клавиатура, пытается наилучшимспособом решить текущую задачу. Второй программист анализирует работу первого идает советы, обдумывает последствия тех или иных решений, новые тесты, менеепрямые, но более гибкие решения.
• Коллективное владениекодом (collective ownership)
В любой момент любойчлен команды может изменить любую часть кода. Никто не должен выделять своюсобственную область ответственности, вся команда в целом отвечает за весь код.
• Постоянная интеграция(continuous integration)
Система собирается ипроходит интеграционное тестирование как можно чаще, по несколько раз в день,каждый раз, когда пара программистов оканчивает реализацию очередной функции.
• 40-часовая рабочаянеделя
Сверхурочная работарассматривается как признак больших проблем в проекте. Не допускаетсясверхурочная работа 2 недели подряд — это истощает программистов и делает ихработу значительно менее продуктивной.
• Включение заказчика вкоманду (on-site customer)
В составе командыразработчиков постоянно находится представитель заказчика, который доступен втечение всего рабочего дня и способен отвечать на все вопросы о системе. Егообязанностью являются достаточно оперативные ответы на вопросы любого типа,касающиеся функций системы, ее интерфейса, требуемой производительности,правильной работы системы в сложных ситуациях, необходимости поддерживать связьс другими приложениями и пр.
• Использование кодакак средства коммуникации
Код рассматривается какважнейшее средство общения внутри команды. Ясность кода — один из основныхприоритетов. Следование стандартам кодирования, обеспечивающимтакую ясность, обязательно.Такие стандарты, помимо ясности кода, должны обеспечивать минимальностьвыражений (запрет на дублирование кода и информации) и должны быть принятывсеми членами команды.
• Открытое рабочеепространство (open workspace)
Команда размещается водном, достаточно просторном помещении, для упрощения коммуникации ивозможности проведения коллективных обсуждений при планировании и принятииважных технических решений.
• Изменение правил понеобходимости (just rules)
Каждый член командыдолжен принять перечисленные правила, но при возникновении необходимостикоманда может поменять их, если все ее члены пришли к согласию по поводу этогоизменения.
Как видно изприменяемых техник, XP рассчитано на использование в рамках небольших команд(не более 10 программистов), что подчеркивается и авторами этой методики,больший размер команды разрушает необходимую для успеха простоту коммуникации иделает невозможным применение многих перечисленных приемов.
Достоинствами XP, еслиего удается применить, является большая гибкость, возможность быстро иаккуратно вносить изменения в ПО в ответ на изменения требований и отдельныепожелания заказчиков, высокое качество получающегося в результате кода иотсутствие необходимости убеждать заказчиков в том, что результат соответствуетих ожиданиям.
экстремальноепрограммирование моделирование бизнес
Описание модели«Организация процесса экстремального программирования»
Организацию процессаэкстремального программирования можно представить в виде последовательновыполняемых операций.
На первом этапе командаразработчиков, работающих в стиле XP,ожидает поступление заказа. Как только поступает заказ, менеджер команды решает– брать этот заказ или нет. Критериями отбора являются такие факторы какзанятость команды, сложность проекта, опыт команды в данной области, ну и, вконечном счете, желание и способность реализовать проект. На этом этапезаключается предварительный договор между заказчиком и разработчиками.
Далее, если командаберется реализовывать проект, она просит представителей заказчика составитькарточки с историями. История (story)– некоторая вещь, которую по желаниюзаказчика должна делать система. Затем эти карточки исследуются разработчикамина предмет возможности программной реализации историй и их целесообразности.Если у программистов появляются замечания относительно историй, предоставленныхзаказчиком, карточки отправляются на повторную переработку. Как толькоразработчики получают список историй, который устраивает их и заказчика, онипереходят к планированию и согласованию даты выпуска версии программы изаключают договор с заказчиком.
Затем начинается короткий(быстрый) процесс планирования. «Вбрасывается» метафора системы. Системнаяметафора (system metaphor) – история, описывающая логику работы системы,которую могут рассказать любые участники проекта – заказчики, программисты именеджеры. Далее все члены команды – менеджеры, инструктора, представителизаказчика, программисты и др. занимаются планирование версии системы: отбираютистории, реализация которых более приоритетна для бизнеса (для того чтобы какможно быстрее запустить программный продукт в реальное производство), а такжепридумывают основные методы, средства и технологии, которые будут использованыпри реализации данной версии. Планирование продолжается пока все участникипроцесса не придут к единому решению, которое будет всех устраивать как с точкизрения затрат ресурсов, так и с точки зрения временных затрат и будет наиболееоптимальным в конкретной ситуации.
Далее переходятнепосредственно к процессу программирования. Параллельно проходит процесс модульногоавтоматизированного тестирования написанного кода. Программисты работают впарах и после написания очередной функциональности, выполнив рефакторинг,протестировав ее на работоспособность, интегрируют код в основной проект. Затемтестируют весь проект в целом, чтобы убедиться, что все работает. Во времявсего процесса разработки в офисе с программистами находятся представителизаказчика, которые должны отвечать на все вопросы команды, возникающие в процессеразработки. Таким образом, осуществляется мгновенная обратная связь.
Когда реализация версиизаканчивается, она переходит к функциональному тестированию, котороеосуществляют представители заказчика. На этом этапе возможно несколькоситуаций:
· впрограмме обнаружены ошибки – версия продукта отправляется на доработку;
· заказчиквидит необходимым добавление новой истории в текущую версию программы – версияпродукта отправляется на доработку;
· версияодобрена и готова для ввода в эксплуатацию на предприятии;
На предприятиипрограмму эксплуатирую реальные пользователи, и разработчики могут сразупроследить поведение системы, увидеть потребности бизнеса. Также заказчик можетоценить эффективность работы разработанного программного обеспечения и принятьрешение о том, нужно ли ему продолжать сотрудничать с разработчиками. Еслипроект убыточен либо заказчик не видит смысла в его дальнейшей модернизации,проект сворачивается. Иначе, в случае успеха проект приносит прибыль, «аппетит»заказчика повышается – он предлагает новые истории для модернизации. После чегоначинается оценка этих историй и разработка очередной версии программы.

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

Список литературы
1) Кент Бек: Экстремальноепрограммирование — Питер, 2002
2) Кент Бек: Экстремальноепрограммирование: разработка через тестирование —Питер, 2003

Приложение 1
 
Схема модели
 
/>/> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> />

/>/> /> /> /> /> /> /> /> /> /> /> /> /> /> />


/>/> /> /> /> /> /> /> /> />

/>
/>
/>


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Effects Of Govt On Poland Essay Research
Реферат Text Design Essay Research Paper Tag Description
Реферат Система рециркуляции отработавших газов EGR
Реферат Ginsberg Term Paper Essay Research Paper Allen
Реферат Hoffman Conquers In Clutch Essay Research Paper
Реферат «История пугачевского бунта» ивымышленное повествование в романе А. С. Пушкина «Капитанская дочка» Исторический материал о Емельяне Пугачеве А. С. Пушкин собирал в течение долгого времени
Реферат Charles Darwin Evolution Essay Research Paper Charles
Реферат Показания обвиняемого и подозреваемого
Реферат Изучение отношений потребителей к компании
Реферат Естественнонаучные представления о происхождении человека
Реферат Договор перевозки груза
Реферат Розбіжності у способах передачі майбутності дії в німецькій та українській мовах та проблеми
Реферат Художественные особенности в творчестве Гоголя
Реферат Hamlet Soliloquy Translation Act I Scene Ii
Реферат Allen Ginsberg Essay Research Paper Allen GinsbergAllen