- Содержание
- Часть работы
- Список литературы
- Вопросы/Ответы
Оглавление
АННОТАЦИЯ 2
ВВЕДЕНИЕ 4
1. Анализ проектной области автоматизации 7
1.1 Исследование рынка. 7
1.2 Требования к системе 8
1.2.1 Анализ функциональных требований 8
1.2.2 Анализ нефункциональных требований 9
1.2.3 Аппаратно-программные требования 9
2. Проектирование информационной системы 11
2.1 Управление проектом 11
2.2 Проектирование 13
2.3 Архитектура программы 13
3. Реализация и тестирование системы. 17
3.1 Пример работы системы 17
3.2 Тестирование системы 18
3.2.1 Тестирование кода – модульное тестирование. 19
3.2. 2 Функциональное тестирование. 20
ЗАКЛЮЧЕНИЕ 21
ПРИЛОЖЕНИЕ 1 24
Фрагмент для ознакомления
Domain{publicclassTypeOfRawMateiral : IComparable {publicGuid Id { get; set; }publicstring Name { get; set; }publicintCompareTo(object? obj) {returnName.CompareTo(((TypeOfRawMateiral)obj).Name); }publicoverridestringToString() {return Name;}}}usingSystem.ComponentModel;namespaceExport.Domain{publicclassCountry : IComparable {publicGuid Id { get; set; } [DisplayName("Страна")]publicstring Name { get; set; }publicoverridestringToString() {return Name; }publicintCompareTo(object? obj) {returnName.CompareTo(((Country)obj).Name);} }}СервисныйслойusingExport.Domain;namespaceExport.Service{publicclassExportDataService {public List GetAllContracts() {using (var context = newExportDataContext()) {returncontext.ExportСontracts.Include("Country").Include("TypeOfRawMateiral").ToList(); } }public List GetAllCountries() {using (var context = newExportDataContext()) {returncontext.Countries.ToList(); } }public List GetAllSuppliers() {using (var context = newExportDataContext()) {returncontext.ExportСontracts.Select(x=>x.SupplierFirm).Distinct().ToList(); } }public List GetAllTypeOfRawMaterials() {using (var context = newExportDataContext()){returncontext.TypeOfRawMateirals.ToList(); } }publicvoidSaveCountry(stringcountryName) {using (var context = newExportDataContext()) {context.Countries.Add(new Country() { Id = Guid.NewGuid(), Name = countryName});context.SaveChanges(); } }publicvoidSaveRawMaterial(stringrawMaterial) {using (var context = newExportDataContext()) {context.TypeOfRawMateirals.Add(newTypeOfRawMateiral() { Id = Guid.NewGuid(), Name = rawMaterial });context.SaveChanges(); } }publicvoidSaveContract(stringcompanyRecipient, DateTimeconclusionDate, double sum, string country, stringsupplierFirm, stringtypeOfRawMateiral) {using (var context = newExportDataContext()) {context.ExportСontracts.Add(newExportContract() { Id = Guid.NewGuid(),CompanyRecipient = companyRecipient,ConclusionDate = conclusionDate, Country = context.Countries.First(x=>x.Name == country), Sum = sum,SupplierFirm = supplierFirm,TypeOfRawMateiral = context.TypeOfRawMateirals.First(x=>x.Name == typeOfRawMateiral)});context.SaveChanges(); } } }}Слой представленияusingSystem.ComponentModel;usingExport.Service;namespaceExportView{publicpartialclassForm1 : Form {private List list;privateExportDataService _exportDataService;publicForm1() {InitializeComponent(); _exportDataService = newExportDataService(); _exportDataService.InitDataBase();list = _exportDataService.GetAllContracts().OrderBy(x => x.ConclusionDate).ToList();var source = newBindingList(list);this.ExportContractsGrid.DataSource = source;this.ExportContractsGrid.Columns["Id"].Visible = false;foreach (DataGridViewColumn column inExportContractsGrid.Columns) {column.SortMode = DataGridViewColumnSortMode.Automatic; }this.ExportContractsGrid.ColumnHeaderMouseClick += ExportContractsGrid_ColumnHeaderMouseClick;this.sum.CausesValidation = true;this.sum.Leave += Sum_Leave;this.saveButton.Click += SaveButton_Click;countryComboBox.DataSource = _exportDataService.GetAllCountries();countryComboBox.DisplayMember = "Name";countryComboBox.SelectedIndex = -1;rawMaterialComboBox.DataSource = _exportDataService.GetAllTypeOfRawMaterials();rawMaterialComboBox.DisplayMember = "Name";rawMaterialComboBox.SelectedIndex = -1;CountrySearchComboBox.DataSource = _exportDataService.GetAllCountries();CountrySearchComboBox.DisplayMember = "Name";CountrySearchComboBox.SelectedIndex = -1;RawMaterialSearchComboBox.DataSource = _exportDataService.GetAllTypeOfRawMaterials();RawMaterialSearchComboBox.DisplayMember = "Name";RawMaterialSearchComboBox.SelectedIndex = -1;SupplierComboBox.DataSource = _exportDataService.GetAllSuppliers();SupplierComboBox.DisplayMember = "Name";SupplierComboBox.SelectedIndex = -1;var t = list .GroupBy(l => l.TypeOfRawMateiral.Name) .Select(cl => newRawMaterialConclusion { Name = cl.Key, Sum = cl.Sum(c => c.Sum),}).ToList();varmaterialSource = newBindingList(t);RawMaterialConclusionGrid.DataSource = materialSource;var c = list .GroupBy(l => new { Counrty = l.Country.Name, RawMaterial = l.TypeOfRawMateiral.Name }) .Select(cl => newCountryConclusion { Name = cl.Key.Counrty,RawMaterial = cl.Key.RawMaterial, Sum = cl.Sum(c => c.Sum), }).ToList();varcountrySource = newBindingList(c);countryConclusionGridView.DataSource = countrySource;var s = list .GroupBy(l => new { Supplier = l.SupplierFirm, RawMaterial = l.TypeOfRawMateiral.Name }) .Select(cl => newSupplierConclusion { Name = cl.Key.Supplier,RawMaterial = cl.Key.RawMaterial, Sum = cl.Sum(c => c.Sum), }).ToList();varsupplierSource = newBindingList(s);SupplierFirmGridView.DataSource = supplierSource;var m = list.GroupBy(l => new { Supplier = l.SupplierFirm, ConclusionDate = l.ConclusionDate.ToString("Y")}).Select(cl => newMonthConclusion{ Supplier = cl.Key.Supplier, Month = cl.Key.ConclusionDate, Sum = cl.Sum(c => c.Sum),}).ToList();varmonthSource = newBindingList(m);MonthConclusionGridView.DataSource = monthSource; }privatevoidSaveButton_Click(object? sender, EventArgs e) { _exportDataService.SaveContract(recepientFirm.Text, dateTimePicker.Value, double.Parse(sum.Text), countryComboBox.Text, supplierFirm.Text, rawMaterialComboBox.Text);MessageBox.Show("договор успешно сохранён!");recepientFirm.Text = string.Empty;dateTimePicker.Value = DateTime.Now;sum.Text = string.Empty;countryComboBox.SelectedIndex = -1;supplierFirm.Text = string.Empty;countryComboBox.SelectedIndex =-1; ExportContractsGrid.DataSource = _exportDataService.GetAllContracts(); }privatevoidSum_Leave(object? sender, EventArgs e) {doubledoubleSum = 0;if (!double.TryParse(sum.Text, outdoubleSum)){MessageBox.Show("Сумма договора должна быть числом");sum.Text = string.Empty; } }privatevoidExportContractsGrid_ColumnHeaderMouseClick(object? sender, DataGridViewCellMouseEventArgs e) {var name = ExportContractsGrid.Columns[e.ColumnIndex].Name;ExportContractsGrid.DataSource = list.OrderBy(o => o.GetType() .GetProperty(ExportContractsGrid.Columns[e.ColumnIndex].Name).GetValue(o, null)).ToList();ExportContractsGrid.Show(); }privatevoid Form1_Load(object sender, EventArgs e){ }privatevoidaddCountry_Click(object sender, EventArgs e) {if(!string.IsNullOrEmpty(countryComboBox.Text)) _exportDataService.SaveCountry(countryTextBox.Text);countryComboBox.DataSource = _exportDataService.GetAllCountries();countryComboBox.DisplayMember = "Name"; }privatevoidaddRawMaterial_Click(object sender, EventArgs e) {if (!string.IsNullOrEmpty(rawMaterialComboBox.Text)) _exportDataService.SaveRawMaterial(rawMaterialTextBox.Text);rawMaterialComboBox.DataSource = _exportDataService.GetAllTypeOfRawMaterials();rawMaterialComboBox.DisplayMember = "Name"; }privatevoidsearchButton_Click(object sender, EventArgs e){ List searchResult = list;if (SupplierComboBox.SelectedValue!=null)searchResult = searchResult.Where(x => x.SupplierFirm == SupplierComboBox.SelectedValue.ToString()).ToList();if (RawMaterialSearchComboBox.SelectedValue!=null)searchResult = searchResult.Where(x => x.TypeOfRawMateiral.Name == RawMaterialSearchComboBox.SelectedValue.ToString()).ToList();if (CountrySearchComboBox.SelectedValue!=null)searchResult = searchResult.Where(x => x.Country.Name == CountrySearchComboBox.SelectedValue.ToString()).ToList();if (startDateTimePicker.Value.Date != DateTime.Today || EndDateTimePicker.Value.Date != DateTime.Today)searchResult = searchResult.Where(x => x.ConclusionDate >= startDateTimePicker.Value && x.ConclusionDate <= EndDateTimePicker.Value).ToList();ExportContractsGrid.DataSource = searchResult; } }publicclassRawMaterialConclusion {publicstring Name { get; set; }publicdouble Sum { get; set; } }publicclassCountryConclusion {publicstring Name { get; set; }publicdouble Sum { get; set; }publicstringRawMaterial { get; set; } }publicclassSupplierConclusion {publicstring Name { get; set; }publicdouble Sum { get; set; }publicstringRawMaterial { get; set; } }publicclassMonthConclusion {publicstring Month { get; set; }publicdouble Sum { get; set; }publicstring Supplier { get; set; }}}Тестовыеметоды [TestClass]publicclassUnitTests { [TestMethod]publicvoidTestSaveMethod() {var service = newExport.Service.ExportDataService();int all = 0;all = service.GetAll().Count;service.SaveContract("test", DateTime.Now.AddMonths(-8), 1000, "TestCountry", "Test firm", "Test material");Assert.AreNotEqual(all, service.GetAll().Count); } [TestMethod]publicvoid TestSaveMethod2() {var service = newExport.Service.ExportDataService();int all = 0;all = service.GetAll().Count;service.SaveContract("test", DateTime.Now.AddMonths(-8), 1000, "TestCountry", "Test firm", "Test material");Assert.AreEqual(all+1, service.GetAll().Count);} }
1. Ларман К., Применение UML 2.0 и шаблонов проектирования, 3-е издание. Пер. с англ.-М.: Вильямс, 2007. – 624 с.;
2. Фаулер М., UML. Основы.-М.: Символ-Плюс, 3-е издание, 2005. – 184 с.
3. Evans E. Domain-Driven Design: Tackling Complexity in the Heart of Software – Addison Wesley, 2003, – 560с.
4. Черткова, Е. А. Статистика. Автоматизация обработки информации : учеб. пособие для вузов / Е. А. Черткова ; под общ. ред. Е. А. Чертковой. — 2-е изд., испр. и доп. — М. : Издательство Юрайт, 2017. — 195 с.
5. Полное руководство по языку программирования С# 10 и платформе .NET 6 – Вильямс – 540с.;
6. Стиллмен, Э. Head First Agile. Гибкое управление проектами / Э. Стиллмен. - СПб.: Питер, 2019. - 464 c.
7. Стэнли, Э. Управление проектами / Э. Стэнли. - М.: Диалектика, 2019. - 288 c.
8. .Грин Дж. Изучаем C# / Дж. Грин, Э. Стиллмен. – СПб.: «Питер», 2012.
9. Маркин, А. В. Программирование на sql в 2 ч. Часть 2 : учебник и практикум для бакалавриата и магистратуры / А. В. Маркин. — М. : Издательство Юрайт, 2019. — 292 с.
10. Кудрина, Е. В. Основы алгоритмизации и программирования на языке c# : учеб. пособие для СПО / Е. В. Кудрина, М. В. Огнева. — М. : Издательство Юрайт, 2019. — 322 с.
11. Зыков, С. В. Программирование. Объектно-ориентированный подход : учебник и практикум для академического бакалавриата / С. В. Зыков. — М. : Издательство Юрайт, 2019. — 155 с.
12. Microsoft Visual Studio Overview, [Электронный ресурс] URL:
http://en.wikipedia.org/wiki/Microsoft_Visual_Studio#Visual_Studio_2005
13. Microsoft SQL Server 2005, [Электронный ресурс] URL: http://en.wikipedia.org/wiki/Microsoft_SQL_Server
14. 3-Tier System Architecture, [Электронный ресурс] URL:http://en.wikipedia.org/wiki/Multitier_architecture
15. Introduction to ADO.NET, [Электронный ресурс] URL: http://en.wikipedia.org/wiki/ADO.NET
16. Introduction to .NET Architecture, [Электронный ресурс] URL: http://www.devtopics.com/what-is-net/
17. Common Language Infrastructure Definition, [Электронный ресурс] URL: http://en.wikipedia.org/wiki/Common_Language_Infrastructure
18. 3-Tier Architecture [Электронный ресурс] URL: http://www.c-sharpcorner.com/
Вопрос-ответ:
Какой основной рынок был исследован перед разработкой информационной системы?
Перед разработкой информационной системы был проведен анализ рынка, на котором планировалось ее внедрение. Были изучены существующие решения и их функциональность, определены основные требования пользователей и потенциальных заказчиков.
Какие требования были выявлены при анализе проектной области автоматизации?
При анализе проектной области автоматизации были выявлены функциональные и нефункциональные требования. Функциональные требования определяют основные функции и возможности системы, в то время как нефункциональные требования описывают ограничения и качественные характеристики системы.
Какие требования были учтены при разработке архитектуры программы?
При разработке архитектуры программы были учтены функциональные и нефункциональные требования системы. Также были учтены аппаратно-программные требования, которые определяют необходимые ресурсы и операционную среду для работы системы.
Какой проект был выбран для управления разработкой информационной системы?
Для управления разработкой информационной системы был выбран проект, который предоставляет инструменты для планирования, контроля и отслеживания работы команды разработчиков. Такой подход позволяет оптимизировать процесс разработки и достигать поставленных целей в установленные сроки.
Как проходило тестирование системы после реализации?
После реализации системы проходило тестирование, которое позволяло проверить работоспособность и соответствие системы требованиям. Были проведены функциональные, нефункциональные и интеграционные тесты, а также проверено производительность и безопасность системы.
Какие требования к системе рассматриваются в статье?
В статье рассматриваются функциональные и нефункциональные требования, а также аппаратно-программные требования.
Что включает в себя проектирование информационной системы?
Проектирование информационной системы включает управление проектом, проектирование и архитектуру программы.
Каким образом осуществляется реализация и тестирование системы?
Реализация и тестирование системы осуществляются через пример работы системы и ее тестирование.
Какие этапы проектирования информационной системы анализируются в статье?
В статье анализируются этапы управления проектом, проектирования и архитектуры программы.
Какие результаты исследования рынка представлены в статье?
В статье представлены результаты исследования рынка автоматизации, которые использовались при определении требований к системе.
Какой анализ проводится в проектной области автоматизации?
В проектной области автоматизации проводится анализ рынка и определение требований к системе.
Какие требования рассматриваются при разработке информационной системы?
При разработке информационной системы рассматриваются функциональные и нефункциональные требования, а также аппаратно-программные требования.