Главная страница

дипломная работа. Даар. Разработка службы курьерской доставки в мобильном приложении


Скачать 0.63 Mb.
НазваниеРазработка службы курьерской доставки в мобильном приложении
Анкордипломная работа
Дата24.04.2023
Размер0.63 Mb.
Формат файлаdocx
Имя файлаДаар.docx
ТипРеферат
#1086258
страница12 из 13
1   ...   5   6   7   8   9   10   11   12   13

ЗАКЛЮЧЕНИЕ




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

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

В специальной части был произведен анализ использования системы: выделены основные роли пользователей, описаны сценарии их взаимодействия с системой. Были обозначены основные функции системы, намечены стратегии архитектурного решения и выбраны технологии, позволяющие реализовать требуемую функциональность. Для описания организации данных была разработана информационная модель, представляющая структуру организации данных на различных уровнях: концептуальном, логическом и физическом. Также была разработана архитектура системы, которая послужила основой для реализации алгоритмов, описывающих функциональность системы. С целью реализации взаимодействия с пользователя с системой был реализован удобный, понятный и дружественный интерфейс пользователя. Для проверки работоспособности отдельных составляющих системы проведено модульное тестирование.

Исходя из вышесказанного, можно сделать вывод о том, что поставленная цель достигнута. Программный комплекс является завершенным и работоспособным, однако в дальнейшей перспективе возможно внедрить мобильное приложение для iOS с использованием iOS SDK.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ





  1. Программирование на Visual C#: учебное пособие для среднего профессионального образования / А. А. Казанский. – 2 – е изд.

  2. Программирование. Объектно-ориентированный подход; учебник и практикум для вузов / С.В. Зыков. – Москва: Издательство Юрайт.

  3. Технологии программирования: учебно-методическое пособие для СПО / Л.Ф. Лебеденко, О.И. Моренкова.

  4. Разработка и эксплуатация автоматизированных информационных систем: учебник для студ. учреждения сред. проф. образование / Д.Э Фуфаев, Э.В.Фуфаев. – 2-е изд.

  5. Технология разработки программных продуктов. Практикум: учеб. Пособие для студ. учреждения сред. проф. образования / А.В. Рудаков, Г.Н. Федорова. – 4-е изд.

  6. Базы данных: учебник для сред. проф. образования / Б.Я. Советов, В.В. Цехановский, В.Д. Чертовский. – 3-е изд.

  7. Проектирование информационных систем: учебник и приктикум для сред. проф. образования / Д.В. Чистов, П.П. Мельников, А.В. Золотарюк, Н.Б. Ничепорук.

  8. https://learn.microsoft.com/ – Справочная система Microsoft Visual Studio

  9. Харди, Б., Филлипс, Б. Программирование под Android. Для профессионалов. СПБ.: Питер, 2019. 592 с.

  10. ISO/IEC/IEEE 42010:2011(E) Systems and software engineering – Architecture description. NY, 2018. 46 p.

  11. Википедия. MVP архитектура. https://ru.wikipedia.org/wiki/Model-View-Presenter.

  12. Википедия. MVC архитектура. https://ru.wikipedia.org/wiki/Model-View-Controller.

  13. Назначение и особенности этапов проектирования базы данных (БД). http://e-educ.ru/bd10.html.

  14. Fowler, M. Inversion of Control Containers and the Dependency Injection pattern / M. Fowler. http://martinfowler.com/articles/injection.html.

  15. SQLitevsMySQLvsPostgreSQL: сравнение систем управления базами данных – http://devacademy.ru/posts/sqlite-vs-mysql-vs-postgresql/.

  16. Android Architecture Components – https://developer.android.com/develop/index.html?hl=ru.

  17. MVP для Android. Перевод – https://tttzof351.blogspot.ru/2014/04/mvp-android.html.



Приложение 1.



Активности для подтверждения пользователем заказа.

public class ConfirmOrderActivityextends AppCompatActivityimplements

SmsReceiver.OnSmsCodeReceiverListener,

View.OnClickListener,

ConfirmOrderPresenter.OnConfirmOrderDirection{

private Context mContext;

private ConfirmOrderPresentermConfirmOrderPresenter;

private FieldPresentermFieldPresenter;

private SmsReceivermSmsReceiver;

private TextViewtv_title;

private ImageViewiv_btn_close;

private TextViewtv_info;

private TextInputLayouttil_cvc_code, til_sms_code;

private EditTextet_cvc_code, et_sms_code;

private TextInputLayout[] fieldParents;

private EditText[] fields;

private Button btn_confirm;

@Override

protected void onCreate(@NullableBundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_confirm_order);

try {

initTools();

initViews();

setParams();

} catch (Exception mE) {

mE.printStackTrace();

}

}

private void initTools()throws Exception{

mContext= ConfirmOrderActivity.this;

mConfirmOrderPresenter= new ConfirmOrderPresenter(mContext);

mFieldPresenter= new FieldPresenter(mContext);

mSmsReceiver= new SmsReceiver(ConfirmOrderActivity.this);

}

private void initViews()throws Exception{

tv_title= (TextView)findViewById(R.id.tv_title);

iv_btn_close= (ImageView)findViewById(R.id.iv_btn_close);

tv_info= (TextView)findViewById(R.id.tv_info);

til_cvc_code= (TextInputLayout)findViewById(R.id.til_cvc_code);

til_sms_code= (TextInputLayout)findViewById(R.id.til_sms_code);

et_cvc_code= (EditText)findViewById(R.id.et_cvc_code);

et_sms_code= (EditText)findViewById(R.id.et_sms_code);

btn_confirm= (Button)findViewById(R.id.btn_confirm);

fieldParents= new TextInputLayout[]{til_cvc_code, til_sms_code};

fields = new EditText[]{et_cvc_code, et_sms_code};

}

private void setParams()throws Exception{

mFieldPresenter.setParamsFieldCvc(et_cvc_code);

mFieldPresenter.setParamsFieldSms(et_sms_code);

iv_btn_close.setOnClickListener(this);

btn_confirm.setOnClickListener(this);

mConfirmOrderPresenter.setOnConfirmOrderDirection(this);

mConfirmOrderPresenter.getTitle();

mConfirmOrderPresenter.getScreenParamByPayMethod();

mSmsReceiver.setOnSmsCodeReceiverListener(this);

mSmsReceiver.startReceiveSms();

}

@Override

public void onReceivedTitle(String title) {

tv_title.setText(title);

}

@Override

public void onReceivedScreenParamByPayMethod(intpayMethodId, String phone, String payDescription) {

switch (payMethodId){

case CASH:

til_sms_code.setVisibility(View.VISIBLE);

tv_info.setText(getString(R.string.text_sms_confirm)

.concat(phone));

break;

case BANK_CARD:

til_cvc_code.setVisibility(View.VISIBLE);

tv_info.setText(getString(R.string.text_card_confirm)

.concat(payDescription));

break;

}

}

@Override

public void onReceivedRequestParamByPayMethod(Maphttp_params, intpay_method) {

new ConfirmOrderTask(mContext, http_params, pay_method).execute();

}

@Override

public void onClick(View v) {

intid = v.getId();

switch (id){

case R.id.iv_btn_close:

finish();

break;

case R.id.btn_confirm:

try {

booleanisFieldValid = mConfirmOrderPresenter.checkFieldValid(fieldParents, fields);

if(isFieldValid){

String pin = et_sms_code.getText().toString();

String cvc = et_cvc_code.getText().toString();

mConfirmOrderPresenter.getRequestParamByPayMethod(pin, cvc);

}

} catch (Exception mE) {

mE.printStackTrace();

}

break;

}

}

@Override

public void onSmsCodeReceived(String sms) {

et_sms_code.setText(sms);

et_sms_code.setSelection(et_sms_code.length());

}

@Override

protected void onPause() {

super.onPause();

try {

if(mSmsReceiver!=null)

mSmsReceiver.stopReceiveSms();

} catch (Exception mE) {

mE.printStackTrace();

}

}

@Override

protected void onResume() {

super.onResume();

}

}
1   ...   5   6   7   8   9   10   11   12   13


написать администратору сайта