Translate

вівторок, 19 березня 2013 р.

Розробка пропозиції програми з використанням технології Blueprint


Для створення пропозиції програми існує окремий тип документу : Proposal.
Розробка пропозийії починаєтся з формулювання проблеми яку має вирішувати програма. Проблема записуєтся в тезі problem. В контексті того що потрібно замовнику. Слідуючим кроком є описання бачення програми яке записуєтся в тезі vision. Для опису проблеми і бачення можна використовувати HTML теги, а також тег stylesheet-link з атребутом href на початку документу для підключення CSS стилів до документу.

Слідуючим етапом є виробка вимог до програми. Вимога - це опис того що має бути реалізовано. Вимога описуєтся тегом requirement. Є два види вимог :
1. Функціональні, перечисляются в тезі functional-requirements - яку поведінку повинна мати програма.
2. Нефункціональні, перечисляются в тезі non-functional-requirements - особлива властивість чи обмеження яке накладаєтся на систему.
Вимоги можуть групуватись в пакети за допомогою тегу package.

Для опису глосарію проекту використовуєтся тег glossary. Терміни описуются тегом term, в форматі : слово - опис - синоніми - омоніми.

Приклад пропозиції проекту текстового редактора:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href=".blueprint/proposal.xslt"?>
<!DOCTYPE proposal SYSTEM ".blueprint/proposal.dtd">
<proposal>
  <problem>The program for editing plain text is needed.</problem>
  <vision>The program with a text panel supports operation like open and save a text file.
  Supports the editing operations like undo and cut text. Support find and replase capability. 
  Also supports options on changing the view of the text in window.
  Seleveral files for editing can be opened</vision>
  <functional-requirements>
      <package name="file operations">
        <requirement priority="mast_have">The program shall creates new empty text for editing</requirement>
        <requirement priority="mast_have">The program shall opens the existing file for editing</requirement>
        <requirement priority="mast_have">The program shall saves the text in file</requirement>
        <requirement priority="should_have">The program shall saves the text as another file</requirement>
        <requirement priority="should_have">The program shall reloads the current file from the file system</requirement>
        <requirement priority="should_have">The program shall restores the text changes from the backup</requirement>
        <requirement priority="should_have">The program shall prints edited text.</requirement>
      </package>
    <requirement priority="mast_have">The program shall manage tabs with opened files</requirement>
    <requirement priority="should_have">The program shall cuts, copies and pasts the text</requirement>
    <requirement priority="should_have">The program shall undos and redos the text changes</requirement>
    <requirement priority="should_have">The program shall finds the fragment in text.</requirement>
    <requirement priority="should_have">The program shall replases the fragment in text.</requirement>
    <requirement priority="should_have">The program shall saves the options after quitted</requirement>
  </functional-requirements>
  <non-functional-requirements>
      <requirement>The program shall uses the swing library for creating GUI</requirement>
      <requirement>The program shall uses the javahelp library for viewing a help</requirement>
      <requirement>The program shall uses the ant util for building</requirement>
  </non-functional-requirements>
  <glossary>
    <term>
      <word>text component</word>
      <description>the component in a window that contain the text</description>
    </term>
    <term>
      <word>file</word>
      <description>the current edited file</description>
    </term>
    <term>
        <word>tab</word>
        <description>component that con show or hide the text panel</description>
    </term>
  </glossary>
</proposal>