Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры госы.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
10.34 Mб
Скачать

Вид и состав требований тз[править | править вики-текст]

Часто содержание ТЗ устанавливается внутренними документами предприятия либо соглашением заказчика и исполнителя проектных работ.

Обычно заказчик задаёт цель (как он её понимает) и ресурсные ограничения (время, деньги). Задача исполнителя, прежде всего, — перевести требования на язык предметной области, сформулировать задачу максимально полно и грамотно, обосновать необходимость её решения. В итоге ТЗ будет включать следующие сведения:

  • Цели в функциональном виде. Изделие является лишь материальным носителем определенных функций, выполнение которых и позволяет достигать заданные цели (удовлетворять потребности). Но одну и ту же функцию могут выполнять разные устройства. Поэтому функциональное, а не предметное указание цели расширяет область возможных решений, что необходимо для поискаоптимального решения. Также, функция — более четкий термин для описания сути назначения устройства. Уточнение целей и назначение соответствующих им функций — наиболее важная часть работы по составлению ТЗ;

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

    • условия, характеризуются конкретными значениями данных (формально их можно представить в виде равенств). Например, масса изделия должна составлять 10 кг, применять сталь 40Х, место эксплуатации — тундра. Важную часть условий формирует оценка доступных ресурсов;

    • ограничения, задают допустимую область данных (формально их можно представить в виде односторонних или двусторонних неравенств). Например, вес изделия не должен превышать 10 кг, применять углеродистые стали;

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

Как и процесс проектирования, работа с требованиями также подлежит управлению. Эти процедуры хорошо отработаны, например, в управлении требованиями к программному обеспечению.

Для конкретизации целей и требований, заданных нечётко либо качественно, применяют метод декомпозиции.

Основная статья: Параметр (техника)

Стоит отметить, что приведённые в условии данные — это номинальные параметры, но было бы более правильно приводить нормированные значения этих параметров, задаваемые своими предельно-допустимыми значениями (например, масса изделия 9,8—10,1 кг). То есть то, что считают условиями, на практике являются ограничениями в виде двусторонних неравенств. Ширина диапазона является следствием величины допуска на этот параметр.

При формировании системы требований обязателен анализ следующих источников:

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

  • Учет требований надзорных и лицензионных органов при проектировании, например, технологических комплексов (производств). В соответствии с законами Российской Федерации любое производство требует получения региональной лицензии на эксплуатацию. Помимо этого многие производства лицензируются надзорными органами и подлежат с их стороны контролю. Наиболее часто контролирующими являются региональные органы РостехнадзораРосстандартаМинрегион России (бывш. Госстрой), РоспотребнадзораРосприроднадзораГПСМВД РоссииРоструда.

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

АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

КАФЕДРА КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ

АТТЕСТАЦИОННЫЙ ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №58

по специальности 5B0704 - Вычислительная техника и программное обеспечение

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

class box

    {

        public double V;

 

        public box (double a, double b, double c)

        {

            V = a * b * c;

        }

    }

  class MyderivedClass : box

    {

        public MyderivedClass(double a, double b, double c) : base(a, b, c)

{

 }

    public void vol()

        {

            Console.WriteLine(V);

        }

    }

 

    class MyderivedClass_2 : MyderivedClass

    {

        public MyderivedClass_2(double a, double b, double c) : base(a, b, c)

{

 }

 

        public double vol()

        {

            Random rand = new Random();

            double result = Math.Sqrt(rand.Next(1000)*V);

            return result;

 

        }

    }

 

 

    class Program

    {

        static void Main(string[] args)

        {

            MyderivedClass obj1 = new MyderivedClass(10, 20, 1);

            MyderivedClass_2 obj2 = new MyderivedClass_2(10, 20, 1);

            obj1.vol();

            Console.WriteLine(obj2.vol());

 

            Console.ReadKey();

        }

    }

  1. Напишите программу реализации системной функции ExitProcess

#include <windows.h>

#include <iostream.h>

volatile UINT count;

void thread()

{

for (;;)

{

count++;

Sleep(100);

}

}

int main()

{

char c;

HANDLE hThread;

DWORD IDThread;

hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)thread, NULL,

0, &IDThread);

if (hThread == NULL)

return GetLastError();

for (;;)

{

cout << "Input 'y' to display the count or any char to exit: ";

cin >> (char)c;

if (c == 'y')

cout << "count = " << count << endl;

else

ExitProcess(1);

}

}

  1. Создать триггер, который бы журналировал действия определенного пользователя БД, производимые над какой-либо таблицей в определенный промежуток времени.

CREATE OR REPLACE TRIGGER audit_emp_values

AFTER DELETE OR INSERT OR UPDATаE ON employees

FOR EACH ROW

BEGIN

INSERT INTO audit_emp(user_name,time_stamp,id,

old_last_name,new_last_name,old_title,

new_title,old_salary,new_salary)

VALUES(USER,SYSDATE,:OLD.employee_id,

:OLD.last_name,:NEW.last_name,:OLD.job_id,

:NEW.job_id,:OLD.salary,:NEW.salary);

END;

  1. Реализовать представленную в таблице функцию (Y) с помощью логических элементов ИЛИ-НЕ.

    X2

    X1

    X0

    Y

    X2

    X1

    X0

    Y

    0

    0

    0

    1

    1

    0

    0

    0

    0

    0

    1

    0

    1

    0

    1

    0

    0

    1

    0

    1

    1

    1

    0

    1

    0

    1

    1

    0

    1

    1

    1

    1

  2. Перспективы развития инструментальных средств.

Этап 1: до середины 50-х.

Основные затраты связаны с кодированием (в машинных кодах). Появляются автокоды (языки с использованием мнемонических обозначений команд) и трансляторы с них (ассемблеры).

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

Этап 2: середина 50-х – середина 60-х гг..

Увеличиваются размеры программ, выявляется разрыв между понятиями проблемных областей и машинно-ориентированных языков. Появляются различные языки высокого уровня (алгоритмические, универсальные):

· Fortran (1954-1957);

· Algol-60 (1958-1960);

· Cobol (1959-1961);

· Basic (1964);

· PL/1 (1964);

· Lisp (1959)

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

 

Этап 3: середина 60-х – начало 70-х гг.

Резко увеличиваются размеры ПО, происходит переход к коллективному характеру работ. Повышаются требования к ПО вследствие перехода к товарному производству.

Изменяется соотношение затрат на разработку ПО (40% и более тратится на отладку, проектирование и документирование), кодирование – один из самых простых видов работ. Используются и создаются "большие" языки программирования – ПЛ/1, АЛГОЛ-68, СИМУЛА-67, обобщающие и интегрирующие ранее найденные решения.

Появляются развитые системы программирования с оптимизирующими и отладочными трансляторами, макробиблиотеками, библиотеками стандартных программ, специализированных текстовыми редакторами, средствами анализа и диалоговой отладки в терминах входного языка. Разрабатываются развитые операционные системы, первые СУБД, многочисленные системы автоматизации документирования, системы управления программной конфигурацией (отслеживания модификаций и сборки версий ПО).

Этап 4 (“этап кризиса в развитии ПО”): начало 70-х–середина 70-х гг.

Несмотря на развитие инструментальных средств, производительность труда программистов не растёт. Более того, вследствие повышения требований к ПО и нелинейного роста его сложности, производительность труда падает. Срываются сроки разработки ПО, растёт его стоимость, непредсказуемо его качество, не срабатывают традиционные методы (предоставление дополнительных человеческих и материальных ресурсов), что характеризуется как "кризис ПО".

Получают признание методологии структурного программирования (Дейкстра, 1968г.), формируются основы технологии программирования (язык Паскаль (Н.Вирт), 1971г.).

Этап 5:1976г.– наше время. Этап посткризисного развития инструментальных средств

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

Языки программирования:

· C (начало 1970-х, впервые достаточно полно описан в 1978 г.);

· Modula-2 (1978 г., развитие – язык Oberon (1988));

· Ada (1980);

· Prolog (1972 г., распространение получил с 1980 г.);

· Smalltalk (1970-е годы, в 1980 был представлен как Smalltalk-80);

· C++ (начало 1980-х гг., название – 1983, в привычном сегодня виде существует с 1990 г.);

· Java (версия Java 1.0 – 1996 г., Java 2.0 – 1998, Java 5 – 2004...);

· C# (1998–2001, версия 1.0 – 2000–2002, версия 2.0 – 2003-2005, версия 3.0 – 2004–2008, версия 4.0 – 2008–2010).

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

АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

КАФЕДРА КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ

АТТЕСТАЦИОННЫЙ ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №59

по специальности 5B0704 - Вычислительная техника и программное обеспечение

  1. Создайте класс FtoK для преобразования футов в килограммы. Класс должен хранить число футов и его эквивалент в килограммах. Передайте конструктору класса число футов и при этом он должен вывести на экран число килограммов (1 фут = 0.495 кг.). В функцию main() включите краткую демонстрацию работы созданного класса.

public class FtoK {

private double foot_cold;

private double kg_cold;

public FtoK(double p_foot_cold) {

this.foot_cold = p_foot_cold;

this.kg_cold = this.foot_cold * 0.495;

System.out.println("Number of kilograms is : "+this.kg_cold);

}

public void setFoot_cold(double val) {

this.foot_cold = val;

}

public double getFoot_cold() {

return this.foot_cold;

}

}

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.lang.management.BufferPoolMXBean;

import java.util.*;

/**

* Created by Asem on 13.05.2015.

*/

public class Gos_ekz {

public static void main(String[] args) {

FtoK ftoK=new FtoK(456);

}

}

  1. Напишите программу реализации системной функции ExitThread

#include <windows.h>

#include <iostream.h>

#include <math.h>

const int size = 10; // размерность массива

int a[size]; // обрабатываемый массив

HANDLE hDeadlock; // сигнал о тупике

HANDLE hAnswer[2]; // для обработки тупика

DWORD WINAPI marker(LPVOID)

{

int i;

DWORD dwValue;

for (;;)

{

// вычисляем случайный индекс

i = abs(rand()) % size;

// проверяем, занят ли элемент

if (!a[i])

// нет, заполняем элемент

a[i] = 1;

else

{

// да, сигнализируем о тупике

SetEvent(hDeadlock);

// ждем ответа

dwValue = WaitForMultipleObjects(

2, hAnswer, FALSE, INFINITE);

if (dwValue == WAIT_FAILED)

{

cerr << "Wait function failed." << endl;

cerr << "Press any key to exit." << endl;

cin.get();

return GetLastError();

}

// вычисляем индекс сигнального объекта

dwValue -= WAIT_OBJECT_0;

switch (dwValue)

{

case 0: // продолжаем работу

continue;

case 1: // завершаем работу

ExitThread(1);

break;

default:

ExitThread(2);

break;

}

}

}

}

int main()

{

HANDLE hMarker;

DWORD idMarker;

// создаем событие, оповещающее о тупике

hDeadlock = CreateEvent(NULL, FALSE, FALSE, NULL);

// создаем события для обработки тупика

hAnswer[0] = CreateEvent(NULL, FALSE, FALSE, NULL);

hAnswer[1] = CreateEvent(NULL, FALSE, FALSE, NULL);

// запускаем поток marker

hMarker = CreateThread(NULL, 0, marker,NULL, 0, &idMarker);

if (hMarker == NULL)

return GetLastError();

for (;;)

{

char c;

// ждем сигнал о тупике

WaitForSingleObject(hDeadlock, INFINITE);

// выводим на консоль текущее состояние массива

cout << "Current state of the array: ";

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

cout << a[i] << ' ';

cout << endl;

// завершать или нет поток marker?

cout << "Input 'y' to continue: ";

cin >> c;

if (c == 'y')

SetEvent(hAnswer[0]); // продолжаем работу

else

{

SetEvent(hAnswer[1]); // завершаем работу

break;

}

}

WaitForSingleObject(hMarker, INFINITE);

CloseHandle(hMarker);

return 0;

}

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

  2. Реализовать представленную в таблице функцию (Y) с помощью логических элементов И-НЕ.

    X2

    X1

    X0

    Y

    X2

    X1

    X0

    Y

    0

    0

    0

    1

    1

    0

    0

    0

    0

    0

    1

    0

    1

    0

    1

    0

    0

    1

    0

    1

    1

    1

    0

    1

    0

    1

    1

    0

    1

    1

    1

    1

  3. Качество ПО.

Ка́чество програ́ммного обеспечения — способность программного продукта при заданных условиях удовлетворять установленным или предполагаемым потребностям (ISO/IEC 25000:2014)[1].

Другие определения:

весь объем признаков и характеристик программ, который относится к их способности удовлетворять установленным или предполагаемым потребностям (ГОСТ Р ИСО/МЭК 9126-93, ISO 8402:94)[2][3];

степень, в которой система, компонент или процесс удовлетворяют потребностям или ожиданиям заказчика или пользователя (IEEE Std 610.12-1990)[4].

Фактор качества ПО — это нефункциональное требование к программе, которое обычно не описывается в договоре с заказчиком, но, тем не менее, является желательным требованием, повышающим качество программы.

Некоторые из факторов качества:

  • Понятность: Назначение ПО должно быть понятным, из самой программы и документации.

  • Полнота: Все необходимые части программы должны быть представлены и полностью реализованы.

  • Краткость: Отсутствие лишней, дублирующейся информации. Повторяющиеся части кода должны быть преобразованы в вызов общей процедуры. То же касается и документации.

  • Портируемость: Лёгкость в адаптации программы к другому окружению: другой архитектуре, платформе, операционной системе или её версии.

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

  • Сопровождаемость: Насколько сложно изменить программу для удовлетворения новых требований. Это требование также указывает, что программа должна быть хорошо документирована, не слишком запутана, и иметь резерв роста по использованию ресурсов (память, процессор).

  • Тестируемость: Позволяет ли программа выполнить проверку приёмочных характеристик, поддерживается ли возможность измерения производительности.

  • Удобство использования: Простота и удобство использования программы. Это требование относится прежде всего к интерфейсу пользователя.

  • Надёжность: Отсутствие отказов и сбоев в работе программ, а также простота исправления дефектов и ошибок.

  • Структурированность

  • Эффективность: Насколько рационально программа относится к ресурсам (память, процессор) при выполнении своих задач.

  • Безопасность

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

  • Является ли пользовательский интерфейс интуитивно понятным?

  • Насколько просто выполнять простые, частые операции?

  • Насколько легко выполняются сложные операции?

  • Выдаёт ли программа понятные сообщения об ошибках?

  • Всегда ли программа ведёт себя так как ожидается?

  • Имеется ли документация и насколько она полна?

  • Является ли интерфейс пользователя само-описательным/само-документирующим?

  • Всегда ли задержки с ответом программы являются приемлемыми?

АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

КАФЕДРА КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ

АТТЕСТАЦИОННЫЙ ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №60

по специальности 5B0704 - Вычислительная техника и программное обеспечение

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

public class Building {

protected Integer floors_num;

protected Integer room_num;

protected Integer rooms_area;

public Building() {

}

public void setFloors_num(Integer val) {

this.floors_num = val;

}

public void setRoom_num(Integer val) {

this.room_num = val;

}

public void setRooms_area(Integer val) {

this.rooms_area = val;

}

public Integer getFloors_num() {

return this.floors_num;

}

public Integer getRooms_area() {

return this.rooms_area;

}

public Integer getRoom_num() {

return this.room_num;

}

}

/**

* Created by Asem on 13.05.2015.

*/

public class House extends Building {

private Integer bath_room_count;

private Integer bed_room_count;

public void setBath_room_count(Integer val) {

this.bath_room_count = val;

}

public void setBed_room_count(Integer val) {

this.bed_room_count = val;

}

public Integer getBath_room_count(){

return this.bath_room_count;

}

public Integer getBed_room_count(){

return this.bed_room_count;

}

}

/**

* Created by Asem on 13.05.2015.

*/

public class Office extends Building{

private Integer num_of_ogne;

private Integer num_of_phones;

public void setNum_of_ogne(Integer val) {

this.num_of_ogne = val;

}

public void setNum_of_phones(Integer val) {

this.num_of_phones = val;

}

public Integer getNum_of_ogne() {

return this.num_of_ogne;

}

public Integer getNum_of_phones() {

return this.num_of_phones;

}

}

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.lang.management.BufferPoolMXBean;

import java.util.*;

/**

* Created by Asem on 13.05.2015.

*/

public class Gos_ekz {

public static void main(String[] args) {

Building building = new Building();

building.setFloors_num(10);

building.setRoom_num(50);

building.setRooms_area(100);

House house = new House();

house.setRooms_area(1023);

house.setBath_room_count(1000);

house.setBed_room_count(10);

house.setRoom_num(123);

house.setFloors_num(1);

Office office = new Office();

office.setNum_of_ogne(1000);

office.setNum_of_phones(10);

office.setFloors_num(10000);

office.setRooms_area(456);

System.out.println("Building: ");

System.out.print("Floors number : " + building.getFloors_num() + "; Room number : " + building.getRoom_num() + "; Rooms area : " + building.getRooms_area());

System.out.println();

System.out.println("House: ");

System.out.print("Floors number : " + house.getFloors_num() + "; Room number : " + house.getRoom_num() + "; Rooms area : " + house.getRooms_area() +

"; Number of bathrooms : " + house.getBath_room_count() + "; Number of bedrooms : " + house.getBath_room_count());

System.out.println();

System.out.println("Office : ");

System.out.print("Floors number : " + office.getFloors_num() + "; Room number : " + office.getRoom_num() + "; Rooms area : " + office.getRooms_area() +

"; Number of ogne : " + office.getNum_of_ogne() + "; Number of phones : " + office.getNum_of_phones());

}

}

  1. Напишите программу реализации системной функции SetConsoleScreenBufferSize

#include <windows.h>

#include <iostream.h>

int main()

{

COORD coord; // для размера буфера экрана

HANDLE hStdOut; // дескриптор стандартного вывода

// читаем дескриптор стандартного вывода

hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);

// вводим новый размер буфера экрана

cout << "Enter new screen buffer size." << endl;

cout << "A number of columns: ";

cin >> coord.X;

cout << "A number of rows: ";

cin >> coord.Y;

// устанавливаем новый размер буфера экрана

if (!SetConsoleScreenBufferSize(hStdOut, coord))

{

cout << "Set console screen buffer size failed." << endl;

return GetLastError();

}

return 0;

}

  1. Создать функцию, возвращающую количество студентов в конкретной группе и возвращающую количество грантников на конкретной специальности.

CREATE OR REPLACE FUNCTION get_count

(v_id students.group_id%TYPE) RETURN NUMBER IS

v_count number;

BEGIN

SELECT count(student_id)

INTO v_count

FROM students

WHERE group_id = v_id;

RETURN v_count;

END get_count;

begin

get_count(150);

end;

execute dbms_output.put_line(get_count(10));

  1. Реализовать представленную в таблице функцию (Y) с помощью логических элементов ИЛИ-НЕ.

    X2

    X1

    X0

    Y

    X2

    X1

    X0

    Y

    0

    0

    0

    1

    1

    0

    0

    0

    0

    0

    1

    1

    1

    0

    1

    1

    0

    1

    0

    1

    1

    1

    0

    0

    0

    1

    1

    0

    1

    1

    1

    0

  2. Психологические особенности разработки ПО.

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

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

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

Логотип – размещается в правом верхнем углу. Это место обеспечивает наибольшее бессознательное запоминание информации у посетителей. Меню стоит размещать по обе стороны контента. Справа – малоизвестные для посетителей пункты, для скорого запоминания. Слева – традиционная и обыденная информация. Аналогичная ситуация складывается и для текста с двумя вертикальными блоками.

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

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

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

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

Замедление загрузки страницы может быть спровоцировано не только баннерами, но и большим количеством счетчиков – их должно быть не больше трех.

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

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

  • Является ли пользовательский интерфейс интуитивно понятным?

  • Насколько просто выполнять простые, частые операции?

  • Насколько легко выполняются сложные операции?

  • Выдаёт ли программа понятные сообщения об ошибках?

  • Всегда ли программа ведёт себя так как ожидается?

  • Имеется ли документация и насколько она полна?

  • Является ли интерфейс пользователя само-описательным/само-документирующим?

  • Всегда ли задержки с ответом программы являются приемлемыми?

АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

КАФЕДРА КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ

АТТЕСТАЦИОННЫЙ ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №61

по специальности 5B0704 - Вычислительная техника и программное обеспечение

  1. Создайте класс employee. Класс должен включать поле типа int для хранения номера сотрудника и поле типа float для хранения величины его оклада. Методы класса должны позволять пользователю вводить и отображать данные класса. Напишите функцию main(), которая запросит пользователя ввести данные для трех сотрудников и выведет полученную информацию на экран.

#include "stdafx.h"

#include <iostream>

using namespace std;

class Employee

{

private:

int number;

float salary;

public:

Employee() : number(0), salary(0)

{}

Employee(int num, float sal) : number(num), salary(sal)

{}

void get_empl()

{

cout << "number of the employee" << endl;

cin >> number;

cout << "salary" << endl;

cin >> salary;

}

void display()const

{ cout << "employee " << number << ", salary " << salary << "$" << endl; };

};

int main()

{

Employee empl_1, empl_2, empl_3;

empl_1.get_empl();

empl_2.get_empl();

empl_3.get_empl();

empl_1.display();

empl_2.display();

empl_3.display();

system ("pause");

return 0;

}