Автор: Пользователь скрыл имя, 13 Мая 2012 в 10:37, курсовая работа
Цель работы: приобрести практические навыки в области разработки дизайна прикладного программного обеспечения (ПО), его функциональности, а также в области разработки тестов для юзабилити-тестирования пользователя ПО.
Цель такого ПО: частично совместить функциональность калькулятора и простого текстового редактора, с возможность сохранения полученных данных в тестовый файл.
Область применения: небольшие расчеты дома и на предприятиях.
Введение………………………………………………………………………………...2
1. Описание актуальности, целей и задач разрабатываемого ПО, его назначение и область применения........................3
2. Обзор программных продуктов, имеющих аналогичные цели и назначение…...4
3. Разработка интерфейса ПО и краткое описание основных элементов управления…………………….9
3. 1 Описание назначения основных окон приложения, элементов управления.....9
3. 2 Описание функциональности ПО и способов взаимодействия пользователя с ним..........................13
3. 3 Описание принципов композиции и организации элементов управления и визуализации, а также описание выбранного стиля и цветовой гаммы...............13
4. Разработка алгоритмов и блок-схем, описывающих функциональность ПО….15
5. Разработка алгоритмов и блок-схем, описывающих процесс визуализации и модификации поведения нестандартных управляющих элементов....................19
6. Разработка прикладного программного обеспечения….…………………...…...21
7. Разработка тестов юзабилити-тестирования………………………...…………...23
Выводы………………………………………………………………………………...24
Перечень ссылок…………....………………………………………………………...25
Приложение А. Техническое задание
Приложение Б. Тексты (листинги) разработанного программного обеспечения...26
Приложение В. юзабилити-тест для ПО…………………………………………….36
{
public int i = 0;
public bool flag;
public bool enter=false;
private System.Timers.Timer aTimer = new System.Timers.Timer();
Bitmap cyber = new Bitmap(@"Data\pic3.png");
Bitmap cyber2 = new Bitmap(@"Data\pic4.png");
Bitmap b_back = new Bitmap(@"Data\buttons\back.
public Form2()
{
InitializeComponent();
aTimer.Interval = 100;
aTimer.Elapsed += new ElapsedEventHandler(
aTimer.Start();
button1.BackgroundImage = b_back;
button2.BackgroundImage = b_back;
}
public void OnTimedEvent(object source, ElapsedEventArgs e)
{
// label1.Text += ".";
pictureBox2.Image = flag == true ? cyber : cyber2;
flag = !flag;
aTimer.Interval += 100;
if (i == 5)
{
aTimer.Interval = 800;
}
if (i == 10)
{
pictureBox2.Image = cyber;
aTimer.Stop();
}
if (i < 10)
{
pictureBox2.Image = flag == true ? cyber : cyber2;
}
i++;
}
private void button1_Click(object sender, EventArgs e)
{
enter = !enter;
this.Close();
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Текст Form3.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Kyrsach 4
{
public partial class Form3 : Form
{
Bitmap k = new Bitmap(@"Data\about.png");
public Form3()
{
InitializeComponent();
pictureBox1.BackgroundImage = k;
this.SetStyle(ControlStyles.
this.SetStyle(ControlStyles.
this.BackColor = Color.Transparent;
}
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
this.Hide();
}
private void pictureBox1_MouseEnter(object sender, EventArgs e)
{
this.Cursor = Cursors.Hand;
}
}
}
Текст Form4.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Collections;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Kyrsach4
{
public partial class Form4 : Form
{
public object date;
public float x;
public float temp;
public float y;
public string oper="";
public ArrayList memory= new ArrayList();
public bool flag = false;
public Form4()
{
InitializeComponent();
numericUpDown1.Enabled = false;
numericUpDown1.Maximum = -1;
}
private void button13_Click(object sender, EventArgs e)
{
flag = true;
date = textBox1.Text;
textBox1.Text="";
this.Hide();
}
private void button36_Click(object sender, EventArgs e)
{
textBox1.Text += ((Button)sender).Text;//вывод в текстовое поле
}
private void button1_Click(object sender, EventArgs e)
{
if ((oper != "")&&(textBox1.Text.Length!=0)
{
y = float.Parse(textBox1.Text);
switch (oper)
{
case "+": { textBox1.Text = (x + y).ToString(); break; }
case "-": { textBox1.Text = (x - y).ToString(); break; }
case "/": { textBox1.Text = (x / y).ToString(); break; }
case "*": { textBox1.Text = (x * y).ToString(); break; }
}
oper = "";
}
}
private void button51_Click(object sender, EventArgs e)
{
if (textBox1.Text.Length != 0)
{
textBox1.Text = textBox1.Text.Remove(textBox1.
}
}
private void button4_Click(object sender, EventArgs e)
{
textBox1.Text = "";
}
private void button10_Click(object sender, EventArgs e)
{
textBox1.Text = "";
x = 0;
y = 0;
}
private void button_plus(object sender, EventArgs e)
{
if (textBox1.Text.Length != 0)
{
x = float.Parse(textBox1.Text);
oper = ((Button)sender).Text;
textBox1.Clear();
}
}
private void button_invers(object sender, EventArgs e)
{
if (textBox1.Text.Length != 0)
{
temp = float.Parse(textBox1.Text);
temp = -temp;
textBox1.Text = temp.ToString();
}
}
private void button_exp(object sender, EventArgs e)
{
textBox1.Text = System.Math.PI.ToString();
}
private void button_sct(object sender, EventArgs e)
{
if (textBox1.Text.Length != 0)
{
switch (((Button)sender).Text)
{
case "sin": { textBox1.Text = (System.Math.Sin(double.Parse(
case "cos": { textBox1.Text = (System.Math.Cos(double.Parse(
case "tan": { textBox1.Text = (System.Math.Tan(double.Parse(
}
}
}
private void button14_Click(object sender, EventArgs e)
{
if ((textBox1.Text.Length != 0)&&(textBox1.Text.Contains(",
textBox1.Text += ",";
}
private void button9_Click(object sender, EventArgs e)
{
if (textBox1.Text.Length!=0)
{
numericUpDown1.Enabled = true;
memory.Add(textBox1.Text);
numericUpDown1.Maximum++;
numericUpDown1.UpButton();
}
}
private void button8_Click(object sender, EventArgs e)
{
if (numericUpDown1.Maximum != (-1))
{
textBox1.Text += memory[((int)numericUpDown1.
}
}
private void button4_Click_1(object sender, EventArgs e)
{
numericUpDown1.Maximum = (-1);
memory.Clear();
numericUpDown1.Enabled = false;
}
}
}
ПРИЛОЖЕНИЕ В. Юзабилити-тест для ПО
1 Работа с ПО.
1.1Сколько времени потребовалось Вам для открытия документа из ПО?
1-2 сек
2-5 сек
5-10 сек
более 10 сек
1.2 Устраивает ли Вас сочетание цветов диалогового окна входа в приложение?
Да
Скорее да, чем нет
Скорее нет, чем да
Однозначно, нет
1.3 Является ли информация, отображенная на диалоговом окне входа, избыточной?
Да
Скорее да, чем нет
Скорее нет, чем да
Однозначно, нет
1.4 Устраивает ли Вас сочетание цветов главного окна приложения?
Да
Скорее да, чем нет
Скорее нет, чем да
Однозначно, нет
1.5 Является ли информация, отображенная на главном окне, избыточной?
Да
Скорее да, чем нет
Скорее нет, чем да
Однозначно, нет
1.6 Устраивает ли Вас сочетание цветов других окон приложения?
Да
Скорее да, чем нет
Скорее нет, чем да
Однозначно, нет
1.7 Является ли информация, других окон, избыточной?
Да
Скорее да, чем нет
Скорее нет, чем да
Однозначно, нет
1.8 Сколько времени Вам потребовалось на освоение ПО?
1 день
2-3 дня
3-5 дней
5-10 дней
более 10 дней
1.9 Что вызывало наибольшие трудности при освоении?
Недостаточные навыки при работе с компьютером
Необычный, “фирменный” стиль ПО
Многофункциональность ПО
Отсутствие пиктограмм быстрого доступа
Отсутствие справочной документации
Отсутствие контекстно-зависимой помощи
Другое ______________________________
1.10 Не возникало ли критических ошибок ПО во время работы? (Если да, укажите тип ошибки в поле ниже)
Да, ошибки есть
(какие) ______________________________
Нет, ошибок нет
1.11 Позволило ли ПО ускорить и упростить выполняемые Вами работы?
Да
Скорее да, чем нет
Скорее нет, чем да
Однозначно, нет
Затрудняюсь ответить
1.12 Пожелания разработчикам (укажите недостатки ПО, которые по Вашему мнению актуальны) ______________________________
2 Общие вопросы.
2.1 Выполняет ли ПО возложенные на него функции?
Да
Скорее да, чем нет
Скорее нет, чем да
Однозначно, нет
Затрудняюсь ответить
2.2 Достаточно ли было времени для выполнения всех заданий теста
Да
Скорее да, чем нет
Скорее нет, чем да
Однозначно, нет
2.3 Ваш уровень навыков при работе с компьютером?
Знаю и умею работать в ОС семейства Windows
До недавнего времени использовал(а) MS-DOS
Навыков нет вообще
2.4 Какое альтернативное ПО Вы использовали ранее?
______________________________