Transcript

Технология программирования

Концепция продукта

Планирование проекта и требований?

1) Определить цель проекта2) Определить, что мы НЕ делаем — границы

проекта (scope)3) Кратко описать все остальное

Документ: Концепция или Vision

Концепция

● Для кого?● Что им нужно?● Каков вид приложения?*● Какова главная функция продукта?● Какие существуют аналоги продукта?● В чем преимущество перед аналогами?

Концепция

* Интернет-сервис? Desktop приложение? Мобильное приложение? API?

Концепция● Для <кого-то>, которым нужно <что-то> наш

<класс продукта> <название> будет делать <главную функцию>.

● В отличие от <альтернатив>, наш продукт <лучше потому-то и потому-то>.

Концепция: пример

Для студентов, которым нужно узнавать об изменениях в расписании, наш веб-сервис с

мобильным приложением будут предоставлять актуальное расписание занятий на ближайшие дни, с указанием аудиторий и преподавателей.В отличие от форума, мобильное приложение

будет само получать обновленное расписание и оповещать студента об изменениях.

Концепция: пример

Для кредитных менеджеров, которым нужно оценить благонадежность заемщика, наше

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

выдавать скоринговую оценку заемщика.В отличие от базы данных на Access, наше

приложение будет лучше защищать данные, работать быстрее и анализировать больше

параметров анкеты.

Формальным языком:● Заинтересованные лица● Цели заинтересованных лиц● Предварительная архитектура● Основные функции● Альтернативные решения● Ключевые преимущества

Корпоративное ПО: много заинтересованных лиц

● Руководство● Пользователи● Системные

администраторы● Смежные отделы● Служба безопасности● Маркетинг● Юристы● Служба кадров

Цели заинтересованных лиц могут конфликтовать

Оценки проекта

● Оценка масштаба● Оценка сложности● Оценка рисков

Масштаб

● Типы пользователейСколько разных рабочих мест нужно разработать?

● Концептуальная модель данных. Что есть в мире?

● Диаграмма состояний.Как меняется мир?

Типы пользователей

● Кто из заинтересованных лиц будет пользователями?

● Какие у них цели?● Количество разных рабочих мест =

количеству пользователей с разными целями

Модель данных● Глоссарий (словарь терминов)

или● Онтология (понятия и их связи)

или● Диаграмма классов

Атрибутные модели vs фактологические

Онтология

UML● Unified Modeling Language● Промышленный стандарт● Графический язык● Объектно-ориентированный язык● Диаграммы:

– Структуры– Деятельности– Взаимодействия

UML

Диаграмма состоянийдля основных объектов

Оценка сложности

● Сложные данные и простые алгоритмыПонятно — что делать, но нужно учитывать много частных случаев (сложная диаграмма классов).

● Простые данные и сложные алгоритмыПонятно — с чем работать, но непонятно - как.

● Сложные данные и сложные алгоритмы = декомпозиция системы

Оценка трудоемкости

Число типов АРМ * число классов * число состояний * (2число связей) =

трудоемкость в попугаях

Оценка рисков● SWOT-анализ● Перечень уязвимостей● Перечень рисков● Диаграмма рисков● План по обработке рисков

Области риска

● Команда● Инструмент● Сроки● Сложность/реализуемость● Внешние факторы

Риск = Ущерб * Вероятность

Риск