. Требование к эффективности, то есть получение выходных данных с минимальными расходами машинного времени.
2. Требование к мобильности, то есть возможность эффективного использования сайта при различных системных требованиях.
. Требование к лёгкости восприятия, то есть для пользователя должен быть понятен принцип работы с сайтом. Сайт должен иметь дружественный интерфейс.
. Требование к надёжности. Должны быть обеспечены восстановление после сбоев и ошибок, контроль ввода данных при заполнении форм.
. Требования к эксплуатации, то есть требования к аппаратным и программным средствам, необходимым для эффективного функционирования сайта.
. Требования к тестированию. Необходимо провести следующие тесты:
- Тестирование работоспособности сайта на разных ОС.
- Тестирование работоспособности сайта при разном разрешении экрана.
- Тестирование скорости работы сайта в разных браузерах.
- Тестирование доступа ко всем страницам.
- Тестирование работоспособности сайта на мобильных устройствах.
- Тестирование формы обратной связи.
В процессе тестирования отследить ошибки размещения объектов на страницах и ошибки работы.
. Требования к функциональным характеристикам: предоставление достоверной информации по всем продаваемым продуктам.
8. Требования к структуре: иерархия в навигационной системе сайта должна соответствовать содержимому страниц, количество страниц достаточное, но не избыточное.
Состав документации:
- Техническое задание.
- Руководство системного программиста.
- Руководство пользователей групп: администратор, гость, разработчик проекта.
a) сбор необходимой информации;
b) разбиение информации на логические блоки;) выбор программных средств разработки;) формирование логической структуры страниц;) выбор графического оформления страниц;) разработка сайта;) тестирование.
Был разработан дизайн, выполнено тестирование и написано техническое задание.
Благодаря техническому заданию можно добиться взаимопонимания с
заказчиком и иметь четкое представление, что хочет заказчик и что возможно
реализовать еще перед началом работы.
Разработка охватывает множество этапов, начиная с планирования и разработки документации и заканчивая разработкой самого продукта и его тестирования. Для успешной разработки продукта нужно иметь четко поставленную цель, которая определяется заказчиком и техническим заданием, для того, чтобы в процессе работы мнения программиста не расходились с заказчиком, необходимо составить техническое задание, на которое будет опираться вся разработка проекта, от концепта до тестирования, включая и сроки выполнения работы.
Сама разработка должна выполнятся с учетом постановки задач проектирования. Должны быть выполнены следующие этапы: разработка шаблона, верстка, разработка интерфейса, подключение к БД, оптимизация, тестирование и отладка проекта, создание сопроводительной документации.
После того, как разработка закончена, необходимо рассмотреть пожелания
пользователей, которые участвуют в тестировании проекта. После успешного
тестирования можно внедрять в рабочий процесс организации.
1. Типовые нормы времени на программирование задач для ЭВМ - Москва Экономика 1989г.-125с.
2. ГОСТ 19.001-77 Единая система программной документации. Общие положения.
. ГОСТ 19.201-78. ЕСПД. Техническое задание. Требования к содержанию и оформлению.
. ГОСТ 19.301-79. ЕСПД. Программа и методика испытаний. Требования к содержанию и оформлению.
. Работа с базами данных в Delphi. Цифровая книга. Анатолий Хомоненко, Владимир Гофман. Издательство: БХВ-Петербург. Серия: Профессиональное программирование.ISBN 5-94157-361-8; 2005 г.
. Рудаков А. В. Технология разработки программных продуктов: практикум: учебник для СПО / А.В. Рудаков, Г. Н. Федорова. - 4-е изд., Стереотип. - Москва: Академия, 2014. - 190 с.
. Рудаков А. В. Технология разработки программных продуктов: учебник для СПО по специальности «ПО ВТ и АС» / А.В. Рудаков. - 8-е изд., Стереотип. - Москва: Академия, 2013. - 207 с.
. Основы
программирования в DelphiXE.Цифровая книга. Никита Культин. Издательство: БХВ-Петербург. Серия: Самоучитель. ISBN 978-5-9775-0683-0; 2011 г.
Фрагменты листингов сайта:
Основной код:
<?php
/**
* Custom theme functions.
*
* This file contains hook functions attached to theme hooks.
*
* @package
*/( ! function_exists( 'clean_commerce_skip_to_content' ) ) :
/**
* Add Skip to content.
*
* @since 1.0.0
*/clean_commerce_skip_to_content() {
?><a>
};_action( 'clean_commerce_action_before', 'clean_commerce_skip_to_content', 15 );( ! function_exists( 'clean_commerce_site_branding' ) ) :
/**
* Site branding.
*
* @since 1.0.0
*/clean_commerce_site_branding() {
?>
<div>
<?php clean_commerce_the_custom_logo(); ?>
<?php $show_title = clean_commerce_get_option( 'show_title' ); ?>
<?php $show_tagline = clean_commerce_get_option( 'show_tagline' ); ?>
<?php if ( true === $show_title || true === $show_tagline ) : ?>
<div id="site-identity">
<?php if ( true === $show_title ) : ?>
<?php if ( is_front_page() && is_home() ) : ?>
<h1>
<?php else : ?>
<p>
<?php endif; ?>
<?php endif; ?>
<?php if ( true === $show_tagline ) : ?>
<p>
<?php endif; ?>
</div><!-- #site-identity -->
<?php endif; ?>
</div><!-- .site-branding -->
<div id="right-header">
<?php if ( has_nav_menu( 'header' ) ) : ?>
<?php
wp_nav_menu( array(
'theme_location' => 'header',
'container' => 'nav',
'container_id' => 'header-nav',
'depth' => 1,
) );
?>
<?php endif; ?>
<?php if ( clean_commerce_is_woocommerce_active() ) : ?>
<div id="cart-section">
<ul>
<li>
<a href="<?php echo esc_url( get_permalink( get_option( 'woocommerce_myaccount_page_id' ) ) ); ?>"><?php echo is_user_logged_in() ? esc_html__( 'My Account', 'clean-commerce' ) : esc_html__( 'Login / Register', 'clean-commerce' ) ; ?></a>
</li>
<li>
<li>
</ul>
</div> <!-- .cart-section -->
<?php endif; ?>
</div> <!-- #right-header -->
<?php
};_action( 'clean_commerce_action_header', 'clean_commerce_site_branding' );( ! function_exists( 'clean_commerce_add_primary_navigation' ) ) :
/**
* Primary navigation.
*
* @since 1.0.0
*/clean_commerce_add_primary_navigation() {
?>
<div id="main-nav">
<div>
<nav id="site-navigation">
<div>
<?php_nav_menu( array(
'theme_location' => 'primary',
'menu_id' => 'primary-menu',
'fallback_cb' => 'clean_commerce_primary_navigation_fallback',
) );
?>
</div><!-- .menu-content -->
</nav><!-- #site-navigation -->
<?php $search_in_header = clean_commerce_get_option( 'search_in_header' ); ?>
<?php if ( true === $search_in_header ) : ?>
<div>
<a href="#">
<div>
<?php get_search_form(); ?>
</div><!-- .search-box-wrap -->
</div><!-- .header-search-box -->
<?php endif; ?>
</div> <!-- .container -->
</div> <!-- #main-nav -->
<?php
};_action( 'clean_commerce_action_after_header', 'clean_commerce_add_primary_navigation', 20 );( ! function_exists( 'clean_commerce_mobile_navigation' ) ) :
/**
* Mobile navigation.
*
* @since 1.0.0
*/clean_commerce_mobile_navigation() {
?>
<div>
<a id="mobile-trigger" href="#mob-menu"><i>
<div id="mob-menu">
<?php_nav_menu( array(
'theme_location' => 'primary',
'container' => '',
'fallback_cb' => 'clean_commerce_primary_navigation_fallback',
) );
?>
</div><!-- #mob-menu -->
<?php if ( has_nav_menu( 'header' ) ) : ?>
<a id="mobile-trigger2" href="#mob-menu2"><i>
<div id="mob-menu2">
<?php_nav_menu( array(
'theme_location' => 'header',
'container' => '',
) );
?>
<?php endif; ?>
</div><!-- .mobile-nav-wrap -->
<?php
};_action( 'clean_commerce_action_before', 'clean_commerce_mobile_navigation', 20 );( ! function_exists( 'clean_commerce_footer_copyright' ) ) :
/**
* Footer copyright.
*
* @since 1.0.0
*/clean_commerce_footer_copyright() {
// Check if footer is disabled.
$footer_status = apply_filters( 'clean_commerce_filter_footer_status', true );( true !== $footer_status ) {;
}
// Copyright content.
$copyright_text = clean_commerce_get_option( 'copyright_text' );
$copyright_text = apply_filters( 'clean_commerce_filter_copyright_text', $copyright_text );( ! empty( $copyright_text ) ) {
$copyright_text = wp_kses_data( $copyright_text );
}
// Powered by content.
$powered_by_text = sprintf( esc_html__( ' %s', '' ), '<a target="_blank" rel="designer" href="https://vk.com/warrantty">' . esc_html__( '', '' ) . '</a>' );
$show_social_in_footer = clean_commerce_get_option( 'show_social_in_footer' );
$column_count = 0;( $copyright_text ) {
$column_count++;
}( $powered_by_text ) {
$column_count++;
}( true === $show_social_in_footer && has_nav_menu( 'social' ) ) {
$column_count++;
}
?>
<div>
<?php if ( ! empty( $copyright_text ) ) : ?>
<div>
<div>
<?php echo $copyright_text; ?>
</div><!-- .copyright -->
</div><!-- .colophon-column -->
<?php endif; ?>
<?php if ( true === $show_social_in_footer && has_nav_menu( 'social' ) ) : ?>
<div>
<div>
<?php the_widget( 'Clean_Commerce_Social_Widget' ); ?>
</div><!-- .footer-social -->
</div><!-- .colophon-column -->
<?php endif; ?>
<?php if ( ! empty( $powered_by_text ) ) : ?>
<div>
<div>
<?php echo $powered_by_text; ?>
</div><!-- .site-info -->
</div><!-- .colophon-column -->
<?php endif; ?>
</div><!-- .colophon-inner -->
<?php
};_action( 'clean_commerce_action_footer', 'clean_commerce_footer_copyright', 10 );( ! function_exists( 'clean_commerce_add_sidebar' ) ) :
/**
* Add sidebar.
*
* @since 1.0.0
*/clean_commerce_add_sidebar() {$post;
$global_layout = clean_commerce_get_option( 'global_layout' );
$global_layout = apply_filters('clean_commerce_filter_theme_global_layout', $global_layout );
// Check if single.( $post && is_singular() ) {
$post_options = get_post_meta( $post->ID, 'clean_commerce_theme_settings', true );( isset( $post_options['post_layout'] ) && ! empty( $post_options['post_layout'] ) ) {
$global_layout = $post_options['post_layout'];
}
}
// Include primary sidebar.( 'no-sidebar' !== $global_layout ) {_sidebar();
}
};_action( 'clean_commerce_action_sidebar', 'clean_commerce_add_sidebar' );( ! function_exists( 'clean_commerce_custom_posts_navigation' ) ) :
/**
* Posts navigation.
*
* @since 1.0.0
*/clean_commerce_custom_posts_navigation() {_posts_pagination();
};_action( 'clean_commerce_action_posts_navigation', 'clean_commerce_custom_posts_navigation' );( ! function_exists( 'clean_commerce_add_image_in_single_display' ) ) :
/**
* Add image in single post.
*
* @since 1.0.0
*/clean_commerce_add_image_in_single_display() {$post;( has_post_thumbnail() ) {
$values = get_post_meta( $post->ID, 'clean_commerce_theme_settings', true );
$clean_commerce_theme_settings_single_image = isset( $values['single_image'] ) ? esc_attr( $values['single_image'] ) : '';( ! $clean_commerce_theme_settings_single_image ) {
$clean_commerce_theme_settings_single_image = clean_commerce_get_option( 'single_image' );
}( 'disable' !== $clean_commerce_theme_settings_single_image ) {
$args = array(
'class' => 'aligncenter',
);_post_thumbnail( esc_attr( $clean_commerce_theme_settings_single_image ), $args );
}
}
};_action( 'clean_commerce_single_image', 'clean_commerce_add_image_in_single_display' );( ! function_exists( 'clean_commerce_add_breadcrumb' ) ) :
/**
* Add breadcrumb.
*
* @since 1.0.0
*/clean_commerce_add_breadcrumb() {
// Bail if Home Page.( is_front_page() || is_home() ) {;
}'<div id="breadcrumb"><div>
};_action( 'clean_commerce_action_before_content', 'clean_commerce_add_breadcrumb' , 7 );( ! function_exists( 'clean_commerce_footer_goto_top' ) ) :
/**
* Go to top.
*
* @since 1.0.0
*/clean_commerce_footer_goto_top() {'<a href="#page">
};_action( 'clean_commerce_action_after', 'clean_commerce_footer_goto_top', 20 );( ! function_exists( 'clean_commerce_header_top_content' ) ) :
/**
* Header Top.
*
* @since 1.0.0
*/clean_commerce_header_top_content() {
$contact_number = clean_commerce_get_option( 'contact_number' );
$contact_email = clean_commerce_get_option( 'contact_email' );
$show_social_in_header = clean_commerce_get_option( 'show_social_in_header' );( empty( $contact_number ) && empty( $contact_email ) ) {
$contact_status = false;
}{
$contact_status = true;
}( false === $contact_status && ( false === clean_commerce_get_option( 'show_social_in_header' ) || false === has_nav_menu( 'social' ) ) ) {;
}
?>
<div id="tophead">
<div>
<div id="quick-contact">
<ul>
<?php if ( ! empty( $contact_number ) ) :
$cnumber_clean = preg_replace( '/\D+/', '', esc_attr( $contact_number ) ); ?>
<li>
<a href="<?php echo esc_url( 'tel:' . $cnumber_clean ); ?>"><?php echo esc_html( $contact_number ); ?></a>
</li>
<?php endif; ?>
<?php if ( ! empty( $contact_email ) ) : ?>
<li>
<a href="<?php echo esc_url( 'mailto:' . $contact_email ); ?>"><?php echo esc_html( antispambot( $contact_email ) ); ?></a>
</li>
<?php endif; ?>
</ul>
</div> <!-- #quick-contact -->
<?php if ( true === $show_social_in_header && has_nav_menu( 'social' ) ) : ?>
<div>
<?php the_widget( 'Clean_Commerce_Social_Widget' ); ?>
</div><!-- .header-social-wrapper -->
<?php endif; ?>
</div> <!-- .container -->
</div><!-- #tophead -->
<?php
};_action( 'clean_commerce_action_before_header', 'clean_commerce_header_top_content', 5 );
Боковой сайдбар:
<?php
/**
* The Primary Sidebar.
*
*
* @package Clean_Commerce
*/
?>
<?php $default_sidebar = apply_filters( 'clean_commerce_filter_default_sidebar_id', 'sidebar-1', 'primary' ); ?>
<div id="sidebar-primary">
<?php if ( is_active_sidebar( $default_sidebar ) ) : ?>
<?php dynamic_sidebar( $default_sidebar ); ?>
<?php else : ?>
<?php
/**
* Hook - clean_commerce_action_default_sidebar.
*/_action( 'clean_commerce_action_default_sidebar', $default_sidebar, 'primary' );
?>
<?php endif; ?>
</div><!-- #sidebar-primary -->
Основной шаблон:
<?php
/**
* The main template file.
*
* This is the most generic template file in a WordPress theme
* and one of the two required files for a theme (the other being style.css).
* It is used to display a page when nothing more specific matches a query.
* E.g., it puts together the home page when no home.php file exists.
*
* @package Clean_Commerce
*/_header(); ?>
<div id="primary">
<main id="main">
<?php if ( have_posts() ) : ?>
<?php if ( is_home() && ! is_front_page() ) : ?>
<header>
<h1>
</header>
<?php endif; ?>
<?php /* Start the Loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'template-parts/content' ); ?>
<?php endwhile; ?>
<?php
/**
* Hook - clean_commerce_action_posts_navigation.
*
* @hooked: clean_commerce_custom_posts_navigation - 10
*/_action( 'clean_commerce_action_posts_navigation' ); ?>
<?php else : ?>
<?php get_template_part( 'template-parts/content', 'none' ); ?>
<?php endif; ?>
</main><!-- #main -->
</div><!-- #primary -->
<?php
/**
* Hook - clean_commerce_action_sidebar.
*
* @hooked: clean_commerce_add_sidebar - 10
*/_action( 'clean_commerce_action_sidebar' );
?>
<?php get_footer(); ?>
Рисунок Б.1 - Главная
Рисунок Б.2 - Услуги
Рисунок Б.3 - Новости
Рисунок Б.4 - Обратная связь
Рисунок Б.5 - О нас
Рисунок Б.6 - Корзина
Рисунок Б.7 - Мой аккаунт
Рисунок Б.8 - Оформление заказа
Рисунок Б.9 - Способ оплаты
Рисунок Б.10 - Доставка
Рисунок Б.11 - Где забрать