Analysis and design of information systems

Специальность / Speciality: 6-05-0533-07 Математика и компьютерные науки / Mathematics and computer science

Профилизация / Profiling: Веб-программирование и интернет-технологии / Web Development and Internet Technologies Математическое и программное обеспечение мобильных устройств / Math and software for mobile devices

Учебная дисциплина, модуль / Academic discipline, module: Анализ и проектирование информационных систем, модуль «Информационные технологии» / Analysis and design of information systems, module «Information Technology»

 

Краткое содержание учебной дисциплины, модуля / Brief summary

Общие понятия проектирования. Понятие информационной системы и автоматизированной информационной системы. Жизненный цикл информационных систем. Цели и задачи информационных систем. Роль и задачи программиста в модели разработки информационной системы.

Проектирование на основе анализа требований и тестирования.

Методы установления требований. Предварительное тестирование на этапе анализа требований.

Принципы построения проекта.

Разработка проектной документации. Диаграммы развертывания и размещения.

Перепроектирование или рефакторинг кода. Принципы и методы рефакторинга. Признаки “плохого” кода. Тестирование при рефакторинге.  

Варианты использования. 

Взаимодействия. Типы служб авторизации. Транзакции. Абстрактные типы.

Диаграммы вариантов использования. Спецификация системы в диаграммах прецедентов использования (Use Case). Поток управления. Обобщения. Иерархия типов.

Диаграммы состояний и деятельности. Бизнес-процесс.

Моделирование динамических аспектов системы. События, состояния и переходы. Жизненный цикл объекта.

Диаграммы взаимодействий (Sequence & Collaboration). Временная последовательность сообщений. Визуализация интерактивного поведения системы. Интерфейсы. Диаграммы реализации.

General concepts of design. The concept of information system and automated information system. Life cycle of information systems. Goals and objectives of information systems. The role and tasks of the programmer in the information system development model.

Designing on the basis of requirements analysis and testing.

Methods of requirements elicitation. Preliminary testing at the stage of requirements analysis.

Principles of project construction.

Development of project documentation. Deployment and placement diagrams.

Code redesign or refactoring. Principles and methods of refactoring. Signs of “bad” code. Testing during refactoring.  

Use cases.

Interactions. Types of authorization services. Transactions. Abstract types.

Use Case diagrams. System specification in Use Case diagrams. Control flow. Generalizations. Hierarchy of types.

State and activity diagrams. Business Process.

Modeling the dynamic aspects of a system. Events, states and transitions. Life cycle of an object.

Interaction diagrams (Sequence & Collaboration). Temporal sequencing of messages. Visualization of interactive system behavior. Interfaces. Implementation diagrams.

Формируемые компетенции / The formed competences

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

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

Apply modern technologies and basic constructions of programming languages for realization of algorithmic applied tasks and development of web projects.

Analyze the context and the problem posed, reasonably choose the best way to solve it, coordinate partial solution projects into a common coherent architecture, perform project implementation taking into account the evaluation of accumulated and incoming data.

Результаты обучения (знать, уметь, владеть) / Learning outcomes (know, can, be able)

В результате изучения дисциплины студент должен:

знать:

концепции, положенные в основу тестирования требований при проектировании программных систем;

концепции, положенные в основу построения программных систем;

концепции, положенные в основу рефакторинга и сопровождения кода;

уметь:

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

строить программные средства;

проводить процедуру рефакторинга кода;

владеть:

современными средствами проектирования, разработки, тестирования и отладки программных систем.

As a result of studying the discipline the student should:

know:

– the concepts underlying requirements testing in the design of software systems;

– concepts underlying the construction of program systems;

– concepts underlying refactoring and code maintenance;

be able to:

– analyze and test requirements at the stage of designing a software tool;

– build software tools

– conduct the procedure of code refactoring;

possess:

– modern means of design, development, testing and debugging of program systems.

Семестр изучения учебной дисциплины, модуля / Semester of study

4

4

Пререквизиты / Prerequisites

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

Programming technologies

Трудоемкость в зачетных единицах (кредитах) / Credit units

3

3

Количество аудиторных часов и часов самостоятельной работы / Academic hour of students’ class work,

hours of self-directed learning

Всего 102 часов, из них 68 аудиторных часа и 34 часa самостоятельной работы.

A total of 102 hours, of which 34 academic hours of students’ class work and 46 hours of self-directed learning.

Требования и формы текущей и промежуточной аттестации / Requirements and forms of current and interim certification

Опрос, письменный отчет с устной защитой по решению задач и упражнений.

Зачет.

Survey, written report with oral defense on solving problems and exercises.

End-of-term tests.