Non Functional Requirements.html - pabloviquez/docutest GitHub Wiki
Starkey Foundation - Starkey Video : Non-Functional Requirements
This page last changed on Apr 21, 2014 by pablo.viquez.
Main Navigation
Home - Discovery & Architectur- e
Discovery & Archirecture Menu
Home - Discovery & Architectur- e
[Non-Function- al Requirement- s](/display/STARKEYVID/Non- Functional+Requirements)
Introduction
The objective of this document is to discover, document and maintain a set of requirements to serve as base for planning, project architecture, application design and development.
Project Definition
The main goal of this project is to design and implement a web application that connects passionate people to the change they want to create in the world.
More specifically, the web application will:
- Manage content using a CMS
- Present and manage video content using Brightcove as the video platform
- Manage user profiles
- Support object categorization and taxonomy
- Manage digital assets
- Allow relationships between objects
- Support video listing and playback
- Manage video metadata
- Support different types of social channels, like Facebook or Twitter
For more detail functionality, please refer to the User Experience documentation.
Non Functional Requirements
Non-functional requirements specify the system criteria; they do not specify functionality but rather the foundations of the system, which will help and allow detailed system architecture.
In order to be able to dissect and analyze the project, these requirements will be divided into categories.
Accessibility
- The web application should be able accessible using the desktop computer browser or from a tablet device browser
- Tablet browsers, should have a similar experience with the exception of video player most advanced features
- Browsers that will support the full experience cutting edge experience are their latest browser versions of Chrome (v30), Firefox (v24), Safari (v6), Opera (v16) & Internet Explorer (v10)
- A downgrade experience can be provided to the following browser list: Internet Explorer v8
- The web application should meet the W3C accessibility guidance WCAG 2.0 in a conformance level of AA
Backups
- Backing up the system should be an easy task, which involves 3 main areas:
- Code : Code is always backup by using the software versioning control
- Database : MySQL allows easy and efficient backups of the database by using SQL dumps
- Digital Assets : These are handle by background jobs inside the server
- The backups must be programmed and run every 1 to 3 hours, depending on the amount of data and change the system receives.
- A detailed analysis must be done on the first initial stages of production, in order to come up with a backup strategy
Collaboration
- System must be able to integrate with 3rd party software to provide extra functionality
- Video experiences will be based on the Brightcove video player technologies and will be enhanced using custom implementations
Documentation
- All documentation will be developed in a tool called Confluence for online collaboration. Every developer will be adding documentation as the project evolves
- The documentation will be available to interested stakeholders with the option to be exported in different formats like PDF or Word Doc
Deployment
- Even though the technologies the web application will use are portable, the system will be constructed under a Unix based operating system and certain features will be supported by this OS only
- For software version control, SVN will be use adhering to the best practices for control versioning. This involves production, QA, staging or any other control or not environment
- Managed deployments will be done using the command line interface via SSH access with a sudo enabled user
- A continuous integration system should handle deployments, more specific using CruiseControl with the plugin PHPUnderControl
Fault Tolerance
- In case of crash by either the database or web server, the effect on the website should always be as minimum as possible
- At least 2 web servers and 2 database servers should be in place in order to have room and enough time for disaster recovery
Hosting
- It’s expected for the system to be hosted on a Unix environment in compliance of the technical requirements
- Depending on budget and skills on team, managed servers or hiring a third party for sys admin task is always a good idea
On Premise Hosting System Cloud Managed Cloud
Requires allow access to Possible personnel
24/7 and 99.999% availability resides in the hosting provider
24/7 and 99.999% availability resides in the hosting provider
24/7 and 99.999% availability resides in the hosting provider
StarKey IT staff should be trained and feel confortable applying patches and upgrading the system
StarKey IT staff should be trained and feel confortable applying patches and upgrading the system
StarKey IT staff should be trained and feel confortable applying patches and upgrading the system
Releases Starkey IT staff from all monitoring and troubleshooting
Possible must give a detail document explaining step by step what to do in order to upgrade the system or a fresh install
Possible must give a detail document explaining step by step what to do in order to upgrade the system or a fresh install
Possible must give a detail document explaining step by step what to do in order to upgrade the system or a fresh install
Patches and upgrades should be handle by the hosting personnel and no by Starkey IT staff
StarKey IT staff should monitor the application and in case of failure troubleshoot the system
StarKey IT staff should monitor the application and in case of failure troubleshoot the system
Scaling the system is easy and can be done in a time/cost efficient manner
Cost efficient. A cloud management implementation guarantees that the cloud hosting will always perform at its best with the lowest cost possible
In case of failure due large amounts of traffic, scale the system horizontally is not as efficient as cloud, requires time, planning and license purchasing
Cloud hosting is always more expensive at the long term, however gives more flexibility and guarantees the system uptime
Costs should be defined and take into account the risks of one or another system.
At this moment, POSSIBLE will recommend the implementation of a Managed Cloud Hosting system, with the company RightScale: http://www.rightscale.com/ however, this recommendation can change due budget restrictions or Starkey IT strategy.
Open Source & Third Parties
- Third party integrations will be done using a public API using the HTTP protocol for communication, this unless the third party provides an SDK for the platform provided
- The web application will use extensive usage of third party open source software, however not all components of software are free, which will require a license fee to be paid
- Expression Engine requires components in order to allow the extendibility, the list of components for EE are:
Software Component / Description URL (For paid software)
CMS - Expression Engine
Based CMS in which the entire system will live
MojoMotor
Expression Engine component for easy editing
Channel Images Extension
Expression Engine Component for image manipulation
http://www.devdemon.com/channel_images
Playa
Expression engine component for fields associations
http://devot-ee.com/add-ons/playa
Social Sign On
Enables to login and register to ExpressionEngine website using popular social networks such as Facebook, Twitter, Google, LinkedIn, Yahoo, vKontakte, AOL, Foursquare, OpenId etc
http://devot-ee.com/add-ons/social-sign-on
Super Search
Expression Engine module for search functionality
http://www.solspace.com/software/detail/super_search/
Platform & Software Language
- The system will be develop under a Unix based environment, Windows based environments will not be tested neither guarantee to work.
Operating System Web Application Database System
The system will be developed using Ubuntu 12 as the operating system
PHP 5.5.x will be used as the based language compiler
MySQL 5.5 will be the target DB version
All developers will have the same set of configurations and environment due the usage of Vagrant and Virtual Box
The Web server will have Apache 2.4.x
The system core CMS will use the latest Expression Engine version at the time of initiating the project. At this moment the Expression Engine latest version is: 2.7.2, however due the nature of the industry, this version can change. It’s always recommended to go to https://store.ellislab.com; for more information regarding licenses and versions.
.x means that it will use the latest version at the time of installation
Scalability
- The system design should scale either vertically or horizontally, that’s using more memory and computing power or adding more machines in a traffic balanced environment
- The web application will be able to be hosted under a cloud environment in which the scalability is inherent
Testing & Deployment
- For optimal quality, 3 servers should be set on place:
- QA : This is where all test are performed, data can change and everything done in this server will not make it to production
- Staging : This is a production mirror which main goal is to simulate and test a possible production push. Code and database in this server will be pushed into production
- Production : Final stage of the QA process, this is the live server
- Quality Assurance should involve all production phases, from coding to production as follow:
- Development: In development, the QA process involves code test using unit testing and code reviews
- Testing phase: A specialized team of quality assurance people, will create test plans that aligns with the website objective and design, will test the system against this plan and provide feedback to the developers
- In production stage, the QA team will conduct smoke test or regression test to assure production complies with requirements and that performs as expected
Video & Brightcove Integration
- Brightcove offers streaming of DRM enabled videos for Video Cloud Enterprise accounts
- If DRM video content is required, the recommended option for the system requirement is Adobe Access because it’s the system that supports mobile devices and desktop computers
- The DRM transcoding is provided by Brightcove using the technology selected, however, videos that were transcoded to DRM cannot be decrypted, that’s if the account enables the DRM protected content, and later this systems is disabled, the videos encrypted using DRM will remain encrypted and wont be able to be played until the account has enabled the DRM featured again
- DRM content using Adobe Access supports Flash players only with a flash version of 10.0 or later, it does not supports HTML5 players
- Additional fee is required for DRM enable content
- DRM is used to restrict and avoid video piracy, however depending on the nature of content, DRM might not be a good solution
- DRM content should be implemented if the following conditions apply:
- Videos should be protected from piracy
- The company is legally bound to protect the videos from downloading or viewing outside the application framework
- There are legal implications and punishment fees if the video is downloaded or distributed outside the application framework
- Videos are valuable assets that must be protected all the time, from uploading until streaming
Video Format and Specifications
The recommended video source format is H.264 (MPEG-4 Part 10) with the following encoding:
Video
- Encoding: 2 pass H.264
- Keyframe: At least every 6 seconds (do not need to be equidistant)
Audio
- Audio Codec 16-bit AAC audio
- Sampling frequency: 44.1kHz
- Bit rate: 192 kbps
For more information, please visit: <http://support.brightcove.com/en/video- cloud/docs/video-source-file-specifications-and-recommendations#highres>
APPENDIX I : Software Costs
The following are the retail costs of the required software licenses. These prices do not (unless specify) take into account discounts of any kind.
Licenses specified here, are for one machine only, that’s if the plan is to have 3 machines, the 3 separated licenses should be purchased.
Software Version # Licenses Cost URL for purchase
Expression Engine
2.7
1
$299
MojoMotor
1.2.1
1
$49
Channel Images Extension
5.4.8
1
$65
http://www.devdemon.com/channel_images
Playa
4.4.5
1
$69
http://devot-ee.com/add-ons/playa
Social Sign On
2.2.2
1
$35
http://devot-ee.com/add-ons/social-sign-on
Super Search
2.1.3
1
$119.95
http://www.solspace.com/software/detail/super_search/
APPENDIX II : DRM Video Requirements
DRM stands for Digital Rights Management and it’s a feature that protects the video content from piracy or illegal download. In a nutshell, what DRM do is encrypt the transmission of a video streaming feed package by package, making extremely hard (or almost impossible) for someone to copy the transmission and save the video locally.
The process for DRM videos is transparent for the end user, content administrator and developers, does not requires heavy customizations or complicated settings to manage, however it does sets some restrictions on the player to use, this because the decryption of the package.
Brightcove offers DRM support with 2 vendors: Adobe Access and Google Widevine. In the case of Starkey, the recommended option is Adobe Access. The reason is because Google Widevine is designed for native mobile apps or stand-alone devices, no for web experiences. Adobe Access is designed for web streaming.
DRM Considerations
- There’s an extra cost for the DRM video support
- If DRM feature is disabled, newly uploaded videos will not be package with DRM protection, and a process will begin to unpack existing DRM-package titles one by one. If the account terminates the DRM protection, previously package videos will fail to play until they become unpackaged
- DRM is not maintained on videos distributed to YouTube via Video Cloud Studio distribution
- DRM videos (with Adobe Access) is available for Flash players only, which means it cannot be played on apple mobile devices
Is DRM Required?
DRM is not for everyone, not just because of money and budget but also because of the legal implications, nature of the application and business strategy.

In order to enable DRM video support, you need to think the following:
- Is the nature of the web application the monetization of videos?
- Does the web application benefit from video piracy?
- Are there legal implications, which obligates the company to protect the video from piracy?
- If mobile video delivery is required and support for DRM must be enabled, then a native app is required, this because there’s no support for DRM videos over the HTML5 video player
APPENDIX III : Change Log
Date Change Word doc with change
2013-10-29
Added new plugin
Added appendix III with change log
TBD
2013-11-12
Added Video Format and Specifications
TBD
2013-11-13
Changed section Platform & Software Language, specifically:
Changed PHP version to 5.5.x
Added Apache Web Server version 2.4.x
TBD
END DOCUMENT
In This Page
- Introduction
- Project Definition
- Non Functional Requirements
- Accessibility
- Backups
- Collaboration
- Documentation
- Deployment
- Fault Tolerance
- Hosting
- Open Source & Third Parties
- Platform & Software Language
- Scalability
- Testing & Deployment
- Video & Brightcove Integration
- Video Format and Specifications
- Video
- Audio
- APPENDIX I : Software Costs
- APPENDIX II : DRM Video Requirements
- DRM Considerations
- Is DRM Required?
- APPENDIX III : Change Log
Site Map
Attachments:
StarKey_NonFunctionalReqs_v2.1.docx
(application/vnd.openxmlformats-officedocument.wordprocessingml.document)
DRM_Flow.png (image/png)
StarKey_NonFunctionalReqs_v3.0.docx
(application/vnd.openxmlformats-officedocument.wordprocessingml.document)

Document generated by Confluence on Sep 16, 2014 14:12