Файл: Обоснование проектных решений по программному обеспечению.pdf
Добавлен: 17.06.2023
Просмотров: 87
Скачиваний: 3
СОДЕРЖАНИЕ
1.1. Выбор комплекса задач автоматизации.
1.2. Характеристика существующих бизнес – процессов.
1.3. Характеристика документооборота, возникающего при решении задачи.
1.5. Обоснование проектных решений по программному обеспечению.
2.1. Информационная модель и её описание.
2.3. Характеристика результатной информации.
2.4. Общие положения (дерево функций и сценарий диалога).
2.5. Характеристика базы данных.
2.6. Структурная схема пакета (дерево вызова программных модулей).
2.7 Описание программных модулей.
Работа со всеми справочниками строится по одинаковому типу: при переходе в раздел работы со справочником открывается список записей справочника, с данной страницы можно открыть форму добавления новой записи, либо редактирования добавленной ранее.
Для работы с данными профиля пользователю необходимо нажать на свое имя в верхней панели сайта. Откроется форма работы с профилем (Рисунок 21).
Рисунок 21. Форма работы с данными профиля
ЗАКЛЮЧЕНИЕ
В ходе проделанной работы были решены следующие задачи:
- Была проанализирована текущая организация бизнес-процесса анализа и изучения конкуренции в компании «Суши-тайм», были выделены основные этапы выполнения бизнес-процесса, изучен возникающий документооборот;
- Были выбраны и обоснованы проектные решения по информационному и программному обеспечению;
- Была составлена информационная модель информационной системы;
- Была разработана база данных и программные модули, реализующие работу ИС.
- Был описан контрольный пример реализации проекта.
Таким образом, все задачи, поставленные перед данным курсовым проектом выполнены, а значит и основная цель достигнута.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. ГОСТ 2.105 – 95. Общие требования к текстовым документам.
2. ГОСТ 7.32 – 2001. Отчет по научно-исследовательской работе. Структура и правила оформления.
3. ГОСТ 7.82-2001. Библиографическое описание электронных ресурсов.
4. ГОСТ 24.702-85 Эффективность автоматизированных систем управления.
5. ГОСТ Р 7.0.5-2008. Библиографическая запись. Библиографическое описание.
6. Алистер Коберн, Современные методы описания функциональных требований к системам, М.: издательство "Лори", 2017. – 288 с
7. Гайфуллин Б.Н., Обухов И.А., Автоматизация систем управления предприятиями стандарта ERP-MRPII. – М:Интерфейс-пресс, 2010 г. – 114 c.
8. Гончаров А. Самоучитель. HMTL / А. Гончаров. – Спб. : Питер, 2011. – 240 с.
9. Дунаев В. HTML, скрипты и стили / В. Дунаев. – Спб. : БХВ-Петербург, 2015. – 816 с.
10. Жадеев А. PHP для начинающих / А. Жадеев. – Спб.: «Питер», 2014. – 592 c.
11. Колисниченко Д. PHP и MySQL. Разработка WEB-приложений / Д. Колисниченков – Спб: БХВ-Петербург, 2013. – 560 с.
12. Конналли Т. Базы данных. Проектирование, реализация и сопровождение. Теория и практика / Т. Коналли, К. Бегг. – М.: Издательский дом «Вильямс», 2013. – 1093 c.
13. Лобова Г. Моделирование и анализ бизнес-процессов SADT. – М.: LAP Lambert Academic Publishing, 2014. – 352 c.
14. Макдональд, М. Созданиец Web-сайта. Недостающее руководство / М. Макдональд. – Спб. : БХВ-Петербург, 2013. – 624 с.
15. Маклаков С. В. Моделирование бизнес-процессов с AllFusion Process Modeler (BPwin 4.1) / С.В. Маклаков. – М. : ДИАЛОГ-МИФИ, 2013. – 340 c.
16. Маклаков С.В. Создание информационных систем с AllFusion Modeling Suite / С.В. Маклаков. – М. : ДИАЛОГ-МИФИ, 2013. – 512 c.
17. Маклаков С.В. BPwin и Erwin. CASE-средства разработки информационных систем / С.В. Маклаков. – М. : ДИАЛОГ–МИФИ, 2014. – 369 c.
18. Тельнов, Ю.Ф. Информационные системы и технологии. Information System and Technologies: науч. издание под ред. Тельнова Ю. Ф. – М: Юнити-Дана,2012 – 303 с.
19. Флэнаган, Д. Javascript. Подробное руководство / Д. Флэнаган : пер с англ. – М. : Символ-Плюс, 2013. – 1080 с.
21. Проектирование информационных систем. http://проектирование-ис.рф/лекции/лекция-12/
<?php
namespace AppBundle\Controller;
use AppBundle\Entity\Comment;
use AppBundle\Entity\ProductCategory;
use AppBundle\Entity\Ticket;
use AppBundle\Entity\TicketStatus;
use AppBundle\Entity\TypeTicket;
use AppBundle\Form\Type\MyTicketFilterFormType;
use AppBundle\Form\Type\ProductCategoryFilterFormType;
use AppBundle\Form\Type\ProductCategoryFormType;
use AppBundle\Form\Type\ProductFormType;
use AppBundle\Entity\Role;
use AppBundle\Entity\Product;
use AppBundle\Form\Type\TicketCommentFormType;
use AppBundle\Form\Type\TicketFilterFormType;
use AppBundle\Form\Type\TicketFormType;
use AppBundle\Form\Type\TypeTicketFilterFormType;
use AppBundle\Form\Type\TypeTicketFormType;
use Sensio\Bundle\FrameworkExtraBundle\Configuration as Config;
use Symfony\Component\Form\FormError;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Response;
class TicketController extends InitializableController
{
/**
* @return RedirectResponse|Response
* @Config\Route("/tickets", name = "site_tickets_index")
*/
public function indexAction()
{
if (($this->authChecker->isGranted(Role::TEHNIC)) || ($this->authChecker->isGranted(Role::PROGER))) {
$form=$this->createForm(new MyTicketFilterFormType());
$id = null;
$status=null;
$my = null;
$form->handleRequest($this->request);
$tickets = $this->getRepository('Ticket')->createQueryBuilder('t')
->leftJoin('t.status', 's')
->leftJoin('t.user', 'u')
->where('1=1');
if ($form->isSubmitted() && $form->isValid()) {
$id = $form->get('id')->getData();
$status = $form->get('status')->getData();
$my = $form->get('my')->getData();
}
if (!empty($id)) {
$tickets->andWhere('t.id = :id ')->setParameter('id', $id);
}
if (!empty($status)) {
$tickets->andWhere('s.id = :status ')->setParameter('status', $status);
}
if (!empty($my)) {
$tickets->andWhere('u.id = :user ')->setParameter('user', $this->user->getId());
}
}
else {
$form=$this->createForm(new TicketFilterFormType());
$id = null;
$status=null;
$form->handleRequest($this->request);
$tickets = $this->getRepository('Ticket')->createQueryBuilder('t')
->leftJoin('t.status', 's')
->leftJoin('t.author', 'u')
->where('1=1');
if ($form->isSubmitted() && $form->isValid()) {
$id = $form->get('id')->getData();
$status = $form->get('status')->getData();
}
if (!empty($id)) {
$tickets->andWhere('t.id = :id ')->setParameter('id', $id);
}
if (!empty($status)) {
$tickets->andWhere('s.id = :status ')->setParameter('status', $status);
}
$tickets->andWhere('u.id = :user ')->setParameter('user', $this->user->getId());
}
$tickets=$tickets->getQuery()->getResult();
$this->view['tickets'] = $tickets;
$this->view['form'] = $form->createView();
$this->navigation = array('active' => 'tickets');
return $this->render('AppBundle:Tickets:index.html.twig');
}
/**
* @return RedirectResponse|Response
* @Config\Route("/tickets/add", name = "site_tickets_add")
*/
public function addAction()
{
$ticket = new Ticket();
$form = $this->createForm(new TicketFormType(), $ticket);
$form->handleRequest($this->request);
if ($form->isSubmitted() && $form->isValid()) {
$ticket->setAuthor($this->user);
/* @var TicketStatus $status*/
$status=$this->getRepository('TicketStatus')->findOneBy(array('id'=>1));
$ticket->setStatus($status);
$this->manager->persist($ticket);
$this->manager->flush();
$this->addNotice('success',
'tickets.html.twig',
array('notice' => 'added', 'id' => $ticket->getId())
);
return $this->redirectToRoute('site_tickets_index');
}
$this->forms['ticket'] = $form->createView();
$this->navigation = array('active' => 'tickets');
$this->view['ticket']=null;
return $this->render('AppBundle:Tickets:add.html.twig');
}
/**
* @param Ticket $ticket
* @return RedirectResponse|Response
* @Config\Route("/tickets/{ticket}/edit", name = "site_tickets_edit")
* @Config\ParamConverter("ticket", options = {"mapping": {"ticket": "id"}})
*/
public function editAction(Ticket $ticket)
{
$comment= new Comment();
$form = $this->createForm(new TicketCommentFormType(), $comment);
$form->handleRequest($this->request);
if ($form->isSubmitted() && $form->isValid()) {
$comment->setTicket($ticket);
$comment->setAuthor($this->user);
if (is_null($ticket->getUser()) && $this->user != $ticket->getAuthor()) {
$ticket->setUser($this->user);
$this->manager->persist($ticket);
}
$comment->upload();
$this->manager->persist($comment);
$this->manager->flush();
return $this->redirectToRoute('site_tickets_edit', array('ticket'=>$ticket->getId()));
}
$this->forms['comment'] = $form->createView();
$this->view['ticket'] = $ticket;
$this->navigation = array('active' => 'tickets');
return $this->render('AppBundle:Tickets:edit.html.twig');
}
/**
* @param Ticket $ticket
* @param TicketStatus $status
* @return RedirectResponse|Response
* @Config\Route("/tickets/{ticket}/change/{status}", name = "site_tickets_change")
* @Config\ParamConverter("ticket", options = {"mapping": {"ticket": "id"}})
* @Config\ParamConverter("status", options = {"mapping": {"srarus": "id"}})
*/
public function changeAction(Ticket $ticket, TicketStatus $status)
{
$ticket->setStatus($status);
if ($status->getId()==4) {
$this->addNotice('success',
'tickets.html.twig',
array('notice' => 'closed', 'id' => $ticket->getId())
);
}
if ($status->getId()==3) {
$this->addNotice('info',
'tickets.html.twig',
array('notice' => 'sendmodified', 'id' => $ticket->getId())
);
$ticket->setUser(null);
}
$this->manager->persist($ticket);
$this->manager->flush();
$this->navigation = array('active' => 'tickets');
return $this->render('AppBundle:Tickets:index.html.twig');
}
}
<?php
namespace AppBundle\Controller;
use AppBundle\Form\Type\LoginFormType;
use AppBundle\Form\Type\ProfileFormType;
use AppBundle\Controller\InitializableController;
use AppBundle\Entity\Role;