Форумы УГМК-Телеком

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Добро пожаловать на форум!

Автор Тема: Реинжиниринг программного гарантия, разработка программ и веб-сайтов  (Прочитано 4709 раз)

ktwo_rus

  • Наблюдатель
  • *
  • Оффлайн Оффлайн
  • Сообщений: 1
  • Web-programmer
    • MSN клиент - k2_m20@mail.ru
    • Просмотр профиля
    • Реинжиниринг программного гарантия, разработка программ и веб-сайтов

Виновник: Рудюк Сергей Анатольевич     
Интернет-адрес: http://corp2.net     
E-Mail: rs@corp2.net   
Чудак статьи: http://corp2.net/pages/159/900fb63295a39b0f162b2f1d0de88f5c/index.html     
   
Реинжиниринг программного обеспечения   
   
Введение   
Компьютер без программного обеспечения – груда металла, которую к тому же грешно сдать для металлолом. Купив даже самый быстродействующий компьютер, затея не решает основной проблемы – автоматизация предприятия. Ради этого нужны программы.   
   
Разнообразие программного обеспечения куда больше, чем технических решений. Беспричинно вроде они решают самые различные задачи, начиная через связи с оборудованием (драйвера) и заканчивая автоматизацией бухгалтерского учета либо 3-х мерными играми.   
   
Все даже присутствие таком большом разнообразии программных решений может оказаться, сколько отсутствует полностью удовлетворяющего программного решения.   
   
Ради решения данной проблемы начинание, словно обыкновенный, находит программиста, что пытается реализовать данную программу. Проходит время, программа внедряется для предприятии и с ней начинает заниматься большое состав персонала. Привыкнув к программе, сотрудники уже не представляют себя без столь удобного инструмента, подобно программа. Проходит опять век, а программист берет и увольняется, идет для другую работу или весь уезжает за рубеж (сиречь умирает) и больше продолжать и помогать план не может. В результате, начинание сталкивается с порядочный проблемой: лупить программа, с которой привык корпеть круг и подобной на рынке не встречать, однако отрицание ее дальнейшего совершенствования и поддержки. Данная программа начинает резко устаревать. Начало, в ней, оказывается, вышли каких-то возможностей, которые нужны стали после увольнения программиста, а после – она не может эффективно работать с современным оборудованием тож вообще, начинает «мешать» из-за большого количества введенной информации.   
   
Проходит вторично немного времени – от полу-года накануне 2-х лет и оказывается, что на данной программе больше нельзя трудолюбивый, так подобно она «глючит», «тормозит» и вообще перестает работать...   
   
Столкнувшись с данной проблемой, предприятие начинает приискивать нового программиста иначе компанию, которая способна привести данную программу к удовлетворяющему афера виду. Однако, как оказывается не постоянно беспричинно просто... Оказывается, большое цифра программистов, которые хоть что-нибудь умеют исполнять уехало изза рубеж. А на рынке остались те, который уехать не смог разве кому не было в этом потребности. Предприятию невыносимо повезет, если оно зараз найдет грамотного и ответственного программиста. Сиречь норма, придется перебрать 2-3 человека, вовремя, чем они найдут достойную кандидатуру. Однако, грамотные программисты дешево не стоят и постоянно хотят перспектив. Поэтому, ежели вы не проворно развивающееся программное предприятие, верно кроме не так уж и много платите, то придет момент, сколько известный программист уйдет тоже. И еще начинается всегда вновь: 2-3 безответственных программиста, потом одиноко профессиональный и виновный, какой 2-3 месяца будет обдумывать в путь дела и помощью 2-3 года уйдет...   
   
Вот, почему, предприятия, которые работают долго и успешно на рынке, в результате приходят к выводу, который для дальнейшего совершенствования программ нуждаться нанять компанию-разработчик.   
   
Компании-разработчики   
   
Казалось желание, истинный запас – найти компанию для дальнейшей разработки программы. Только, оказывается не совершенно так просто... Так как на рынке большее наличность компаний существует с одной целью – заработать. Такие компании ужасно умело «раскручивают» на довольно большие финансы, но при этом донельзя долго (иногда, накануне бесконечности) делают намерение и казаться не выпускают новую версию данной программы. Мне известны проекты, в которых подобные компании «разводили» афера на пол-миллиона – много долларов вместо выдавая (через год-два) полу-фабрикат, кто не может трудиться в реальной обстановке.   
   
Чистый уберечься от таких компаний? Конечно никак! От этого вышли защиты, нагрузиться только советы:   
   
- Не начинайте подвизаться с компанией, даже, казалось желание надежной, моментально над миллионным проектом, начинайте с меньшего – от нескольких тысяч предварительно пару десятков тысяч.   
   
- Посмотрите, который может предоставить данная компания.   
   
- Разбейте работу на этапы и ставьте пред компанией четкие сроки.   
   
- Обязательно, контролируйте выполненную работу.   
   
- Кстати присылайте найденные ошибки и замечания.   
   
- Посмотрите насколько проворно исправляются ошибки. Успевает ли компания решить большинство ошибок в течении дня – двух либо испраление каждой ошибки длится недели – месяцы.   
   
Если компания выполнила работу в срок и качественно, мгновенно исправляет ошибки, а беспричинно же предоставляет качественную поддержку, тогда можете переходить к следующему этапу, по стоимости, дозволительно и большей, чем прежний, только не спешите зараз просаживать миллион...   
   
   
Преимущества и недостатки компании-разработчика накануне отдельным разработчиком   
   
Ныне, перечислим преимущества и недостатки компании-разработчика пред отдельным разработчиком.   
   
Преимущества компании-разработчика предварительно отдельным разработчиком:   
   
- Компания может «влачить» большие и бесконечно большие проекты. Изолированный же разработчик крупный план может не осилить физически.   
   
- В компании, как положение, работает разряд людей с различным образованием, тем самым дополняя и развивая знания друг-друга. В компании-разработчике переплитаются знания людей различных школ. Частичный же разработчик варится в своем соку. Основной начало знаний у него - книги и интернет.   
   
- Стандартизация исходного текста в компнии значительно выше, чем у отдельного разработчика, т.к. в компании работает группа разработчиков.   
   
- Технически, компании выше оснащены, чем одиноко разработчик.   
   
- Источников информации у компании больше, чем у отдельного разработчика. А это отражается на результате – разрабатываемой программе.   
   
- У компании значительно выше испытание работы с различными проектами, чем у отдельного человека.   
   
- В компаниях больше направлений развития программных средств.   
   
- Общество может предоставить комплексный подход быть наличии специалистов различных направлений.   
   
- Однако, который тратится сообразно договору с компанией соглашаться в затраты. В то срок, вдруг особый программист чаще только работает на зарплату.   
   
- Резвость разработатки компании выше, чем у отдного человека, т.к. позволительно подключать к проекту нескольких человек.   
   
- Разрабатывая программный изделие, общество тестирует его и пишет документацию. Разобщенный же разработачик почасту ленится это делать. А когда не ленится и пытается строчить документацию или тестировать, то развитие программного продукта временно приостанавливается (на время написания документации иначе тестирования).   
   
- Общество не уволится.   
   
- Компания не умрет и ее не передет автобус.   
   
- Общество не заболеет и по этой причине не приостановит поддержку.   
   
- В компании навеки будут человек, которые смогут продолжить дело.   
   
- Общество берет для себя головную мука сообразно поиску высоко-квалифицированных и ответственных программистов.   
   
- Компания следит за технологиями и тенденциями развития программного обеспечения.   
   
   
Недостатки компании-разработчика пред отдельным разработчиком:   
   
- изолированный разработчик обходится дешевле, т.к. у него пропали необходимости снимать помешение, платить коммунальные платежи, перевелись необходимости в рекламе и в других издержках, присутствующих в любом предприятии. Компании же должен оплачивать арендные платежи, налоги, коммунальные платежи, зарплату (а у программистов она начинать безгранично большая) и т.д.   
   
- программист-одиночка легче идет для уступки предприятию, т.к. самолично отвечает за свое благосостояние. Компания-разработчик не может позволить себе начинать нередко на уступки в убыток компании, беспричинно вдруг это приведет к ее банкротству.   
   
- одинокий разработчик может неутомимо присутствовать на заданном предприятии, работая для нем, подобно товарищ, а компания не может такого позволить. Даже предоставляя человека для обслуживания предприятия, общество дата через времени должна звать его в офис, обучать.   
   
   
Почему компании-разработчики не любят реинжиниринг   
   
Не море компаний реально занимается реинжинирингом программ. Коль Вы закажете реинжиниринг, то вероятней всего Вам скажут: «легче разработать недавний программный изделие» и пойдут именно этим путем. В результате Вы получите другую программу, которая может, решит те проблемы, которые были, но которая уже, возможно, довольно иметь новыми проблемами... И не непременно программного решения...   
   
Почему же так не добром компании берутся после реинжиниринг?   
   
Вот они причины:   
   
- Программисты не любят разбираться в чужом исходном тексте. Это всетаки равно, сколько разбираться в каракулях, написанных другим человеком (и зачастую левой ногой).   
   
- Реинжиниринг чаще только дороже разработки нового программного обеспечения. Т.к. требуется переломить ограничения предыдущих версий, только при этом исполнять совместимость по возрастанию версий. Т.е. Предоставить мочь конвертировать данные из старых версий в новую.   
   
- Реинжиниринг не может исполнять программист низкой и средней квалификации. Даже профессионалы почасту не могут качество реализовать его. Ради грамотного реинжиниринга нужны эксперты - программисты с большим опытом переделки программ и знанием различных технологий.   
   
- Исправлять чужую программу - большая залог, т.к. дозволительно не заметить разве не понять назначение каких-то алгоритмов, реализованных предыдущим программистом.   
   
- Программисту может понадобиться разбираться с технологиями, с которыми он не работает, только которые используются в программе.   
   
   
Рентабельность реинжиниринга   
     
   
Чаще всего, реинжиниринг программ обходится дороже, чем разработка программы. Причиной этого является то, что нужно соблюдать совместимость новой версии со старой alias же реализовывать конвертер старых данных в новые, а так же обязанность обходить ограничения, навязанные предыдущими версиями программ.   
   
Рассмотрим два примера реинжиниринга из жизни.   
   
1-й метонимия: Для одном крупном предприятии с большим количеством филиалов работала список, разработанная штатным программистом. Для некотором этапе, определенный программист не смог продолжать работу. В результате, на предприятии было 2 версии программы: одна старая разновидность, работающая на BDE и одна новая, однако не прежде конца работающая и доступ к данным в которой был все другой: компоненты прямого доступа. Старую версию пытались установить на филиалах, однако без успешно, а в центральном офисе она работала с большими ошибками. Из-за чего, возникали большие очереди из заказчиков и в результате, компания терпела большие убытки. Программа была разработана для Delphi, с использованием сервера базы данных Interbase 6. Таблиц в программе было 10-11 штук, а хранимых процедур и триггеров практически не использовалось.   
   
Задача: Разработать новую версию программы в которой бы были реализованы новые потребности компании, исправлены ошибки, возникающие в центральном офисе и на филиалах и которая бы смогла работать для филиалах. Беспричинно же гордо, для программа борзо работала и не создавалась очередь из заказчиков. Предусмотреть значительно большой сервис, чем вкушать в данной программе, а в дальнейшем обеспечить систему безопасности на должном уровне программы и мена данными между филиалами.   
   
Решение: Технология построения первичного приложения весь удовлетворяет всем текущим и будующим потребностям, следовательно изменять ни способ разработки, ни базу данных вышли необходимости. Таблиц в проекте не много, форм тоже, следовательно, позволительно попробывать не создавать программу заново (преимущественно, учитывая, что программа уже работает), а предпринимать за реинжиниринг программы. Исходный текст программы написан сравнительно грамотно (хотя и было много замечаний), поэтому полностью переписывать текст не пришлось.   
   
В данном проекте реинжиниринг прошел полностью успешно. И программа пошла на дальнейшее развитие.   
   
2-й образчик: Наедине институт более 10 лет разрабатывал программу расчета, CAD-систему. Список была написана одним инженером, какой сам изучил Delphi и написал программу, взяв алгоритмы из программы на Fortran. В качестве базы данных использовались dbf-файлы. Исходный текст программы написан много плохо, без форматирования, без наименования компонент человеческими названиями (названия, зачастую вместе не изменялись и оставлялись такими, ровно назначал Delphi). Опричь того, порядок состояла из ряда dll (на каждую форму), исходный текст которых находился в различных каталогах, а файлы юнитов назывались одинаково. Проекты чертежей хранились в отдельных каталогах отдельных баз данных.   
   
Командировка: Привести программу к коммерческому виду. Организовать систему защиты от копирования. Организовать систему безопасности для современном уровне. Переделать базу данных для Firebird. Организовать возможность импорта/экспорта информации. Увеличить возможности графического редактора (примем, откат изменений). А так же многое другое такого же типа.   
   
Приговор: Исходный текст пришлось полностью переформатировать. Проекты соединять в соло exe-файл, а одинаковые юниты удалять. Пришлось построить схему базы данных. В результате оказалось, что база данных избыточная, а конструкция безграмотно составлена. Систему от копирования организовали. Только перевод в Firebird оказался практически не возможным, экономически не выгодным. Программа непрерывно сбоила. Надежность ее была непроходимо низкая.   
   
В результате получилсь почти такой график рентабельности обслуживания+разработки программы (по вертикали - в тысячах $, сообразно горизонтали - в количестве компьютеров, реально работающих с программой):   
   
Из графика видим, который на начальном этапе, реинжиниринг программы обходится дешевле. Но, в процессе эксплуатации, предприятие начало желание терять огромные бумажка из-за дрянной работы программы.   
   
Данная способ не работала нигде. Следовательно мы посчитали, что в данном случае полная переделка программы оказалась бы более выгодной в результате, чем реинжиниринг программы.   
   
Перемена программы стоит для начальном этапе значительно больше, только в результате получается стабильно работающий программный работа и с гораздо более дешевым обслуживанием.   
   
О авторе   
   
   
Специалисты компнии К2Р занимаются разработкой программного обеспечения много лет. Мы навсегда стремились успевать идеального программного решения. Для того, чтобы успевать достойного уровня программного обеспечения нам приходилось много однажды переменять программы. В наших программых мы испробывали безвыездно, испытав на себе различные технологии. Таким образом, сформировался запевало и самый основной попытка переделки программ.   
   
Со временем, нашим опытом воспользовалось строй достаточно крупных предприятий для реинжиниринга программного обеспечения. Тем самым, мы увеличили и укрепили опыт в этом не простом и тяжелом деле.   
   
Приходя на предприятие сегодня, мы не лишь реализуем первичные пожелания заказчика, но и даем советы сообразно дальнейшему развитию программы.   
   
Беспричинно будто, в нашей компании кипа направлений производства, то сиречь обыкновенный, заказчики начинают с нами помогать в 2-5 различных направлениях.   
   
Наша идеал – не токмо заработать деньги, только и успевать идеала в разработанных нами программах. Обеспечив, тем самым, успех и процветание наших партнеров.
Записан
Web-programmer