В мире Java библиотека JAXB уже давно (как сообщает нам wikipedia с 2006 года) и по праву является распро­стра­ненным и очень удобным инстру­ментом для XML-cериа­ли­зации объектов и даже объектных моделей. В интернете есть масса примеров и целые сторонние библиотеки, постро­енные на JAXB — взять хотя бы docx4j (http://www.docx4java.org/trac/docx4j), которая работает с моделью документа в Open-XML формате. Так же много инфор­мации можно почерпнуть у самих авторов JAXBhttps://jaxb.java.net/. Без труда найдутся в интернете прекрасные готовые исходники для генерации классов Java по XML-модели. Примеров масса и можно увлека­тельно провести время, изучая возмож­ности JAXB.

Но практи­чески все примеры приво­дятся для одного простого класса, который сериа­лизуют в XML, что называется, с нуля. А что делать, если уже есть некая готовая объектная модель со сложной струк­турой насле­до­вания и зависи­мостей, которые запрещены к изменениям? Где следует применить JAXB-аннотации? Куда их добавить — непосред­ственно в каждый из доброй полторы сотни классов, либо в один базовый? Если в каждый класс иерархии, то целесо­об­разна ли такая переделка с точки зрения объема выпол­ненной работы? Если в один-два базовых, то будет ли вообще работать XML-сериа­ли­зация? Да, действи­тельно много вопросов, и посмотрим, как JAXB с этим справ­ляется для конкретной задачи проекта.

Например, есть модель документа: Root – некий корневой элемент, контейнер для других элементов. Он может содержать Paragraph, который также является контей­нером для элементов Text. В свою очередь все элементы являются контей­нерами атрибутов, например у Paragraph это Alignment и Indent, у Text – Bold, Italic, FontName, FontSize и Color. Конечно, это неполный перечень, но в качестве примера доста­точный. Кроме того, условием для контей­неров элементов – Root и Paragraph, является то, что они могут содержать неогра­ни­ченное количество подэле­ментов, т.е. Root содержит много Paragraph, а Paragraph — много Text. Но контейнеры атрибутов могут содержать каждый атрибут в единственном экзем­пляре. Например, зачем элементу Text несколько FontName или Bold?

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

Начнем с базового абстрактного атрибута:

 

Обязан­ности:

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

Требо­вания:

  • Опыт работы в марке­тинге или управ­лении проектами от 2 лет
  • Хороший разго­ворный и письменный английский язык, опцио­нально немецкий
  • Знание инстру­ментов интернет-маркетинга
  • Умение грамотно поставить задачу группе програм­мистов, SEO writers
  • Личные качества: анали­ти­ческие способ­ности, умение работать самосто­я­тельно и в команде, креатив­ность, нацелен­ность на высокий результат

Условия:

  • Преми­ро­вание при выпол­нении плана
  • % от продаж
 

Тип занятости:

  • Удалённая работа
  • Полная занятость, полный день
  • Коман­ди­ровки в Германию, Мюнхен.
  • Участие в между­на­родных выставках

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

  • Заказное ПО. Продукт разра­ботки предна­зна­чается опреде­ленному заказчику, который финан­сирует процесс разра­ботки и определяет требо­вания к программному продукту. По испол­нении заказа все права на продукт переходят к заказчику, который в будущем для совер­шен­ство­вания данного программного продукта может привлечь либо прежнего, либо любого другого исполнителя.
  • Инвести­ци­онное ПО. Отличается от заказного отсут­ствием конкретного заказчика (хотя разра­ботка может вестись и на средства, выделенные внешним инвестором). Обычно в этом случае права на программный код сохраняет испол­нитель. Благодаря этому создаются условия для работы по посто­янному совер­шен­ство­ванию данного ПО, выпуска его новых версий и обнов­лений для действующих. Вероятна и органи­зация непре­рывно работающей службы техни­ческой поддержки. Коммер­ческий эффект дости­гается обычно путем продажи программного продукта заинте­ре­со­ванным пользо­ва­телям. Почти все программные продукты, представ­ленные на свободном рынке относятся к данному типу ПО.
  • Игровое ПО. Это условное название, поскольку большинство компью­терных игр можно отнести скорее к инвести­ци­онному типу ПО. Но в целом данный тип ПО харак­те­ри­зуется тем, что в процессе его разра­ботки отсут­ствует (или до минимума ограничена по сроку) фаза сопро­вож­дения, что сильно влияет на экономику процесса разра­ботки и его организацию.
  • Встро­енное ПО. Это прикладное ПО, созда­ваемое под конкретные техни­ческие изделия и постав­ляемое вместе с ними. Сопро­вож­дению, как правило, не подлежит, но харак­те­ри­зуется повышенными требо­ва­ниями к качеству, надеж­ности и безот­каз­ности. Объяс­няется это тем, что отзыв партии изделий произ­во­ди­телем – ситуация очень непри­ятная, несущая серьезные прямые коммер­ческие и репута­ци­онные потери для произ­во­дителя изделий.

Этапы разра­ботки ПО

Любой процесс, в том числе и разра­ботка ПО состоит из какого-то количества опреде­ленных этапов. Процесс разра­ботки ПО отличается тем, что обычно к работам над следующим этапом приступают, когда уровень готов­ности преды­дущего достигает около 80–90%. В наибольшей степени данное обсто­я­тельство относится к разра­ботке требо­ваний, поскольку именно в них какой-то уровень неопре­де­лен­ности иногда сохра­няется практи­чески до завер­шения проекта. Этот момент является серьезным фактором риска, и должен непре­рывно контролироваться.

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

  1. Подго­товка. Опреде­ление общей концепции системы, востре­бо­ван­ности, реали­зу­е­мости и т.д.
  2. Разра­ботка конкретных требо­ваний к программному продукту.
  3. Разра­ботка архитектуры. Целью данного этапа является создание физической и логической архитектуры верхнего уровня, способной выполнить все требо­вания к разра­ба­ты­ва­емому программному продукту. На данном этапе возможна коррекция концепции, перво­на­чального техни­че­ского решения и требо­ваний. По его завер­шении, возможно начало парал­лельных работ над созданием следующей версии данного программного продукта.
  4. Этап поставки. Может включать несколько проме­жу­точных этапов, в зависи­мости от масштаб­ности проекта. На данной стадии проект приоб­ретает форму относи­тельно готового программного продукта.
  5. Опытная эксплу­а­тация. Продол­жи­тель­ность данного этапа также зависит от масштаб­ности проекта. На этом этапе выявляются и устра­няются недочеты, баги, уязви­мости и т.д. Прове­ряется качество работы ПО в различных условиях эксплу­а­тации, совме­сти­мость с другими программными продуктами и т.д. Данный этап можно также назвать этапом основной отладки и оптими­зации программного продукта.
  6. Этап коммер­ческой реали­зации, промыш­ленной эксплу­а­тации и т.д. Сопро­вож­дение и техни­ческая поддержка.
  7. Вывод из эксплу­а­тации. Прекра­щение техни­ческой поддержки и выпуска обновлений.
  8. Завер­шение работ.

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

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

 Под термином «корпо­рация» обычно понимают очень крупную компанию, количество сотруд­ников которой исчис­ляется в тысячах, разбро­санную геогра­фи­чески и занима­ю­щуюся бизнесом в нескольких отраслях. Понятно, что к инфор­ма­ци­онным системам (ИС), созда­ваемым для обслу­жи­вания нужд подобных бизнес-структур, предъ­яв­ляются особые требования.

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

Читать далее

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

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

Читать далее

С 15.05.2017 по 15.07.2017 наша компания совместно с фирмой ООО «Финансово-анали­ти­ческие системы» из Екате­рин­бурга проводит кампанию по тести­ро­ванию компо­ненты программного обеспе­чения Scell.

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

Призы

3 самых активных участника получат вознаграждения.

  • 1е место — iPhone 7 Plus 32GB или Samsung Galaxy S8 64GB (по желанию победителя)
  • 2ое место — Huawei P10 64GB
  • 3е место — Honor 6X 64GB

Вручение призов будет прово­диться фирмой ООО «Финансово-анали­ти­ческие системы», для участ­ников не из Екате­рин­бурга призы высылаются почтой.

10 Ноября

В августе 2009 мы выиграли тендер на обслу­жи­вание проекта “Pflege und Weiterentwicklung Textsystem_RP” министерства юстиции Rheinland-Pfalz. И уже в ноябре 2009 получили право на работу с этим проектом.

Наша фирма учавствует в между­на­родной выставке “Связь, Инфор­мация. IT-Техно­логии 2013” в Екатеринбурге.