Освоение основ экологической грамотности. ст.42 Конституции РФ
Разработка структурной схемы (архитектуры) программы является одним из наиболее важных этапов в процессе разработки программного обеспечения по следующим причинам:
неправильный выбор архитектуры ведет к риску срыва всего проекта в будущем;
данный этап является базовым для всего процесса разработки;
хорошо продуманная архитектура позволяет легко модифицировать программный продукт, если произойдут изменения требований к нему.
Исходя из анализа требований, предъявляемых к системе, определяется набор всех функций, выполнение которых программа должна поддерживать. Далее полученные функции объединяются в логически связанные между собой группы. Каждая из таких групп может стать одним из компонентов программной системы. Надо быть готовым к тому, что первая версия набора компонентов не будет являться полной. В процессе анализа функций и на первых стадиях проектирования архитектуры могут быть выявлены дополнительные функции, которые необходимо включить в разрабатываемую программу. По большей части данные функции будут необходимы для выполнения технологических процессов по поддержанию системы в целостном и работоспособном состоянии. Совершенно естественно предположить, что данные функциональные особенности не могут быть известны заказчику программной системы, и разработчикам на первых этапах разработки.
В первую очередь архитектура программы должна включать общее описание системы. Без такого описания достаточно трудно составить согласованную картину из множества мелких деталей или хотя бы десятка отдельных классов. Архитектура должна включать подтверждения того, что при её разработке были рассмотрены альтернативные варианты, и обосновывать выбор окончательной организации системы.
Архитектура должна чётко определять ответственность каждого компонента. Компонент должен иметь одну область ответственности и как можно меньше знать об областях ответственности других компонентов. Сведя к минимуму объём сведений, известных компонентам о других компонентах, можно легко локализовать информацию о проекте приложения в отдельных компонентах.
Архитектура должна ясно определять правила коммуникации между компонентами программы и описывать, какие другие компоненты данный компонент может использовать непосредственно, какие косвенно, а какие вообще не должен использовать.
Пользовательский интерфейс часто проектируется на этапе выработки требований. Если это не так, его следует определить на этапе разработки архитектуры. Архитектура должна описывать главные элементы формата web-страниц, графического интерфейса (GUI) и т.д. Удобство интерфейса может в итоге определить популярность или провал программы.
Архитектура программы является модульной, чтобы графический интерфейс можно было изменить, не затрагивая основную логику программы.
Программу обработки анкет опроса студентов можно условно разделить на две части с разными функциями и уровнем доступа для пользователей:
система проведения анкетирования студентов;
система обработки результатов анкетирования;
система управления.
Рисунок 2.1. - Структура системы
Система анкетирования содержит следующие функции:
выдачи вопроса из анкеты;
автоматической проверки типа и корректности вводимых данных;
сохранения данных в базу данных.
выводить на экран или распечатывать отчёты по проведению анкетирования;
просматривать информацию о проведении анкетирования конкретного студента;
сравнивать результаты текущего и предыдущих анкетирований с этими же вопросами.
контролировать проведение анкетирования;
управлять данными – добавлять, удалять и изменять;
cерверная часть, написанная на языке программирования PHP и выполняющаяся на сервере;
клиентская часть, написанная на языке разметки HTML и языке программирования JavaScript с использованием библиотеки jQuery и выполняющаяся в браузере пользователя.
ерверная часть программы по своей структуре соответствует архитектуре MVC (Model-View-Controller) или модель-представление-контроллер. MVC представляет собой архитектуру программного обеспечения, в которой модель данных приложения, пользовательский интерфейс и управляющая логика разделены на три отдельных компонента, так, что модификация одного из компонентов оказывает минимальное воздействие на другие компоненты.
Рисунок 2.2. – Архитектура «Модель-Представление-Контроллер»
Такой подход позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента.
Model (Модель) - модуль, отвечающий за непосредственный расчёт чего-либо на основе полученных от пользователя данных. Результат, полученный этим модулем, должен быть передан в контроллер, и не должен содержать ничего, относящегося к непосредственному выводу (то есть должен быть представлен во внутреннем формате системы). Основная цель - сделать так, чтобы модель была полностью независима от остальных частей и практически ничего не знала об их существовании, что позволило бы менять и контроллер и представление модели, не трогая саму модель и даже позволить функционирование нескольких экземпляров представлений и контроллеров с одной моделью одновременно. В следствие этого модель ни при каких условиях не может содержать ссылок на объекты представления или контроллера.
View (Представление) - модуль вывода информации. В обязанности представления входит отображение данных полученных от модели. Обычно представление имеет свободный доступ к модели и может брать из нее данные, однако это доступ только на чтение, ничего менять в модели или даже просто вызывать методы, приводящие к изменению ее внутреннего состояния, представлению запрещено. Для взаимодействия с контроллером, представление, как правило, реализует некий интерфейс, известный контроллеру, что позволяет менять представления независимо и иметь несколько представлений на контроллер.
Controller (Контроллер) - модуль управления вводом и выводом данных. В задачи контроллера входит реакция на внешние события и изменение модели и/или представления в соответствии с заложенной в него логикой. Один контроллер может работать с несколькими представлениями, в зависимости от ситуации, взаимодействуя с ними через некий (заранее известный) интерфейс, который эти представления реализуют. Важный нюанс - в классической версии MVC контроллер не занимается передачей данных из модели в представление.
Контроллер получает данные от пользователя и передаёт их в модель. Кроме того, он получает сообщения от модели, и передаёт их в представление. Важно отметить, что как представление, так и контроллер зависят от модели. Однако модель не зависит ни от контроллера, ни от поведения. Это одно из ключевых достоинств подобного разделения. Оно позволяет строить независимую от визуального представления модель, а также создавать несколько различных представлений для одной модели.
прозрачность системы;
единая точка входа в систему;
повторное использование кода;;
быстрая разработка;
наличие готовых решений;
простота поддержки;
лёгкое внесение изменений.
2.Разработка структуры базы данных программы
Организация структуры БД формируется исходя из следующих соображений:
адекватность описываемому объекту - на уровне концептуальной и логической модели;
удобство использования для ведения учёта и анализа данных - на уровне так называемой физической модели.
В данном случае наиболее подходящей является реляционная модель данных, так как вся информация может быть легко представлена в виде таблиц. Реляционная модель данных - логическая модель данных, описывающая структурный аспект, аспект целостности и аспект обработки данных в реляционных базах данных.
Структурный аспект - данные в базе данных представляют собой набор отношений.
Аспект целостности - отношения отвечают определенным условиям целостности.
Аспект обработки - поддерживаются операторы манипулирования отношениями.
Немаловажным аспектом проектирования базы данных является нормализация - процесс преобразования базы данных к виду, отвечающему нормальным формам. Нормализация позволяет обезопасить базу данных от логических и структурных проблем, называемых аномалиями данных. К примеру, когда существует несколько одинаковых записей в таблице, то существует риск нарушения целостности данных при обновлении таблицы. Таблица, прошедшая нормализацию, менее подвержена таким проблемам, т.к. ее структура предполагает определение связей между данными, что исключает необходимость в существовании записей с повторяющейся информацией.
В качестве СУБД была выбрана свободная система управления базами данных MySQL. Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Благодаря открытой архитектуре и GPL-лицензированию (GNU General Public License - лицензия на свободное программное обеспечение, цель которой предоставить пользователю права копировать, модифицировать и распространять программы, а также гарантировать, что и пользователи всех производных программ получат вышеперечисленные права), в СУБД MySQL постоянно появляются новые типы таблиц.
Важным достоинством СУБД MySQL является то, что она портирована на большое количество платформ, таких как AIX, FreeBSD, HP-UX, GNU/Linux, Mac OS X, NetBSD, OpenBSD, Solaris и Windows. Отметим, что компания MySQL AB предоставляет для свободной загрузки не только исходные коды СУБД, но и откомпилированные и оптимизированные под конкретные операционные системы готовые исполняемые модули.
MySQL имеет интерфейс прикладного программирования (API) для таких языков, как Delphi, C, C++, Java, Perl, PHP, Python и Ruby, библиотеки для языков платформы.NET, а также обеспечивает поддержку для ODBC посредством ODBC-драйвера (Open DataBase Connectivity - это программный интерфейс доступа к базам данных) MyODBC.
Основным типом таблиц был выбран тип MyISAM. MyISAM-таблицы идеально оптимизированы для использования в связке с web-приложениями, где преобладают запросы на чтение. Таблицы типа MyISAM показывают очень хорошие результаты производительности при выборках SELECT. Во многом это связано с отсутствием поддержки транзакций и внешних ключей. Однако при модификации и добавлении записей вся таблица кратковременно блокируется, что может привести к серьёзным задержкам при большой загрузке. Но в случае с программой анализа анкет опроса это не является серьёзной проблемой, так как высокая нагрузка на систему не планируется.
Ещё одним преимуществом таблиц типа MyISAM является платформенная независимость. Табличные файлы можно перемещать между компьютерами разных архитектур и разными операционными системами без всякого преобразования.
В таблицах MyISAM могут быть фиксированные, динамические либо сжатые записи. Выбор между фиксированным и динамическим форматом диктуется определениями столбцов.
Структура базы данных представлена на рисунке 2.4.
Р
исунок 2.3. – Структура базы данных
Организованные в базе данных связи между таблицами позволяют выполнять каскадное удаление и обновление данных. Использование развязочных таблиц позволило сократить избыточность данных до минимума.
Таблица it_students содержит данные о студентах, прошедших анкетирование.
Таблица 2.1 – Таблица данных «it_students»
Поле |
Тип |
Длина |
Описание |
id |
Числовой |
11 |
Индекс |
num |
Числовой |
11 |
Номер студенческого билета |
name |
Символьный |
100 |
Имя |
second_name |
Символьный |
100 |
Отчество |
surname |
Символьный |
100 |
Фамилия |
birth |
дата |
- |
Дата рождения |
year_postupl |
год |
- |
Год поступления |
address |
Символьный |
500 |
Адрес |
phone_h |
Символьный |
15 |
Домашний телефон |
phone_m |
Символьный |
15 |
Мобильный телефон |
|
Символьный |
250 |
Адрес e-mail |
icq |
Числовой |
10 |
Номер ICQ |
Таблица it_answers_var содержит варианты ответов на вопросы анкетирования.
Таблица 2.2 – Таблица данных «it_answers_var»
Таблица it_questions содержит вопросы анкетирования.
Таблица 2.3 – Таблица данных «it_questions»
Таблица it_tests_cfg делает привязку вопросов анкетирования к конкретной анкете.
Таблица 2.4 – Таблица данных «it_tests_cfg»
Таблица it_tests содержит данные обо всех анкетах и датах проведения анкетирований.
Таблица 2.5 – Таблица данных «it_tests»
Таблица it_text_answers содержит данные об ответах студентов, вводимых вручную.
Таблица 2.6 – Таблица данных «it_text_answers»
Таблица it_students_answers содержит данные об ответах студентов.
Таблица 2.6 – Таблица данных «it_students_answers»
3.Разработка модели информационных потоков базы данных
Поскольку программа анализа анкет опроса студентов построена по принципу MVC, то можно представить информационные потоки следующим образом. При поступлении запроса от пользователя, который отсылает браузер Web-серверу, контроллер, следуя запрограммированным алгоритмам квалифицирует полученный запрос, изменяет и передаёт его в модель. Модель, являющаяся связующим звеном между контроллером и СУБД, интерпретирует запрос и делает соответствующее обращение к СУБД MySQL, возвращая результаты контроллеру.Примечательно, что для контроллера остаётся скрытым то, с каким типом или реализацией СУБД он работает, все обращения к БД происходят посредствам модели, основной задачей который и является абстрагирование работы с данными. Вместо базы данных можно даже использовать текстовый или XML файл, для контроллера это не будет иметь значения. Параллельно контроллер отправляет запрос компоненту представление, который компонует конечный шаблон и возвращает контроллеру. Так же возможен вариант, когда обмен данными происходит напрямую между моделью и представлением. Контроллер объединяет выборку из базы данных и шаблон представления и передаёт браузеру пользователя.
Рисунок 2.4. - Схема информационных потоков архитектуры МVС
4.Разработка алгоритмического обеспечения
Алгоритмическое обеспечение всех компонентов программы имеет значительные отличия, поскольку они несут различный функционал.При первом входе студента в систему анкетирования создаётся новый идентификатор сессии. Сессия или session, позволяет серверу определить пользователя с помощью специального номера, который уникален и назначается при работе пользователя с сервером. Кроме того, сессии позволяют связывать переменные с этим пользователем и хранить эти переменные на сервере. Другими словами сессии позволяют делать переменные глобальными для всех компонентов программы. Таким образом, система анкетирования может однозначно определить, от кого из пользователей, работающих с программой, пришли те или иные данные.
Д
алее студент отвечает на ряд вопросов анкетирования и только по окончании опроса все данные сохраняются в базе данных. Алгоритм работы системы анкетирования показан на рисунке 2.5.
Рисунок 2.5. – Алгоритм работы системы анкетирования
Одним из важнейших пунктов безопасности web-приложения является проверка всех поступающих данных, поэтому стоит всегда проверять данные, вводимые пользователем в формы поиска, заполнения полей регистрации и так далее на наличие «опасных» данных. Это может быть вредоносный JavaScript код, PHP или PERL команды, а так же (что самое опасное) - команды серверу.
Следует всегда помнить, что абсолютно любой пользователь – это опасность для незащищенного web-приложения, поэтому всегда стоит проверять запросы и переменные, приходящие от пользователя.
анализ переменных и суперглобальных массивов POST и GET;
разделение переменных;
фильтрация строковых переменных.
Абсолютно каждая переменная в программе должна на стадии проектирования уже иметь свой тип, будь это число или строка. Особенно остро эта проблема стоит для языков программирования со слабой или отсутствующей типизацией, к которым относятся PHP и JavaScript. Поэтому в наиболее критичных участках программы происходит проверка переменных на соответствие типов.
Особо опасны текстовые переменные, например поле для ввода ответа на вопрос анкеты. Их просто необходимо проверять на наличие вредоносного кода. Для устранения опасности производится удаление некоторых элементов из текста или замена на другие символы. Алгоритм обработки входящих данных в фреймворке CodeIgniter показан на рисунке 2.6.
Р
исунок 2.6. – Алгоритм обработки входящих данных в фреймворке CodeIgniter
2.5 Разработка интерфейса программы
Одним из важнейших вопросов разработки программной системы является разработка пользовательского интерфейса. Любая система, использующая при своем функционировании технические средства, относится к классу систем «человек - машина». Правильно будет выдвинуть следующие требования к интерфейсу систем тестирования:
интерфейс должен быть понятен, прост и удобен в использовании
пользователь не должен отвлекаться на действия, не связанные с выполняемым заданием.
К
примеру, текстовое поле для ввода даты с использованием jQuery было преобразовано в компактный календарь, обладающий функцией автоматической проверки корректности ввода даты (см. рисунок 2.7).
Рисунок 2.7. – Интерфейс календаря для выбора даты рождения
Пользовательский интерфейс, доступный студентам, проходящим анкетирование, выполнен в некоторой степени минималистично. В результате студенты не отвлекаются на красивую графику и концентрируются на обдумывании ответа на вопрос. Интерфейс с одним из в
опросов показан на рисунке 2.8.
Рисунок 2.8. – Интерфейс ответа на вопрос анкетирования
В случае, если студент по какой-то причине не выберет ни один из ответов на вопрос, но попытается перейти к следующему вопросу, система анкетирования автоматически выведет сообщение об ошибке и предложит ещё раз ответить на текущий вопрос (см. рисунок 2.9).
Рисунок 2.9. - Сообщение об ошибке ввода данных
Система обработки результатов анкетирования может выводить результаты в нескольких режимах – текстовом, графическом и режиме вывода на печать. Интерфейс вывода результатов анкетирования в графическом виде показан на рисунке 2.10.
Рисунок 2.10. – Интерфейс вывода результатов анкетирования
Браузер, который является клиентом по отношению к серверу и посылает ему запрос на обработку Web-страницы, может являться реализацией, так называемых, тонких клиентов. Браузер способен отображать Web-страницы и, как правило, входит в состав операционной системы, а функции его обновления и сопровождения лежат на поставщике операционной системы. Логика приложения сосредотачивается на сервере, а функция браузера заключается в основном в отображении информации, загруженной по сети с сервера, и передаче обратно данных пользователя. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, и Web-приложения, таким образом, являются межплатформенными сервисами.
Существенным преимуществом построения Web-приложений для поддержки стандартных функций браузера заключается в том, что функции должны выполняться независимо от операционной системы данного клиента. Вместо того чтобы писать различные версии для Microsoft Windows, Mac OS X, GNU/Linux и других операционных систем, приложение создается один раз и разворачивается на любой платформе.
3. Технологический раздел
3.1 Технология разработки программы
3.1.1 Основы работы web-сервераПринцип работы web-сервера: известно, что web-серверы хранят информацию в виде текстовых файлов, называемых также страницами. Помимо текста, такие страницы могут содержать ссылки на другие страницы (расположенные на том же самом или другом сервере), ссылки на графические изображения, аудио- и видеоинформацию, различные объекты ввода данных (поля, кнопки, формы и т. д.), а также другие объекты и исполняемые на сервере программы. Фактически страницы представляют собой некоторое связующее звено между объектами различных типов. Их проектируют с применением специального языка разметки гипертекстов HyperText Markup Language, или сокращенно - HTML. Для доступа к информации, расположенной на web-серверах пользователи применяют специальные клиентские программы - браузеры. В настоящее время существуют десятки различных браузеров, но наибольшей популярностью на данный момент пользуются лишь несколько из них:
Microsoft Internet Explorer;
Opera;
Mozilla Firefox
Google Chrome.
3.1.2 Пассивные и активные web-серверы
Различают пассивные и активные web-серверы. Если страницы сервера содержат только статическую текстовую и мультимедийную информацию, а также гипертекстовые ссылки на другие страницы, то сервер называется пассивным. Когда же страницы сервера ведут себя аналогично окнам обычных интерактивных приложений, вступая в диалог с пользователем, мы имеем дело с активным сервером.
3.1.3 Объектно-ориентированный подход
В настоящее время всё большую популярность набирает использование объектно-ориентированного подхода при разработке web-приложений. И хотя преимущества такого подхода не так очевидны, как, например, в таких языках программирования, как C++ или Java, но всё большее количество свободно распространяемых библиотек и программ, написанных на языке программирования PHP, переходят на объектно-ориентированный интерфейс. Этим они вынуждают использующих их разработчиков обращаться к объектно-ориентированным возможностям PHP. Введение в пятой версии интерпретатора PHP полноценной поддержки объектно-ориентированной модели ещё больше подогревает интерес к этой методологии.
Зачастую использование объектно-ориентированного подхода к месту и не к месту делает проект успешным. Программирование новичка в стиле объектно-ориентированного программирования часто напоминает передвижение по минному полю – если не знать где мины, достичь конца проекта невозможно. Само по себе объектно-ориентированное программирование не является панацеей – это рабочая технология, которая позволяет:
увеличить процент повторно используемого исходного кода;
оперировать при программировании понятиями и объектами реального мира (студент, группа, курс и т.д.), а не низкоуровневыми компьютерными терминами (файл, строка и т.д.), что позволяет создавать более крупные проекты с меньшим количеством ошибок и в более сжатые сроки.
На заре компьютерной эпохи программа представлялаы собой один поток, который обрабатывал один массив данных. Со временем сложность программ и предъявляемых к ним требований возросли, и такой способ организации данных оказался неприемлемым. Был предложен структурный подход, при котором массив данных становился доступен из любой точки программы, однако основной поток программы разбивался на несколько процедур. Отдельную небольшую процедуру, пусть даже использующую общие данные, разрабатывать гораздо проще, чем большой объём исходного кода.
Каждая из процедур обладает локальными переменным, срок жизни которой определяется продолжительностью работы процедуры. Одни процедуры могут вызывать другие, однако массив данных в программе остаётся общим и доступным для всех процедур. Такой подход применяется при процедурном программировании на PHP и позволяет создавать крупные программные комплексы. Но разработка, отладка и поддержка программ, оперирующих большими объёмами данных(как, например, кафедральная БД), всё равно остаётся сложной и требующей значительного мастерства и опыта.
Ответом на всё возрастающую сложность стало появление объектно-ориентированного подхода в программировании: программа разбивается на несколько массивов данных, каждый из которых имеет свои собственные процедуры, а также процедуры, которые взаимодействуют с другими массивами данных.
В результате сложная задача разбивается на ряд более простых подзадач, а разработчики получают более гибкий способ управления проектом – редактировать один огромный монолитный блок кода гораздо сложнее, чем совокупность небольших, слабо связанных между собой блоков.
Независимо от привязки к языку программирования, объектно-ориентированный подход имеет ряд общих принципов, а именно:
возможность создавать абстрактные типа данных, позволяющая наряду с предопределёнными типами данных (такими как integer, string и т.д.) вводить свои собственные типы данных (классы) и объявлять «переменные» таких типов данных (объекты). Создавая свои собственные типы данных, программист оперирует не машинными терминами (переменная, функция), а объектами реального мира, поднимаясь тем самым на новый уровень абстракции;
инкапсуляция, ограничивающая взаимодействие пользователя абстрактных типов данных только их интерфейсом и скрывающая внутреннюю реализацию объекта, не допуская влияния на его внутреннее состояние. Память человека ограничена и не может содержать все детали огромного проекта, тогда как использование инкапсуляции позволяет разработать объект и использовать его, не заботясь о внутренней реализации и прибегая только к небольшому числу интерфейсных методов;
наследование, позволяющее развить существующий абстрактный тип данных – класс, создав на его основе новый класс. При этом новый класс автоматически получает возможности уже существующего абстрактного типа данных. Зачастую абстрактные типы данных слишком сложны, поэтому прибегают к их последовательной разработке, выстраивая иерархию классов от общего к частному;
полиморфизм, допускающий построение целых цепочек и разветвленных деревьев, наследующих друг другу абстрактных типов данных (классов). При этом весь набор классов будет иметь ряд методов с одинаковыми названиями: любой из классов данного дерева гарантированно обладает методом с таким именем. Этот принцип помогает автоматически обрабатывать массивы данных разного типа.
3.1.4 Особенности фреймворка CodeIgniter
Используемый фреймворк CodeIgniter написан с использованием объектно-ориентированного подхода. Все классы контроллеров, отображений и моделей, вводимые программистом, наследуют исходные классы, введённые в сам фреймворк. Это даёт возможность писать меньший по объёму исходный код, поскольку все необходимые базовые функции сразу же становятся доступны.
Помимо доступных программисту классов контроллеров, отображений и моделей, в фреймворке CodeIgniter существуют также доступные программисту функции плагинов (plugins) и хелперов (helpers - помощники). Хелперы, как видно из названия, призваны помочь исполнить какую-либо незначительную функцию. Например, существуют хелперы построения web-форм, загрузки файлов или работы с сессиями. В отличие от всех остальных основных элементов фреймворка, хелперы – наборы элементарных функций., написанных даже без использования объектно-ориентированного подхода. Каждая функция выполняет небольшую, строго ограниченную задачу. Однако набор довольно велик, и такая «мелочь» становится очень полезной в работе.
Плагины - почти то же самое, что и помощники, за исключением главного отличия: они не являются набором функций, они и есть одна функция. Кроме этого, можно обратить внимание на то, что помощники - больше часть ядра системы, в то время как плагины - нечто внешнее, разрабатываемое сторонними программистами. В реальности это так и оказывается. Даже те плагины, которые поставляются в основном комплекте, написаны пользователями CodeIgniter, входящими в сообщество.
3.1.5 Интегрированная среда разработки Eclipse
При разработке программы обработки анкет опроса студентов кафедры также использовался такой важный и полезный инструмент программиста, как интегрированная среда разработки (IDE - Integrated Development Environment), а именно Eclipse. Eclipse - свободный фреймворк для разработки модульных кроссплатформенных приложений. Разрабатывается и поддерживается Eclipse Foundation.
Наиболее известные приложения на основе Eclipse Platform - различные «Eclipse IDE» для разработки ПО на множестве языков (например, наиболее популярный «Java IDE», поддерживавшийся изначально). В данном случае использовались расширения для программирования на языках программирования PHP (модуль PDT) и JavaScript (модуль JSEclipse), а так же вёрстки с использованием языка разметки HTML.
3.2 Технология тестирования программы
Тестирование программы это процесс выявления ошибок в программном обеспечении. На данный момент существует множество методов тестирования программ, но они не позволяют гарантированно выявить и устранить все дефекты и ошибки, установить корректность функционирования анализируемой программы. Поэтому все существующие методы тестирования действуют в рамках формального процесса проверки исследуемого или разрабатываемого программного обеспечения.Такой процесс формальной проверки может доказать, что ошибки отсутствуют только с точки зрения используемого метода, но не гарантирует их полное отсутствие.
Тестом называется информация, состоящая из специально подобранных исходных данных, для отлаживаемой программы, и соответствующих им эталонных результатов, используемых для контроля правильности работы программы.
Контроль программы сводится к подбору тестов, получение которыми правильных результатов гарантировало бы правильную работу программы и для остальных исходных данных из всей допустимой области значений.
Тестирование системы проводилось несколькими методами:
нагрузочное тестирование;
ручная отладка и трассировка программы с использованием расширения XDebug;
модульное тестирование с помощью phpUnit.
на экране ничего не отображается, или выдается системная ошибка с соответствующим кодом (ошибка авторизации, сбой web-сервера и т.п.);
произошел сбой при работе с базой данных, при этом генерируется отчет об ошибке;
сбой сервера, связанный с высокой нагрузкой на приложение или БД;
произошла ошибка выполнения программы, в результате чего отображаются неверные данные или отчёт об ошибке.
3.2.1 Нагрузочное тестирование программы
Одним из важнейших тестов является нагрузочное тестирование, позволяющее найти «узкие места» в исходном коде или обращениях к базе данных.Существует множество средства, упрощающих задачу увеличения количества запросов и вызова на сервере множества операций. Тест предельно допустимой нагрузки должен быть спроектирован таким образом, чтобы в точности воспроизводить ожидаемый рабочую нагрузку на приложение.
Для нагрузочного тестирования программы обработки анкет опроса студентов кафедры была использована программа curl-loader. Curl-loader это свободно распространяемая утилита тестирования производительности web-приложений, написанная на языке программирования C. Она способна симулировать сотни и даже тысячи обращений к серверу по протоколам HTTP и HTTPS и использует библиотеку libcurl, что позволяет без каких-либо проблем тестировать приложения, требующие авторизации. А поддержка протокола HTTPS позволяет использовать утилиту curl-loader для нагрузочного тестирования web-приложений, работающих через шифрованные транспортные механизмы SSL (Secure Sockets Layer - уровень защищённых сокетов) и TLS (Transport Layer Security).
3.2.2 Отладка с использованием встроенных средств PHP
Стандартное поведение приложения, написанного на языке PHP, при возникновении ошибки в коде сильно зависит от параметров конфигурации. Как правило они задаются в конфигурационном файле php.ini:
параметр display_errors, имеющий значения on или off, указывает, следует ли показывать пользователю сообщения об ошибках или оставить их скрытыми;
параметр log_errors, имеющий значения on или off, заставляет интерпретатор PHP записывать сообщения в файл журнала событий;
директива error_reporting определяет, в каких случаях следует генерировать предупреждение, а в каких его можно проигнорировать.
При рабочем варианте программы следует, наоборот, отключать параметр display_errors, но включать log_errors. С одной стороны, это усложнит жизнь злоумышленникам, которые уже не смогут увидеть отладочную информацию. С другой стороны, в критической ситуации это поможет вам понять, что именно произошло, и исправить ошибку, даже если она не воспроизводится в тестовом окружении.
В обоих случаях параметр error_reporting удобно выставлять в максимально подробное состояние – E_ALL, заставляющее PHP сообщать о самых незначительных оплошностях в коде.
3.2.3 Отладка программы с помощью XDebug
Хотя язык программирования PHP можно использовать для создания сценариев командной строки для таких задач как системное администрирование и традиционная обработка данных, мощь языка особенно проявляется в web-приложениях.Учитывая кратковременность выполнения web-приложений и их уровневую конструкцию (клиентское приложение, сеть, web-сервер, прикладной код и применяемая база данных), отловить ошибки в исходном коде может быть нелегко. Даже если предположить, что все уровни, за исключением PHP-кода, работают безупречно, трассировка до обнаружения ошибки в программе может быть трудной, особенно если приложение использует большое количество классов.
Выражение языка PHP echo и такие функции, как var_dump(), debug_zval_dump() и print_r() являются обычными и очень популярными средствами отладки, помогающими решить различные мелкие проблемы. Однако как средства тестирования и отладки эти выражения (и даже более надежный инструментарий, например, пакет PEAR Log) помогают слабо и не всегда.
Кроме того, такая отладка является подходом с позиции "грубой силы". При отсутствии необходимой информации требуется переделывать исходный код, повторять предыдущие действия и начать поиск ошибки заново. Намного более эффективная стратегия - испытывать приложение во время его работы. Можно каталогизировать параметры запроса, просмотреть стек вызовов процедур, узнать значение любой переменной или объекта. Можно временно прервать выполнение приложения и получить уведомление об изменениях значения переменной
Такое "живое" или интерактивное исследование обеспечивается специальным приложением, называемым отладчиком. Отладчик запускает или подключается к процессу для управления им и исследования его памяти. Либо, в случае с интерпретируемыми языками, отладчик может непосредственно интерпретировать код. Типичный современный отладчик может индексировать и просматривать исходный код, отображать сложные структуры данных в читабельном виде и одновременно отображать состояние программы, стек вызовов, выводимые программой данные и значения всех переменных. Например, для отладчика обычным является каталогизация и отображение свойств и методов класса.
Вместо ручного добавления различных функций вывода отладочной информации можно воспользоваться XDebug для создания журнала трассировки. Журнал трассировки это список вызовов функций и методов класса на всем протяжении выполнения программы. Его преимущество заключается в том, что абсолютно каждый вызов найдет свое отражение в журнале.
Журнал трассировки обычно различается от запуска к запуску, так как он зависит от входящих данных, которые различаются от запроса к запросу.
Отслеживание журнала помогает понять, каким образом происходит выполнение программы, однако очень сложно визуализировать все возможные ветвления, если только программа не является очень простой. Именно из-за этого тестирование больших программ достаточно сложно: слишком много различный путей развития и каждый необходимо протестировать.
Средство отладки приложений XDebug, как следует из его названия, предоставляет несколько функциональных возможностей для отображения состояния программы и является очень ценным исследовательским инструментом. Будучи установленным, XDebug вмешивается в процесс для предотвращения бесконечных рекурсий, добавляет в сообщения об ошибках информацию о трассировке стека и функций, следит за распределением памяти, а также выполняет некоторые другие функции. Также Xdebug содержит также набор функций, которые можно добавить в исходный код для получения диагностических данных времени выполнения.
Результаты работы модуля XDebug можно просматривать с помощью программы KCachegrind, позволяющей визуализировать происходящие в исходном коде процессы (см. рисунок 3.1).
Подводя итоги, можно сказать, что XDebug это маленький, но очень полезный инструмент для разработчика PHP, он должен быть установлен на каждый интерпретатор PHP, применяемый для разработки. Но не стоит использовать XDebug на рабочих серверах, так как из-за этого сильно падает производительность.
Р
исунок 2.1. – Интерфейс программы KCachegrind
3.2.4 Модульное тестирование с использованием phpUnit
Модульное тестирование (unit testing) - процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы. Идея состоит в том, чтобы писать проверочные тесты для каждой нетривиальной функции или метода. Это позволяет достаточно быстро проверить, не привело ли очередное изменение кода к появлению ошибок в уже написанных и оттестированных местах программы, а также облегчает обнаружение и устранение таких ошибок. Цель модульного тестирования - изолировать отдельные части программы и показать, что по отдельности эти части работоспособны.При отладке и тестировании программы обработки анкет опроса студентов кафедры использовалась система phpUnit, позволяющая производить модульное тестирование web-приложений, написанных на языке программирования PHP.
Для того, чтобы написать минимальный набор тестов, используя phpUnit, необходимо:
подключить библиотеку PHPUnit.php;
создать подкласс базового класса TestCase;
добавить в него произвольное количество тестирующих методов, названия которых начинаются с "test". На вход будут подаваться заранее известные параметры, а результат сравнивается с эталонным посредством семейства функций Assert, унаследованных тестовым классом от базового класса TestCase;
создать класс PHPUnit_TestSuite, передав ему в качестве параметра название класса с набором тестов;
Запустить набор тестов и проверить результат выполнения.
6 (?). Перечень графического материала
6.1 Постановка задачи
6.2 Структурная схема программы
Информация, которой будет оперировать информационная система, организована в виде базы данных, созданной средствами MySQL (рисунок 16).
Рисунок 16 Схема базы данных, созданной средствами MySQL
Формализация расчетов (алгоритмы расчета и решения задач)
Для получения выходной документации, входные данные преобразовываются по определенному алгоритму.
При расчёте стоимости установки натяжного потолка необходимо заполнить форму «Стоимость», которая содержит 3 поля да ввода данных: ширина потолка, длина потолка, фактура материала. После заполнения данных полей программа запрашивает из базы данных MySQL, данные о стоимости материала с данной фактурой. Стоимость рассчитывается путём умножения площади потолочного покрытия на стоимость материала за 1 м 2 .
В форме «Расходы» при нажатии на кнопку «Остатки» программный модуль рассчитывает количество материала оставшегося на складе. При заполнении двух полей в форме «Остатки»: дата прихода материала, дата расхода материала, из базы данных MySQL запросом берутся данные, о размере прихода материала в данном месяце и о размере расхода в этом месяце. Остаток материала рассчитывается разностью прихода и расхода материала за конкретный промежуток времени.
Структурная схема использования комплекса программ (дерево диалога)
Системное меню - является основной формой диалога в прикладных системах обработки данных, содержащее команды, предназначенные для выполнения конкретных задач.
Разработанное приложение имеет интуитивно понятное меню. Для работы с таблицами базы данных модуля ИС «Управление предприятием» состоит из.
Тема 3. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Для адекватного использования компьютера (обработки информации ) необходимо знать назначение и свойства нужных при работе с ним программ. Совокупность программ и сопровождающей их документации (используемой при эксплуатации этих программ ), называется программным обеспечением (ПО). Программное обеспечение является неотъемлемой частью любой вычислительной системы и делится (по назначению ) на три категории: системное программное обеспечение (необходимое для управления компьютером, для создания и поддержки выполнения других программ пользователя, для предоставления пользователю набора всевозможных услуг ), системы программирования или инструментальные системы (обеспечивающие создание новых программ для компьютеров ) и прикладное программное обеспечение (непосредственно обеспечивающее выполнение необходимых пользователю работ ).
Структура программного обеспечения
Системное программное обеспечение включает комплекс программ, управляющих работой аппаратной части компьютеров и компьютерных сетей (как правило, эти программы не решают конкретных задач пользователя, но создают условия для их решения ). Системное ПО направлено:
· на обеспечение устойчивой работы компьютера и вычислительной сети;
· на создание условий для нормальной работы прикладных программ;
· на выполнение вспомогательных операций;
· на диагностику аппаратной части компьютера и вычислительной сети;
Все множество системных программ можно разделить на две большие группы: базовое ПО и сервисные системы . Базовое программное обеспечение - это минимальный набор программных средств, обеспечивающих работу компьютера.
Базовый подкласс ПО включает:
· операционные системы(ОС) - комплекс программ, управляющих процессом выполнения прикладных программ, планированием и управлением вычислительными ресурсами ПК (ОС берет на себя выполнение таких операций, как контроль работоспособности оборудования ПК; выполнение процедуры начальной загрузки; управление работой всех устройств ПК; управление файловой системой; взаимодействие пользователя с ПК; загрузка и выполнение прикладных программ; распределение ресурсов ПК - оперативной памяти, процессорного времени и периферийных устройств между прикладными программами ).
· операционные оболочки - специальные программы, предназначенные для облегчения общения пользователя с командами операционной системы, имеющие текстовый и графический варианты интерфейса конечного пользователя (программы-оболочки обеспечивают удобный и наглядный способ общения с компьютером, позволяют наглядно отображать содержимое каталогов на дисках, удобно копировать, переименовывать, пересылать и удалять файлы и др. ).
· сетевые операционные системы - комплекс программ, обеспечивающих обработку, передачу и хранение данных в сети.
До недавнего времени на большинстве ПК была установлена операционная система MS DOS , которая была создана в 1981 г. фирмой Microsoft (заметим, что она не была оригинальной разработкой самой Microsoft - компания Билла Гейтса лишь доработала «операционку» под названием QDOS, созданную другой компанией ). До появления Windows дисковая операционная система MS DOS была самой популярной и массовой в применении. В ее среде создано целое поколение программного продукта. На основе MS DOS в процессе развития компьютерных технологий появился Windows (с 1996 г. MS DOS включена в состав операционной среды Windows 95 ). Основные компоненты ОС, развитые в среде MS DOS, являются классикой, и органично включены в Windows на новом этапе развития программного обеспечения в целом и его сердцевины - операционных систем.
MS DOS 16-разрядная однозадачная операционная система, обладающая «интерфейсом командной строки», компактна, предъявляет скромные требования к аппаратуре и выполняет необходимый минимум функций для пользователей и программ. Основные недостатки DOS:
· главным ее уязвимым местом является работа с ограниченной оперативной памятью (в эпоху создания MS-DOS оперативная память большинства компьютеров не превышала 256 килобайт. DOS могла работать с 640 килобайтами ОП, и Билл Гейтс утверждал, что никому и никогда не понадобится больший объем, но время шло и появились программы, которым требовался для работы больший объем оперативной памяти и приходилось использовать специальные программы - менеджеры памяти, но и они не решали проблему );
· вторым недостатком DOS была невозможность работы в полноценном графическом режиме (хотя тогдашние компьютеры уже могли бы обеспечить его поддержку );
· третьим недостатком MS-DOS была однозадачность.
Операционные системы семейства DOS, несмотря на свою простоту и экономичность, морально устарели, и на смену им пришли операционные системы нового поколения. К числу таких ОС относятся операционные системы семейства Windows , операционные системы семейства Unix и др.
Сервисные системы - предназначены для обслуживания компьютера (расширяют возможности базового ПО ). По функциональному признаку среди сервисного ПО можно выделить:
· программы обслуживания дисков (обеспечивающие проверку качества поверхности диска, контроль сохранности файлов, сжатие дисков, создание страховых копий, резервирование данных на внешних носителях и др. );
· антивирусные программы (обеспечивающие защиту компьютера, обнаружение и восстановление зараженных файлов );
· программы архивирования данных (обеспечивают процесс сжатия информации в файлах с целью уменьшения объема памяти для ее хранения );
· программы обслуживания сети.
· программы диагностики работоспособности компьютера;
Программы, служащие для выполнения вспомогательных операций обработки данных или обслуживания компьютеров (диагностики, тестирования, оптимизации использования дискового пространства, восстановления разрушенной на магнитном диске информации и т.д. ), называют утилитами.
Системы программирования или инструментальные системы - это программные продукты, поддержки технологии программирования. В рамках этого направления существуют средства для создания приложений, включающие:
· локальные средства, обеспечивающие выполнение отдельных работ по созданию программ;
· интегрированные среды разработчиков программ, обеспечивающие выполнение комплекса взаимосвязанных работ по созданию программ.
Локальные средства разработки программ включают языки и системы программирования, а также инструментальную среду пользователя. Существуют машинные языки программирования (воспринимаемые аппаратной частью компьютера машинные коды ), машинно-ориентированные языки (языки программирования, которые отражают структуру конкретного типа компьютера – ассемблеры ), алгоритмические (универсальные ) языки, не зависящие от архитектуры компьютера, например, Фортран (Fortran ), Кобол (Cobol ), Алгол (Algol ), Паскаль (Pascal ), Бейсик (Basic ), Си (C ), Си++ (C++ ) и др.; процедурно-ориентированные языки (где имеется возможность описания программы как совокупности процедур – подпрограммы ), проблемно-ориентированные языки (предназначенные для решения задач определенного класса ), интегрированные системы программирования. Заметим, что классификация языков программирования не закреплена ГОСТами (в учебных целях обычно проводится их классификация по различным признакам ). Программа, подготовленная на языке программирования, проходит этап трансляции, отладки и тестирования.
Основное назначение инструментария интегрированных программных сред – повышение производительности труда программистов, автоматизация создания программ, обеспечивающих интерфейс пользователя графического типа и др.
Кроме того, существуют средства для создания сложных информационных систем (CASE – технология ). Проектирование информационных систем представляет собой трудоемкую и длительную работу, требующую высокой квалификации участвующих в ней специалистов. В недалеком прошлом проектирование нередко выполнялось на интуитивном уровне неформализованными методами, включающими в себя элементы искусства, практический опыт, экспертные оценки и дорогостоящие экспериментальные проверки качества функционирования. В начале 70-х гг. в США был отмечен кризис программирования (software crisis ). Это выражалось в том, что большие проекты стали выполняться с отставанием от графика или с превышением сметы расходов, разработанный продукт не обладал требуемыми функциональными возможностями, производительность его была низка, качество получаемого программного обеспечения не устраивало потребителей. Потребность контролировать процесс разработки ПО, прогнозировать и гарантировать стоимость разработки, сроки и качество результатов привела к необходимости перехода от кустарных к индустриальным способам создания ПО и появлению совокупности инженерных методов и средств создания ПО, объединенных общим названием «программная инженерия» (software engineering ). В основе программной инженерии лежит следующая идея: проектирование ПО является формальным процессом, который можно изучать и совершенствовать. К концу 80-х гг. было проведено много исследований в области программирования (разработка и внедрение языков высокого уровня, методов структурного и модульного программирования, языков проектирования и средств их поддержки, формальных и неформальных языков описания системных требований и спецификаций и т. д. ). Термин CASE (Computer Aided Software Engineering ) имеет весьма широкое толкование. Первоначально значение термина CASE ограничивалось вопросами автоматизации разработки только лишь программного обеспечения, а в настоящее время оно приобрело новый смысл и охватывает процесс разработки сложных информационных систем в целом. CASE-технология представляет собой совокупность методов проектирования информационных систем, а также набор инструментальных средств, позволяющих в наглядной форме моделировать предметную область, анализировать эту модель на всех стадиях разработки и сопровождения, разрабатывать приложения в соответствии с информационными потребностями пользователей. Большинство существующих CASE-средств основано на методах структурного или объектно-ориентированного анализа и проектирования, использующих спецификации в виде диаграмм или текстов для описания внешних требований, связей между моделями системы, динамики поведения системы и архитектуры программных средств.
Прикладные программы - предназначены для решения прикладных задач пользователя (обеспечивает выполнение необходимых пользователю задач на компьютере ). Условно (по их назначению ) можно выделить следующие подклассы:
· программы обработки текстов;
· графические редакторы;
· программы обработки фото- и видеоизображений;
· программы подготовки презентаций;
· электронные таблицы;
· системы управления базами данных;
· программы экономического и статистического анализа;
· системы автоматизированного проектирования (САПР);
· информационно-поисковые системы;
· сетевое программное обеспечение (программы для работы с электронной почтой, доступ к видеоконференциям, браузеры Интернет и т.д. );
· игровые программы.
Прикладное программное обеспечение состоит из пакетов прикладных программ (ППП) и прикладных программ пользователя.
В настоящее время значительное место в прикладном ПО занимают пакеты прикладных программ, которые по сфере применения делятся на проблемно-ориентированные пакеты (направлены на решение узкого круга задач ), пакеты общего назначения (предназначены для решения типовых задач обработки данных ) и интегрированные пакеты (областью их применения является в основном экономическая сфера; они, как правило, содержат: табличный процессор, текстовый редактор, систему управления базами данных, графический редактор, коммуникационные средства ). Прикладные программы создаются в составе конкретной вычислительной среды (их разработка осуществляются обычно индивидуально в соответствии с соглашением ППП или ОС, в рамках которых они применяются ).
Разделы: Начальная школа , Экология
«Природа не храм, а мастерская, и человек в ней работник», - говорил тургеневский герой. Долгое время свои отношения с природой человек выстраивал по этому принципу. Однако то, что воспитывалось веками – потребительский подход к природе - очень трудно изменить. И здесь особое значение приобретает экологическое образование.
Особая роль в начальной школе отводится учебному предмету «Окружающий мир» , являющимся интегрированным курсом и направленным на формирование социального опыта учащихся, осознание ими элементарного взаимодействия в системе «человек, природа, общество». Воспитание нравственного и экологически обоснованного отношения к среде обитания и правил поведения в природе.
По УМК «Школа России» я работаю второй год.
Основные темы разделов:
- Где мы живём
- Природа
- Жизнь города и села
- Здоровье и безопасность
- Общение
- Путешествие
В конце каждого раздела даются темы для проектов, но сами презентации проектов проводятся в конце первого и второго полугодия. В первом классе дети готовили небольшие сообщения по этим разделам, с помощью родителей выполняли презентации на ватманах. Во втором классе дети выполняют эту работу в группе. Они делятся той информацией, которая у них сохранилась с первого года, объединяют её, дополняют новым найденным материалом. Защиту проводят выбранные ученики каждой группы.
Есть темы, которые очень интересуют детей, но их нет в проектах. Ребята сами с увлечением берутся за эти темы и затем делятся своими находками. Так получилось с работой по теме «Звёздное небо», в разделе природа. Мы изучили созвездия, на внеурочном занятии «Моя Астрахань» познакомились с Астраханским планетарием и его сотрудниками, которые нам сообщили о творческом конкурсе и ребята, объединившись в группу решили участвовать.
Во время сезонных экскурсий дети наблюдают за изменениями в природе, собирают природный материал, создают поделки, помогают зимующим птицам, строят кормушки и ждут гостей. Рассказывают о своих домашних питомцах и уходе за ними. В зимнее время устраивают огород на своих окнах и выращивают бобовые.
Элементы экологического образования могут быть включены на любых уроках: русского языка (словарная работа, диктанты, изложения), математики (при решении и составлении задач), литературного чтения (при обсуждении стихотворений, прозы).
На уроках русского языка, на этапе развития речи, детям можно предложить задания экологического содержания, объяснить значение пословиц и поговорок о природе.
Дети составляют рассказы по картинкам на заданную тему, например, "Что мне рассказал весной скворец".
Тексты для диктантов, изложений, проверочного списывания подбираю так, чтобы они помогали ребёнку понять и прочувствовать взаимосвязь и взаимозависимость всего живого в этом мире, пробуждая чувство прекрасного.
Основы экологического образования и воспитания формируются и на уроках математики. Детям нравятся задачи, в которых они могут познакомиться с жизнью природы. Во 2 классе дети сами начинают составлять задачи, используя знания, полученные на других уроках. При этом учащиеся учатся решать задачи, получают новые сведения о природе и развивают речь, память, мышление.
Большие возможности для экологического образования заложены в уроках литературного чтения. Я уделяю внимание развитию мотивации охранять природу путём образного познания мира. Важное место в формировании эстетических мотивов охраны природы занимает литературный анализ лирических стихотворений русских поэтов. Дети учатся чувствовать "настроение природы", высказывать своё видение окружающего мира, находить необычное в обычных предметах.
Экологическая работа проводится и с родителями: на родительских собраниях, в индивидуальных беседах и консультациях.
Разнообразная кропотливая работа даёт хорошие результаты. На основе диагностики можно сделать вывод: дети задают больше вопросов, вопросы становятся более глубокими по смыслу. У ребят возникает желание искать ответы на вопросы самостоятельно. Ребята не просто созерцают природу, но и переживают, волнуются, радуются, сопереживают, овладевают навыками ухода за животными и растениями.
Работа по экологическому воспитанию ведётся и за пределами школы. Экскурсии имеют большое воспитательно-образовательное значение. Они обеспечивают непосредственное общение ребят с природой в разные сезоны.
Я стараюсь учить детей видеть не только красоту природы, но и необдуманное истребление её людьми.
Экологическое воспитание подрастающего поколения - одна из основных задач на данный момент. Это очень трудная, но интересная работа.
Одним из принципов экологического воспитания является непрерывность. Об этом нужно помнить и отражать этот принцип в своей работе с детьми.
Достаточно новым направлением совершенствования экологического образования в начальной школе становится проблема управления самостоятельной деятельностью младших школьников по изучению окружающей среды с помощью заданий, ставящих ребёнка в положение исследователя, открывателя природных тайн и загадок.
В процессе работы можно использовать следующие виды деятельности:
- сюжетно-ролевые игры;
- практическая деятельность;
- детское творчество;
- общение с природой;
- экспериментирование;
- речевая деятельность: обмен информацией, впечатлениями;
- наблюдение;
- чтение книг, посещение выставок, музеев, кинозалов.
Разнообразная деятельность естественным образом связывает экологическое воспитание со всем процессом развития личности младшего школьника.
Задачи экологического воспитания в начальной школе требуют целенаправленной систематической работы. Экологическое образование невозможно без интеграции всех учебных предметов и внеклассных мероприятий. Детей необходимо знакомит с особенностями природы родного края. Изучение осуществляется по принципу: от близкого к далёкому - от родного города, края - ко всей стране, а затем к другим странам и континентам.
Целью экологического воспитания и образования младших школьников является достижение положительных учебных и воспитательных результатов именно на этом этапе школьного образования. У ребят формируются начала экологической культуры, что позволит в дальнейшем, в соответствии с концепцией общего среднего экологического образования, успешно усваивать в совокупности практический и духовный опыт взаимодействия человека с природой, который обеспечит его выживание и развитие.
Формирование экологической грамотности младших школьников на уроках окружающего мира посредством заданий творческого характера
Известный педагог В.А.Сухомлинский говорил: «Я глубоко убежден, что если в детстве человек переживает чувство изумления красотой родной природы, если, затаив дыхание, он слушает слова учителя о том, что видят его глаза, в эти часы пробуждается пульс его живой мысли. Благодаря этим часам общения с родной природой развиваются его умственные способности, в его духовную жизнь входит слово родной речи и становится его собственным богатством: в слове он выражает свои мысли, чувства, переживания. Гармония образа и слова, познания умом и познания сердцем – это и есть рождение того, что мы называем чувством любви к природе, к родному миру». Анализируя эти слова, я поняла, что большая роль в воспитании этого чувства принадлежит учителю начальных классов. На уроке окружающего мира я провела анкетирование учащихся и пришла к выводу, что негативный перечень во много раз превосходит перечень добрых дел. Подавляющее большинство детей усвоили негативные примеры и, в лучшем случае, заняли пассивную позицию «так не поступать». Подобная позиция соответствует низкому уровню развития экологической культуры. Дети с низким уровнем развития экологической культуры имеют слабое представление о той пользе, которую они сами уже сейчас смогут принести природе, городу, окружающим людям. Таким образом, в настоящее время педагогическая практика испытывает следующие затруднения в развитии экологической грамотности младших школьников: учащиеся не в полной степени представляют, что в природе все взаимосвязано; у обучающихся отсутствуют экологические знания, нет ощущения, что человек - часть природы; дети не умеют оценивать свои поступки и поступки других людей по отношению к окружающей среде на основе предвидения возможных отрицательных последствий.
За последнее время вопросы охраны природы, экологические проблемы стали главными не только для ученых, но и для широких слоев населения, в том числе и младших школьников. В ФГОС начального общего образования среди основных направлений работы школы сказано, что «воспитание эмоционально – ценностного, позитивного отношения к себе и к окружающему миру» имеет большое значение . Таким образом, государство ставит перед школой задачу совершенствования экологического образования подрастающего поколения.
Актуальность проблемы продиктовала следующие задачи: 1. Проанализировать школьную программу и выявить ее возможности в экологическом образовании обучающихся. 2. Создать представление о сложных взаимоотношениях человека с природой. 3. Дать современные представления о биосфере, о роли водного и воздушного бассейнов, почвенного покрова, растительного и животного мира. 4. Воспитание ответственности за состояние природы, ее сохранение и улучшение в интересах будущих поколений.
Решение данной проблемы зависит от уровня общей культуры каждого человека на земле. Основы любой культуры закладываются в детском возрасте. Считаю, что необходимо, чтобы каждый день учащиеся делали для себя открытие, чтобы каждый шаг облагораживал душу ребенка. Этому способствует интегрированный курс Н.Я. Дмитриевой и А.Н.Казакова « Мы и окружающий мир» в системе Л.В. Занкова, основу которого составляют «Естествознание» и «Обществознание». Широкая содержательная область, которая представлена в учебниках «Окружающий мир», дает возможность каждому ребенку найти сферу своих интересов, создавая условия для формирования универсальных учебных действий. Так, погружение в широкую природную и общественную сферу активизирует эмоционально – чувственную сферу детей, пробуждает у них интерес к своей Земле и родному краю, к людям Земли, к семье, чувство сопричастности к тому, что происходит в нашем общем доме.
Важнейшим показателем сформированности экологической грамотности, экологической культуры личности является ● проявление ребенком интереса к объектам природы, условиям жизни людей, растений, животных, попытки их анализировать; ● выполнение экологических правил поведения в окружающей среде становится нормой жизни, входит в привычку. Таким образом, речь идет о формировании экологической культуры как части общей культуры личности, представляющей собой совокупность экологически развитых интеллектуальной, эмоционально-чувственной и деятельностной сфер.
Для реализации поставленных задач использую в своей работе следующие средства: ● экологические сказки ●экологические задачи, задачи-рассказы ●конференции, пресс-конференции ●изучение растений и животных своей местности, занесенных в «Красную книгу» ●задания занимательного характера: интеллектуальные творческие игры, викторины, конкурсы рисунка-плаката «Защитим жизнь», «Береги Землю!»
Хорошим материалом для познания экологии является сказка. Сказка не только развлекает, она ненавязчиво воспитывает, знакомит с окружающим миром, добром и злом. Если в сказку внесены некоторые биологические знания и понятия о взаимоотношениях живых организмов между собой и с окружающей их средой, то сказка будет источником формирования элементарных экологических понятий. Но в экологических сказках не должны нарушаться экологические правила, свойства и действия сказочного героя не должны искажаться.
Цель экологической сказки – дать точную, научно-достоверную информацию. Основой экологической подготовки должны быть прочные биологические знания. В сказках даются представления о закономерностях в природе: о том, что нарушение закономерностей в природе может привести к беде; об отдельных особенностях поведения и жизни различных представителей животного и растительного мира. В сказках очень точно подмечены особенности многих животных и растений, природных явлений, ландшафтов.
Одним из показателей уровня понимания экологических проблем и сопереживания являются сказки, сочиненные самими детьми. Если ребенок сам придумал сказку, «связал в своем воображении несколько предметов окружающего мира, - значит, можно сказать, что он научился мыслить» (В.А.Сухомлинский) Перемещение в сказках центра внимания детей с человека на живую природу, которая создает и поддерживает среду обитания людей, позволяет формировать уважение к природе, ответственность за нее. Это и должно лежать в основе экологического воспитания детей.
Экологические задачи в начальной школе можно использовать как по теме, так и независимо от темы урока. В любом случае они будут активизировать внимание и мыслительную деятельность учеников, настраивать их на работу, способствующую творчеству и инициативе, повышающую эмоциональный фон урока. Текстовые задачи экологического содержания целесообразно применять на уроках для оценки как положительного, так и отрицательного влияния человека на природу. Экологические задачи не только стимулируют детскую любознательность, но и способствуют проявлению заботы и беспокойства о состоянии природы. Экологические задачи для младших школьников могут быть разного уровня сложности в зависимости от класса и подготовленности детей.
На уроках окружающего мира учащиеся овладевают навыками видеть проблему, выдвигать и доказывать гипотезы, выражать свои мысли устно и письменно. Учатся предъявлять результаты изысканий в виде схем, планов, моделей, поделок. Накопленные знания и умения следует закреплять и применять, т.е. нужен естественный выход, возможность реализовать свой опыт. Для того, чтобы дать детям почувствовать значимость их знаний, было решено провести ряд конференций.
Проводилась подготовительная работа, в результате которой рассматривались такие вопросы:
1.Что такое «конференция»?
2.Зачем нужны конференции?
3.Кому нужны конференции?
4.Нужны ли конференции школьникам?
5.Как люди готовятся к конференции?
6.А как готовиться к конференции нам?
7.Как нам организовать конференцию? Кто будут нашими гостями?
Увлекательна и полезна для учащихся работа над экологическими проектами:
«Моё дерево», «Реки нашего края», «Горы ценны не тем, что высоки, а тем, что богаты», «Помоги птицам зимой», «Растения и животные, занесенные в Красную книгу», «Земля- наш общий дом». Работая над проектами, учащиеся учатся работать с инструкциями, развивают навыки исследования, наблюдения, умение получать информацию из разных источников, анализировать её, Учатся работать со справочной литературой, вырабатывают навыки работы в интернете. При создании презентации проявляют творчество, для выступления перед аудиторией отрабатывают умение кратко формулировать свою мысль, аргументированно доказывать своё мнение.
Так как современные экологические изменения создают реальную угрозу жизни людей, учебно-воспитательная деятельность школы должна быть направлена на формирование экологической грамотности, экологической культуры учащихся, чтобы выросло поколение, которое будет охранять окружающую среду.
Приведенная система средств опыта способствует становлению экологической грамотности и формированию личностной позиции младших школьников. Вопросы культуры потребления природных ресурсов стояли в центре моей воспитательной работы с классом.