Разработка и сопровождение программного обеспечения

Создание приложения с применением технологии Windows Forms, обоснование выбора языка программирования. Разработка программы, предназначенной для автоматизации процесса работы с файлами. Описание разработанных модулей. Тестирование программного продукта.

Рубрика Программирование, компьютеры и кибернетика
Вид отчет по практике
Язык русский
Дата добавления 21.09.2016
Размер файла 2,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образования Республики Беларусь

Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники»

Филиал «Минский радиотехнический колледж»

Отчёт

по практике по разработке и сопровождению программного обеспечения

Разработчик: Захаревский А.А.

Руководитель практики: Терешко О.И.

Минск, 2016

Содержание

  • Введение
  • 1. Постановка задачи
  • 1.1 Описание предметной области
  • 1.2 Обзор существующих аналогов
  • 1.3 Информационная база задачи
  • 1.3.1 Входная и выходная информация
  • 1.4 Формулировка задачи
  • 2. Проектирование задачи
  • 2.1 Обоснование выбора средств для разработки
  • 2.2 Разработка алгоритма решения
  • 2.3 Проектирование интерфейса
  • 3. Реализация задач
  • 3.1 Описание разработанных модулей
  • 3.2 Описание реализованных методов и событий модулей
  • 3.3 Компоненты Windows Forms
  • 4. Тестирование
  • 5. Применение
  • 5.1 Установка и системные требования приложения
  • 5.2 Демонстрационный пример работы
  • Заключение
  • Список использованных источников
  • Приложение А (обязательное)
  • Приложение Б (обязательное)
  • Приложение В (обязательное)
  • Приложение Г (обязательное)
  • Приложение Д (обязательное)
  • Приложение Е (обязательное)
  • Приложение Ж (обязательное)
  • Приложение К (обязательное)
  • Приложение Л (обязательное)
  • Приложение М

Введение

Целью практики является закрепление знаний, полученных в процессе изучения дисциплин «Конструирование программ и языки программирования» и «Основы алгоритмизации и программирования»; «Тестирование и отладка ПО»; «Технологий разработки ПО»; знакомство с современными средствами автоматизации процесса проектирования и разработки ПО; закрепление изученных методом и приёмов в области инженерного проектирования и разработки ПО; изучение современного состояния и развития CASE-средств и промышленных технологий проектирования ПО; решения задач на этапе сопровождения программного продукта.

Целью выполнения данной работы является создание приложения с использованием технологии Windows Forms на языке программирования C#, которое предоставляет возможность пользователю работать с файлами компьютера.

1. Постановка задачи

1.1 Описание предметной области

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

1.2 Обзор существующих аналогов

На данный момент существует множество аналогов данного приложения, можно выделить такие как стандартный проводник Windows и Total Commander. Заказчику они не подходят из-за слишком большого функционала и множества ненужных функций.

1.3 Информационная база задачи

Информационная база - это совокупность упорядоченной информации, которая используется для функционирования системы и делится на внешнюю и внутреннюю машинную базу.

Как и любая компьютерная программа, данная программа обрабатывает входные данные и выводит результат в виде выходных данных. Входные данные имеют структуру любой задачи - это описание некоторой ситуации (исходные данные) и формулировка вопроса, ответ на который должен быть на основе сложившейся ситуации. Разделение входных данных на две части дает возможность задавать вопросы по уже имеющейся ситуации, не описывая ее заново.

1.3.1 Входная и выходная информация

Входными данными для разработанного ПП являются:

- пути к файлу;

- файлы и папки;

- тип файла.

Выходными данными разработанного ПП являются:

- информация отображаемая на экран по запросу пользователя;

- результаты поиска и сортировки.

Постоянными данными является база данных.

1.4 Формулировка задачи

Создать приложение с использованием технологии Windows Forms на языке программирования C#. Программа должна предоставлять возможность добавления, удаления, изменения, поиска и фильтрации и сортировки необходимых файлов.

Разрабатываемый ПП должен выполнять функции:

1 Ведение файлов. Создания, удаления и открытия файлов;

2 Сортировка. Сортировка файлов по разным критериям.

3 Поиск. Поиск информации по выбранным критериям.

Разработать для проектируемого программного средства:

- техническое задание;

- функциональную диаграмму;

- диаграмму потоков данных;

- диаграмму сущность-связь;

- диаграмму вариантов использования;

- диаграмму деятельности;

- диаграмму последовательности;

- диаграмму состояний;

- диаграмму классов.

Произвести тестирование разработанного программного продукта. Для проведения тестирования на основании разработанных требований написать чек-лист и тест-кейсы.

Чек-лист и тест-кейсы должны быть разработаны, как для смоук- теста, так и для теста критического пути.

2. Проектирование задачи

2.1 Обоснование выбора средств для разработки

В качестве платформы была взята платформа NET, потому что платформа NET на текущий момент самая передовая и перспективная технология для разработки под Windows и не только. Объектно-ориентированный подход - платформа .NET изначально строится на принципах объектно-ориентированного программирования.

Мощный инструментарий - поставляемая вместе со средой библиотека базовых классов обладает достаточным функционалом для решения задач практически любой сложности.

Разделение кода - в .NET способ разделения кода между приложениями значительно отличается от предшествующих реализаций за счет использования сборок. Сборки обладают формальными средствами для управления версиями и допускают одновременное существование рядом нескольких различных версий сборок.

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

Visual Studio - среда разработки, поставляемая вместе с .NET, предоставляет необходимый инструментарий для эффективного и быстрого создания приложений с графическим интерфейсом.

Язык программирования С# - появление технологии .NET повлекло за собой массовую реконструкцию некоторых языков программирования, стремящихся использовать те или иные возможности платформы, такие как С++ и альтернативу - язык, ориентированный специально Visual Basic. Microsoft решили предложить разработчикам альтернативу -язык, ориентированный специально .NET и создали С# и Java, что позволило программистам за достаточно короткое время изучить тонкости нового языка.

Несмотря на то, что С# и .NET предназначены в первую очередь для веб-разработки, их также активно применяют для создания приложений, которые должны устанавливаться на машине конечного пользователя, где и будет выполняться вся обработка данных. Разработку таких приложений обеспечивает библиотека Windows Forms, позволяющая проектировать графический интерфейс. Программа, описанная в данной работе, разработана именно с помощью библиотеки Windows Forms.

Обоснование выбора языка программирования:

- язык программирования С# претендует на подлинную объектную ориентированность;

- язык программирования С# призван реализовать компонентно-ориентированный подход к программированию, который способствует меньшей машинно-архитектурной зависимости результирующего программного кода, большей гибкости, переносимости и легкости повторного использования программ;

- принципиально важным отличием от предшественников является изначальная ориентация на безопасность кода.

- расширенная поддержка событийно-ориентированного программирования;

- язык программирования С# является «родным» для создания приложений в среде Microsoft .NET, поскольку наиболее тесно и эффективно интегрирован с ней.

Windows Forms -- интерфейс программирования приложений (API), отвечающий за графический интерфейс пользователя и являющийся частью Microsoft .NET Framework. Данный интерфейс упрощает доступ к элементам интерфейса Microsoft Windows. Преимуществом является и то, что управляемый код -- классы, реализующие API для Windows Forms, не зависят от языка разработки. То есть программист одинаково может использовать Windows Forms как при написании ПО на C#, С++, так и на VB.Net, J# и др.

2.2 Разработка алгоритма решения

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

В главном меню программы будут отображены основные функции программы для работы с файлами и папками.

Чтобы сортировать файлы в таблице по какому-либо критерию, нужно будет лишь нажать левой кнопкой мыши на заголовок нужного нам критерия.

Если нам нужно будет скопировать файл, то нужно сделать следующие действия: Зайти в папку, где находится наш файл, нажать правой кнопкой мыши на файл и нажать кнопку «Копировать», далее заходим в папку куда хотим вставить наш файл, жмём правой кнопкой мыши на пустое место и жмем кнопку «Вставить».

Так же в программе будет реализован шаблон программирования Composite для создания древовидной структуры между объектами класса.

2.3 Проектирование интерфейса

Программа будет состоять из 3 форм, включая главную. А именно:

- главная форма;

- форма «Form2» - для ввода названия создаваемой папки;

- форма «Form3» - для ввода названия создаваемых файлов;

Главная форма имеет такие компоненты как: MenuStrip, TreeView, ListView. MenuStrip используется для выбора функций и действий над файлами и папками. TreeView используется для отображения дерева папок копмьютера. ListView используется для отображения файлов, находящихся в выбранной папке.

Form2 и Form3 содержит TextBox для ввода информации и Button для подтверждения ввода.

Меню

Дерево папок

Отображение файлов в выбранной папке

Рисунок 1 - Предполагаемый интерфейс программы

3. Реализация задач

3.1 Описание разработанных модулей

В разработанной программе имеется 5 модулей.

Главный модуль «Program.cs» предназначен для запуска главного окна приложения.

Модуль «Form1.cs» предназначен для хранения списков объектов классов, для хранения данных из таблиц и работы с ними, а также для открытия форм по клику по пунктам меню, кроме пункта меню «Выход».

Модули «Directory.cs» «Component.cs» и предназначен для реализации дерева папок. Модуль передает информацию в модуль «Form1.cs».

Модули «SortWrapper.cs» и «SortComparer.cs» предназначены для сортировки ListView .Модуль передает информацию в модуль «Form1.cs».

3.2 Описание реализованных методов и событий модулей

Методы и события формы «Form1»:

public void AddDDisk(string path1) - добавление дисков в дерево папок.

private void Form1_Load(object sender, EventArgs e) - загрузка при старте программы.

private void treeView1_NodeMouseDoubleClick(object sender) - раскрытие дерева папок и отображение файлов.

protected static string formatSize(Int64 lSize) - подсчет размера файла.

private void button1_Click(object sender, EventArgs e) - поиск файлов в папке.

public void CreateCatalog(string name) - создание папки.

public void DeleteCatalog() - удаление папки.

public void DeleteFile() - удаление файла.

public void CreateTxt(string name) - создание текстового документа.

public void CreateDocx(string name) - создание документа Microsoft Word.

private void открытьToolStripMenuItem_Click(object sender, EventArgs e) - открытие файла в сторонней программе.

private void CopyFile(string name) - копирование файла.

private void PastFile(string path) - вставка файла.

private void поВозрастаниюToolStripMenuItem_Click(object sender, EventArgs e) - режим сортировки «По возрастанию».

private void поУбываниюToolStripMenuItem_Click(object sender, EventArgs e) - режим сортировки «По убыванию».

3.3 Компоненты Windows Forms

При разработке программы использовались следующие компоненты:

- MenuStrip - компонент предназначен для создания системы меню для формы Windows;

- TextBox - компонент предназначен для ввода информации.

- Button - компонент представляет собой элемент управления «Кнопка Windows». В моем случае использовался для запуска процессов реализации методов;

- Label - компонент представляет собой стандартную метку Windows для создания текстовых пояснений;

- ListView - компонент предназначен для отображения файлов в выбранной папке.

- TreeView - компонент предназначен для отображение дерева папок.

windows язык программирование модуль

4. Тестирование

Тестирование - ряд мероприятий, связанных с различного рода испытаниями объекта тестирования с целью установления соответствия или несоответствия его характеристик определенным требованиям и выявления дефектов. Дефектами, в свою очередь, могут быть как ошибки в работе, так и неприемлемое качество функционирования в определенных условиях эксплуатации.

Тестирование программного продукта проводят как на этапах его создания, так и на этапах технического сопровождения и дальнейшего развития. Виды тестирования программных продуктов и их краткое описание я постараюсь представить в этом материале.

Виды тестирования на этапе создания программного продукта классифицируют по преследуемым этим процессом целям. Функциональное тестирование - проверка корректного выполнения программой заложенных в нее функций. Нефункциональное тестирование - все прочие виды испытаний, такие как тестирование производительности в различных режимах эксплуатации, тестирование эргономики пользовательского интерфейса, тестирование отказоустойчивости и т.д.

Для проведения функционального тестирования персоналом отдела технического контроля разрабатывается документ программа и методика испытаний функционала приложения (ПМИ). Документ ПМИ содержит перечень сценариев тестирования программного продукта (test cases) с подробным описанием шагов. Каждый шаг сценария тестирования характеризуется действиями пользователя (специалиста по тестированию) и ожидаемыми результатами - ответной реакции программы на эти действия. Программа и методика испытаний обязана имитировать эксплуатацию программного продукта в реальном режиме.

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

Таблица 1 - Чек-лист

Модуль

Подмодуль/ экран

Описание теста

Ожидаемый результат

Test Case Passed/Failed

Приложение

Запуск приложения

Открытие приложения

Passed

Начало работы

Отображение дерева папок и файлов в выбранной папке

Passed

Работа с файлами и папками

Реализация работы с файлами и папками(Создание, удаление)

Passed

Завершение работы

Закрытие программы

Passed

Сохранение результатов редактирования или добавления

Результат работы сохраняется автоматически

Passed

Контекстное меню

1.Создать

Создание папки или файла

Создается папка или файл

Passed

2.Файл

Поиск и сортировка файлов

Отображение найденного, либо отсортированных файлов

Passed

3.Удалить файл

Удаление файла

Файл удален

Passed

4.Удалить папка

Удаление папки

Папка удалена

Passed

Таблица 2 - Test-case

Запустить приложения.

1.Открыть любую папку в дереве папок

1.Файлы в папке отображены

Открыть файл.

1.Выбрать файл в списке.

2.Нажать кнопку «Открыть».

1.Файл выделен.

2.Файл открывается в сторонней программе.

Просмотр информации.

1. Открыть любую папку

1. Отображаются папки и файлы в ней

Поиск файлов в папке

1.Ввести поисковое слово (название файла).

2. Нажать кнопку «Найти»

1.Поисковое слово введено.

2.В таблице отображается искомая информация.

Сортировка

1.Выбрать режим сортировки.

2.Нажать на заголовок столбца который хотим отсортировать.

1.Выводятся отсортированные данные в таблице.

Создать папку

1.Ввести имя папки

2.Нажать кнопку «ОК».

1.Создается и отображается созданная папка

Удалить папку

1.Выделить папку для удаления

2.Нажать «Удалить».

1.Папка выделена.

2.Из дерева удаляется папка.

Создать файл

1.Навести мышь на кнопку «Создать файл».

2.Выбрать тип файла.

3.Ввести имя файла.

4.Нажать кнопку «ОК».

1.Предоставлен выбор типа файла.

2.Выбирается тип файла.

3. Введенная информация сохраняется.

4.Отображается созданный файл.

Удалить файл

1.Выделить файл в списке.

2.Нажать кнопку «Удалить файл».

1.Строка выделена.

2.Удаляется файл из таблицы.

Копировать файл

1.Выделить строку для удаления.

2.Нажать правую кнопку мыши.

3.Нажать кнопку «Копировать»

1.Строка выделена.

2.Отображается форма с кнопками.

3.Файл скопирован.

Вставить файл

1.Выбрать папку в которую хотим вставить файл.

2. Нажать правую кнопку мыши.

3.Нажать кнопку «Вставить».

1.Ячейка выделена, Доступна вставка файла.

2.Отображена форма с кнопками.

3. Файл вставлен в выбранную папку.

5. Применение

5.1 Установка и системные требования приложения

Для установки программы необходимо зайти в папку «Файловый менеджер [Setup]», и запустить файл «setup.exe».

Установка программы производится в любое доступное место на персональном компьютере, для установки требуется не менее 10 Мб свободной памяти на диске.

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

Минимальные системные требования:

- OC Windows XP/Vista/7/8/10;

- ОЗУ 1024 Мб;

- места на жестком диске 10 Мб;

- частота процессора 1 ГГц;

- .NET Framework должен быть 4.5.2.

5.2 Демонстрационный пример работы

При запуске приложения открывается главная форма. Меню программы имеет следующие функции: Создание текстового документа, либо документа Microsoft Word; Создание или удаление папок; Удаление файлов на компьютере или удаление созданных нами файлов; Открытие файлов в сторонних программах; Сортировка и поиск файлов в папках; Копирование и вставка файлов; Выбор функций программы осуществляется с помощью меню. Чтобы сортировать файлы нужно нажать на заголовок столбца.

Рисунок 2 - Главная форма

После выбора пункта меню «Создать» - «Файл» - «Текстовый документ» или «Документ Microsoft Word» отображается форма ввода имени.

Рисунок 3 - Форма ввода имени

Заключение

В ходе прохождения практики были получены и закреплены знания в области дисциплин «Конструирование программ и языки программирования» и «Основы алгоритмизации и программирования»; «Тестирование и отладка ПО»; «Технология разработки ПО»;

Были освоены приемы проведения тестирования ПО, в частности разработки Чек-листа и Test-case.

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

Список использованных источников

1. Bourque, P. IEEE Guide to Software Engineering Body of Knowledge, 2004.

2. Шилдт Г. Полный справочник по C#. - Издательский дом «Вильямс», 2004.

Список Интернет-ресурсов

3. CyberForum.ru.

4. MSDN.Microsoft.com.

Приложение А (обязательное)

Текст программы

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Globalization;

using System.IO;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Diagnostics;

using System.Collections;

namespace Файловый_менеджер

{

public partial class Form1 : Form

{

Component c;

static string path = «.\\.»;

static DirectoryInfo dir = new DirectoryInfo(path);

Component D = new Directory(«Мой компьютер», 500, Convert.ToString(dir.CreationTime));

FileInfo copyfile = new FileInfo(path);

public Form1()

{

InitializeComponent();

}

//добавление дисков в дерево папок

public void AddDDisk(string path1)

{

foreach(DriveInfo d in DriveInfo.GetDrives())

{

Component Drive = new Directory(d.Name, 1, Convert.ToString(1));

D.Add(Drive);

treeView1.Nodes.Add(d.Name);

}

}

private void Form1_Load(object sender, EventArgs e)

{

this.listView1.View = View.Details;

ImageList treeimg = new ImageList();

treeimg.Images.Add(Image.FromFile(«D:\\Практика\\Файловый менеджер\\Файловый менеджер\\FolderClose.bmp»));

treeView1.ImageList = treeimg;

AddDDisk(path);

listView1.Columns.Add(new ColHeader(«Название файла», 110, HorizontalAlignment.Left, true));

listView1.Columns.Add(new ColHeader(«Тип», 40, HorizontalAlignment.Left, true));

listView1.Columns.Add(new ColHeader(«Размер файла», 110, HorizontalAlignment.Left, true));

listView1.Columns.Add(new ColHeader(«Дата создания», 110, HorizontalAlignment.Left, true));

this.listView1.ColumnClick += new ColumnClickEventHandler(listView1_ColumnClick);

}

//раскрытие дерева папок и отображение файлов

private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)

{

var item = new string[4];

path = FindPath();

dir = new DirectoryInfo(path);

treeView1.SelectedNode.Nodes.Clear();

try

{

foreach (DirectoryInfo dirr in dir.GetDirectories())

{

treeView1.SelectedNode.Nodes.Add(dirr.Name);

Component Catalog1 = new Directory(dirr.Name, 1, Convert.ToString(dirr.CreationTime));

c = D.Select(treeView1.SelectedNode.Text, c);

c.Add(Catalog1);

}

listView1.Items.Clear();

foreach (FileInfo f in dir.GetFiles())

{

item[0] = f.Name;

item[1] = f.Extension;

item[2] = formatSize(f.Length);

item[3] = Convert.ToString(f.CreationTime);

var additem = new ListViewItem(item, 0);

listView1.Items.Add(additem);

}

}

catch(System.UnauthorizedAccessException)

{

MessageBox.Show(«Нет доступа к папке!»);

treeView1.SelectedNode.Remove();

}

catch(System.IO.IOException)

{

MessageBox.Show(«Вставьте диск!»);

}

}

//Поиск пути

private string FindPath()

{

path = ««;

return path + treeView1.SelectedNode.FullPath;

}

//Подсчет размера файла

protected static string formatSize(Int64 lSize)

{

string stringSize;

var myNfi = new NumberFormatInfo();

Int64 lKBSize;

if (lSize < 1024)

{

stringSize = lSize == 0 ? «0» : «1»;

}

else

{

lKBSize = lSize / 1024;

stringSize = lKBSize.ToString(«n», myNfi);

stringSize = stringSize.Replace(«.00», ««);

}

return string.Format(«{0} KB», stringSize);

}

private void найтиToolStripMenuItem_Click(object sender, EventArgs e)

{

textBox1.Visible = true;

button1.Visible = true;

}

//поиск файлов в папке

private void button1_Click(object sender, EventArgs e)

{

var item = new string[4];

string fname = ««;

path = FindPath();

dir = new DirectoryInfo(path);

listView1.Items.Clear();

foreach (FileInfo f in dir.GetFiles())

{

fname = f.Name.Replace(f.Extension, ««);

if (fname == textBox1.Text)

{

item[0] = f.Name;

item[1] = f.Extension;

item[2] = formatSize(f.Length);

item[3] = Convert.ToString(f.CreationTime);

var additem = new ListViewItem(item, 0);

listView1.Items.Add(additem);

}

}

textBox1.Visible = false;

button1.Visible = false;

}

//картинки папок

private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)

{

ImageList treeimg = new ImageList();

treeimg.Images.Add(Image.FromFile(«D:\\Практика\\Файловый менеджер\\Файловый менеджер\\FolderOpen.bmp»));

treeView1.ImageList = treeimg;

}

//создание папки

public void CreateCatalog(string name)

{

dir = new DirectoryInfo(path + «\\» + name);

dir.Create();

}

//удаление папки

public void DeleteCatalog()

{

try

{

dir = new DirectoryInfo(FindPath());

dir.Delete();

MessageBox.Show(«Удалено!»);

treeView1.Nodes.Remove(treeView1.SelectedNode);

}

catch(System.IO.IOException)

{

MessageBox.Show(«Удалить можно только пустую папку!»);

}

}

//удаление файла

public void DeleteFile()

{

try

{

FileInfo f = new FileInfo(path + «\\» + listView1.FocusedItem.Text);

f.Delete();

listView1.Items.Remove(listView1.FocusedItem);

listView1.FocusedItem = null;

MessageBox.Show(«Удалено!»);

}

catch(System.NullReferenceException)

{

MessageBox.Show(«Выберите файл для удаления!»);

}

}

private void папкуToolStripMenuItem_Click(object sender, EventArgs e)

{

Form2 form2 = new Form2();

form2.Show();

}

private void удалитьToolStripMenuItem_Click(object sender, EventArgs e)

{

DeleteFile();

}

private void удалитьПапкуToolStripMenuItem_Click(object sender, EventArgs e)

{

DeleteCatalog();

}

//создание текстового документа

public void CreateTxt(string name)

{

FileInfo f = new FileInfo(path + «\\» + name + «.txt»);

listView1.Items.Add(name);

f.Create();

}

//создание документа word

public void CreateDocx(string name)

{

FileInfo f = new FileInfo(path + «\\» + name + «.docx»);

listView1.Items.Add(name);

f.Create();

}

private void текстовыйДокументToolStripMenuItem_Click(object sender, EventArgs e)

{

Form3 f3 = new Form3();

f3.b1.Visible = true;

f3.Show();

}

private void документMicrosoftWordToolStripMenuItem_Click(object sender, EventArgs e)

{

Form3 f3 = new Form3();

f3.b2.Visible = true;

f3.Show();

}

//открыть файл в сторонней программе

private void открытьToolStripMenuItem_Click(object sender, EventArgs e)

{

try {

Process.Start(path + «\\» + listView1.FocusedItem.Text);

}

catch(System.ComponentModel.Win32Exception)

{

MessageBox.Show(«Нет доступа к файлу!»);

}

catch(System.NullReferenceException)

{

MessageBox.Show(«Выберите файл, который нужно открыть!»);

}

}

//копирование файла

private void CopyFile(string name)

{

copyfile = new FileInfo(path + «\\» + name);

}

//вставка файла

private void PastFile(string path)

{

try {

var item = new string[4];

File.Copy(copyfile.FullName, path + «\\» + copyfile.Name);

item[0] = copyfile.Name;

item[1] = copyfile.Extension;

item[2] = formatSize(copyfile.Length);

item[3] = Convert.ToString(copyfile.CreationTime);

var additem = new ListViewItem(item, 0);

listView1.Items.Add(additem);

}

catch(System.IO.IOException)

{

MessageBox.Show(«Вы не скопировали файл!»);

}

}

private void копироватьToolStripMenuItem1_Click(object sender, EventArgs e)

{

try

{

CopyFile(listView1.FocusedItem.Text);

}

catch(System.NullReferenceException)

{

MessageBox.Show(«Выберите файл, который хотите скопировать!»);

}

}

private void вставитьToolStripMenuItem1_Click(object sender, EventArgs e)

{

PastFile(treeView1.SelectedNode.FullPath);

}

private void listView1_MouseClick(object sender, MouseEventArgs e)

{

if(e.Button == MouseButtons.Right)

{

contextMenuStrip1.Show(MousePosition);

}

}

private void listView1_ColumnClick(object sender, ColumnClickEventArgs e)

{

ColHeader clickedCol = (ColHeader)this.listView1.Columns[e.Column];

clickedCol.ascending = !clickedCol.ascending;

int numItems = this.listView1.Items.Count;

this.listView1.BeginUpdate();

ArrayList SortArray = new ArrayList();

for (int i = 0; i < numItems; i++)

{

SortArray.Add(new SortWrapper(this.listView1.Items[i], e.Column));

}

SortArray.Sort(0, SortArray.Count, new SortWrapper.SortComparer(clickedCol.ascending));

this.listView1.Items.Clear();

for (int i = 0; i < numItems; i++)

this.listView1.Items.Add(((SortWrapper)SortArray[i]).sortItem);

this.listView1.EndUpdate();

}

private void сортировкаToolStripMenuItem_Click(object sender, EventArgs e)

{

MessageBox.Show(«Чтобы сортировать файлы кликните на заголовок столбца, по которому хотите произвести сортировку!»);

}

//режим сортировки По возрастанию

private void поВозрастаниюToolStripMenuItem_Click(object sender, EventArgs e)

{

listView1.Columns.Clear();

listView1.Columns.Add(new ColHeader(«Название файла», 110, HorizontalAlignment.Left, true));

listView1.Columns.Add(new ColHeader(«Тип», 40, HorizontalAlignment.Left, true));

listView1.Columns.Add(new ColHeader(«Размер файла», 110, HorizontalAlignment.Left, true));

listView1.Columns.Add(new ColHeader(«Дата создания», 110, HorizontalAlignment.Left, true));

}

//режим сортировки По убыванию

private void поУбываниюToolStripMenuItem_Click(object sender, EventArgs e)

{

listView1.Columns.Clear();

listView1.Columns.Add(new ColHeader(«Название файла», 110, HorizontalAlignment.Left, false));

listView1.Columns.Add(new ColHeader(«Тип», 40, HorizontalAlignment.Left, false));

listView1.Columns.Add(new ColHeader(«Размер файла», 110, HorizontalAlignment.Left, false));

listView1.Columns.Add(new ColHeader(«Дата создания», 110, HorizontalAlignment.Left, false));

}

}

}

Component.cs:

public abstract class Component

{

public string Name;

public int Size;

public string DateOfCreate;

public Component(string name, int size, string dateofcreate)

{

this.Name = name;

this.Size = size;

this.DateOfCreate = dateofcreate;

}

public virtual void Add(Component component) { }

public virtual void Remove(Component component) { }

public virtual Component Select(string name, Component cc) { return null; }

}

Directory.cs

public class Directory : Component

{

public List<Component> components = new List<Component>();

public Directory(string name, int size, string dateofcreate)

: base(name, size, dateofcreate)

{

}

public override void Add(Component component)

{

components.Add(component);

}

public override void Remove(Component component)

{

components.Remove(component);

}

public override Component Select(string name, Component cc)

{

foreach(Component c in components)

{

if (c.Name == name)

{

cc = c;

return cc;

}

}

return cc;

}

}

class File1 : Component

{

public File1(string name, int size, string dateofcreate)

: base(name, size, dateofcreate)

{

}

}

SortWrapper.cs:

public class SortWrapper

{

internal ListViewItem sortItem;

internal int sortColumn;

public SortWrapper(ListViewItem Item, int iColumn)

{

sortItem = Item;

sortColumn = iColumn;

}

public string Text

{

get

{

return sortItem.SubItems[sortColumn].Text;

}

}

public class SortComparer : IComparer

{

bool ascending;

public SortComparer(bool asc)

{

this.ascending = asc;

}

public int Compare(object x, object y)

{

SortWrapper xItem = (SortWrapper)x;

SortWrapper yItem = (SortWrapper)y;

string xText = xItem.sortItem.SubItems[xItem.sortColumn].Text;

string yText = yItem.sortItem.SubItems[yItem.sortColumn].Text;

return xText.CompareTo(yText) * (this.ascending ? 1 : -1);

}

}

}

Приложение Б (обязательное)

Диаграмма вариантов использования

Приложение В (обязательное)

Диаграмма состояний

Приложение Г (обязательное)

Функциональная диаграмма

Рисунок Г1 - Контекстная диаграмма

Рисунок Г2 - Декомпозиция первого уровня функциональной модели

Приложение Д (обязательное)

Диаграмма деятельности

Приложение Е (обязательное)

Диаграмма потоков данных

Приложение Ж (обязательное)

Диаграмма «сущность-связь»

Приложение К (обязательное)

Диаграмма последовательности

Приложение Л (обязательное)

Диаграмма классов

Приложение М

Техническое задание

1 Общие сведения

1.1 Формулировка задания

Разработать программный продукт (ПП), предназначенный для ведения файлов. ПП должен обеспечивать просмотр каталогов, редактирование, удаление.

1.2 Категории пользователей

ПП должен быть рассчитан на всех пользователей.

1.3 Наименование организации заказчика

Заказчиком на разработку данного ПП является Филиал БГУИР «Минский радиотехнический колледж». (220029 г. Минск, пр. Независимости, 62).

1.4 Основания для проведения работ

Основанием для разработки данного ПП является договор с заказчиком.

2 Описание предметной области

2.1 Описание процессов

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

ПП должен осуществлять:

· обработку запросов на поиск информации по следующим критериям: названию каталога или файла, дате создания, типу файла;

· формировать справочную информацию о пользовании данным ПП.

· формировать отчёт о проделанной работе.

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

Также около кнопки поиска, будет реализована кнопка сортировки, после нажатия на которую будет открываться окно, где можно выбрать критерии сортировки, например, от А до Я, либо наоборот.

2.2 Состав данных и алгоритмы обработки информации

Входными данными для разрабатываемого ПП являются:

- пути к файлу;

- файлы;

- тип файла;

Выходными данными разрабатываемого ПП являются:

- информация отображаемая на экран по запросу пользователя;

- результат поиска и сортировки.

2.3 Недостатки существующих проектных решений

На данный момент существует слишком много файловых менеджеров, и сделать что-то новое очень сложно.

2.4 Текущий уровень автоматизации

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

3 Требования к разработке

3.1 Информационная модель

Информационная модель представлена на рисунке 3.1.

3.2 Структура меню

Запуск программы осуществляется от лица пользователя. Меню имеет следующие компоненты:

Файл

Создать

Удалить

Переименовать

Правка

Копировать

Вставить

Вырезать

Справка

Выход

3.3 Функциональные требования

1 Ведение файлов

Функция предназначена для:

- Создания, изменения, удаления файлов и каталогов.

2 Сортировка.

- Предназначена для сортировки файлов и каталогов

3 Поиск и фильтрация.

-Поиск каталогов и файлов по названию, по дате, по типу файла.

3.4 Требования к информационному обеспечению

Разрабатываемый ПП должен:

- сохранять данные, вводимые пользователем;

- предоставлять удобный доступ к файлам пользователя;

- позволять редактировать данные;

3.5 Требования к пользовательскому интерфейсу

Разрабатываемый ПП должен быть обеспечен упрощенной формой интерфейса:

- глубина вложенности окон должна быть не более трех;

- содержать краткие описания элементов меню;

- должен быть понятным и простым в использовании.

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

При необходимости интерфейс изменяется только разработчиком.

3.6 Требования к алгоритмам

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

3.7 Прочие требования

Разрабатываемый ПП должен функционировать в ОС Win 7, 8.1, 10. Другие ОС не поддерживают формат создаваемых файлов в процессе работы с ПП.

Хранение данных пользователя должно производиться в файлах с встроенной защитой, не подлежащих удалению без пароля Администратора (приложение Е).

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

4 Порядок контроля и обеспечения качества

4.1 Экспертиза

Не требуется разработка макета на стадии «Технический проект». Требуется проведение экспертизы при участии представителя Заказчика.

4.2 Тестирование

Тестирование должно проводиться разработчиком в соответствии с установленными правилами. Присутствие представителя заказчика необязательно.

Тестирование проводится разработчиком по предложенной схеме заказчика:

1) создается БД небольшого объема по всем таблицам и пунктам меню;

2) в течение срока, указанного в договоре, разработчик проводит тестирование ПП и передает заказчику готовый программный продукт, который будет сопровождаться разработчиком в течении сроков, предусмотренных договором.

4.3 Опытная эксплуатация

Опытная эксплуатация проводится заказчиком, при контроле разработчика, в соответствии с договором.

5 Требования к документированию

5.1 Требования к справочной системе

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

5.2 Требования к документации пользователя

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

Разработанный ПП сопровождается полным пакетом документов, предусмотренным ГОСТ 7685 - 2000, а именно:

1) лицензионное право использования разработанного ПП;

2) документация по эксплуатации;

3) талон на последующее обслуживание ПП;

4) документы, подтверждающие монопольное использование разработанного ПП. Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.