диплом. Разработка информационной системы автосервиса
Скачать 1 Mb.
|
4.1 Уровень прототипированияОпределим затраты на уровне прототипирования, приняв среднюю производительность программиста 13 точек в месяц ( смотрите таблицу 4.1): PM=(NOP(1–PROCENT/100))/PROD=85(1 – 5/100)) / 13 = 6,2 (чел/мес.). Определим длительность выполнения проекта на уровне прототипирования: TDEV = 3 (PM) (0,33+0,2(В-1,01)) = 3*6,2(0,33+0,2 (1-1,01) = 3*1,8 = 5,4 (мес.), где В = 1. 4.2 Уровень предварительного проектирования Определим показатель степени В на основе следующих данных (таблица 4.3). Таблица 4.3 – данные для расчета показателя степени В
В= 1,01 +14/100 = 1,15. Определим множитель на основе следующих данных (таблица 4.4). Таблица 4.4 – Таблица показателей
М=RCPX*RUSE*PDIF*PERS*PREX*SCED*FCIL=1*1*1*1*1,2*1*1,1=1,32 Затраты на автоматическую генерацию кода PMm = 0. Определим размер программы, приняв число строк кода на одну объектную точку раным 50: RAZMER = 50*85 = 4,25 тыс. строк. Определим затраты PM = 2,5 * RAZMERB * M+ PMm = 2,5*4,251,15* 1,32 = 17,49 (чел/мес.). Определим длительность выполнения проекта на уровне прототипирования TDEV = 3*(PM) (0,33+0,2(В-1,01)) = 3* 17,49(0,33+0,2(1,15-1,01)) = 8,34(мес.). 4.3 Постархитектурный уровеньНаходим значение М, учитывая следующие факторы – сомножители на таблице 4.5. Таблица 4.5 – Факторы-сомножители
М = 0,9 х 1 х 0,73 х 0,95 х 0,81 х 1 х 1 х 0,87 х 0,85 х 0,85 х х 0,9 х 0,95 х 0,9 х 1 х 1 х 1 х 1,2 = 0,293. Значения показателя степени и размера программы берем из предыдущего пункта расчета: В = 1,15; РМm = 0; RAZMER = 4,25, РМ = 2,5 *RAZMERB *М + РМm = 2,5 * 4,251,15 * 0,293 = 3,87 (чел/мес.). Определим длительность выполнения проекта на постархитектурном уровне: TDEV = 3 * (PM) (0,33+0,2(В-1,01)) = 3*3,87(0,33+0,2(1,15-1,01)) = 4,87 (мес.). Найдем оценку стоимости проекта, считая стоимость затрат на один человеко-месяц равной 30000 руб.: SC = TDEV х ZATRAT = 4,87 х 30 000 = 146 100 руб. Заключение Целью дипломного проекта являлась разработка информационной системы автосервиса. В информационной системе использованы различные процедуры и функции, предназначенные для обработки таблиц баз данных, полей и записей, работы с формами и окнами. В данной информационной системе реализовано большое количество различных методов работы с информацией, использовано много компонентов, позволяющих качественно и быстро организовать удобную работу. Поставленные цели и задачи перед дипломным проектом были достигнуты, спроектирована и реализована информационная система автосервиса, рассмотрено множество вопросов, что способствовало развитию навыков по программированию в среде Visual Studio, умению самостоятельно работать с литературой и программным кодом. автосервис заказ архитектура реляционный Список литературы 1. Администрирование Microsoft SQL Server 2000. Учебный курс MCSA/MCSE, MCDBA.- Москва: Русская Редакция 2003. 2. Гайдамакин Н. А., Автоматизированные информационные системы, базы и банки данных. Вводный курс: Учебное пособие. — М.: Гелиос АРВ, 2002. — 368 с., ил. 3. Петров В. Н., Информационные системы, Учебник 2 изд., (Серия «Учебное пособие») изд. ПИТЕР, 2006г., 656 стр. 4. Характеристики программного обеспечения «LogicStar Avto» Электронный ресурс - www.logicstars.ru 5. Характеристики программного обеспечения «Альфа-Авто», разработанный на платформе "1С:Предприятие 8.0" Электронный ресурс - www.rarus.ru/products/soft/146 6. Характеристики программного обеспечения «TurboService» Электронный ресурс - www.turboservice.ru 7. Администрирование Microsoft SQL Server 2000. Учебный курс MCSA/MCSE, MCDBA.- Москва: Русская Редакция 2003. 8. Сайт по SQL и клиент/серверной технологии [Электронный ресурс]. – Режим доступа: http://www.sql.ru/, свободный. 9. Проектирование и реализация БД MS SQL Server 2000. Учебный курс MCSA/MCSE, MCDBA.- Москва: Русская Редакция 2003 издание 2-е, исправленное. 10. Официальный сайт LogicStars. http://www.logicstars.ru/ 11. Официальный сайт 1С-Рарус. https://rarus.ru/1c-auto/1c8-alfa-avto-4/ Приложение А Программный код ///Represents the strongly named DataTable class. /// [global::System.Serializable()] [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] public partial class КлиентыDataTable : global::System.Data.TypedTableBase<КлиентыRow> { private global::System.Data.DataColumn columnКодКлиента; private global::System.Data.DataColumn columnНаименование; private global::System.Data.DataColumn columnКонтакты; private global::System.Data.DataColumn columnПримечание; [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public КлиентыDataTable() { this.TableName = "Клиенты"; this.BeginInit(); this.InitClass(); this.EndInit(); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] internal КлиентыDataTable(global::System.Data.DataTable table) { this.TableName = table.TableName; if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { this.CaseSensitive = table.CaseSensitive; } if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { this.Locale = table.Locale; } if ((table.Namespace != table.DataSet.Namespace)) { this.Namespace = table.Namespace; } this.Prefix = table.Prefix; this.MinimumCapacity = table.MinimumCapacity; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] protected КлиентыDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : base(info, context) { this.InitVars(); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public global::System.Data.DataColumn КодКлиентаColumn { get { return this.columnКодКлиента; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public global::System.Data.DataColumn НаименованиеColumn { get { return this.columnНаименование; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public global::System.Data.DataColumn КонтактыColumn { get { return this.columnКонтакты; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public global::System.Data.DataColumn ПримечаниеColumn { get { return this.columnПримечание; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] [global::System.ComponentModel.Browsable(false)] public int Count { get { return this.Rows.Count; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public КлиентыRow this[int index] { get { return ((КлиентыRow)(this.Rows[index])); } } [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public event КлиентыRowChangeEventHandler КлиентыRowChanging; [global::System.CodeDom.Compiler.GeneratedCodeAttribute "System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public event КлиентыRowChangeEventHandler КлиентыRowChanged; [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public event КлиентыRowChangeEventHandler КлиентыRowDeleting; [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public event КлиентыRowChangeEventHandler КлиентыRowDeleted; [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public void AddКлиентыRow(КлиентыRow row) { this.Rows.Add(row); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public КлиентыRow AddКлиентыRow(string Наименование, string Контакты, string Примечание) { КлиентыRow rowКлиентыRow = ((КлиентыRow)(this.NewRow())); object[] columnValuesArray = new object[] { null, Наименование, Контакты, Примечание}; rowКлиентыRow.ItemArray = columnValuesArray; this.Rows.Add(rowКлиентыRow); return rowКлиентыRow; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public КлиентыRow FindByКодКлиента(int КодКлиента) { return ((КлиентыRow)(this.Rows.Find(new object[] { КодКлиента}))); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public override global::System.Data.DataTable Clone() { КлиентыDataTable cln = ((КлиентыDataTable)(base.Clone())); cln.InitVars(); return cln; |