Основная категория специалистов, занятых разработкой программ, — это программисты. Программисты неоднородны по уровню квалификации, а также по характеру своей деятельности. Наиболее часто программисты делятся на системных и прикладных.
С истемн ы й программист занимается разработкой, эксплуатацией и сопровождением системного программного обеспечения, поддерживающего работоспособность компьютера и создающего среду для выполнения программ, обеспечивающих реализацию функциональных задач.
При кл адн о й программист осуществляет разработку и отладку программ для решения функциональных задач.
В условиях создания больших по масштабам и функциям обработки программ появляется новая квалификация — программист — ана л ити к, который анализирует и проектирует комплекс взаимосвязанных программ для реализации функций предметной области.
В процессе создания программ на начальной стадии работ участвуют и специалисты- постановщики задач.
При работе в группе организационно выделяются следующие программисты.
Процесс разработки программного обеспечения
Главный программист – осуществляет системный анализ задачи, разбивает ее на части, синтезирует программный продукт.
Библиотекарь – ведет документацию программного продукта, утверждает изменения и версии продукта.
Кодировщик – создает и отлаживает тексты программ на алгоритмических языках.
Тестер – планирует испытания и проверяет работоспособность продукта. Тестер проводит альфа-тестирование — проверку работоспособности программы силами группы разработчиков. Затем проводится бета-тестирование — проверку работоспособности заинтересованными пользователями.
Большинство информационных систем основано на работе с базами данных (БД). Если база данных является интегрированной, обеспечивающей работу с данными многих приложений, возникает проблема организационной поддержки базы данных, которая выполняется администратором базы данных.
В некоторых ситуациях прямой контакт с техникой невозможен или нежелателен. В этом случае помощь оказывает представитель технического персонала — оператор ЭВМ.
Основным потребителем программ служит ко нечн ы й п ол ь зо вате л ь, который, как правило, относится к категории пользователей-непрограммистов. Конечный пользователь не является специалистом в области программирования, т. е. не владеет методами и технологией проектирования и создания программ, но имеет элементарные знания и навыки работы с вычислительной техникой.
«.~ ![]() ![]() ![]() ![]() |
I |
7. Процесс разработки программного обеспечения
Качество программы
Каждая программа должна отвечать таким требованиям, как правильность, точность, совместимость, надежность, универсальность, защищенность, полезность, эффективность, проверяемость, адаптируемость, мобильность, дружественность.
Будем говорить, что программа является
— правильной, если она функционирует в соответствии с техническим заданием. Подразумевается, что техническое задание составлено в четкой форме, позволяющей однозначно судить о том, действительно ли программа отвечает перечисленным в нем требованиям;
— точной, если выдаваемые ею результаты имеют допустимые отклонения от аналогичных результатов, полученных с помощью идеальных математических зависимостей;
— совместимой, если она работает должным образом не только автономно, но и в составе программной системы;
— надежной, если она при всех условиях обеспечивает полную повторяемость результатов.
— универсальной, если она правильно работает при любых допустимых вариантах исходных данных. В ходе разработки программ должны предусматриваться специальные средства защиты от ввода неправильных исходных данных;
— защищенной, если она сохраняет работоспособность при возникновении сбоев. Это качество особенно важно для программ, предназначенных для решения задач в режиме реального времени. В подобных приложениях отказ оборудования может повлечь катастрофические последствия — например, аварию ракеты или ядерного реактора. Указанным свойством должны также обладать программы с большим временем выполнения, осуществляющие обработку постоянно хранимых файлов;
— полезной, если задача, которую она решает, представляет практическую ценность;
— эффективной, если объем требуемых для ее работы ресурсов не превышает допустимого предела;
— проверяемой, если ее качества могут быть продемонстрированы на практике. Здесь подразумевается возможность проверки таких свойств программы, как правильность и универсальность. Можно применить формальные математические методы, позволяющие установить, действительно ли программа удовлетворяет техническим условиям и выдает достаточно точные результаты. Однако существуют и неформальные способы оценки качества программ такие, как прогоны с остановами в контрольных точках, обсуждения результатов с заинтересованными пользователями и др.;
— адаптируемой, если она допускает быструю модификацию с целью приспособления к изменяющимся условиям функционирования;
— мобильной, если она независима от аппаратуры, операционной системы, сетевого окружения, специфики предметной области;
— дружественной, если она имеет удобный интерфейс для работы конечного пользователя, контекстно-зависимые подсказки, обучающую систему, подробную документацию и диагностику возникших ошибок.
Источник: cyberpedia.su
Раздел 4. Коллективная разработка по
Основная категория специалистов это программист (Programmer) они не однородны по уровню квалификации, а также характеру своей деятельности.
Программисты делятся на системных и прикладных
1. В процессе создания программ на начальной стадии работ участвуют и специалисты постановщики задач
2. Прикладной программист (Application programmer) осуществляет разработку и отладку программ для решения функциональных задач. В условиях созданиях больших по масштабу и функциям обработки программ появляется квалификация – программист-аналитик (programmer -analyst) который анализирует и проектирует комплекс взаимосвязанных программ для реализации предметной области.
3. Системный программист (system/software programmer, tool smith) занимается разработкой, эксплуатацией и сопровождением системного программного обеспечения, поддерживающего работоспособность компьютера и создания среды для выполнения программ обеспечивающих реализацию функциональных задач.
4. Администратор базы данных обеспечивает работу с данными многих приложений организует поддержку базы данных.
5. Возможна эксплуатация программ квалифицированным и программистами или специально обученными техническими работниками — оператор ЭВМ.
6. Основным потребителем служит конечный пользователь (end user) он не является специалистом в области программирования и может иметь элементарные навыки работы с ПК. Такая квалификационная характеристика пользователя ПП влияет на спецификацию требований к создаваемым программам, интерфейсам, формам машинных документов, технологии решения задач на ЭВМ.
Рисунок 1- Схема взаимодействия специалистов связанных с созданием
и эксплуатацией программ
Технологии коллективной разработки
Все множество разработок в зависимости от количества участников и типов взаимоотношений между ними может быть сведено к триаде разработок, приведенной на рис. 3.21.
Авторская разработка
Авторская разработка — принцип создания программных продуктов, при котором весь жизненный цикл разработки поддерживается одним единственным человеком.
Этот принцип был достаточно широко распространен в 70-80-е годы XX века. Сейчас он применяется редко [Кулаичев 1999]. Примерами авторских разработок являются операционная система Диспак (В.Ф. Тюрин), текстовый редактор Лексикон (Е. М. Веселов), трансляторы с языков Algol-68 (П.
Наур) и Pascal (H. Вирт).
Принцип авторской разработки неприменим для многих современных разработок из-за их сложности, объема и требований к качеству и сопровождению. С другой стороны, программное обеспечение, начиная с момента появления персональных компьютеров, стало продуктом массового потребления, приносящим огромный доход. В этой области быстро выросли и стали доминировать крупные компьютерные компании с развитой структурой менеджмента и мощной рекламой.
Наиболее интересен принцип авторской разработки с точки зрения применения в области наукоемких приложений. Для таких приложений характерна необходимость многолетнего изучения предметной области, практически полное отсутствие начального финансирования проекта, малая рентабельность, определяемая узким кругом пользователей.
По данным А. П. Кулаичева [Кулаичев 1999], авторская разработка может выигрывать по производительности в тридцать и более раз у коллективной разработки, что достигается за счет:
· исключения межличностных коммуникаций, связанных с необходимостью порождения и изучения большого количества технологической документации;
· исключения работ по разбиению проекта на составляющие, по распределению их между исполнителями, по координации деятельности исполнителей и контролю за их работой.
Объем программного продукта, выполненного методом авторской разработки, в 5-20 раз меньше по сравнению с индустриальными аналогами.
Авторская разработка предполагает достижение профессионального успеха, известности и славы в одиночку. Такое вполне реально, следует только правильно выбрать профессиональную «нишу», область ведения разработки.
Коллективная разработка
Одним из основных вопросов коллективной разработки является разделение труда — от равноправных соисполнителей до организации в виде жесткой иерархии (например, бригады главного программиста).
О первых опытах коллективных разработок. Известно, что первые коллективные разработки программ велись примерно так. Начальник выполнял разделение большого проекта на меньшие части и передавал далее по иерархии. Через некоторое время, теперь уже снизу вверх, шла сборка программы из написанных фрагментов. Собрать работающий программный продукт удавалось не всегда.
Технические командные роли
Равноправные соисполнители
Бригада равноправных соисполнителей обычно состоит из специалистов, занимающихся примерно подобными задачами в рамках одного проекта. Естественно, специализаций в рамках одной бригады может быть несколько. В разд. 1.7.6.2 уже приводился примерный состав такой бригады разработчиков. Напомним его:
· инженеры-разработчики (специалисты по инженерии программирования и программисты);
· специалисты по сопровождению продукта;
· специалисты по продажам продукта.
o Специалист по инженерии программирования.
o Специалист по инженерии знаний.
· Работа с приложениями.
o Специалист по приложениям.
o Администратор данных.
o Администратор базы данных.
o Системный администратор.
o Сетевой администратор.
o Администратор коммуникаций,
· Обеспечение качества продукта.
o Технический писатель.
o Инженер тестирования.
o Инженер качества.
o Специалист по сопровождению продукта.
o Специалист по продажам продукта.
o Системный интегратор.
Из перечисленных специализаций очень интересна специализация системного интегратора. Основные задачи системного интегратора — предложить заказчику вариант решения его проблемы, выбрав наиболее приемлемый по цене и технике, и реализовать его. Таким образом, системный интегратор продает решения и несет ответственность за их реализацию. Системный интегратор как профессионал должен обладать знаниями из очень многих областей — прикладное и системное программное обеспечение, администрирование систем, аппаратура, сети, экономика и т. п.
Источник: infopedia.su
1.3. Категории специалистов, занятых разработкой и эксплуатацией программ
Основная категория специалистов, занятых разработкой программ, – это программисты (programmer). Программисты неоднородны по уровню квалификации, а также по характеру своей деятельности. Наиболее часто программисты делятся на системных и прикладных.
- Системный программист(system / software programmer, toolsmilh) занимается разработкой, эксплуатацией и сопровождением системного программного обеспечения, поддерживающего работоспособность компьютера и создающего среду для выполнения программ, обеспечивающих реализацию функциональных задач.
- Прикладной программист(application programmer) осуществляет разработку и отладку программ для решения функциональных задач.
В условиях создания больших по масштабам и функциям обработки программ появляется новая квалификация – программист-аналитик(programmer-analyst), который анализирует и проектирует комплекс взаимосвязанных программ для реализации функций предметной области. В процессе создания программ на начальной стадии работ участвуют и специалисты конкретных прикладных отраслей – постановщики задач. Большинство информационных систем основано на работе с базами данных (БД). Если база данных является интегрированной, обеспечивающей работу с данными многих приложений, возникает проблема организационной поддержки базы данных, которая выполняетсяадминистратором базы данных. Основным потребителем программ служит конечный пользователь(end user), который, как правило, относится к категории пользователей-непрограммистов. Конечный пользователь не является специалистом в области программирования, т. е. не владеет методами и технологией проектирования и создания программ, но имеет элементарные знания и навыки работы с вычислительной техникой. Такая квалификационная характеристика пользователя программного обеспечения в значительной степени влияет на спецификацию требований к создаваемым программам, интерфейсам, формам машинных документов, технологии решения задач на ЭВМ. Возможна эксплуатация программ квалифицированными программистами или специально обученными техническими работниками – операторами ЭВМ. Взаимодействие специалистов различного вида, участвующих в разработке и эксплуатации программ, показано на рис. В ряде случаев один специалист совмещает несколько видов деятельности. Администратор базы данных и системный программист осуществляют подготовку информационных и программно-технических условий для работы программ. Пунктирные линии означают участие специалиста в качестве консультанта. Р и с. Схема взаимодействия специалистов, связанных с созданием и эксплуатацией программ.
2. Жизненный цикл программного обеспечения
2.1 Основные этапы жизненного цикла и их взаимосвязь
Источник: studfile.net