Разработка программного обеспечения

Поделись знанием:
Перейти к: навигация, поиск
Разработка программного обеспечения
Процесс разработки ПО
Шаги процесса

Анализ • Проектирование • Программирование • Документирование • Тестирование

Модели

Итеративная • Спиральная • Каскадная • V-Model • Dual Vee Model

Методологии

Agile (XP, Lean, Scrum, FDD и др.) • Cleanroom • OpenUP • RAD • RUP • MSF • DSDM • TDD

Сопутствующие дисциплины

Конфигурационное управление • Управление проектами • Управление требованиями

Разрабо́тка програ́ммного обеспе́чения (англ. software development) — деятельность по созданию нового программного обеспечения[1].

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





Сложность разработки ПО

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

Процесс и методология

Основная статья: Процесс разработки программного обеспечения

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

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

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

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

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

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

Проблемы разработки ПО

К:Википедия:Статьи без источников (тип: не указан)

Наиболее распространёнными проблемами, возникающими в процессе разработки ПО, считают:

  • Недостаток прозрачности. В любой момент времени сложно сказать, в каком состоянии находится проект и каков процент его завершения.
    Данная проблема возникает при недостаточном планировании структуры (или архитектуры) будущего программного продукта, что чаще всего является следствием отсутствия достаточного финансирования проекта: программа нужна, сколько времени займёт разработка, каковы этапы, можно ли какие-то этапы исключить или сэкономить — следствием этого процесса является то, что этап проектирования сокращается.
  • Недостаток контроля. Без точной оценки процесса разработки срываются графики выполнения работ и превышаются установленные бюджеты. Сложно оценить объём выполненной и оставшейся работы.
    Данная проблема возникает на этапе, когда проект, завершённый чуть более чем наполовину, продолжает разрабатываться после дополнительного финансирования без оценки степени завершённости проекта.
  • Недостаток трассировки.
  • Недостаток мониторинга. Невозможность наблюдать ход развития проекта не позволяет контролировать ход разработки в реальном времени. С помощью инструментальных средств менеджеры проектов принимают решения на основе данных, поступающих в реальном времени.
    Данная проблема возникает в условиях, когда стоимость обучения менеджмента владению инструментальными средствами сравнима со стоимостью разработки самой программы.
  • Неконтролируемые изменения. У потребителей постоянно возникают новые идеи относительно разрабатываемого программного обеспечения. Влияние изменений может быть существенным для успеха проекта, поэтому важно оценивать предлагаемые изменения и реализовывать только одобренные, контролируя этот процесс с помощью программных средств.
    Данная проблема возникает вследствие нежелания конечного потребителя использовать те или иные программные среды. Например, когда при создании клиент-серверной системы потребитель предъявляет требования не только к операционной системе на компьютерах-клиентах, но и на компьютере-сервере.
  • Недостаточная надёжность. Самый сложный процесс — поиск и исправление ошибок в программах на ЭВМ. Поскольку число ошибок в программах заранее неизвестно, то заранее неизвестна и продолжительность отладки программ и отсутствие гарантий отсутствия ошибок в программах. Следует отметить, что привлечение доказательного подхода к проектированию ПО позволяет обнаружить ошибки в программе до её выполнения. В этом направлении много работали Кнут, Дейкстра и Вирт. Профессор Вирт при разработке Паскаля и Оберона за счет строгости их синтаксиса добился математической доказуемости завершаемости и правильности программ, написанной на этих языках.
    Данная проблема возникает при неправильном выборе средств разработки. Например, при попытке создать программу, требующую средств высокого уровня, с помощью средств низкого уровня. Например, при попытке создать средства автоматизации с СУБД на ассемблере. В результате исходный код программы получается слишком сложным и плохо поддающимся структурированию.
  • Неправильный выбор методологии разработки программного обеспечения. Процесс выбора необходимой методологии может проблемно отразиться на всех показателях программного обеспечения - это его гибкость, стоимость и функциональность. Так называемые гибкие методологии разработки помогают решить основные проблемы, однако, стоит отметить, что и каскадная модель (waterfall) так же имеет свои преимущества. В некоторых случаях наиболее целесообразным будет применение гибридных методологий в связке Agile + каскадная модель + MSF + RUP и т.д.
  • Отсутствие гарантий качества и надежности программ из-за отсутствия гарантий отсутствия ошибок в программах вплоть до формальной сдачи программ заказчикам.
    Данная проблема не является проблемой, относящейся исключительно к разработке ПО. Гарантия качества — это проблема выбора поставщика товара (не продукта).

См. также

Напишите отзыв о статье "Разработка программного обеспечения"

Литература

  • Иан Соммервилл. Инженерия программного обеспечения = Software Engineering. — 6-е изд. — М.: «Вильямс», 2002. — С. 642. — ISBN 5-8459-0330-0.
  • Джек Гринфилд, Кит Шорт, Стив Кук, Стюарт Кент, Джон Крупи. Фабрики разработки программ (Software Factories): потоковая сборка типовых приложений, моделирование, структуры и инструменты = Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. — М.: «Диалектика», 2006. — С. 592. — ISBN 978-5-8459-1181-0.

Примечания

  1. [www.macmillandictionary.com/dictionary/british/development Development] // Macmillan Dictionary:
    the process of creating a new product or method.
  2. Программная инженерия — приложение систематического, дисциплинированного, измеримого подхода к разработке, функционированию и сопровождению программного обеспечения, а также исследованию этих подходов; то есть, приложение дисциплины инженерии к программному обеспечению (ISO/IEC/IEEE 24765-2010 Systems and software engineering — Vocabulary)

Ссылки

  • [standards.ieee.org/reading/ieee/std_public/description/se/index.html IEEE Standards Association:Software Engineering — Descriptions](недоступная ссылка с 13-11-2015 (3086 дней)) (англ.)
  • [www.sei.cmu.edu Институт программной инженерии Университета Карнеги-Меллон ] (англ.)


Отрывок, характеризующий Разработка программного обеспечения

Офицер этот был Петя Ростов.
Во всю дорогу Петя приготавливался к тому, как он, как следует большому и офицеру, не намекая на прежнее знакомство, будет держать себя с Денисовым. Но как только Денисов улыбнулся ему, Петя тотчас же просиял, покраснел от радости и, забыв приготовленную официальность, начал рассказывать о том, как он проехал мимо французов, и как он рад, что ему дано такое поручение, и что он был уже в сражении под Вязьмой, и что там отличился один гусар.
– Ну, я г'ад тебя видеть, – перебил его Денисов, и лицо его приняло опять озабоченное выражение.
– Михаил Феоклитыч, – обратился он к эсаулу, – ведь это опять от немца. Он пг'и нем состоит. – И Денисов рассказал эсаулу, что содержание бумаги, привезенной сейчас, состояло в повторенном требовании от генерала немца присоединиться для нападения на транспорт. – Ежели мы его завтг'а не возьмем, они у нас из под носа выг'вут, – заключил он.
В то время как Денисов говорил с эсаулом, Петя, сконфуженный холодным тоном Денисова и предполагая, что причиной этого тона было положение его панталон, так, чтобы никто этого не заметил, под шинелью поправлял взбившиеся панталоны, стараясь иметь вид как можно воинственнее.
– Будет какое нибудь приказание от вашего высокоблагородия? – сказал он Денисову, приставляя руку к козырьку и опять возвращаясь к игре в адъютанта и генерала, к которой он приготовился, – или должен я оставаться при вашем высокоблагородии?
– Приказания?.. – задумчиво сказал Денисов. – Да ты можешь ли остаться до завтрашнего дня?
– Ах, пожалуйста… Можно мне при вас остаться? – вскрикнул Петя.
– Да как тебе именно велено от генег'ала – сейчас вег'нуться? – спросил Денисов. Петя покраснел.
– Да он ничего не велел. Я думаю, можно? – сказал он вопросительно.
– Ну, ладно, – сказал Денисов. И, обратившись к своим подчиненным, он сделал распоряжения о том, чтоб партия шла к назначенному у караулки в лесу месту отдыха и чтобы офицер на киргизской лошади (офицер этот исполнял должность адъютанта) ехал отыскивать Долохова, узнать, где он и придет ли он вечером. Сам же Денисов с эсаулом и Петей намеревался подъехать к опушке леса, выходившей к Шамшеву, с тем, чтобы взглянуть на то место расположения французов, на которое должно было быть направлено завтрашнее нападение.
– Ну, бог'ода, – обратился он к мужику проводнику, – веди к Шамшеву.
Денисов, Петя и эсаул, сопутствуемые несколькими казаками и гусаром, который вез пленного, поехали влево через овраг, к опушке леса.


Дождик прошел, только падал туман и капли воды с веток деревьев. Денисов, эсаул и Петя молча ехали за мужиком в колпаке, который, легко и беззвучно ступая своими вывернутыми в лаптях ногами по кореньям и мокрым листьям, вел их к опушке леса.
Выйдя на изволок, мужик приостановился, огляделся и направился к редевшей стене деревьев. У большого дуба, еще не скинувшего листа, он остановился и таинственно поманил к себе рукою.
Денисов и Петя подъехали к нему. С того места, на котором остановился мужик, были видны французы. Сейчас за лесом шло вниз полубугром яровое поле. Вправо, через крутой овраг, виднелась небольшая деревушка и барский домик с разваленными крышами. В этой деревушке и в барском доме, и по всему бугру, в саду, у колодцев и пруда, и по всей дороге в гору от моста к деревне, не более как в двухстах саженях расстояния, виднелись в колеблющемся тумане толпы народа. Слышны были явственно их нерусские крики на выдиравшихся в гору лошадей в повозках и призывы друг другу.
– Пленного дайте сюда, – негромко сказал Денисоп, не спуская глаз с французов.
Казак слез с лошади, снял мальчика и вместе с ним подошел к Денисову. Денисов, указывая на французов, спрашивал, какие и какие это были войска. Мальчик, засунув свои озябшие руки в карманы и подняв брови, испуганно смотрел на Денисова и, несмотря на видимое желание сказать все, что он знал, путался в своих ответах и только подтверждал то, что спрашивал Денисов. Денисов, нахмурившись, отвернулся от него и обратился к эсаулу, сообщая ему свои соображения.
Петя, быстрыми движениями поворачивая голову, оглядывался то на барабанщика, то на Денисова, то на эсаула, то на французов в деревне и на дороге, стараясь не пропустить чего нибудь важного.
– Пг'идет, не пг'идет Долохов, надо бг'ать!.. А? – сказал Денисов, весело блеснув глазами.
– Место удобное, – сказал эсаул.
– Пехоту низом пошлем – болотами, – продолжал Денисов, – они подлезут к саду; вы заедете с казаками оттуда, – Денисов указал на лес за деревней, – а я отсюда, с своими гусаг'ами. И по выстг'елу…
– Лощиной нельзя будет – трясина, – сказал эсаул. – Коней увязишь, надо объезжать полевее…
В то время как они вполголоса говорили таким образом, внизу, в лощине от пруда, щелкнул один выстрел, забелелся дымок, другой и послышался дружный, как будто веселый крик сотен голосов французов, бывших на полугоре. В первую минуту и Денисов и эсаул подались назад. Они были так близко, что им показалось, что они были причиной этих выстрелов и криков. Но выстрелы и крики не относились к ним. Низом, по болотам, бежал человек в чем то красном. Очевидно, по нем стреляли и на него кричали французы.
– Ведь это Тихон наш, – сказал эсаул.
– Он! он и есть!
– Эка шельма, – сказал Денисов.
– Уйдет! – щуря глаза, сказал эсаул.
Человек, которого они называли Тихоном, подбежав к речке, бултыхнулся в нее так, что брызги полетели, и, скрывшись на мгновенье, весь черный от воды, выбрался на четвереньках и побежал дальше. Французы, бежавшие за ним, остановились.
– Ну ловок, – сказал эсаул.
– Экая бестия! – с тем же выражением досады проговорил Денисов. – И что он делал до сих пор?
– Это кто? – спросил Петя.
– Это наш пластун. Я его посылал языка взять.
– Ах, да, – сказал Петя с первого слова Денисова, кивая головой, как будто он все понял, хотя он решительно не понял ни одного слова.
Тихон Щербатый был один из самых нужных людей в партии. Он был мужик из Покровского под Гжатью. Когда, при начале своих действий, Денисов пришел в Покровское и, как всегда, призвав старосту, спросил о том, что им известно про французов, староста отвечал, как отвечали и все старосты, как бы защищаясь, что они ничего знать не знают, ведать не ведают. Но когда Денисов объяснил им, что его цель бить французов, и когда он спросил, не забредали ли к ним французы, то староста сказал, что мародеры бывали точно, но что у них в деревне только один Тишка Щербатый занимался этими делами. Денисов велел позвать к себе Тихона и, похвалив его за его деятельность, сказал при старосте несколько слов о той верности царю и отечеству и ненависти к французам, которую должны блюсти сыны отечества.
– Мы французам худого не делаем, – сказал Тихон, видимо оробев при этих словах Денисова. – Мы только так, значит, по охоте баловались с ребятами. Миродеров точно десятка два побили, а то мы худого не делали… – На другой день, когда Денисов, совершенно забыв про этого мужика, вышел из Покровского, ему доложили, что Тихон пристал к партии и просился, чтобы его при ней оставили. Денисов велел оставить его.
Тихон, сначала исправлявший черную работу раскладки костров, доставления воды, обдирания лошадей и т. п., скоро оказал большую охоту и способность к партизанской войне. Он по ночам уходил на добычу и всякий раз приносил с собой платье и оружие французское, а когда ему приказывали, то приводил и пленных. Денисов отставил Тихона от работ, стал брать его с собою в разъезды и зачислил в казаки.
Тихон не любил ездить верхом и всегда ходил пешком, никогда не отставая от кавалерии. Оружие его составляли мушкетон, который он носил больше для смеха, пика и топор, которым он владел, как волк владеет зубами, одинаково легко выбирая ими блох из шерсти и перекусывая толстые кости. Тихон одинаково верно, со всего размаха, раскалывал топором бревна и, взяв топор за обух, выстрагивал им тонкие колышки и вырезывал ложки. В партии Денисова Тихон занимал свое особенное, исключительное место. Когда надо было сделать что нибудь особенно трудное и гадкое – выворотить плечом в грязи повозку, за хвост вытащить из болота лошадь, ободрать ее, залезть в самую середину французов, пройти в день по пятьдесят верст, – все указывали, посмеиваясь, на Тихона.
– Что ему, черту, делается, меренина здоровенный, – говорили про него.
Один раз француз, которого брал Тихон, выстрелил в него из пистолета и попал ему в мякоть спины. Рана эта, от которой Тихон лечился только водкой, внутренне и наружно, была предметом самых веселых шуток во всем отряде и шуток, которым охотно поддавался Тихон.
– Что, брат, не будешь? Али скрючило? – смеялись ему казаки, и Тихон, нарочно скорчившись и делая рожи, притворяясь, что он сердится, самыми смешными ругательствами бранил французов. Случай этот имел на Тихона только то влияние, что после своей раны он редко приводил пленных.
Тихон был самый полезный и храбрый человек в партии. Никто больше его не открыл случаев нападения, никто больше его не побрал и не побил французов; и вследствие этого он был шут всех казаков, гусаров и сам охотно поддавался этому чину. Теперь Тихон был послан Денисовым, в ночь еще, в Шамшево для того, чтобы взять языка. Но, или потому, что он не удовлетворился одним французом, или потому, что он проспал ночь, он днем залез в кусты, в самую середину французов и, как видел с горы Денисов, был открыт ими.