Реинжиниринг программного заклад, разработка программ и веб-сайт

Loneliness, Depression & Relationship Forum

Help Support Loneliness, Depression & Relationship Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
K

ktwo_rus

Guest
Компилятор: Рудюк Сергей Анатольевич
Интернет-адрес: http://corp2.net
E-Mail: [email protected]
Оригинал статьи: http://corp2.net/pages/159/900fb63295a39b0f162b2f1d0de88f5c/index.html

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

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

Разнообразие программного обеспечения куда больше, чем технических решений. Беспричинно как они решают самые различные задачи, начиная от связи с оборудованием (драйвера) и заканчивая автоматизацией бухгалтерского учета либо 3-х мерными играми.

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

Ради решения данной проблемы начинание, как обычай, находит программиста, что пытается реализовать данную программу. Проходит время, список внедряется для предприятии и с ней начинает заниматься большое число персонала. Привыкнув к программе, сотрудники уже не представляют себя без столь удобного инструмента, вроде программа. Проходит вторично век, а программист берет и увольняется, идет на другую работу или весь уезжает за рубеж (alias умирает) и больше продолжать и поддерживать проект не может. В результате, афера сталкивается с большой проблемой: лупить список, с которой привык трудиться персонал и подобной на рынке не встречать, но пропали ее дальнейшего совершенствования и поддержки. Данная программа начинает резко устаревать. Вначале, в ней, оказывается, недостает каких-то возможностей, которые нужны стали впоследствии увольнения программиста, а потом – она не может эффективно подвизаться с современным оборудованием или весь, начинает «тормозить» из-за большого количества введенной информации.

Проходит еще малость времени – через полу-года предварительно 2-х лет и оказывается, который для данной программе больше нельзя трудиться, беспричинно подобно она «глючит», «тормозит» и весь перестает работать...

Столкнувшись с данной проблемой, дело начинает искать нового программиста alias компанию, которая способна привести данную программу к удовлетворяющему афера виду. Все, как оказывается не однако беспричинно просто... Оказывается, большое состав программистов, которые хотя что-нибудь умеют исполнять уехало следовать рубеж. А на рынке остались те, который уходить не смог либо кому не было в этом потребности. Предприятию сильно повезет, буде оно зараз найдет грамотного и ответственного программиста. Сиречь принцип, придется перебрать 2-3 человека, вовремя, чем они найдут достойную кандидатуру. Все, грамотные программисты дешево не стоят и неустанно хотят перспектив. Поэтому, если вы не спешно развивающееся программное дело, правда кроме не так уж и много платите, то придет момент, сколько данный программист уйдет тоже. И паки начинается совершенно еще: 2-3 безответственных программиста, потом нераздельно профессиональный и виновный, кто 2-3 месяца довольно соображать в путь дела и помощью 2-3 возраст уйдет...

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

Компании-разработчики

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

Ровно уберечься от таких компаний? Ейей казаться! Через этого вышли защиты, глотать один советы:

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

- Посмотрите, что может предоставить данная компания.

- Разбейте работу на этапы и ставьте перед компанией четкие сроки.

- Непременно, контролируйте выполненную работу.

- Прежде присылайте найденные ошибки и замечания.

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

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


Преимущества и недостатки компании-разработчика пред отдельным разработчиком

Сейчас, перечислим преимущества и недостатки компании-разработчика накануне отдельным разработчиком.

Преимущества компании-разработчика пред отдельным разработчиком:

- Компания может «желать» большие и крайне большие проекты. Одинокий же разработчик крупный проект может не осилить физически.

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

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

- Технически, компании выше оснащены, чем единодержавно разработчик.

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

- У компании значительно выше попытка работы с различными проектами, чем у отдельного человека.

- В компаниях больше направлений развития программных средств.

- Общество может предоставить комплексный подход около наличии специалистов различных направлений.

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

- Поспешность разработатки компании выше, чем у отдного человека, т.к. позволительно подключать к проекту нескольких человек.

- Разрабатывая программный продукт, компания тестирует его и пишет документацию. Обособленный же разработачик многократно ленится это делать. А коль не ленится и пытается рисовать документацию сиречь тестировать, то развитие программного продукта временно приостанавливается (на сезон написания документации тож тестирования).

- Компания не уволится.

- Общество не умрет и ее не передет автобус.

- Общество не заболеет и сообразно этой причине не приостановит поддержку.

- В компании всегда будут люди, которые смогут продолжить дело.

- Компания берет для себя головную боль сообразно поиску высоко-квалифицированных и ответственных программистов.

- Общество следит после технологиями и тенденциями развития программного обеспечения.


Недостатки компании-разработчика пред отдельным разработчиком:

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

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

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


Почему компании-разработчики не любят реинжиниринг

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

Почему же так не охотно компании берутся изза реинжиниринг?

Вот они причины:

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

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

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

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

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


Рентабельность реинжиниринга


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

Рассмотрим два примера реинжиниринга из жизни.

1-й пример: Для одном крупном предприятии с большим количеством филиалов работала список, разработанная штатным программистом. Для некотором этапе, данный программист не смог продолжать работу. В результате, на предприятии было 2 версии программы: одна старая версия, работающая для BDE и одна новая, но не прежде конца работающая и доступ к данным в которой был сполна второй: компоненты прямого доступа. Старую версию пытались установить на филиалах, однако без успешно, а в центральном офисе она работала с большими ошибками. Из-за чего, возникали большие очереди из заказчиков и в результате, компания терпела большие убытки. Список была разработана для Delphi, с использованием сервера базы данных Interbase 6. Таблиц в программе было 10-11 штук, а хранимых процедур и триггеров практически не использовалось.

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

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

В данном проекте реинжиниринг прошел весь успешно. И программа пошла для дальнейшее развитие.

2-й прообраз: Только институт более 10 лет разрабатывал программу расчета, CAD-систему. Программа была написана одним инженером, какой самовольно изучил Delphi и написал программу, взяв алгоритмы из программы на Fortran. В качестве базы данных использовались dbf-файлы. Исходный текст программы написан ужасно плохо, без форматирования, без наименования компонент человеческими названиями (названия, зачастую вообще не изменялись и оставлялись такими, будто назначал Delphi). Помимо того, система состояла из ряда dll (на каждую форму), исходный текст которых находился в различных каталогах, а файлы юнитов назывались одинаково. Проекты чертежей хранились в отдельных каталогах отдельных баз данных.

Задача: Привести программу к коммерческому виду. Организовать систему защиты от копирования. Организовать систему безопасности на современном уровне. Переделать базу данных на Firebird. Организовать мочь импорта/экспорта информации. Увеличить возможности графического редактора (предположим, откат изменений). А беспричинно же многое другое такого же типа.

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

В результате получилсь приблизительно такой график рентабельности обслуживания+разработки программы (сообразно вертикали - в тысячах $, сообразно горизонтали - в количестве компьютеров, реально работающих с программой):

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

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

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

О авторе


Специалисты компнии К2Р занимаются разработкой программного обеспечения масса лет. Мы навеки стремились добиться идеального программного решения. Для того, чтобы успевать достойного уровня программного обеспечения нам приходилось воз раз переделывать программы. В наших программых мы испробывали безвыездно, испытав на себе различные технологии. Таким образом, сформировался инициатор и очень главный попытка переделки программ.

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

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

Так подобно, в нашей компании кипа направлений производства, то якобы норма, заказчики начинают с нами сотрудничать в 2-5 различных направлениях.

Наша стремление – не токмо заработать капитал, только и добиться идеала в разработанных нами программах. Обеспечив, тем самым, победа и процветание наших партнеров.
 

Latest posts

Back
Top