воскресенье, 12 октября 2014 г.

Системный Анализ

Заметки о системном анализе к разработке ПО 

Ничего сверхсекртеного, просто учения одного аналитика оцифрованы, немного структурированы и расшарены.

Предисловие

Картина мира системного анализа


пользовательский  процесс
пользователи системы
Компоненты системы ("автоматизирующей этот процесс")
интерфейсы системы ("связывающие эти компоненты")
модель данных ("наполняющих эту систему")
Поведение системы ("создающее и изменяющее эти данные")
Концептуальная схема

Стандартные зоны отвественности по созданию документации


спецификации требований (SRS) - Аналитик
архитектурные документы (SAR) -  Тех. специалист

Информационная система


ИС делится на следующие основные типы:
  • железо
Примеры: сервера, сетевое оборудование, ПК, mobile, переферия
возможные ситуации:
1) У заказчика есть собственная ИТ-инфраструктура (Возможно потребуется расширение мощностей)
2) Необходимо создать ИТ-инфраструктуру для новой ИС на территории заказчика (Существенные затраты на оборудование)
3) Возможно предоставлять ИС как сервис через интернет (Нет полного контроля за системой, приходится доверять поставщику сервиса)
  • ПО общего назначения
возможные ситуации:
1) необходимо расширить существующую ИТ систему
2) необходимо создать систему с нуля
3) необходимо интегрировать ее с нуля
4) необходимо заменить сущестующую систему новой
  • ПО прикладного значения

Примеры интерфейсов


1) графический пользовательский интерфейс (человек - программа)
2) програмнмый интерфейс (программа - программа)
3) аппаратный интефейс (оборудование - программа)

 Базис

Мета-модель бизнес процесса


1) совокупность действий направленных на конечную цель
2) возможность декомпозиции совокупности действий
3) декомпозиция продолжается до тех пор, пока не установим субъект
4) у каждого действия должен быть субъект
5) у каждой совокупности действий должны быть начальное событие и входящие данные
6) инструмент должен быть описан

Описание системы


Мета-модель описания: субъект - действие - объект
Положительный пример:
1) менеджер создает заявку
2) система отображает событие на экране
Негативный пример: заявка создается менеджером

Внутренняя структура ПО


  • статическая структура
1) объекты
2) взаимосвязи
  • динамическая структура
1) пользовательские сценарии
2) автоматические сценарии
  • логическая структура

Этапы моделирования


1. идентифицировать компоненты (модуль, который может существовать сам по себе)
2. идентифицировать интерфейсы (фтп-помойка -интерфейс, структура csv  -детализация интерфейса)
3. идентифицировать объекты
4. идентифицировать взаимосвязи между объектами
5. идентифицировать сценарии (пример жизни объекта: возникновение объекта, его изменение и его удаление)
6. уточнить и описать модели 
7. уточнить и описать сценарии
8. спроектировать и описать пользовательский интерфейс
9. спроектировать и описать систему разделения доступа
10. верифицировать и уточнить все модели

Идентификация объектов и взаимосвязей


  • Объекты 
1) Предметы
2) Информация
3) Составные объекты (списки, структуры)
  • Взаимосвязи объектов
1) Ассоциация
2) Агрегация (Агрегация применяется когда один класс должен быть контейнером других классов. Причем время существования содержащихся классов никак не зависит от времени существования класса контейнера.)
3) Композиция
4) Генерализация (отношение обобщения: род - вид, человек - женщина)

Жизненный цикл объекта - сценарии (UseCases)


1) создание объекта
2) изменение объекта
3) удаление объекта

Атрибуты

  • простой
Если изменение Атрибута не влечет за собой изменение Объекта - это простой атрибут
  • статусный
Если изменение А влечет изменение О - это статусный атрибут

Структура сценария (UseCase)

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

Cтруктуры данных

  • справочник
  • дерево
  • пакет (связь целого с его частным; частный случай дерева)
  • workflow
  • pipeline (разновидность workflow, но работает с множеством объектов)

Чтиво по теме


Общее:
Пол Экман: "Психология лжи" и "Психология эмоций"

Основы системного анализа:
Оптнер. "Системный анализ для решения деловых и промышленных проблем"

Моделирование:
О'Коннор, МакДермотт, "Искусство системного мышления"
Фаулер, "Основы UML"

Разработка и управление требованиями:
Леффингуэлл, Уидриг: "Принципы работы с требованиями к ПО. Унифицированный подход "(Managing Software Requirements: A Unified Approach)
Коберн: "Современные методы описания функциональных требований к системам (Writing Effective Use Cases)"
Вигерс: "Разработка требований к программному обеспечению (Software Requirements)"
Халл, Джексон: "Разработка и управление требованиями"