Sunday, December 30, 2007

Multimedia Enabling Technologies


1. Computation technology

  • Higher Processing Power Per Chip
    • Continual progress in microelectronics, especially VLSI, has resulted in higher processing power per chip.
    • Single microprocessor with 107 transistors is available

  • Higher Capacity Memory Chips
    • Growth in VLSI and more recently ULSI has resulted in 512 Mbytes DRAM chips being routinely available.


2. Storage technology
  • Progress In Storage Capacity
    • Storage is the key to the performance and functionality of any computer system.
    • This is even more true for multimedia applications because digitized audio, image and video require large storage capacity (even after compression)
    • Magnetic media has been the primary storage base for at least four decades.
    • Rapid technological advances in optical storage media are now a serious challenge to magnetic media


3. Compression technology
  • Progress In Compression Technologies
    • Compression is necessary for two reasons:
      • To reduce storage volumes of sounds, images, and motion video
      • To reduce the bit rate to transmit them over networks

    • Assuming no compression is used, a 8 minutes of CD-quality stereophonic sound or a 3.5 seconds of TV broadcast quality motion video need 80 MB of disk space for storage.
    • Assuming no compression is used, digital motion video of PAL quality requires 160 Mbps


4. Carrier and Transmission technology
Growth in carrier/transmission technologies such as optical fiber lead to transmission of multimedia information with high speed, high capacity and high reliability.
Network Switching Services Technology
New networking switching services such as B-ISDN can easily support multimedia. Asynchronous transfer mode (ATM) is the technology used to support B-ISDN.

5. Input/Output Device Technology
  • Technological Developments have covered a wide range of input and output devices for all aspects of multimedia. These devices include pen input, display systems, scanners, laser printers, digital voice and video input and output systems, video animation input.
  • Electronic pen input is a new technology which is expected to become more popular in the future
  • CRT based display systems have achieved higher and higher resolution.
  • Flat panel display systems using LCDs have also become popular and are used for portable computers as well as personal computers.
  • Printing technology has also matured sufficiently. Laser printers for normal office work having resolution of 300 to 600 DPI are routinely available. Higher resolution ranging from 600 to 1200 DPI are useful for specialized multimedia applications. Dot matrix printers also able to print out photo quality images.
  • Digital Camera does not contain film roll; Instead, it stores the captured images in digital form. Images are stored on a magnetic or optical disk in the camera or on a memory cartridge. In some cases, the image is downloaded directly to a computer. A digital camera uses charged-coupled devices (CCD) and CMOS as photo-sensors.
  • Digital images created by digital cameras offer a number of advantages
    • Digital images can be printed immediately and any number of times for duplication
    • Digital images can be integrated with word processor
    • Digital images can be embedded in mail messages.
  • Video frame grabber is used to capture, manipulate, and enhance still video images. Once a digital still image is available, it can easily be enhance, restored, distorted, or analyzed.
  • Powerful image animation techniques are now available using computers where illusion of movement is created by sequentially playing still image frames at a rate of 15-20 frames per second.
  • Full-Motion video is the most complex component of multimedia systems. Its most important component is the video capture board. A video capture board for full motion video is a circuit card which contains video input, ADC/DAC, audio and video compression and decompression circuits, video frame memory etc.


6. Protocol Technology
These technologies relate to providing generic services to the applications such as address location, address resolution, connection setup, multicasting, end-to-end control. New protocol suites are being developed at the application level to support multimedia applications.

7. Application Technology
These technologies act as a interface between the protocol technology and the applications themselves. Often these technologies are specific to a class of applications and require to be developed as communication subsystem independent and protocol independent, for deployment to a variety of systems.

8. Database Technology
These technologies address the issue of storing and retrieving multimedia information of the order of several gigabits. For example large databases, integrated databases, federated databases, active and proactive databases.

9. Software Technology
These technologies become vital in the modern computing environment as the development of multimedia applications require an appropriate development environment. For example the object-oriented software development environment, distributed environment and parallel environment.

10. System Integration Technology
This is by far the most important requirement in the context of multimedia . Integration involves hardware, software, communication, sensor, coding and compression technologies to coexist in the modern multimedia system and the whole system should have a simple and easy-to-use interface.

Sunday, December 23, 2007

Software Quality Assurance

Concepts and Definitions


  • Software Quality Assurance (SQA) is defined as a planned and systematic approach to the evaluation of the quality of and adherence to software product standards, processes, and procedures.
  • SQA includes the process of assuring that standards and procedures are established and are followed throughout the software acquisition life cycle.
  • Compliance with agreed-upon standards and procedures is evaluation through process monitoring, product evaluation, and audits.
  • Software development and control processes should include quality assurance approval points, where an SQA evaluation of the product may be done in relation to the applicable standards.


  • Components of SQA


  • Pre-project components
  • Software project life cycle components
  • Infrastructure components for error prevention and improvements
  • Management SQA components
  • SQA standards, system certification and assessment components
  • Organizing for SQA


  • Pre-project Components

    • Pre-project
      • Contract reviews
      • Development and quality plans


    Common Contract Situations

  • Participation in a tender
  • Proposal submission according to customer's request for proposal
  • Receipt of an order from a company's customer
  • Internet request from another department in the organization


  • Contract Review Stages

    • The contract review consist of
      • Proposal draft review
        • Reviews the proposal prior to submission to the potential customer
        • This includes customer's requirement documents, cost and resource estimates, existing contracts or contract drafts.
      • Contract draft review
        • Reviews the contract draft prior to signing
        • Review on the basis of the proposal and the understanding (including changes) reached during the contract negotiation sessions.


    Implementing Contract Reviews

    • Who perfoms the review?
      • The leader or another member of the proposal team
      • The members of the proposal team
      • An outside professional or company staff member who is not member of the proposal team
      • A team of outside experts


    Development and Quality Plan

  • Planning is meant to prepare adequate foundations for successful and timely completion of the project.
  • The planning process includes:
    • 1. Scheduling development activities and estimating the required manpower resources and budget.
      2. Recruiting team members and allocating development resources
      3. Resolving development risks
      4. Implementing required SQA activities
      5. Providing management with data needed for project control


    Development Plan: Elements
    1. Project products, specifying "deliverables"
    2. Project interfaces
    3. Project's methodology and development tools
    4. Software development standards and procedures
    5. Map of the development process
    6. Project milestones
    7. Project staff organization and coordination with external participants
    8. Required development facilities
    9. Development risks and risk management actions
    10. Control methods
    11. Project cost estimates

    Quality Assurance Plan: Elements
    [Sommerville2004]

  • A quality assurance plan sets out the desired product qualities and how these are assessed and defines the most significant quality attributes.
  • The quality assurance plan should define the quality assessment process.
  • It should set out which organizational standards should be applied and, where necessary, define new standards to be used

  • [Galin2004]
    Elements:
    1. List of quality goals
    2. Review activities
    3. Software tests
    4. Acceptance tests for software externally developed
    5. Configuration management plans: tools, procedures, and dates for version release

    Project Life Cycle Components
    Development
    -Reviews
    -Expert Opinions
    -Software Testing
    -Assurance of the quality of external participants’ work
    Maintenance
    -Software maintenance components

    The Objectives of SQA activities in Software Development

  • Assuring an acceptable level of confidence that the software will conform to functional technical requirements.
  • Assuring an acceptable level of confidence that the software will conform to managerial scheduling and budgetary requirements.
  • Initiation and management of activities for the improvement and greater efficiency of software development and SQA activities.



  • Several Quality Assurance Activities
    Requirement specification review
    -Approval of the requirement specification to proceed with the next phase
    Design inspection
    -Detecting errors and derivations from standards
    Design review
    -Approval of the design to proceed with the next phase
    Code inspection
    -Detecting errors and derivations from standards
    Unit test
    -Approval of the unit quality to proceed with the next phase
    Integration tests
    -Approval of the integrated units to proceed with the system test
    Documentation review
    -Approval of the documentation for operation
    System test
    -Approval of the system for operation
    Operation phase detection
    -Defects will be found during operation by the customer.

    Infrastructure Components
    - Procedures and work instruction
    - Templates and checklists
    - Staff training, retraining and certification
    - Preventive and corrective actions
    - Configuration management
    - Documentation control

    Management SQA Components

  • Project progress control
  • Software quality metrics
  • Software quality costs


  • Standards, Certification, Assessment

  • Project process standards
  • Quality management standards


  • Organizing for SQA

  • Management’s role in SQA
  • The SQA Unit
  • SQA trusties
  • SQA committees
  • SQA forums


  • Sunday, December 2, 2007

    Introduction to Software Quality

    Software - IEEE definition
    Software is:
    Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system.

    Software quality - IEEE definition
    Software quality is:
    (1)The degree to which a system, component, or process meets specified requirements.
    (2)The degree to which a system, component, or process meets customer or user needs or expectations.

    Software quality - Pressman's definition
    Software quality is :
    Conformance to explicitly stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software.

    SQA - IEEE definition
    Software quality assurance is:
    1.A planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements.
    2.A set of activities designed to evaluate the process by which the products are developed or manufactured. Contrast with: quality control.

    SQA - expanded definition
    Software quality assurance is:
    A systematic, planned set of actions necessary to provide adequate confidence that the software development process or the maintenance process of a software system product conforms to established functional technical requirements as well as with the managerial requirements of keeping the schedule and operating within the budgetary confines.

    The objectives of SQA activities in software development
    (1)Assuring an acceptable level of confidence that the software will conform to functional technical requirements.
    (2)Assuring an acceptable level of confidence that the software will conform to managerial scheduling and budgetary requirements.
    (3)Initiation and management of activities for the improvement and greater efficiency of software development and SQA activities.

    The objectives of SQA activities in software maintenance
    (1)Assuring an acceptable level of confidence that the software maintenance activities will conform to the functional technical requirements.
    (2)Assuring an acceptable level of confidence that the software maintenance activities will conform to managerial scheduling and budgetary requirements.
    (3)Initiate and manage activities to improve and increase the efficiency of software maintenance and SQA activities.