ВВЕДЕНИЕ 4
1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ И ФОРМИРОВАНИЕ ТРЕБОВАНИЙ 6
1.1 Анализ предметной области 6
1.2 Обзор аналогов 7
1.3 Постановка задачи 9
1.4 Входные и выходные данные 10
1.5 Выбор и обоснование средств разработки 11
2 МОДЕЛИРОВАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ И РАЗРАБОТКА ФУНКЦИОНАЛЬНЫХ ТРЕБОВАНИЙ 15
2.1 Разработка функциональной модели 15
2.2 Спецификация функциональных требований 16
2.3 Инфологическая модель 16
3 ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО СРЕДСТВА 19
3.1 Структура программного средства 19
3.2 Физическая модель БД 21
3.3 Разработка архитектуры программного средства 30
3.4 Разработка алгоритмов программного средства 30
3.5 Конструирование программного средства 31
3.6 Разработка пользовательских интерфейсов 32
4 ТЕСТИРОВАНИЕ 34
4.1 Описание тестового стенда 34
4.2 Выбор и обоснование видов тестирования 35
4.3 Выводы по тестированию 35
5 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 37
ЗАКЛЮЧЕНИЕ 46
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 47
Приложение А Код программы 48
Приложение Б Контекстная диаграмма 76
Приложение В Диаграмма вариантов использования 77
Приложение Г Схема алгоритма 78
Приложение А Код программы (частично)
package com.clinic.dao;
import com.clinic.model.Disease;
import java.util.List;
import java.util.Optional;
public interface DiseaseDAO {
List getAllDiseasesByUsername(String username);
Disease getDiseaseByIdAndUsername(Long id, String username);
List getAllDiseaseTypes();
void save(Disease disease);
void remove(Long id);
}
package com.clinic.dao;
import com.clinic.model.Employee;
public interface EmployeeDAO {
Employee getEmployeeByUsername(String username);
}
package com.clinic.dao;
import com.clinic.model.Patient;
import java.util.List;
public interface PatientDAO {
Patient getPatientByUsername(String username);
List getAllPatients();
}
package com.clinic.dao;
import com.clinic.model.Ticket;
import java.util.List;
public interface TicketDAO {
List getAllTicketsByUsername(String username);
void cancelTicketByIdAndUsername(Long id, String username);
List getTicketsForOrder();
void orderTicketByIdAndUsername(Long id, String username);
List getAllTickets();
}
package com.clinic.dao;
import com.clinic.model.Analyze;
import java.util.List;
import java.util.Optional;
public interface AnalyzeDAO {
List getAllAnalyzesByUsername(String username);
Analyze getAnalyzeByIdAndUsername(Long id, String username);
List getAllAnalyzeTypes();
void save(Analyze analyze);
void delete(Long id);
}
package com.clinic.dao.impl;
import com.clinic.dao.DiseaseDAO;
import com.clinic.dao.exception.AmbiguousIdentifierException;
import com.clinic.dao.exception.UnknownIdentifierException;
import com.clinic.model.Disease;
import com.clinic.model.DiseaseType;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
import static java.util.stream.Collectors.toList;
@Component
public class DefaultDiseaseDAO implements DiseaseDAO {
@Resource
private JdbcTemplate jdbcTemplate;
private static final String SELECT_ALL_DISEASES_BY_USERNAME = "SELECT username, diseases.id AS diseaseId, begin_date, " +
"end_date, disease_types.name AS disease, con-tent " +
"FROM diseases " +
"JOIN disease_types ON diseases.id_type = dis-ease_types.id " +
"WHERE username = ?";
private static final String SELECT_DISEASE_BY_USERNAME_AND_ID = "SE-LECT username, diseases.id AS diseaseId, begin_date, " +
"end_date, disease_types.name AS disease, con-tent " +
"FROM diseases " +
"JOIN disease_types ON diseases.id_type = disease_types.id " +
"WHERE username = ? AND diseases.id = ?";
private static final String SELECT_ALL_DISEASES = "SELECT username, diseases.id AS diseaseId, begin_date, " +
"end_date, disease_types.name AS disease, content " +
"FROM diseases " +
"JOIN disease_types ON diseases.id_type = dis-ease_types.id";
1. Альфред, В. Ахо Компиляторы. Принципы, технологии и инструментарий / Альфред В. Ахо и др. - М.: Вильямс, 2015. - 689 c.
2. Берд, Барри Java для чайников / Барри Берд. - М.: Диалектика / Вильямс, 2013. - 521 c.
3. Гарнаев, Андрей WEB-программирование на Java и JavaScript / Андрей Гарнаев , Сергей Гарнаев. - Москва: СПб. [и др.] : Питер, 2017. - 718 c.
4. Гонсалвес, Энтони Изучаем Java EE 7 / Энтони Гонсалвес. - М.: Питер, 2016. - 640 c.
5. Гупта, Арун Java EE 7. Основы / Арун Гупта. - М.: Вильямс, 2014. - 336 c.
6. Монахов, В. Язык программирования Java и среда NetBeans (+ CD-ROM) / В. Монахов. - М.: БХВ-Петербург, 2012. - 720 c.
7. Савитч, Уолтер Язык Java. Курс программирования / Уолтер Савитч. - М.: Вильямс, 2015. - 928 c.
8. Хабибуллин, Ильдар Самоучитель Java / Ильдар Хабибуллин. - М.: БХВ-Петербург, 2014. - 768 c.
9. Шилдт, Герберт Java 8. Руководство для начинающих / Герберт Шилдт. - М.: Вильямс, 2015. - 720 c.
10. Эккель, Брюс Философия Java / Брюс Эккель. - М.: Питер, 2016. – 809 c.