Публикация результатов работы, передача заказчику для эксплуатации.




Вариант 6

Поисковая система (веб-сервис для поиска текстовой или графической информации во Всемирной паутине)

 

1. Функциональные требования:

- перебор страниц Интернета (поисковый робот);

- формирование списка слов и адресов найденных страниц;

- индексирование данных с учетом весовых коэффициентов;

- занесение данных в бд;

- обработка и сопоставление ключевых слов со словами в индексе;

- сопоставление сайтов содержащих ключевые слова;

- ранжирование выдачи по релевантности ресурса: ссылочная масса, количество вхождений ключевых слов, вес страницы (ТИЦ, PR) и т. д.;

- пользовательские фильтры для поиска информации (регион, язык, время, картинки, видео);

- поисковая строка с возможностью ввода и редактирования текста;

- выпадающий список подсказок при вводе запроса в поисковую строку;

- сохранение предыдущих запросов пользователя;

- сбор поведенческих факторов для улучшения выдачи;

- авторизация пользователя;

- персонализированная выдача по предпочтениям авторизованного пользователя;

- на одной страницы выдачи формируется не более 10 ресурсов;

- навигация по страницам выдачи происходит с помощью пагинатора;

 

2. Другие требования:

- среднее время ответа сервера – 0,82c;

- среднее время загрузки страницы– 2,5c;

- использование не более 64кб оперативной памяти на один поисковой запрос;

- защита от DDoS-атак;

- защита от xss-атак;

- защита от sql-инъекций;

- адаптивный веб-дизайн;

- кроссбраузерность;

- интерфейс в стиле Flat Design;

- юзабилити должно соответствовать стандарту ISO 9241-11.

 

3. Детализация требований.

Перебор страниц Интернета (поисковый робот):

1. Задачей поискового бота является только получение страниц сайта и иных документов;

2. Бот посылает HTTP-запрос GET, в котором указан полный адрес (URI) документа;

3. Сервер отвечает на запрос так же, как и в случае обращения браузера: передает заголовок ответа (HTTP Response Header) с информацией о документе, а следом сам документ;

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

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

 

Адаптивный веб-дизайн:

1. Целью адаптивного веб-дизайна является универсальность веб-сайта для различных устройств;

2. Применение гибкого макета на основе сетки;

3. Использование гибких изображений;

4. Использование медиа-запросов.

1.Программная инженерия:

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

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

2. Этапы становления ПИ:

1) Повторное использование кода (модульное программирование).

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

2) Рост сложности программ (структурное программирование).

Следующий этап возрастания стоимости ПО был связан с переходом от разработки относительно простых программ к разработке сложных программных комплексов. Следует отметить, что этот переход был вызван появлением вычислительной техники третьего поколения (интегральные схемы). С переходом на использование интегральных схем производительность компьютеров возросла на порядки, что и создало предпосылки для решения сложных задач. Этап сопровождения программного комплекса включал действия по исправлению ошибок в работе программы и внесению изменений в соответствии с изменившимися требованиями пользователей. Основная причина высокой стоимости (а порой и невозможности выполнения) этапа сопровождения состояла в том, что программы были плохо спроектированы – документация была не понятна и не соответствовала программному коду, а сам программный код был очень сложен и запутан. Нужна была технология, которая обеспечит «правильное» проектирование и кодирование.

Основные принципы технологии структурного проектирования и кодирования:

o Нисходящее функциональное проектирование, при котором в системе выделяются основные функциональные подсистемы, которые потом разбиваются на подсистемы и т.д. (принцип «разделяй и властвуй»);

o Применение специальных языков проектирования и средств автоматизации использования этих языков;

o Дисциплина проектирования и разработки: планирование и документирование проекта, поддержка соответствие кода проектной документации.

3) Модификация программ (ООП) Следующая проблема роста стоимости программ была вызвана тем, что изменение требований к программе стали возникать не только на стадии сопровождения, но и на стадии проектирования – проблема заказчика, который не знает, что он хочет. Создание программного продукта превратилось в его перманентное перепроектирование. Возник вопрос, как проектировать и писать программы, чтобы обеспечить возможность внесений изменений в программу, не меняя ранее написанного кода. Решением этой проблемы стало использование подхода или метода, который стали называть объектно-ориентированным проектированием и программированием. Суть подхода состоит в том, что вводится понятие класса как развитие понятия модуля с определенными свойствами и поведением, характеризующими обязанностями класса. Каждый класс может порождать объекты – экземпляры данного класса.

3. Основные процессы (фазы) разработки программы:

1) Постановка задачи — выполняется специалистом в предметной области на естественном языке (русском, английском и т. д.). Необходимо определить цель задачи, ее содержание и общий подход к решению. Возможно, что задача решается точно (аналитически), и без компьютера можно обойтись. Уже на этапе постановки надо учитывать эффективность алгоритма решения задачи на ЭВМ, ограничения, накладываемые аппаратным и программным обеспечением (АО и ПО).

2) Анализ задачи и моделирование — определяются исходные данные и результат, выявляются ограничения на

 

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

3) Разработка или выбор алгоритма решения задачи — выполняется на основе ее математического описания. Многие задачи можно решить различными способами. Программист должен выбрать оптимальное решение. Неточности в постановке, анализе задачи или разработке алгоритма могут привести к скрытой ошибке — программист получит неверный результат, считая его правильным.

4) Проектирование общей структуры программы — формируется модель решения с последующей детализацией и разбивкой на подпрограммы, определяется "архитектура" программы, способ хранения информации (набор переменных, массивов и т. п.).

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

6) Отладка и тестирование программы. Под отладкой понимается устранение ошибок в программе. Тестирование позволяет вести их поиск и, в конечном счете, убедиться в том, что полностью отлаженная программа дает правильный результат. Для этого разрабатывается система тестов — специально подобранных контрольных примеров с такими наборами па раметров, для которых решение задачи известно. Тестирование должно охватывать все возможные ветвления в программе, т. е. проверять все ее инструкции, и включать такие исходные данные, для которых решение невозможно. Проверка особых, исключительных ситуаций, необходима для анализа корректности. Например, программа должна отказать клиенту банка в просьбе выдать сумму, отсутствующую на его счете. В ответственных проектах большое внимание уделяется так называемой "защите от дурака" подразумевающей устойчивость программы к неумелому обращению пользователя. Использование специальных программ — отладчиков, которые позволяют выполнять программу по отдельным шагам, просматривая при этом значения переменных, значительно упрощает этот этап.

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

Публикация результатов работы, передача заказчику для эксплуатации.

9) Сопровождение программы — включает консультации представителей заказчика по работе с программой и обучение персонала. Недостатки и ошибки, замеченные в процессе эксплуатации, должны устраняться.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-05-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: