Основной нашей специализацией в EDISON является разработка сложного заказного программного обеспечения на платформах Windows, Linux, MacOS и мобильных Android, iOS, Windows Phone. За время своей работы мы выполнили свыше нескольких сотен крупных проектов на самом высоком уровне качества разработки и обслуживания клиентов. К сожалению, большая часть самых интересных проектов надёжно скрыты за NDA. Но каким бы ни было разрабатываемое программное обеспечение: системное, прикладное, веб-приложение или приложение для мобильных, — общая схема разработки и ее принципы одинаковы.
В прошлой статье мы рассказали о наших принципах проектирования ПО, в этом посте перейдём непосредственно к процессу разработки в Центре разработки EDISON.
Этапы разработки программного обеспечения
В зависимости от вида, масштабов и потребностей проекта определяется порядок разработки. Он будет несколько отличаться для разработки мобильных приложений, встроенного ПО, решений для автоматизации и БД, но общая последовательность действий для создания ПО универсальна:
Новая программа для создания интро: создаем за 5 минут!
Подробно про первый и второй этапы (подготовительный и проектирование программного обеспечения) можно перечитать в прошлой статье.
Перейдём к созиданию:
- Дизайн — вторая по важности составляющая продукта после технических характеристик, влияющая на эффективность и скорость взаимодействия пользователя с ним. Требования к дизайну определяются ТЗ — как правило, важны простота, интуитивность и минимальные затраты на совершения действия (достижение результата), а также красота и соответствие стилю компании и (или) продукта.
- Код — та часть работы, которая обычно ассоциируется с разработкой ПО как таковой. Важно, чтобы код был в достаточной мере оптимизированным, лаконичным и понятным. Назначаем на подобранные под специфику задания в ТЗ языки специализирующихся на их использовании программистов.
- Тестирование. Тестирование в EDISON проводится на каждом этапе разработки ПО, включает множество тестов по плану тестирования, кастомизируемому с учётом специфики проекта на этапе составления технического задания. Результаты тестирования документируются и доступны клиенту в режиме реального времени. Оплата за продукт производится только после прохождения всех видов тестов, в том числе клиентских.
- Документирование — процедура, фиксирующая план, процесс и результат разработки программного обеспечения. Включает в себя всю исходную информацию (ТЗ, макеты), планы работ, затрат, тестирования, список задач исполнителей в каждый момент времени, отчеты о работе и так далее. Документация необходима для быстрого и точного выявления ошибок, прозрачности совместной работы, как обязательная юридическая часть договора.
Принципы разработки программного обеспечения
Важный момент для компании, занимающейся разработкой ПО, — определиться с базовыми принципами работы. У каждого разработчика свой подход, свои ценности и приоритеты. Для компании EDISON такими принципами при разработке являются:
- Ориентация на качество. Мы прилагаем все усилия, чтобы это было не избитым маркетинговым клише, а объективной реальностью. Бесперебойность работы и удовлетворенность конечным результатом обеспечивают:
- следование ГОСТам, лучшим практикам и методологиям качественной разработки (RUP, Agile),
- лучшие спецы, четкое разделение труда и хорошая мотивация срок+качество,
- отлаженная и мощная система тестирования продуктов,
- качественное и прозрачное планирование и выполнение задач, система управления разработкой и обязательность грамотного технического задания,
- документирование процесса и результата,
- гарантии на разработанные продукты, техническая поддержка и обучение пользователей,
- понятная и удобная система оплаты за разработку ПО.
- Адаптивность и гибкость. В некоторых проектах нет возможности четкой формулировки требований на этапе составления ТЗ, а иногда у клиента уже на этапе разработки программного обеспечения появляется потребность в изменениях, — мы с пониманием относимся к таким ситуациям и заранее предусматриваем их вероятность и согласовываем с клиентом условия работы при прецеденте.
Примеры реализованных EDISON проектов
Программное обеспечение для микротомографа для изучения материалов, созданного учёными Томского Государственного Университета
Томограф с микроточностью распознает внешнее и внутреннее устройство органических и неорганических объектов размером до спичечного коробка. Программа сканирует предмет, строит 3D модель, выделяет цветом участки одинаковой плотности.
Электронная библиотечная система Vivaldi
Система для контроля и учета рабочего времени «Большой Брат»
Удобный сервис для компаний, особенно использующих гибкий график работы для сотрудников, позволяющий отслеживать и контролировать реальную занятость сотрудников на рабочем месте. Система не пропустит ни одного разгильдяя. Работодателю видно, когда сотрудник пришёл на рабочее место, когда покинул, отлучался, отслеживается бездействие за компьютером и время сверхурочных работ.
Если есть сомнения, занимается ли человек работой, с любого компьютера можно получить скриншот рабочего стола. Сервис удобен и для сотрудников разных отделов: вы можете точно определить, кто из коллег сейчас доступен, а кто, например, ушёл на обед; вы можете легко сами контролировать свой свободный график, выбирая время обеда, начала и конца рабочего дня. Ну, а работодатель может сделать выводы насчёт каждого нанятого человека для повышения эффективности работы организации.
Есть замечания по нашей методологии или вы хотите поделиться своим опытом? Рады будем пообщаться в комментариях, в нашей группе в Фейсбуке или во Вконтакте.
- EdisonSoftware
- разработка
- проектирование
- веб-разработка
- Блог компании Edison
- Разработка веб-сайтов
- Проектирование и рефакторинг
Источник: habr.com
Создание собственного программного обеспечения Windows
Ежедневно каждый активный пользователь компьютера сталкивается с работой в разных программах. Они призваны облегчить работу за ПК и выполняют определенный ряд функций. Например, калькулятор подсчитывает заданные примеры, в текстовом редакторе вы создаете документы любой сложности, а через плеер просматриваете любимые фильмы или слушаете музыку. Весь этот софт был создан с помощью языков программирования, начиная от основных элементов управления, и заканчивая графическим интерфейсом. Сегодня мы бы хотели обсудить два метода собственноручного написания простых приложений для операционной системы Windows.
Создаем собственное программное обеспечение для Windows
Сейчас разработать свою программу можно и без знания языков программирования, однако для этого существует совсем мало подходящих средств, позволяющих в полной мере реализовать задуманное. К тому же сейчас на просторах интернета бесплатно доступно множество курсов по ЯП, описывающих примеры написания софта с предоставлением исходного кода. Поэтому поставленная задача вполне реализуема, нужно лишь выбрать метод, что мы и предлагаем сделать далее.
Способ 1: Программы для написания программ
Если вы интересовались созданием игр, то знаете о специальных инструментах, куда уже встроено множество компонентов и записаны основные скрипты. Юзеру остается лишь создать из этого цельную картину, систематизируя имеющиеся данные. Примерно по такому же принципу работает и ПО, позволяющее создавать собственные приложения без знания языков программирования. За пример мы взяли HiAsm, поскольку это единственное оптимальное решение с полной локализацией на русский язык.
- Сразу приступим к рассмотрению простой инструкции по созданию примитивной программы в HiAsm. Для начала перейдите по указанной выше ссылке, чтобы скачать и установить используемый сегодня инструмент.
- После запуска ознакомьтесь с представленной информацией по использованию и решению частых проблем. Сразу хотим отметить, что некоторые антивирусы распознают HiAsm как вредоносный код, блокируя запускающиеся файлы. Поэтому при возникновении неполадок рекомендуем добавить инструмент в исключения или на время выключать защиту операционной системы.
- Через меню «Файл» создайте новый проект.
























Возможностей рассмотренного инструмента хватит не только для того, чтобы создать простое графическое приложение. HiAsm вполне справляется и с гораздо сложными работами, например, созданием проигрывателя или загрузчика файлов из интернета. Конечно, здесь придется приложить намного больше усилий и выучить множество схем и встроенных скриптов.
Все это намного проще освоить, если использовать официальные ресурсы, например, форум. Там пользователи не только делятся своими работами, но и объясняют начинающим азы конструирования ПО. Тем более при возникновении вопросов ничего не мешает вам создать отдельную тему, подробно описав сложившуюся трудность.
Способ 2: Язык программирования и среда разработки
Как уже было сказано ранее, абсолютно все программы пишутся на определенном языке программирования. В некоторых сложных проектах бывает задействовано сразу несколько ЯП. Такой способ написания софта самый сложный, но при освоении одного из языков вы получаете практически безграничные возможности в кодировании программного обеспечения, утилит или отдельных скриптов.
Главная задача — определиться с языком программирования. На этот вопрос постарались дать ответ специалисты из известного обучающего сервиса GeekBrains. Всю необходимую информацию вы найдете по указанной ниже ссылке.
Теперь же давайте рассмотрим несколько вариантов обеспечения, написанного при помощи упомянутых в статье ЯП. В первую очередь затронем Python, который некоторые программисты считают самым простым языком. Чтобы на экране появилось простое графическое окно размером на весь экран, придется подключить стандартную библиотеку Tkinter и написать код такого формата:
from tkinter import *
class Paint(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
def main():
root = Tk()
root.geometry(«1920×1080+300+300»)
app = Paint(root)
root.mainloop()
if __name__ == «__main__»:
main()
Далее добавляется код, который вы видите на скриншоте ниже. Он реализует примерно такие же функции, как стандартная программа Paint.
После успешной компиляции запускается графическое окно с уже добавленными кнопками. Каждая из них отвечает за размер кисти и цвет.
Как видите, разобраться в приложениях с GUI (графическим интерфейсом) не так уж и сложно, однако сначала лучше начать с консольных скриптов и небольших программ. Освоить Python вам помогут свободные материалы, уроки и литература, которой сейчас вполне достаточно, чтобы самостоятельно изучить необходимый материал.
В приведенной статье на GeekBrains отдельное внимание уделено и C#, который называют универсальным языком программирования для тех, кто еще не определился, в какой области хочет применять свои навыки. Разработка ПО для Windows ведется в официальной среде от Microsoft под названием Visual Studio. Код внешне выглядит так, как вы видите ниже:
namespace MyWinApp
using System;
using System.Windows.Forms;
Как видите, существуют определенные различия с тем же Python. Если скопировать этот код, вставить его в IDE и скомпилировать, на экране появится простейшее графическое окно, куда уже в дальнейшем и будут прикрепляться кнопки, блоки и другие объекты.
Первый программист в мире: кто он, с чего начал путь и какую программу создал
Почему-то , когда называют слово «программист» , — в этой профессии первым делом представляется мужчина. Однако, вы удивитесь, но первый программист — это женщина. Имя первой программистки — Августа Ада Лавлейс. Она была дочерью известного поэта Гордона Байрона, родилась в Лондоне в 1815-м году. Хотя у нее и знаменитый отец, он не участвовал в ее воспитании.
Когда ей было всего 5 недель, мама и знаменитый отец разошлись , и с тех пор они так и не виделись и не общались.
С детства Ада была увлечена математикой, черчением и другими точными науками. Уже к 12-ти годам она разработала и начертила собственный летательный аппарат, который должен был работать на паровом двигателе.
Уже в 1824-м из-за своего увлечения наукой она была представлена математику Чарльзу Бэббиджу на выставке, где он представлял свой аппарат, сконструированный для автоматического расчета логарифмических и тригонометрических функций. Инструкция д ля работы того аппарата вводилась с помощью перфокарты. Сама Ада потом долгое время еще изучала данный аппарат, его назначение и работу. Так она и подружилась с данным математиком, который стал ее ментором в математической науке.
Вычислительный аппарат Бэббиджу так и не имел окончательной реализации из-за технических ограничений того времени и финансовых трудностей самого изобретателя. Но на этом он сам не остановился и решил разработать новый проект — аналитическую машину. Данная аналитическая машина и считается прародителем первого компьютера. Но сам прототип этой аналитической машины был создан уже после смерти его изобретателя.
По это й машине бы л проведе н ряд научных лекций в Турине. Было много опубликованных статей на эту тему. Одну из таких научных статей на французском языке Чарльз попросил перевести Аду на английский язык. Делая перевод , Ада настолько вдохновилась «идеей», что многие факты и алгоритмы комментировала своими мыслями.
Так получил о сь, что при переводе за счет комментариев статья увеличилась в 3 раза. При изучении перевода в комментариях было замечено большое количество «плана работы» для аналитической машины, прописанного именно программным алгоритмом. Именно эти комментарии и считаются первым программным обеспечением, созданным специально для компьютера. Сами эти программы не были применены на практике, однако именно Аде присвоен статус «первый программист в мире».
Суть в том, что з ад олго до появления прототипа компьютера, Ада сумела предположить, что будут созданы машины, которые смогут решать задачи , неподвластные человеку. И все это будет возможно простым написанием определенных алгоритмов.
Именно те комментарии Ады легли в основу современного программирования. Именно она ввела такие понятия, как команды, цикл, свойство и т. д. Это намного ускоряло передачу команды при помощи перфокарты.
Сейчас имя первой программистки носит один из языков программирования и два городка в США.
- разработал «Ассемблер»;
- разработал библиотеку подпрограмм;
- создал алгоритм, который размещал эти библиотеки в памяти и отвечал за их вывод;
- разработал принцип микропрограммирования (управление компьютер ом при помощи небольших команд);
- и др.
Первая компьютерная программа
Первую компьютерную программу написала женщина, мать троих детей и аристократка. И написала она ее еще до того, как появился первый в мире компьютер.
Княгиня Лавлейс или Ада А. Байрон-Кинг — дочь великого британского поэта лорда Байрона. Ее отец бросил ее мать еще когда она была маленькой. Мать чрезвычайно радовалась тому, что ее маленькая дочурка сильно увлеклась математикой, хотя были и попытки пойти по стопам отца и писать стихи. Однажды в 12 лет она показала матери исчерканные листки бумаги, на ней юная Ада изобразила чертеж летательного аппарата.
В 17 лет приставленная ко двору, девушка не стала искать себе ухажера, а примкнула к исследователю математику Чарьзу Бэббиджу. Ее так увлекал идея автоматический счетной машинки, которая считалась безумием в то время, что все свои силы тратила на ее проектирование. Бэббиджа вдохновляло то, что Наполеон уже заказывал нечто подобное и его придворным ученным не удалось закончить изобретение из-за развязавшейся войны.
Бэббидж придумал название для своей будущей машины и назвал ее «дифференциальной». В 1882 году ученый заинтриговал Адмиралтейство Британии и те стали спонсорами его разработок. Размер машины был огромный, она должна была занимать целую комнату и вычислять с точностью до 10-го знака дроби. За 10 лет ученый построил только один блок своего устройства.
Идея аналитической машины захватывала Бэббиджа, он по сути предложил миру схему почти современного компьютера. Центральный процессор он называл мельницей, были перфокарты, программы-инструкции. Машина состояла из множества зубчатых колес и должна была приводиться в действие паром. В 1871 году Чарльз Бэббидж умер и правительство Англии решило, что никто больше не способен изобрести подобную машину и закрыла проект.
Но тем не менее 13 июля 1843 года Ада прислала математику письмо, в нем она изложила алгоритм машинных вычислений чисел Бернулли. Ада считала, что обработка данных машиной вовсе не обязана быть аналитической или арифметической, она считала это заблуждением. Цифры машина понимает так же как и буквы или другие символы. Графиня считала, что в будущем машины смогут писать музыку и даже стихи.
У самой же было развлечение — поиск формулы, которая позволила бы всегда побеждать в тотализаторе на скачках. Ада умерла в возрасте 37 лет, прожила столько же как и ее отец и была похоронена в той же усыпальнице, что и лорд Байрон. В день ее рождения — 10 декабря, во многих странах отмечают День программиста, а в 70-е Пентагон назвал в ее честь язык программирования ADA.
Текст научной работы
Введение
Для того чтобы разобраться в эволюции ПО надо узнать что обозначает слово, которое лежит в основе ПО, а именно слово «Программа».
С греческого языка это слово можно буквально перевести как пред-запись, программа это предварительное описание некоторых предстоящих событий или действий компьютера. Программное Обеспечение (ПО) — программа/ы, которые используются для управления персонального компьютера. В IT сфере ПО часто называют словом «софт» для сокращения и упрощения произношения, а родоначальником данного сокращения является английское слово «software».
Развитие программного обеспечения
В современном мире информационные технологии стали важными помощниками в повседневной жизни человека. Когда нам нужно найти какую-либо информацию, мы уже привычно достаем смартфон или садимся за компьютер и уже через интернет с использованием поисковых систем и других служб уточняем эту информацию.
Если нам надо систематизировать или передать информацию которая у нас есть, мы также используем различные информационные технологии.
Их можно обрисовать в виде Аппаратного и Программного обеспечения.
Аппаратное обеспечение ( hardware — аппаратное обеспечение. включает в себя все физические части компьютера, но не включает информацию (данные) , которые он хранит и обрабатывает, и программное обеспечение, которое им управляет.
Программное обеспечение (англ. soft ware –программное обеспечение, сокращенно «ПО») включает в себе компьютерные программы и данные, предназначенные для решения определённого круга задач и хранящиеся на машинных носителях. Программное обеспечение представляет собой либо данные для использования в других программах, либо алгоритм, реализованный в виде последовательности инструкций для процессора.
Первый разработчик ПО
Весь софт создаётся программистами на различных языках программирования, которые предназначены для записи ПО. Самым первым программистом считается Ада Лавлейс, дочь знаменитого поэта, лорда Джорджа Байрона. В 1843 она перевела лекцию британского изобретателя Чарльза Беббиджа о созданной им вычислительной машине которую тот прочитал в университете Турина с итальянского языка на английский, при переводе текста лекции Ада Лавлейс дополнила его своими подробными комментариями, которые по объему в три раза превышали текст лекции.
Один из этих комментариев содержал набор инструкций для вычисления чисел Бернулли в отношении описанной вычислительной машины, этот набор инструкций и считается первой ПО, однако при жизни Ады Лавлейс, описанная вычислительная машина так и не была сконструирована.
Первые компьютеры и их устройство
Вся работа первых ПК определилась состоянием переключателей и реле, так компьютеру задавались и данные для обработки и программа. Однако, так невозможно было задать длинную программу, ведь количество переключателей всегда была ограничена.
Первым программируемым ПК считается Компьютер z3 созданный в 1943 году немецким ученым Конрадом Цузе.
В период с 1943 по 1945 год Конрадом Цузе для его компьютера был разработан и первый язык программирования Plankalkul, однако из-за второй мировой войны он так и не был реализован.
Так в самом начале, ПО писалось с помощью машинных кодов, числовых инструкций понятных процессору для которого пишется программа, однако написание таких программ было далеко не самым простым занятием. Для того чтобы читать некоторые данные из ячейки оперативной памяти компьютера, требовалось описать около 16 инструкций.
Эволюция написания ПО
В 50-х годах потребность в компьютерных программах возросла и они стали значительно длиннее поэтому они получили распространение ПО: сборщики программы, которые были названы ассемблерами.
Они позволили сделать программы понятнее, однако такие программы все еще зависели от центрального процессора ПК.
В 1954 году началась разработка первого языка программирования высокого уровня ”Фортран”, его 1 работающая версия была реализована в 1957 году. Языки программирования высокого уровня стали настоящим прорывом. То как работают ПО практически перестало зависеть от аппаратного обеспечения компьютера, в то же время сами языки программирования стали имитировать естественные разговорные языки. Таким образом коды программ значительно сократились, а запоминать язык программирования стало значительно проще.
Компьютерные программы имели следующие составляющие:
Первая часть — это данные, они могут храниться на компьютере или задаваться пользователем ПО.
Вторая часть — это модель обработки данных, то есть описание способы их обработки.
Третья часть — это пользовательский интерфейс, совокупность правил обмена информацией между пользователем и ПО.
История изменений составляющих компьютерных программ.
Сложность ПО постепенно увеличивалась, в итоге их стало сложно понимать даже самим программистом, поэтому в конце 60-х годов была разработана “парадигма структурного программирования” и её родоначальником стал нидерландский программист Эдсгер Дейстра. В 1968 году он опубликовал свое письмо” Оператор “go-to” “считается вредным. В этом письме он призвал программистов отказаться от использования в программах оператора безусловного перехода. Что же это значит. Программа представляет собой набор инструкций для управления компьютером, эти инструкции обычно выполняются в том порядке в котором они записаны, с помощью оператора безусловного перехода, программист может продолжить исполнение софта с любой инструкции, не обязательно со следующей такие программы было сложно читать.
При отказе от оператора безусловного перехода, инструкции в компьютерных программах стали выполняться всегда последовательно.
Также теперь работу ПО стало возможным описать в виде блок-схемы с одной точки начала и одной точкой окончания и элементами нескольких типов. Еще больше упростило структурное программирование использование процедур и функций.
Теперь если в программе необходимо было несколько раз выполнять одни и те же вычисления или же обработать одним и тем же способом разные данные, стала необязательным для этого несколько раз описывать одни и те же инструкции, теперь их можно было объединить функцию или процедуру, которую можно вызывать когда это необходимо.
Еще одним шагом в усовершенствовании структурного программирования стало появление структур, теперь простые данные стали образовывать более сложные. Так например из трех чисел которые обозначают количество часов минут и секунд стало возможным образование единой структурой, времени.
Данные в различных структурах нужно обрабатывать по-разному для этого необходимо описывать свои процедуры и функции, так в программировании появилась еще одна парадигма “объектно-ориентированное программирование (ООП)” при таком программирование структуры и функции для их обработки объединены в класс, а программа это набор взаимодействующих объектов принадлежащих к различным классам. Помимо этого ООП реализовала еще целый ряд своих принципов. На месте не стоял и пользовательский интерфейс программ. Если в начале данные задавались через систему переключателей, то после того как компьютер стал доступен большему количеству людей, изменился и способ обмена информацией между программой и пользователем. Так сначала появился текстовый интерфейс, в нем компьютер выводил информацию на экран в текстовой форме, также и пользователь задавал команды компьютеру с клавиатуры в текстовой форме.
Позже на смену текстовому интерфейсу пришел привычный нам графический пользовательский интерфейс, команды компьютеру стали отдаваться с помощью различных элементов управления, например кнопок, полей ввода, ползунков и других. Эти элементы управления активируются с помощью мыши и клавиатуры и обычно достаточно просты и интуитивно понятны. Были сформулированы некоторые требования к пользовательским интерфейсом программ, например такие, как “дружественность”, “дружественным” интерфейсом называется такой пользовательский интерфейс через который пользователь может максимально быстро научиться работать с программой допуская при этом минимальное количество ошибок. Так как сегодня пользователи компьютерных программ это обычные люди, при написании программ обычно учитывается возможность каких-либо ошибок со стороны пользователя.
Так если пользователь задаст программе некорректные данные то она, скорее всего сообщит ему о некорректном вводе данных и предложит проверить их на правильность, а не завершит свое исполнение ошибкой как это обычно бывало раньше. Также сейчас некоторые ПО помимо графического интерфейса могут поддерживать голосовое управление или даже управление через движение пользователя.
Язык для создания программ АДА
Удивительное событие произошло в 1978 году в ходе проведения эксперимента на вычислительной машинке БЭСМ-6. На испытаниях, проходивших в Ирландии (Дублин), программисты закодировали программу Ады на Фортране. В процессе отладки выявили по одной опечатке и ошибке. При этом программа Ады Августы Лавлейс нуждалась в минимальном количестве перфокарт, а также способствовала экономии памяти.
Ада Августа Лавлейс умерла в 36-летнем возрасте и о её работах забыли практически на 130 лет. Однако с началом развития компьютеров, в 1980 году, её имя вновь всплыло и стал использоваться язык программирования на основе её заметок. Более того, в Соединённых Штатах Америки был создан язык программирования АДА, который был назван как раз таки в честь самой первой программистки в мире. При этом день рождения Ады (10 декабря) сегодня называют Днём программистов, и отмечается он во всём мире.
Ада Лавлейс занималась изучением вычислительной машины Чарльза Бэббиджа.
В 1843 году Ада Лавлейс разработала первые программы для аналитической машины вычислительной машины Чарльза Бэббиджа, и заложила теоретические основы программирования. Она впервые ввела понятие «цикл операции». Она высказала главную мысль, что аналитическая машина может решать задачи, которые из-за трудности вычислений практически невозможно решить вручную.
Первая программа включала условную программу управления, изобретенную Баббеджем, повторение циклов операций. Ада написала первый учебник по программированию.
Источник: fobosworld.ru