Слайд 1Организация программного кода при создании информационных систем
Подготовил:
Студент группы МЭК-21
Акименко В. И.
Руководитель:
Доц.
                                                            
                                    Яровенко А. Н.
                                
                            							
														
						 
											
                            Слайд 2Информационная система
В широком смысле информационная система есть совокупность технического, программного и организационного обеспечения, а также персонала, предназначенная
                                                            
                                    для того, чтобы своевременно обеспечивать надлежащих людей надлежащей информацией.
ИС в узком смысле рассматривают как программно-аппаратную систему, предназначенную для автоматизации целенаправленной деятельности конечных пользователей.
                                
                            							
							
							
						 
											
                            Слайд 3Какие требования?
1. Масштабируемость!
2. Гибкость.
3. Модульность.
4. Функциональность.
5. Удобство.
6. И др.
                                                            
                                                                    
                            							
														
						 
											
                            Слайд 4Как создать
масштабируемую, гибкую,
модульную
архитектуру приложения
…и не сойти с ума?
                                                            
                                                                    
                            							
														
						 
											
                            Слайд 5Организация работы
Хорошо:
RUP – Rational Unified Process (рациональный унифицированный процесс разработки) –
                                                            
                                    4 этапа, итеративная разработка, постоянное уточнение.
Плохо:
WFM – Waterfall model (модель разработки типа «Водопад») – 5 этапов, шаг за шагом, без оглядки.
                                
                            							
														
						 
											
                            Слайд 6Глобальная архитектура
Рекомендуемые:
Client-server – сервер хранит данные и часть бизнес логики, клиентское
                                                            
                                    приложение потребляет эти данные и также содержит часть бизнес логики.
Client-service-server (service-oriented architecture) – сервер хранит данные, сервис взаимодействует с данными и обрабатывает их, клиент потребляет обработанные данные.
Не рекомендуемые:
Standalone – все в одном приложении.
Peer-to-peer – основное взаимодействие ведется непосредственно между несколькими клиентами.
                                
                            							
														
						 
											
                            Слайд 7Проектирование
Хорошо:
DDD – Domain-driven design (Проблемно-ориентированное проектирование) — метод проектирования, при котором структура создаваемого ПО отражает зависимости
                                                            
                                    предметной области.
Плохо:
DDD – Data-driven design (Проектирование на основе структуры данных) — метод проектирования, при котором структура создаваемого ПО отражает структуру обрабатываемых в системе данных.
                                
                            							
														
						 
											
                            Слайд 8Программирование
Хорошо:
TDD – Test-driven development (Разработка через тестирование) – сначала тест, потом
                                                            
                                    код.
Плохо:
FDD – Feature-driven development (разработка на основе функциональности) – сразу код, потом, возможно, тест, если будет время.
                                
                            							
														
						 
											
                            Слайд 9Детали реализации
Шаблоны разделения кода:
MVC – Model-View-Controller (модель-представление-контроллер) – шаблон разделения кода, когда
                                                            
                                    вся логика разбивается на 3 части: 
модель – содержит данные и бизнес логику
представление – содержит логику отображения данных
контроллер – выбирает необходимые данные из модели и передает их в представление (представление знает о модели)
MVVM – Model-View-ViewModel (модель-представление-модель представления) – шаблон разделения кода, когда вся логика разбивается на 3 части: 
модель – содержит данные и бизнес логику
представление – содержит логику отображения данных
модель представления – формирует специальные объекты из данных модели, которые связываются с представлением (представление знает о модели представления)
Также полезные:
MVP – Model-View-Presenter
                                
                            							
														
						 
											
                            Слайд 10Детали реализации
Шаблоны инициализации объектов:
Основной – Factory Pattern (фабрика объектов) – порождающий шаблон
                                                            
                                    проектирования, предоставляющий объектам унифицированный интерфейс для создания экземпляров других объектов.
Также полезные:
Builder 
Prototype
Singleton
Multiton
                                
                            							
														
						 
											
                            Слайд 11Детали реализации
Шаблоны структуры:
Основной – Bridge Pattern (мост) – структурный шаблон проектирования, используемый
                                                            
                                    чтобы «разделять абстракцию и реализацию так, чтобы они могли изменяться независимо».
Также полезные:
Facade
Flyweight
Adapter
Decorator
                                
                            							
														
						 
											
                            Слайд 12Детали реализации
Шаблоны взаимодействия:
Полезные все при грамотном использовании:
Template Method
Chain of responsibility
Command
State
Iterator
И другие…
                                                            
                                                                    
                            							
														
						 
											
                            Слайд 13Это не так сложно
масштабируемая, гибкая,
модульная
архитектура приложения
+
заказчик (любой) с деньгами
=
PROFIT
                                                            
                                                                    
                            							
														
						 
											
                            Слайд 14Источники	
Вики
Вики
Еще вики
Хабр
Avajava