Web Technology

10Marks & 5Marks

1. Dictionary Object in VBScript [10 Mark] [5 Mark]

The Dictionary object stores name/value pairs(referred to as the key and item respectively) in an array. The key is a unique identifier for the corresponding item and cannot be used for any other item in the same Dictionary object.

The following code creates a Dictionary object called “cars”, adds some key/item pairs, retrieves the item value for the key 'b' using the Item property and then outputs the outputting string to the browser.

  • Code:

    <%
    Dim cars
    Set cars = CreateObject("Scripting.Dictionary")
    cars.Add "a", "Alvis"
    cars.Add "b", "Buick"
    cars.Add "c", "Cadillac"
    Response.Write "The value corresponding to the key 'b' is "
    cars.Item("b")
    %>

  • Output:

    "The value corresponding to the key 'b' is Buick"

  • Explanation:

    This code creates a Dictionary object called "cars", adds some key/item pairs, retrieves the item value for the key 'b' using the Item property and then outputs the resulting string to the browser.


2. What is procedure in VBScript? How to use it? How to define it? [10 Mark] [5 Mark]

Procedures are small logical components which breaks (splits) the program into a separate task. Procedures can be called inside of another procedure

Procedures can take its arguments, perform a series of operations and changes the values of its arguments.

The benefits of programming with procedures are:

  • Debugging can be easily done
  • A procedure can act as a building block for another procedure in a program

The general format of the VBScript procedures are as follows:

  • Syntax:

    Procedure_type Procedure_Name(argument_list)
        the procedure heading
        declaration statements
        execution statements
    End Procedure_type

  • Example:

    <html>
    <body>
    <script language="vbscript" type="text/vbscript">
        Function sayHello()
        msgbox("Hello there")
        End Function
    </script>
    </body>
    </html>

A procedure can have two parts:

  1. A declaration statement act as a reservation from the memory cells that are needed to hold data and program output and what kind of information will be stored in each memory cell.
  2. An execution statement is a statement that is translated into machine language and executed later.

What is VBScript? Explain the salient features of VBScript [10 Mark] [5 Mark]

VBScript (Visual Basic Script) is developed by Microsoft with the intention of developing dynamic web pages. It is client-side scripting language like JavaScript. VBScript is a light version of Microsoft Visual Basic. The syntax of VBScript is very similar to that of Visual Basic. If you want your webpage to be more lively and interactive, then you can incorporate VBScript in your code. [2 Mark]

Features

  • VBScript is a lightweight scripting language, which has a lightning fast interpreter.
  • VBScript, for the most part, is case insensitive. It has a very simple syntax, easy to learn and to implement.
  • Unlike C++ or Java, VBScript is an object-based scripting language and NOT an Object-Oriented Programming language.
  • It uses Component Object Model (COM) in order to access the elements of the environment in which it is executing.
  • Successful execution of VBScript can happen only if it is executed in Host Environment such as Internet Explorer (IE), Internet Information Services (IIS) and Windows Scripting Host (WSH).
  • VBScript is also used for Network Administration, System Administration and for UFT Test Automation.
  • If we already know Visual Basic (VB) or Visual Basic for Applications (VBA), VBScript will be very familiar.
  • VBScript talks to host applications using Windows Script. With Windows Script, browsers and other host applications do not require special integration code for each scripting component.

String Functions in VBScript [10 Mark] [5 Mark]

InStr: returns the first occurrence of the specified substring. Search happens from left to right.

  • Example:
    Dim txt
    txt = "This is a beautiful day!"
    MsgBox InStr(txt, "beautiful")
  • Output:
    11

InStrRev: returns the first occurrence of the specified substring. Search happens from Right to Left.

  • Example:
    Dim txt
    txt = "This is a beautiful day!"
    MsgBox InStrRev(txt, "beautiful")
  • Output:
    11

Left: returns a specified number of characters from the left side of a string.

  • Example:
    Dim txt
    txt = "This is a beautiful day!"
    MsgBox Left(txt, 15)
  • Output:
    This is a beaut

Right: returns a specific number of characters from the right side of the string.

  • Example:
    Dim txt
    txt = "This is a beautiful day!"
    MsgBox Right(txt, 10)
  • Output:
    tiful day!

Split: returns a zero-based, one-dimensional array that contains a specified number of substrings.

  • Example:
    Dim txt, splitText
    txt = "This is a beautiful day!"
    splitText = Split(txt)
    For each x in txt
        MsgBox x
  • Output:
    This
    is
    a
    beautiful
    day!

Join: returns a string that consists of a number of substrings in an array.

  • Example:
    Dim days
    days = Array("Life", "Is", "Good")
    MsgBox Join(days)
  • Output:
    Life Is Good

LCase: returns the lower case of the specified string.

UCase: returns the upper case of the specified string.

Trim: returns the string value after removing both leading and trailing blank spaces.


Math Functions in VBScript [10 Mark] [5 Mark]

Date functions helps the developers to convert date from one format to another or to express the date value in the format that suits a specific condition.

Int: returns the integer part of the specified number.

  • Example:
    MsgBox Int(6.25475)
  • Output:
    6

Oct: returns the octal value of the given number.

  • Example:
    MsgBox Oct(400)
  • Output:
    620

Hex: returns the hexadecimal value of the given number.

  • Example:
    MsgBox Hex(400)
  • Output:
    190

Sqr: returns the square root of the specified number.

  • Example:
    MsgBox Sqr(9)
  • Output:
    3

Abs: returns the absolute value of the specified number.

  • Example:
    MsgBox Abs(-1)
  • Output:
    1

Log: returns the natural logarithm of a specified number. The natural logarithm is the logarithm to the base e.

Sin: returns the sine value of the specified number.

Cos: returns the cosine value of the specified number.

Tan: returns the tan value of the specified number.


Date Functions in VBScript [10 Mark] [5 Mark]

Date functions helps the developers to convert date from one format to another or to express the date value in the format that suits a specific condition.

Date: returns the current system date.

CDate: converts a valid date and time expression to date object, and returns the result.

DateAdd: returns a date to which a specified time interval has been added.

DateDiff: returns the interval between two dates.

DatePart: returns the specified part of a given date.

IsDate: returns a boolean value which specifies if the given value can be converted to a date object.

Day: returns an integer between 1 and 31 that represents the day of the specified date.

Month: returns an integer between 1 and 12 that represents the month of the specified date.

Year: returns an integer that represents the year of the specified date.


Err Object [5 Mark]

{ Refer Document }

Operators in VBScript [5 Mark]

{ Refer Document }

How to add VBScript to HTML Document [10 Mark] [5 Mark]

{ Refer Document }

VBScript DataType [5 Mark]

{ Refer Document }

Constructor Function [10 Mark] [5 Mark]

{ Refer Document }

What is Event Handling in JavaScript [5 Mark]

{ Refer Document }

What is JavaScript. Advantages of JavaScript [5 Mark]

{ Refer Document }

Programming Constructs of JavaScript [5 Mark]

{ Refer Document }

Operators in JavaScript [5 Mark]

{ Refer Document }

Control Structure in JavaScript [5 Mark]

{ Refer Document }

Looping Statements in JavaScript [5 Mark]

{ Refer Document }

JavaScript DataTypes [5 Mark]

{ Refer Document }

Arrays in JavaScript [5 Mark]

{ Refer Document }

Web Server Control in ASP.net [10 Mark] [5 Mark]

{ Refer Document }

Explain OLEDB connection class and Page Directive [10 Mark] [5 Mark]

{ Refer Document }

Data Communication & Networking

10Marks & 5Marks

1. Topology [10 Mark]

Definition:

  • Network topology is the arrangement of the elements of a communication network.
  • Network topology can be used to define or describe the arrangement of various types of telecommunication networks, including command and control radio networks, industrial field busses and computer networks.

Types of Topology:

Ⅰ. Bus Topology [5 Mark]

  • Bus topology is a network type in which every computer and network device is connected to single cable. When it has exactly two endpoints, it is called Linear Bus topology.

Advantages

  • It is cost effective
  • Cable required is least compared to another network topology.
  • It is easy to understand.
bus-topology

ⅠⅠ. Ring Topology [5 Mark]

  • It is called Ring topology because it forms a ring as each computer is connected to another computer, with the last one connected to the first. In ring topology, each device have exactly two neighbors
  • In ring topology, the transmission is unidirectional, but it can be made bidirectional by having 2 connections between each Network Node, it is called Dual Ring Topology.
  • In Dual Ring Topology, two ring networks are formed, and data flow is in opposite direction in them. Also, if one ring fails, the second ring can act as a backup, to keep the network up.

Advantages

  • Transmitting network is not affected by high traffic or by adding more nodes, as only the nodes having tokens can transmit data.
  • Cheap to install and expand.
ring-topology

ⅠⅠⅠ. Star Topology [5 Mark]

  • In this type of topology all the computers are connected to a single hub through a cable. This hub is the central node and all others nodes are connected to the central node.
  • Hub acts as a repeater for data flow.

Advantages

  • Fast performance with few nodes and low network traffic.
  • Hub can be upgraded easily.
  • Easy to troubleshoot.
  • Easy to setup and modify.
  • Only that node is affected which has failed, rest of the nodes can work smoothly.
star-topology

ⅠV. Mesh Topology

  • It is a point-to-point connection to other nodes or devices. All the network nodes are connected to each other.
  • Mesh has n(n-1)/2 physical channels to link n devices.

Advantages

  • Each connection can carry its own data load.
  • It is robust.
  • Fault is diagnosed easily.
  • Provides security and privacy.
mesh-topology

V. Hybrid Topology

  • It is two different types of topologies which is a mixture of two or more topologies. For example, if in an office in one department ring topology is used and in another star topology is used, connecting these topologies will result in Hybrid Topology (ring topology and star topology).
  • Inherits the advantages and disadvantages of the topologies included

Software Testing

10Marks, 5Marks & 2Marks

1. Testing vs Debugging [10 Mark] [5 Mark]

Testing

  1. Testing is the process using which we find errors and bugs.
  2. Testing starts with known conditions, uses predefined procedures and has predictable outcomes.
  3. Testing can, and should be planned, designed and scheduled
  4. One does not need any design knowledge to perform testing.
  5. Both insiders and outsiders can perform testing.
  6. Much of test execution and design can be automated
  7. Testing is a stage of SDLC (Software Development Life Cycle).
  8. This process can begin after we have completed writing the code.

Debugging

  1. Debugging is the process using which we correct the bugs that we found during the testing process.
  2. Debugging starts from possibly unknown initial conditions and the end cannot be predicted except statistically
  3. Procedure and duration of debugging cannot be so constrained
  4. Debugging is impossible without detailed design knowledge
  5. Debugging must be done by an insider
  6. Automated debugging is still a dream
  7. Debugging is not at all an aspect of the SDLC. It rather occurs as a consequence of the process of testing.
  8. This process can begin after the execution of the test case and the identification of errors.

2. Phases of Software Testing [10 Mark] [5 Mark]

Phase 1: Static Testing (Requirements Testing)

During static testing, developers work to avoid potential problems that might arise later. Without executing the code, they perform manual or automated reviews of the supporting documents for the software, such as requirement specifications, looking for any potential ambiguities, errors or redundancies. The goal is to preempt defects before introducing them to the software system.

Phase 2: Unit Testing  [2 Mark] [5 Mark]

The next phase of software testing is unit testing. Unit Testing is a type of software testing where individual units or components of a software are tested. The purpose is to validate that each unit of the software code performs as expected. Unit Tests isolate a section of code and verify its correctness. A unit may be an individual function, method, procedure, module, or object. Unit testing is a WhiteBox testing technique that is usually performed by the developers during the development (coding phase) of an application.

Phase 3: Integration Testing  [5 Mark]

Integration Testing is as a type of testing where software modules are integrated logically and tested as a group. A typical software project consists of multiple software modules, coded by different programmers. The purpose of this level of testing is to expose defects in the interaction between these software modules when they are integrated. Through integration testing, the developers can determine the overall efficiency of the units as they run together. This phase is important because the program's overall functionality relies on the units operating simultaneously as a complete system, not as isolated procedures.

Phase 4: System Testing  [5 Mark]

In the system testing phase, the software undergoes its first test as a complete, integrated application to determine how well it carries out its purpose. For this, the developers pass the software to independent testers who had no involvement in its development in order to ensure that the testing results stem from impartial evaluations. System testing is vital because it ensures that the software meets the requirements as determined by the client.

Phase 5: Acceptance Testing (User Acceptance Testing)

Acceptance testing is the last phase of software testing. Its purpose is to evaluate the software's readiness for release and practical use. Testers may perform acceptance testing alongside individuals who represent the software's target audience. Acceptance testing aims to show whether the software meets the needs of its intended users and that any changes the software experienced during development are appropriate for use. Once the software passes acceptance testing, it moves on to production.


3. Explain bug. Types of Bugs. [10 Mark] [5 Mark]

• A software bug is a problem causing a program to crash or produce invalid output. The problem is caused by insufficient or erroneous logic. A bug can be an error, mistake, defect, or fault, which may cause failure or deviation from expected results.

• Software bugs should be caught during the testing phase of the software development life cycle, but some can go undetected until after deployment.

• Debugging is a process of finding out where something went wrong and correcting the code to eliminate the errors or bugs that cause unexpected results. A software debugging system can provide tools for finding errors or bugs in programs and correcting them. [2 Mark]

Types of bugs:

  1. Logic bugs

    One of the types of coding errors that can cause the program to output incorrectly or even freeze or crash. For example, an infinite loop would cause the program to repeat the sequence of actions indefinitely until it crashes or halts due to external intervention, such as the program closing or a power outage.

  2. Calculation errors

    Calculation errors may occur due to bad logic, an incorrect formula, a data type mismatch or a coding error. Calculation errors can be serious. For example, a calculation error in a banking system can result in loss of money. Fixing the calculation error is typically just a matter of math.

  3. Functional Errors

    This type of error occurs whenever software does not behave as intended. For example, a Login button doesn't allow users to login, an Add to cart button that doesn't update the cart, etc. So basically, any component in an app or website that doesn't function as intended is a functional bug.

  4. Security bugs

    Security errors are perhaps one of the most severe defects, making the project vulnerable. This type of bugs opens the software, company, and customers to a potential intense attack.

  5. Syntax errors

    Such errors occur in the program's source code and prevent the program from compiling correctly. This type of defect is widespread and usually occurs when there are one or more missing or incorrect characters in the code. For example, missing one parenthesis can cause a syntax error.

  6. Compatibility errors

    These software bugs occur when an application does not run consistently across different hardware, operating systems, and browsers.

  7. Performance bugs

    This is a type of software bug, related to speed, stability, response time, and software resource consumption. Such defects are discovered during the performance testing phase.


4. Explain the model of testing [Model-Based Testing]. [10 Mark] [5 Mark]

• Model-based testing is a software testing technique in which the test cases are derived from a model that describes the functional aspects of the system under test. It makes use of a model to generate tests that includes both offline and online testing. Model based testing is the modern approach to software testing.

• A model is a description of a system's behavior. Behavior can be described in terms of input sequences, actions, conditions, output and flow of data from input to output. It should be practically understandable and can be reusable; shareable must have a precise description of the system under test.

• Model-Based Testing describes how a system behaves in response to an action (determined by a model). Supply action, and see, if the system responds as per the expectation. It is a lightweight formal method to validate a system.

Types of MBT

There are two types of Model based testing framework:

  1. Offline / a priori: Generation of Test Suites before executing it.

  2. Online / on-the-fly: Generation of Test Suites during test execution.

Different models in testing

  • Finite state machines:  [5 Mark]

    This model helps testers to assess the result depending on the input selected. There can be various combinations of the inputs which result in a corresponding state of the system. The system will have a specific state and current state which is governed by a set of inputs given from the testers.

  • State charts

    It is an extension of Finite state machine and can be used for complex and real time systems. Statecharts are used to describe various behaviors of the system. It has a definite number of states. The behavior of the system is analyzed and represented in the form of events for each state.

  • Unified modeling language (UML)

    Unified Modeling Language (UML) is a standardized general-purpose modeling language. UML includes a set of graphic notation techniques to create visual models of that can describe very complicated behavior of the system.

Advantages of Model Testing

  • Easy test case/suite maintenance
  • Higher level of Automation is achieved.
  • Improved Test Coverage
  • Early defect detection
  • Time savings

Drawbacks of Model Testing

  • Necessary Skills required in testers
  • Deployment cost & effort will be more
  • Difficult to understand the model itself

5. Transaction Flow Testing. [10 Mark] [5 Mark]

Get the transaction flows:

  • Complicated systems that process a lot of different, complicated transactions should have explicit representations of the transactions flows, or the equivalent.

  • Transaction flows are like control flow graphs, and consequently we should expect to have them in increasing levels of detail.

  • The system's design documentation should contain an overview section that details the main transaction flows.

  • Detailed transaction flows are a mandatory prerequisite to the rational design of a system's functional testing.

Transaction flow is sequence of steps for a system to be tested. The transaction flow begins at the preliminary design and continues as the project progresses. The following testing strategies has been taken.

Inspections, Reviews and Walkthroughs:

Transaction flows are natural agenda for system reviews or inspections. In conducting the walkthroughs, you should:

  • Discuss enough transaction types to account for 98%-99% of the transaction the system is expected to process.

  • Discuss paths through flows in functional rather than technical terms.

  • Ask the designers to relate every flow to the specification and to show how that transaction, directly or indirectly, follows from the requirements.

  • Make transaction flow testing the cornerstone of system functional testing just as path testing is the cornerstone of unit testing.

  • Select additional flow paths for loops, extreme values, and domain boundaries.

  • Design more test cases to validate all births and deaths.

  • Publish and distribute the selected test paths through the transaction flows as early as possible so that they will exert the maximum beneficial effect on the project.

Path Selection:

  • Select a set of covering paths (c1+c2) using the analogous criteria that were used for structural path testing.

  • Select a covering set of paths based on functionally sensible transactions, as you would for control flow graphs.

  • Try to find the most tortuous, longest, strangest path from the entry to the exit of the transaction flow.

Path Sensitization:

  • Most of the normal paths are very easy to sensitize-80% - 95% transaction flow coverage (c1+c2) is usually easy to achieve.

  • The remaining small percentage is often very difficult.

  • Sensitization is the act of defining the transaction. If there are sensitization problems on the easy paths, then bet on either a bug in transaction flows or a design bug.

Path Instrumentation

  • Instrumentation plays a bigger role in transaction flow testing than in unit path testing.

  • The information of the path taken for a given transaction must be kept with that transaction and can be recorded by a central transaction dispatcher or by the individual processing modules.

  • In some systems, such traces are provided by the operating systems or a running log.


6. Data Flow Testing Strategies [10 Mark] [5 Mark]

• Data-flow testing is a white box testing technique that can be used to detect improper use of data values due to coding errors

• The primary purpose of dynamic data-flow testing is to uncover possible bugs in data usage during the execution of the code. To achieve this, test cases are created which trace every definition to each of its use and every use is traced to each of its definition. Various strategies are employed for the creation of the test cases.

1. All - du Paths (ADUP):

The all-du-paths (ADUP) strategy is that every du path from every definition of every variable to every use of that definition be exercised under some test.

This strategy is the strongest data-flow testing strategy since it is a superset of all other data flow testing strategies. Moreover, this strategy requires greatest number of paths for testing.

2. All Uses Startegy (AU):

The all uses (AU) strategy is that at least one definition clear path from every definition of every variable to every use of that definition be exercised under some test.

3. All p-uses/some c-uses strategy (APU+C) :

For every variable and every definition of that variable, include at least one definition free path from the definition to every predicate use; if there are definitions of the variable that are not covered, then add computational use test cases as required to cover every definition

In this testing strategy, for every variable, there is a path from every definition to every p-use of that definition. If there is a definition with no p-use following it, then a c-use of the definition is considered.

4. All c-uses/some p-uses strategy (ACU+P) :

For every variable and every definition of that variable, include at least one definition free path from the definition to every computational use; if there are definitions of the variable that are not covered, then add predicate use test cases as required to cover every definition

In this testing strategy, for every variable, there is a path from every definition to every c-use of that definition. If there is a definition with no c-use following it, then a p-use of the definition is considered.

5. All Definitions Strategy (AD) :

The all definitions strategy asks that every definition of every variable be covered by at least one use of that variable, be that use a computational use or a predicate use.

In this strategy, there is path from every definition to at least one use of that definition.

6. All Predicate Uses (APU) Strategy :

The all predicate uses (APU) strategy is derived from APU+C strategy by dropping the requirement of including a c-use if there are no p-use instances following the definition.

In this testing strategy, for every variable, there is path from every definition to every p-use of that definition. If there is a definition with no p-use following it, then it is dropped from contention.

7. All Computational Uses (ACU) Strategy :

The all computational uses (ACU) strategy is derived from ACU+P strategy by dropping the requirement of including a p-use if there are no c-use instances following the definition.

In this testing strategy, for every variable, there is a path from every definition to every c-use of that definition. If there is a definition with no c-use following it, then it is dropped from contention.


7. Path Product [5 Mark] [10 Mark]

In tracing a path or path segment through a flow graph, you traverse a succession of link names. The name of the path or path segment that corresponds to those links is expressed naturally by concatenating those link names. For example, if you traverse links a, b, c and d along some path, the name for that path segment is abcd. This path name is also called a Path Product. The below images contains more examples.

Rules of path products:

  • The name of a path that consists of two successive path segments is conveniently expressed by the concatenation or Path Product of the segment names.

    For example, if X and Y are defined as X = abcde, Y = fghij, then the path corresponding to X followed by Y is denoted by XY = abcdefghij. Similarly, YX = fghijabcde, aX = aabcde, Xa = abcdea, XaX = abcdeaabcde

  • If X and Y represent sets of paths or path expressions, their product represents the set of paths that can be obtained by following every element of X by any element of Y in all possible ways.

    For example, if X and Y are defined as X = abc + def + ghi, Y = uvw + z. Then XY = abcuvw + defuvw + ghiuvw + abcz + defz + ghiz

  • If a link or segment name is repeated, that fact is denoted by an exponent. The exponent's value denotes the number of repetitions:

    a1 = a, a2 = aa, a3 = aaa, an = aaaa . . . n times.

    Similarly, if X = abcde then

    X1 = abcde, x2 = abcdeabcde = (abcde)2, x3 = abcdeabcdeabcde = (abcde)3

  • The path product is not commutative

    i.e: XY != YX

  • The path product is associative

    i.e: A(BC) = (AB)C = ABC


8. Path Instrumentation [5 Mark]

• Path instrumentation is what we have to do to confirm that the outcome was achieved by the intended path.

• The above figure is an example of a routine that, for the (unfortunately) chosen input value (X = 16), yields the same outcome (Y = 2) no matter which case we select. Therefore, the tests chosen this way will not tell us whether we have achieved coverage. For example, the five cases could be totally jumbled and still the outcome would be the same. Path Instrumentation is what we have to do to confirm that the outcome was achieved by the intended path.

Types of Path Instrumentation

  • Interpretive Trace Program:

    An interpretive trace program is one that executes every statement in order and records the intermediate values of all calculations, the statement labels traversed etc.

    If we run the tested routine under a trace, then we have all the information we need to confirm the outcome and, furthermore, to confirm that it was achieved by the intended path.

  • Link Marker or Traversal Marker

    Name every link by a lower case letter. Instrument the links so that the link's name is recorded when the link is executed. The succession of letters produced in going from the routine's entry to its exit should exactly correspond to the path name.

  • Link Counter:

    Instead of a unique link name to be pushed into a string when the link is traversed, we simply increment a link counter. We now confirm that the path length is as expected.


9. Path Expression [5 Mark]

• Consider a pair of nodes in a graph and the set of paths between those nodes.

• From the above figure, the members of the path set can be listed as follows:

    abd, abcbd, abcbcbd, abcbcbcbd, ...........

• Alternatively, the same set of paths can be denoted by :

    abd + abcbd + abcbcbd + abcbcbcbd, ...........

• The + sign represents "OR" between the two nodes of interest. It means that either one of the paths can be taken.

• Any expression that consists of path names and "OR"s and which denotes a set of paths between two nodes is called a "Path Expression".


10. Path Sum [5 Mark]

• The "Path Sum" denotes paths in parallel between nodes.

• In the above figure, links a, b and c, d are parallel paths and are denoted by a + b and c + d respectively. The set of all paths between nodes 1 and 2 can be thought of as a set of parallel paths and denoted by eacf + eadf + ebcf + ebdf.

• If a and b are sets of paths that lie between the same pair of nodes, then (a + b) denotes the UNION of those set of paths. Therefore, in the above flowgraph, the set of all paths is e(a + b)(c + d)f.


11. Productivity and Quality in Software [10 Mark]

• In production of consumer goods and other products, every manufacturing stage is subjected to quality control and testing from start to final stage. If flaws are discovered at any stage, the product is either discarded or cycled back for rework and correction.

• Productivity is measured by sum of the costs of the material, rework, discarded components, quality assurance and testing.

• There is a trade-off between quality assurance costs and manufacturing costs: If sufficient time is not spent in quality assurance, the reject rate will be high and so will be the net cost. If inspection is good and all errors are caught as they occur, inspection costs will dominate, and again the net cost will suffer.

• Testing and Quality assurance costs for manufactured items can be as low as 2% in consumer products or as high as 80% in software products for space-ships, nuclear reactors, and aircrafts, where failures threaten life.

• The biggest part of software cost is the cost of bugs: the cost of detecting them, the cost of correcting them, the cost of designing tests that discover them, and the cost of running those tests.

• Testing and Test Design are parts of quality assurance and should also focus on bug prevention. A prevented bug is better than a detected and corrected bug.

•  The main difference then between widget productivity and software productivity is that for hardware, quality is only one of several productivity determinants, whereas for software, quality and productivity are almost indistinguishable.


12. State Transition Testing (State Testing / Transition Testing) [10 Mark] [5 Mark]

• State Transition Testing is basically a black box testing technique that is carried out to observe the behavior of the system or application for different input conditions passed in a sequence. In this type of testing, both positive and negative input values are provided and the behavior of the system is observed.

• State Transition Testing is basically used where different system transitions are needed to be tested.

• There are two main ways to represent or design state transition. They are State Transition Diagram and State Transition Table.

State Transition Diagram (State Graph): [5 Mark]

• State Transition Diagram shows how the state of the system changes on certain inputs. It is also called State Chart or Graph. It is useful in identifying valid transitions. It has four main components.

  1. States that the software might get
  2. Transition from one state to another
  3. Events that origin a transition
  4. Actions that result from a transition

• Let's consider an ATM system function where if the user enters the invalid password three times the account will be locked. The below diagram represents that scenario.

• In the diagram whenever the user enters the correct PIN he is moved to Access granted state, and if he enters the wrong password he is moved to next try and if he does the same for the 3rd time the account blocked state is reached.

State Transition Table (State Table): [5 Mark]

• In state transition table all the states are listed on the left side, and the events are described on the top. Each cell in the table represents the state of the system after the event has occurred. It is also called State Table. It is useful in identifying invalid transitions.

• Let's consider an ATM system function where if the user enters the invalid password three times the account will be locked. The below table represents that scenario.

• In the table when the user enters the correct PIN, state is transitioned to S5 which is Access granted. And if the user enters a wrong password he is moved to next state. If he does the same 3rd time, he will reach the account blocked state. All the valid states are listed on the left side and invalid states on the right side.

Advantages of State Transition Testing:

  • State transition testing gives the proper representation of the system behavior. (i.e: using diagrams and tables)
  • State transition testing covers all the conditions.

Disdvantages of State Transition Testing:

  • State transition testing can not be performed everywhere (i.e: can not be performed in large scale systems).
  • State transition testing is not always reliable.

13. Black Box Testing [5 Mark] [2 Mark]

• Black Box Testing is a software testing method in which the functionalities of software applications are tested without having knowledge of internal code structure, implementation details and internal paths. Black Box Testing mainly focuses on input and output of software applications and it is entirely based on software requirements and specifications. It is also known as Behavioral Testing.

• It is used for validation. In this we ignore internal working mechanism and focus on what is the output?.


14. White Box Testing [5 Mark] [2 Mark]

• White Box Testing is software testing technique in which internal structure, design and coding of software are tested to verify flow of input-output and to improve design, usability and security. In white box testing, code is visible to testers so it is also called Clear box testing, Open box testing, Transparent box testing, Code-based testing and Glass box testing.

•  It is used for verification. In this we focus on internal mechanism i.e. how the output is achieved?.


15. Top Down Integration Testing [5 Mark] [2 Mark]

Top Down Integration testing which is also known as Incremental integration testing. In this Top Down approach the higher level modules are tested first after higher level modules the lower level modules are tested. Then these modules undergo for integration accordingly. Here the higher level modules refers to main module and lower level modules refers to submodules. This approach uses Stubs which are mainly used to simulate the submodule, if the invoked submodule is not developed this Stub works as a momentary replacement.

16. Bottom Up Integration Testing [5 Mark] [2 Mark]

Bottom Up Integration testing is another approach of Integration testing. In this Bottom Up approach the lower level modules are tested first after lower level modules the higher level modules are tested. Then these modules undergo for integration accordingly. Here the lower level modules refers to submodules and higher level modules refers to main modules. This approach uses test drivers which are mainly used to initiate and pass the required data to the sub modules means from higher level module to lower level module if required.

17. Smoke Testing [2 Mark]

Smoke Testing is a software testing process that determines whether the deployed software build is stable or not. Smoke testing is a confirmation for QA team to proceed with further software testing. It consists of a minimal set of tests run on each build to test software functionalities. Smoke testing is also known as “Build Verification Testing” or “Confidence Testing.


18. Performance Testing [2 Mark]

Performance Testing is a software testing process used for testing the speed, response time, stability, reliability, scalability and resource usage of a software application under particular workload. The main purpose of performance testing is to identify and eliminate the performance bottlenecks in the software application.

19. Stress Testing [2 Mark]

Stress Testing is a type of software testing that verifies stability & reliability of software application. The goal of Stress testing is measuring software on its robustness and error handling capabilities under extremely heavy load conditions and ensuring that software doesn't crash under crunch situations. It even tests beyond normal operating points and evaluates how software works under extreme conditions.

Multimedia Systems

10Marks & 5Marks

What is Multimedia? [2 Mark]

Multimedia refers to the computer-assisted integration of text, drawings, still and moving images(videos) graphics, audio, animation, and any other media in which any type of information can be expressed, stored, communicated, and processed digitally. We use multimedia to interact with the user.


Applications of Multimedia [10 Mark] [5 Mark]

Multimedia finds its application in various areas including, but not limited to, advertisements, art, education, entertainment, engineering, medicine, mathematics, scientific research etc. A few application areas of multimedia are listed below:

Entertainment

One of the main and widespread applications of multimedia can be seen in the entertainment Industry. Movies, ADs, Short clips are now being created using special effects and animations, like VFX. Multimedia is also used for gaming purposes which are distributed online or through CDs. These games also integrated various multimedia features.

Education

Multimedia is used in education sector to create interactive educational materials, like books, PDF’s, videos, PowerPoint Presentation, etc along with one touch access to websites like Wikipedia and encyclopedia. Through virtual classrooms, teachers and students can avail the opportunity to learn, interact and exchange informative ideas without stepping outside and sit for hours inside a classroom. On top of everything, computer-based competitive as well as scholastics exams are being conducted globally only via the use of multimedia.

Communication

With the emergence of internet and its rapid spread across the world, traditional types of communication have become obsolete. Online video calling has become the new face of communication. Video platforms like Skype, Google Meet allow video chats that can happen between friends or can be used for conducting meetings between different heads of countries. Communication has been moulded as a matter of fraction of seconds, hence, now you can easily convey anything with just a few clicks. This has turned out to be a boon in situations of emergency, thus, it is known as one of the most beneficial applications of multimedia.

Medicine

Multimedia is increasingly used by doctors to get trained by simply watching a surgery being done on a virtual platform. Simulation technology is used to develop human anatomy and study how it gets affected by different illnesses and then accordingly develop medicines and other remedial measures.

Commerce (E-Commerce)

Online business has effectively replaced traditional ways of buying and selling. Simply, scrolling through online shopping sites like Amazon we see how text, pictures, and videos have been blended into making an appealing user interface. Through use of multimedia various companies offer interesting details of products to the prospective consumer who, simply through, a mobile phone buys and compares products online to check its suitability and price variances.


Stages of Multimedia Projects. [10 Mark] [5 Mark]

Project Planning in Multimedia. [10 Mark] [5 Mark]

Production Process in Multimedia. [10 Mark] [5 Mark]

Most multimedia and web projects must be undertaken in stages. Some stages should be completed before other stages begin, and some stages may be skipped or combined. Here are the four basic stages in a multimedia project:

Ⅰ. Planning and Costing:

A project always begins with an idea or a need that you then refine by outlining its messages and objectives. Before starting to develop the multimedia project, it is necessary to plan what writing skills, graphic art, music, video, and other multimedia skills will be required. It is also necessary to estimate the time needed to prepare all elements of multimedia and prepare a budget accordingly. After preparing a budget, a prototype of the concept can be developed to demonstrate whether or not your idea is feasible.

ⅠⅠ. Design and Production:

Perform each of the planned tasks to create a finished product. During this stage, there may be many feedback cycles with a client until the client is happy. Under this stage, the various sub-stages are to be carried out.

  • Data gathering
  • Navigation map structure design
  • Media content design
  • Interface designing
  • Storyboarding
  • Integration (multimedia authoring)

ⅠⅠⅠ. Testing:

Test your programs to make sure that they are bug free, meet the objectives of your project, work properly on the intended delivery platforms, and meet the needs of your client or end user.

ⅠV. Delivering:

The final stage of the multimedia application development is to pack the project and deliver the complete project to the end-user. This stage has several steps such as:

  • Implementation
  • Maintenance
  • Shipping and Marketing

Input Devices [10 Mark] [5 Mark]

To transmit information to multimedia, we use various types of input devices. A few important input devices are explained below,

Keyboard:
The keyboard is a basic input device that is used to enter data into a computer or any other electronic device by pressing keys. It has different sets of keys for letters, numbers, characters, and functions. Keyboards are connected to a computer through USB or a Bluetooth device for wireless communication.

Mouse:
The mouse is a hand-held input device which is used to move cursor or pointer across the screen. It is designed to be used on a flat surface and generally has left and right button and a scroll wheel between them. Laptop computers come with a touchpad that works as a mouse. It lets you control the movement of cursor or pointer by moving your finger over the touchpad. Some mouse comes with integrated features such as extra buttons to perform different actions.

Scanner:
The scanner uses the pictures and pages of text as input. It scans the picture or a document. The scanned picture or document then converted into a digital format or file and is displayed on the screen as an output. It uses optical character recognition techniques to convert images into digital ones.

Microphone:
The microphone is a computer input device that is used to input the sound. It receives the sound vibrations and converts them into audio signals or sends to a recording medium. The audio signals are converted into digital data and stored in the computer. The microphone also enables the user to telecommunicate with others.

Digital Camera:
It is a digital device as it captures images and records videos digitally and then stores them on a memory card. It is provided with an image sensor chip to capture images, as opposed to film used by traditional cameras. Besides this, a camera that is connected to your computer can also be called a digital camera.


Multimedia Skillsets [10 Mark] [5 Mark]

• Multimedia artist skills are abilities that can strengthen the outcome of your multimedia projects. To have multimedia skills means that you possess the expertise to use and manage various media formats to complete projects or work. A multimedia artist is a creative professional who uses technology and design methods to create original content they can present in an electronic format.

• There are various skills that a multimedia artist can acquire to help them succeed in their career. Here are four of the most common multimedia artist skills:

Creativity:
As artistic professionals, it's important for multimedia artists to be creative to ensure that they are authoring original content. They typically have a strong understanding of creative design elements such as color theory and composition and they are often aware of the latest design trends. Creativity is the foundation of multimedia artistry.

Computer Literacy:
Computer literacy refers to the skills one has at their disposal while using computer-based technology. Multimedia artists work almost entirely on the computer, using a variety of software programs for research and design purposes. Familiarity with graphic design, photo correction, and video editing, all of which are done using a computer, are important components for completing many multimedia projects.

Design:
Along with creativity, having strong design skills are important for multimedia artists to posses. Design skills can include manipulation of colors and fonts, composing background music or scripting a podcast, among many others.

Communication:
Like many other industries, multimedia design requires strong communication amongst clients, artists and management. Multimedia artists might correspond with their clients to ensure that they are meeting all of their standards. They are also able to communicate with clients and supervisors to negotiate and discuss payment, deadlines or any other element vital to the completion of a creative project.


Multimedia Production Team [10 Mark] [5 Mark]

The production for a high-end multimedia project requires team efforts. Different project requires different team members with different roles and responsibilities. But the common team members include Production manager, Designer, Script Writer, Audio Specialist and Programmer.

Project Manager:
Project Managers are responsible for planning, organizing, and directing the completion of the multimedia projects for the organization while ensuring these projects are on time, on budget, and within scope. By overseeing complex projects from inception to completion, project managers have the potential to shape an organization's trajectory, helping to reduce costs, maximize company efficiencies, and increase revenue.

Multimedia (Interface) Designer
Multimedia designers need variety of skills. They need to be able to analyze content structurally and match it up with effective presentation methods. They need to be an expert on different media types, and capable media integrator, in order to create an overall vision.

Script Writer:
Multimedia writers do everything writers of linear media do, and more. They create character, action, and point of view - a traditional scriptwriter's tools of the trade - and they also crate interactivity. They write proposals, they script voice - over and actors' narrations, they write text screens to deliver messages, and they develop characters designed for an interactive environment.

Audio Specialist:
The quality of audio elements can make or break a multimedia project. Audio specialist are the wizards who make a multimedia program come alive, designing and producing music, voice-over narrations, and sound effects.

Multimedia Programmer: A multimedia programmer or software engineer integrates all the multimedia elements of a project into seamless whole using an authoring system or programming language. Multimedia programming functions range from coding simple displays of multimedia elements to controlling peripheral devices such as laserdisc players and managing complex timing, transitions, and record keeping.


Components of Multimedia [10 Mark] [5 Mark]

The various components of multimedia are Text, Audio, Video, Graphics and Animation. All these components work together to represent information in an effective and easy manner.

Text
Text is the most common medium of representing the information. Text appears in all multimedia creations in some kind. The text can be in a variety of fonts and sizes to match the multimedia software's professional presentation. Text in multimedia systems can communicate specific information or serve as a supplement to the information provided by the other media.

Audio
Sound is the most serious aspect of multimedia, delivering the joy of music, special effects, and other forms of entertainment. Audio files are used as part of the application context as well as to enhance interaction. MP3, WMA, Wave, MIDI, and RealAudio are examples of audio formats. The following programs are widely used to play audio: Windows Media Player, Real Player, VLC Media Player etc.

Video
The term video refers to a moving image that is accompanied by sound, such as a television picture. It is the best way to communicate with the audience. In multimedia it is used to make the information more presentable and it saves a large amount of time. The following programs are widely used to view videos: Windows Media Player, Real Player, VLC Media Player etc.

Graphics
Graphics are at the heart of any multimedia presentation. The use of visuals in multimedia enhances the effectiveness and presentation of the concept. Pictures are more frequently used than words to clarify concepts, offer background information, and so on. Windows Picture, Internet Explorer, and other similar programs are often used to see visuals. Adobe Photoshop is a popular & widely used graphics editing program.

Animation
In computer, animation is used to make changes to the images so that the sequence of the images appears to be moving pictures. An animated sequence shows a number of frames per second to produce an effect of motion in the user's eye. A presentation can also be made lighter and more appealing by using animation. The following are some of the widely used animation viewing programs: Fax Viewer, Internet Explorer, etc.


Storage Devices [5 Mark]

A storage device is any type of computing hardware that is used for storing, porting or extracting data files and objects. Storage devices can hold and store information both temporarily and permanently. They may be internal or external to a computer, server or computing device.

Types of Storage Devices

1. Magnetic Storage Devices

  • Floppy Disk
  • Hard Disk
  • Magnetic Card
  • Tape Cassette
  • Super Disk

Floppy Diskette: It is generally used on a personal computer to store data externally. A Floppy disk is made up of a plastic cartridge and secures with a protective case. Nowadays floppy disk is replaced by new and effective storage devices like USB, etc.

Hard Disk: It is a storage device (HDD) that stores and retrieves data using magnetic storage. It is a non-volatile storage device that can be modified or deleted n number of times without any problem. Most of the computers and laptops have HDDs as their secondary storage device.

2. Flash Memory Devices

It is a cheaper and portable storage device. It is the most commonly used device to store data because is more reliable and efficient as compare to other storage devices. Some of the commonly used flash memory devices are:

  • Flash Drive (Pen Drive)
  • SSD
  • SD Card
  • Multimedia Card

3. Optical Storage Devices

  • CD
  • DVD
  • Blue-ray Disc

Hardware & Software requirements for a Multimedia Project [10 Mark] [5 Mark]

1. Hardware Requirements

• Processsor

• Memory and Storage Devices

  • Magnetic Storage Devices (i.e: Floppy Disk, Hard Disk, Tape Cassette, Super Disk, etc.)
  • Flash Memory Devies (i.e: Flash Drive, SSD, SD Card, Multimedia Card, etc.)
  • Optical Storage Devices (i.e: CD, DVD, Blue-ray Disc, etc.)

• Input Devices

  • Keyboard, Mouse, Scanner, Microphone, Digital Camera, etc.

• Output Devices

  • Monitors, Speakers, Printers etc.

2. Software Requirements

• Device Driver

• Media Players

• Media Conversion Software

• Multimedia Editing Software

• Multimedia Authoring Softaware


Multimedia Authoring Tools [10 Mark] [5 Mark]

Definition [2 Mark] [5 Mark]

• Multimedia authoring is a process of assembling different types of media contents like text, audio, image, animations and video as a single stream of information with the help of various software tools available in the market.

• Multimedia authoring tools give an integrated environment for joining together the different elements of a multimedia production.

• It gives the framework for organizing and editing the components of a multimedia project. It enables the developer to create interactive presentation by combining text, audio, video, graphics and animation.

Features of Authoring Tools

  • Editing and organizing features - Authoring tools include editing tools to create, edit, and convert multimedia elements such as animation animation and video clips.
  • Programming features - Authoring tools include simple visual programming features with icons or objects.
  • Interactivity features - Authoring tools include the interactivity & branching features which gives the end user control over the flow of information in a project.
  • Performance tuning and playback features.
  • Cross-platform and internet playability feature.

Types of Authoring Tools

  • Card and page based tools
  • Icon based and event driven tools
  • Time based tools
{ If needed, you can also elaborate each type using the next three questions }

Card / Page Based Authoring Tools [10 Mark] [5 Mark]

• In these authoring systems, elements are organized as pages of a book or a stack of cards. In the book or stack there are thousand of pages or cards available. These tools are best used when the bulk of your content consists of elements that can be viewed individually, for example the pages of a book or file cards in card file. You can jump from page to page because all pages can be interrelated. In the authoring system you can organize pages or cards in the sequences manner. Every page of the book may contain many media elements like sounds, videos and animations.

• One page may have a hyperlink to another page that comes at a much later stage and by clicking on the same you might have effectively skipped several pages in between. Some examples of card or page tools are:

  • Hypercard (Mac)
  • Supercard (Mac)
  • Tool Book (Windows)
  • PowerPoint (Windows)

Icon Based / Event Driven Authoring Tools [5 Mark]

Icon-based tools give a visual programming approach to organizing and presenting multimedia. First you build a structure or flowchart of events, tasks and decisions by dragging appropriate icons from a library. Each icon does a specific task, for example- plays a sound, open an image etc. The flowchart graphically displays the project's logic. When the structure is built you can add your content text, graphics, animation, video movies and sounds. A nontechnical multimedia author can also build sophisticated applications without scripting using icon based authoring tools. Some examples of icon based tools are:

  • Authorware Professional (Mac/Windows)
  • Icon Author (Windows)

Advantages

  • Clear Structure
  • Easy editing and updating

Disadvantages

  • Difficult to learn
  • Expensive

Time Based Authoring Tools [10 Mark] [5 Mark]

Time based authoring tools allow the designer to arrange various elements and events of the multimedia project along a well defined time line. By time line, we simply mean the passage of time. As the time advances from starting point of the project, the events begin to occur, one after another. The events may include media files playback as well as transition from one portion of the project to another. The speed at which these transitions occur can also be accurately controlled. These tools are best to use for those projects, wherein the information flow can be directed from beginning to end much like the movies. Some example of Time based tools are:

  • Macromedia's Director
  • Macromedia Flash

Advantages

  • Good for creating animation.
  • Branching, user control, interactivity facilities.

Disadvantages

  • Expensive
  • Large file size
  • Steep learning curve to understand various features.

Object-Oriented Authoring Tools [10 Mark] [5 Mark]

• Object oriented authoring tools support environment based on object. Each object has the following two characteristics:

  1. State or Attributes: The state or attributes refers to the built in characteristics of an object. For example, a color T.V might have the following attributes: color-receiver, volume-control, picture-control etc.
  2. Behaviour or Operations: The behavior or operations of an object refers to its action. For example, a T.V can behave in any of the following manner at a given point of time: switched on, switched off, display picture, display sound, etc.

• In these systems, multimedia elements events are often treated as objects that live in a hierarchical order of parent and child relationships. These objects use messages passed among them to do things according to the properties assigned to them.

• For example, a video object will likely have a duration property i.e how long the video plays and a source property that has the location of the video file. This video object will likely accept commands from the system such as play and stop. Some examples of the object oriented tools are:

  • mTropolis (Mac/Windows)
  • Apple Media Tool (Mac/Windows)
  • Media Forge (Windows)

Font Editing & Design Tools [10 Mark] [5 Mark]

• In some multimedia projects it may be required to create special characters. There are several software that can be used to create customized font. Using these font editing tools it is possible to create special symbols, distinct text and display faces. These tools help an multimedia developer to communicate his idea or the graphic feeling in the way they want. Following are the list of software that can be used for editing and creating fonts:

  • Fontographer
  • Fontmonger
  • Cool 3d Text

Making Pretty Text

• To make your text look pretty you need a toolbox full of fonts and special graphics applications that can stretch, shade, color and anti-alias your words into real artwork.

• Pretty text can be found in bitmapped drawings where characters have been tweaked, manipulated and blended into a graphic image.


Audio Formats [10 Mark] [5 Mark]

Audio format defines the quality and loss of audio data. Based on application different type of audio format are used. Audio formats are broadly divided into three parts:

  1. Lossy Compressed format
  2. Lossless Compressed Format
  3. Uncompressed Format

Lossy Compressed format

It is a form of compression that loses data during the compression process. But difference in quality is not noticeable to hear.

  • MP3: It stands for MPEG-1 Audio Layer 3. It is most popular audio format for music files. Main aim of MP3 is to remove all those sounds which not hearable or less noticeable by humans ears. Hence making size of music file small. MP3 is like universal format which is compatible almost every device.
  • AAC: It stands for Advanced Audio Coding. The compression algorithm used by AAC is much more complex and advanced than MP3, so when compared a particular audio file in MP3 and AAC formats at the same bitrate, the AAC one will generally have better sound quality.

Lossless Compressed format

This method reduces file size without any loss in quality. But is not as good as lossy compression as the size of file compressed to lossy compression is 2 and 3 times more.

  • FLAC: It stands for Free Lossless Audio Codec. It can compress a source file by up to 50% without losing data. It is most popular in its category and is open-source.
  • ALAC: It stands for Apple Lossless Audio Codec. It was developed by Apple.

Uncompressed format

  • PCM: It stands for Pulse-Code Modulation. It represents raw analog audio signals in digital form. To convert analog signal into digital signal it has to be recorded at a particular interval. Hence it has sampling rate and bit rate (bits used to represent each sample). It is an exact representation of the analog sound and do not involve compression. It is the most common audio format used in CDs and DVDs
  • WAV: It stands for Waveform Audio File Format. It is just a Windows container (wrapper) for audio formats. That means that a WAV file can contain compressed audio. Most WAV files contain uncompressed audio in PCM format. It is compatible with both Windows and Mac.
  • AIFF: It stands for Audio Interchange File Format. Like WAV files, AIFF files can contain multiple kinds of audio. It contain uncompressed audio in PCM format. It is just a wrapper for the PCM encoding. It is compatible with both Windows and Mac.

Image Formats [10 Mark] [5 Mark]

Image Format describes how data related to the image will be stored. Data can be stored in compressed, Uncompressed or vector format. Each format of the image have a different advantage and disadvantage.

TIFF(.tif, .tiff)
Tagged Image File Format (TIFF) store image data without any compression or data-loss. This allows the image to have high quality but the size of the image is also large, which is good for professional printing.

JPEG (.jpg, .jpeg)
Joint Photographic Experts Group (JPEG) is a “lossy” format meaning that the image is compressed to reduce the file size. The compression does create a loss in quality but this loss is generally not noticeable. JPEG files are very common on the Internet and JPEG is a popular format for digital cameras - making it ideal for web use and non-professional prints.

GIF (.gif)
Graphics Interchange Format (GIF) files are used for web graphics.They can be animated and are limited to only 256 colors. They can allow for transparency. GIF files are typically small is size and are portable.

PNG (.png)
Portable Network Graphics (PNG) files are a lossless image format. It was designed to replace gif format as gif supported 256 colors unlike PNG which support 16 million colors.

Bitmap (.bmp)
Bit Map Image file is developed by Microsoft for windows. It is same as TIFF due lossless, no compression property. Due to BMP being a proprietary format, it is generally recommended to use TIFF files.

EPS (.eps)
Encapsulated PostScript (EPS) file is a common vector file type. EPS files can be opened in applications such as Adobe Illustrator or CorelDRAW.

RAW Image Files (.raw, .cr2, .nef, .orf, .sr2)
These Files are unprocessed, created by a camera or scanner. Many digital SLR cameras can shoot in RAW, whether it be a .raw, .cr2, or .nef. Thes images are the equivalent of a digital negative, meaning that they hold a lot of image information. These images need to be processed in an editor such as Adobe Photoshop or Lightroom. It saves metadata and is used for photography.


Video Formats [10 Mark] [5 Mark]

A video format is the container that stores audio, video, subtitles and any other metadata. A codec encodes and decodes multimedia data such as audio and video. When creating a video, a video codec encodes and compresses the video while the audio codec does the same with sound.

MP4
MPEG-4 Part 14 or MP4 is one of the earliest digital video file formats introduced in 2001. Most digital platforms and devices support MP4. An MP4 format can store audio files, video files, still images, and text. MP4 provides high quality video while maintaining relatively small file sizes.

MOV
MOV was designed by Apple to support the QuickTime player. MOV files contain videos, audio, subtitles, timecodes and other media types. Since it is a very high-quality video format, MOV files take significantly more memory space on a computer.

WMV
The Windows Media Viewer (WMV) video format was designed by Microsoft and is widely used in Windows media players. WMV format provides small file sizes with better compression than MP4. That is why it's popular for online video streaming.

AVI
Audio Video Interleave (AVI) works with nearly every web browser on Windows, Mac, and Linux machines. AVI offers the highest quality but also the largest file sizes. It is supported by YouTube and works well for TV viewing.

FLV, F4V, and SWF
They are flash video formats designed for Flash Player, but they're commonly used to stream video online since they have a relatively small size which makes them easy to download.

WebM
WebM is an open-source video format developed with the current and future state of the Internet in mind. WebM is intended for use with HTML5. The video codecs of WebM require very little computer power to compress and unzip the files. The aim of this design is to enable online video streaming on almost any device, such as tablets, desktop, smartphones or devices like smart TV.


MIDI [10 Mark] [5 Mark]

Musical Instrument Digital Interface (MIDI) is a standard protocol for the interchange of musical information between musical instruments, synthesizers and computers. MIDI files allow music and sound synthesizers from different manufacturers to communicate with each other by sending messages along cables connected to the devices.

Features

• MIDI does not record analog or digital sound waves. It encodes keyboard functions, which includes the start of a note, its pitch, length, volume and musical attributes, such as vibrato. As a result, MIDI files take up considerably less space than digitized sound files.

• Since the advent of the General MIDI standard for musical instruments, MIDI has been widely used for music backgrounds in multimedia applications due to its space-saving feature. It is MIDI technology you might be hearing as the latest mobile ring tone or on a thrill ride or attraction at a theme park.

• MIDI's small storage requirement makes it very desirable as a musical sound source for multimedia applications compared to digitizing actual music. For example, a three-minute MIDI file may take only 20 to 30K, whereas a WAV file (digital audio) could consume up to several megabytes depending on sound quality.


Making of MIDI Audio [10 Mark] [5 Mark]

• Creating your own original score can be one of the most creative and rewarding aspects of building a multimedia project, and MIDI (Musical Instrument Digital Interface) is the quickest, easiest and most flexible tool for this task.

• The process of creating MIDI music is quite different from digitizing existing audio. To make MIDI audio, you will need the following tools,

  • Sound Module: Sound modules are also know as a tone generator. They contain music instruments samples and sounds that can sometimes be expanded with floppy disk and CDs.
  • Sequencer: Sequencer is an electronic device where you store your music notes, drum patches and rhythms. It's a device that plays your recorded MIDI daya and performance.
  • MIDI Interface: Basically this is a device that sends MIDI in and out your computer.
  • MIDI Controller: A MIDI controller is any hardware or software that generates and transmits Musical Instrument Digital Interface data to MIDI-enabled devices

• MIDI is preferred over digital audio in the following circumstances,

  • Digital audio will not work due to memory constraints and more processing power requirements
  • When there is high quality of MIDI source.
  • When there is no requirement for dialogue.

• Digital audio is preferred over MIDI in the following circumstances,

  • When there is no control over the playback hardware.
  • When the computing resources and the bandwidth requirements are high.
  • When dialogue is required.

MIDI Versus Digital Audio. [10 Mark] [5 Mark]

• MIDI is analogous to structured or vector graphics, while digitized audio is analogous to bitmapped images.

• MIDI is device dependent while digitized audio is device independent.

• MIDI files are much smaller than digitized audio.

• MIDI files sound better than digital audio files when played on a high-quality MIDI device.

• With MIDI, it is difficult to playback spoken dialog, while digitized audio can do so with ease.

• MIDI does not have consistent playback quality while digital audio provides consistent playback quality.

• One requires knowledge of music theory in order to run MIDI, while digital audio does not have this requirement.


Object Oriented Analysis & Design

10Marks & 5Marks

1. Use-Case Model [10 Mark]

• The Use-case model is defined as a model which is used to show how users interact with the system in order to solve a problem. As such, the use case model defines the user's objective, the interactions between the system and the user, and the system's behavior required to meet these objectives.

• We use a use-case diagram to graphically portray a subset of the model in order to make the communication simpler.

• The use-case model acts as an integrated thread in the development of the entire system. The use-case model is used like the main specification of the system functional requirements as the basis for design and analysis, as the basis for user documentation, as the basis of defining test cases, and as an input to iteration planning.

Components of Basic Model

  1. Actor: Usually, actors are people involved with the system defined on the basis of their roles. An actor can be anything such as human or another external system.

  2. Use Case: The use case defines how actors use a system to accomplish a specific objective. The use cases are generally introduced by the user to meet the objectives of the activities and variants involved in the achievement of the goal.

  3. Associations: Associations are another component of the basic model. It is used to define the associations among actors and use cases they contribute in. This association is called communicates-association.

Components of Advanced Model

  1. Subject: The subject component is used to represent the boundary of the system of interest.

  2. Use-Case Package: We use the model component in order to structure the use case model to make simpler the analysis, planning, navigation, and communication.

  3. Generalizations: Generalizations mean the association between the actors in order to help re-use of common properties.

  4. Dependencies: In UML, various types of dependencies are defined between use cases. In particular, <<include>> and <<extend>>. We use <<include>> dependency to comprise shared behavior from an included use case into a base use case to use common behavior. We use <<extend>> dependency to include optional behavior from an extended use-case into an extended use case.

Example

• The below figure shows a use-case diagram from an Automated Teller Machine (ATM) use-case model.

• This diagram shows the subject (ATM), four actors (Bank Customer, Bank, Cashier and Maintenance Person), five use cases (Withdraw Cash, Transfer Funds, Deposit Funds, Refill Machine and Validate User), three <<include>> dependencies, and the associations between the performing actors and the use cases.


2. Object Oriented Design Process & Its Axioms (Unit 3) [10 Mark] [5 Mark]

Design Process

The object-oriented design process consists of following activities:

1) Apply design axioms to design classes, their attributes, methods, associations, structures & protocols.

  • Refine and complete the static UML class diagram
    • Refine attributes
    • Design methods and protocols using UML activity diagram
    • Refine the associations
    • Refine class hierarchy and design with inheritance
  • Iterate and refine

2) Design the access layer

  • Create mirror classes for the access layer as business layer
  • Identify access layer class relationship
  • Simplify classes and their relationships
    • Avoid redundant classes
    • Design methods and protocols using UML activity diagram
    • Delete classes that have only 1 or 2 methods. Try to add in other classes
  • Iterate and refine

3) Design the view layer

  • Design the macro level user interface - identifying view layer objects.
  • Design the micro level user interface, which includes the following activities
    • Design the view layer objects by applying the design axioms and corollaries
    • Build the prototype of the view layer
  • Test usability and user satisfaction
  • Iterate and refine

4) Iterate and refine the whole design. Reapply the design axioms and repeat the preceding steps.

Design Axioms

• Axiom is a fundamental truth that is always observed to be valid and for which there is no counterexample or exception. They cannot be proven or derived.

• Suh's design axioms to OOD :

  1. Axiom 1: (The Independent Axiom)
    This Axiom maintains the independence of components. It states that, during the design process, as we go from requirement and use - case to a system component, each component must satisfy that requirement, without affecting other requirements

  2. Axiom 2: (The Information Axiom)
    This axiom is concerned with simplicity. The goal is to minimize the information content of the design. In object-oriented system, to minimize complexity use inheritance and the system's built in classes and add as little as possible to what already is there.


3. Designing View Layer Classes (Unit 3) [10 Mark] [5 Mark]

The process of designing view layer classes is divided into four major activities:

  1. Design the macro level user interface - identifying view layer objects.
  2. Design the micro level user interface, which includes the following activities,
    • Design the view layer objects by applying the design axioms and corollaries
    • Build the prototype of the view layer
  3. Test usability and user satisfaction
  4. Iterate and refine
{If asked in 10 marks elaborate the first two steps with questions 4 & 5}

4. View Layer Macro Process (Unit 3) [10 Mark] [5 Mark]

• The main goal of this level is to identify classes that interacts with human actors by analyzing the use cases developed in the analysis phase.

• The view layer macro process consists of two steps:

  1. For every class identified, determine if the class interacts with a human actor, If so perform the following, otherwise move to the next class.
    • Identify view (interface) objects for class. Zoom in on the view objects by utilizing sequence or collaboration diagrams to identify the interface objects, their responsibilities, and the requirements for this class.
    • Define relationships among the view (interface) objects
  2. Iterate and refine

5. View Layer Micro Process (Unit 3) [10 Mark] [5 Mark]

• The view layer micro process consists of two steps:

  1. For very interface object identified in macro UI design process, apply micro-level UI design rules & corollaries to develop the UI.
  2. Iterate and refine

UI Design Rule

Rule 1: Making the interface simple. This rule is an applicaion of corollary 2 (single purpose).

Rule 2: Making the interface Transparent and Natural. This rule is an applicaion of corollary 4.

Rule 3: Allowing the users to be in Control of the software. This rule is an applicaion of corollary 1. Some of the ways to put users in control are,

  • Make the interface forgiving
  • Make the interface visual
  • Provide immediate feedback
  • Avoid modes
  • Make the interface consistent

6. Purpose of View Layer Interface (Unit 3) [10 Mark] [5 Mark]

• View layer interface can also be called as User Interface (UI)

• The main goal of UI is to display & obtain needed information in an accessible, efficient manner. A well defined UI has visual appeal that motivates users to use application.

• The user interface can employ one or more windows. Windows are commonly used for the following purposes,

  • Forms & data entry windows - provides an interface that allows users to access, write, modify or delete database data in the application.
  • Dialog Boxes - display status information or ask users to supply information or make a decision before continuing with a task. A typical feature of a dialog box is OK button.
  • Command Buttons - provides the user a simple way to trigger an event, like searching for a query at a search engine.
  • Application windows (main windows) - is a container of application objects or icons. In other words, it contains an entire application with which users can interact.

7. Designing Access Layer / Access Layer Classes (Unit 3) [10 Mark] [5 Mark]

• The main idea behind creating an access layer is to create a set of classes that know how to communicate with the place(s) where the data actually reside.

• The access classes must be able to translate any data-related requests from the business layer into the appropriate protocol for data access.

• The access layer performs two major tasks,

  1. Translate the request: The access layer must be able to translate any data related requests from the business layer into the appropriate protocol for data access.
  2. Translate the results: The access layer also must be able to translate the data retrieved back into the appropriate business objects and pass those objects back into the business layer.

• The process of creating an access class for the business classes are identified as follows

  • For every business class identified, mirror the business class package - create one access class in the access layer package for every respective classes in business layer.
  • Identify access layer class relationships (or) define the relationships.
  • Simplify classes and their relationships - main goal is to eliminate redundant classes and structures. In most cases, combine simple access class and simplify the super and subclass structures
  • Iterate and refine

8. Designing Methods and Protocols (Unit 3) [10 Mark] [5 Mark]

Design goals:

• To maximize cohesiveness (interconnection) among objects and software components to improve coupling (combination, pairing), because only a minimal amount of essential information should be passed between components.

• Abstraction leads to simplicity and straight- forwardness and, at the same time, increases class versatility (flexibility, resourcefulness, usefulness).

Five characteristics of bad design:

• If it looks messy (confused, disorder), then it's probably a bad design.

• If it is too complex, then it's probably a bad design.

• If it is too big, then it's probably a bad design.

• If people don't like it, then it's probably a bad design.

• If it doesn't work, then it's probably a bad design.

Good Design Practices

• Apply design axioms to avoid common design problems and pitfalls.

• Much better to have a large set of simple classes than a few large, complex classes.

• Rethink the class definition based on experience gained.


9. Quality Assurance Testing (Unit 5) [10 Mark] [5 Mark]

• Quality Assurance is defined as a procedure to ensure the quality of software products or services provided to the customers by an organization. Quality assurance focuses on improving the software development process and making it efficient and effective as per the quality standards defined for software products. Quality Assurance is popularly known as QA Testing.

• Quality assurance testing can be divided into two major categories: error-based testing and scenario-based testing.

  1. Error-based testing techniques search a given class's method for particular clues of interests, then describe how these clues should be tested. E.g: Boundary condition testing
  2. Scenario-based testing also called usage-based testing, concentrates on capturing use-cases. Then it traces user's task, performing them with their variants as tests. It can identify interaction bugs. These are more complex tests tend to exercise multiple subsystems in a single test covering higher visibility system interaction bugs

• The below tests can also be performed to ensure the software quality & reliability.

  • Smoke Testing is a software testing process that determines whether the deployed software build is stable or not. Smoke testing is a confirmation for QA team to proceed with further software testing. It consists of a minimal set of tests run on each build to test software functionalities. Smoke testing is also known as “Build Verification Testing” or “Confidence Testing.
  • Performance Testing is a software testing process used for testing the speed, response time, stability, reliability, scalability and resource usage of a software application under particular workload. The main purpose of performance testing is to identify and eliminate the performance bottlenecks in the software application.
  • Stress Testing is a type of software testing that verifies stability & reliability of software application. The goal of Stress testing is measuring software on its robustness and error handling capabilities under extremely heavy load conditions and ensuring that software doesn't crash under crunch situations. It even tests beyond normal operating points and evaluates how software works under extreme conditions.

10. Testing Strategies (Unit 5) [10 Mark] [5 Mark]

Black Box Testing [2 Mark]

• Black Box Testing is a software testing method in which the functionalities of software applications are tested without having knowledge of internal code structure, implementation details and internal paths. Black Box Testing mainly focuses on input and output of software applications and it is entirely based on software requirements and specifications. It is also known as Behavioral Testing.

• It is used for validation. In this we ignore internal working mechanism and focus on what is the output?.

White Box Testing [2 Mark]

• White Box Testing is software testing technique in which internal structure, design and coding of software are tested to verify flow of input-output and to improve design, usability and security. In white box testing, code is visible to testers so it is also called Clear box testing, Open box testing, Transparent box testing, Code-based testing and Glass box testing.

•  It is used for verification. In this we focus on internal mechanism i.e. how the output is achieved?.

Unit Testing

Unit Testing is a type of software testing where individual units or components of a software are tested. The purpose is to validate that each unit of the software code performs as expected. Unit Tests isolate a section of code and verify its correctness. A unit may be an individual function, method, procedure, module, or object. Unit testing is a WhiteBox testing technique that is usually performed by the developers during the development (coding phase) of an application.

Integration Testing

Integration Testing is as a type of testing where software modules are integrated logically and tested as a group. A typical software project consists of multiple software modules, coded by different programmers. The purpose of this level of testing is to expose defects in the interaction between these software modules when they are integrated.

Top Down Integration Testing

Top Down Integration testing which is also known as Incremental integration testing. In this Top Down approach the higher level modules are tested first after higher level modules the lower level modules are tested. Then these modules undergo for integration accordingly. Here the higher level modules refers to main module and lower level modules refers to submodules. This approach uses Stubs which are mainly used to simulate the submodule, if the invoked submodule is not developed this Stub works as a momentary replacement.

Bottom Up Integration Testing

Bottom Up Integration testing is another approach of Integration testing. In this Bottom Up approach the lower level modules are tested first after lower level modules the higher level modules are tested. Then these modules undergo for integration accordingly. Here the lower level modules refers to submodules and higher level modules refers to main modules. This approach uses test drivers which are mainly used to initiate and pass the required data to the sub modules means from higher level module to lower level module if required.


11. Usability Testing (Unit 5) [10 Mark] [5 Mark]

• Usablity is composed of effectiveness, efficiency, and satisfaction with which a specified set of users can achieve a specified set of tasks in particular environments. To achieve better usability we should,

  • Defining tasks - What are the tasks?
  • Defining Users - Who are the Users?
  • Create a medium for measuring usability.

• Usability testing measures the ease of use as well as the degree of comfort and satisfaction users have with the software. Products with poor usability can be difficult to learn, complicated to operate, misused or not used at all.

• Usability is one of the most crucial factors in the design and development of a product, especially the user interface. Therefore, usability testing must be a key part of the UI design process.

Guidelines for Developing Usability Testing:

• Usability test cases begin with the identification of use cases that can specify the target audience, tasks, and test goals.

• The usability testing should include all of a software's components.

• Usability testing need not be very expensive or elaborate.

• All tests need not involve many subjects. Typically, quick, iterative tests with small, well - targeted sample of 6 - 10 participants can identify 80 - 90 percent of most design problems.

• The test participants should be novices or should be at intermediate level.


12. User Satisfaction Testing (Unit 5) [10 Mark] [5 Mark]

• User satisfaction testing is the process of quantifying the usability test with some measurable attributes of the test, such as functionality, cost, reliability, intuitive UI or ease of use.

Primary Objectives of User Satisfaction Testing:

  • To detect and evaluate valuable changes during the design process.
  • To pinpoint specific areas of dissatisfaction for users.

Guidelines for developing User Satisfaction Testing

• The format of every user satisfaction test is basically same with different contents for each project.

• The work must be done with users or clients finding out what attributes should be included in test. Ask users to select limited number (5 to 10) of attributes by which final product can be evaluated.

• User might select following attributes for customer tracking system,

  • Ease of Use
  • Functionality
  • Cost
  • Intuitiveness of UI
  • Reliability

• Ask the users to give their judgment points to each attribute with a score from 1-10

• By analyzing the score given for all attributes by all users. We can decide and what needs to be changed in out design.


13. Test Plans [10 Mark] [5 Mark]

A Test Plan is a detailed document that describes the test strategy, objectives, schedule, estimation, deliverables, and resources required to perform testing for a software product. Test Plan helps us determine the effort needed to validate the quality of the application under test. The test plan serves as a blueprint to conduct software testing activities as a defined process, which is minutely monitored and controlled by the test manager.

Guidelines for writing a test plan:

  1. Analyze the product:
    • Who will use the website?
    • What is it used for?
    • How will it work?
    • What are software/ hardware the product uses?
  2. Develop Test Strategy: A Test Strategy document, is a high-level document, which is usually developed by Test Manager. This document defines,
    • The project's testing objectives and the means to achieve them.
    • Determines testing effort and costs.
  3. Define Test Objective: Test Objective is the overall goal and achievement of the test execution. The objective of the testing is finding as many software defects as possible; ensure that the software under test is bug free before release.
  4. Resource Planning: Resource plan is a detailed summary of all types of resources required to complete project task. Resource could be human, equipment and materials needed to complete a project
  5. Plan Test Environment A testing environment is a setup of software and hardware on which the testing team is going to execute test cases.
  6. Schedule & Estimation: Create a solid estimation & schedule for test execution.

14. Test Cases (Unit 5) [10 Mark] [5 Mark]

• A test case is a document which has a set of conditions or actions that are performed on the software application in order to verify the expected functionality of the feature.

• They describe a specific idea that is to be tested, without detailing the exact steps to be taken or data to be used.

• They give flexibility to the tester to decide how they want to execute the test.

• For example, in a test case, you document something like 'Test if coupons can be applied on actual price'. This doesn't mention how to apply the coupons or whether there are multiple ways to apply. It also doesn't mention if the tester uses a link to apply a discount, or enter a code, or have a customer service apply it.

Benefits of Writing Test Cases

  • Ensures if different features within an application are working as expected.
  • Allows the tester to think thoroughly and approach the tests from as many angles as possible.
  • Test cases are reusable for the future - anyone can reference them and execute the test.

Test Case Design Techniques

An efficient test case design technique is necessary to improve the quality of the software testing process. The test case design techniques are broadly classified into three major categories:

  1. Specification-Based (Black Box Techniques): This type of techniques can be used to design test cases in a systematic format. These use external features of the software such as technical specifications, design, client's requirements, and more, to derive test cases. With this type of test case design techniques, testers can develop test cases that save testing time and allow full test coverage.
  2. Structure-Based (White Box Techniques): These techniques design test cases based on the internal structure of the software program and code. Developers go into minute details of the developed code and test them one by one.
  3. Experienced-Based Techniques: These techniques are highly dependent on tester's experience to understand the most important areas of the software. They are based on the skills, knowledge, and expertise of the people involved.

15. Impact of Object Orientation on Testing [5 Mark]

The impacts are as follows

  • Some types of errors could become less plausible.
  • Some types of errors could become more plausible.
  • Some new types of errors might appear.

Reusability of tests: Marick says that the simpler is a test, the more likely it is to be reusable in sub-classes. Simple tests find only faults. Complex tests find faults and also stumble across others.

Impact of Inheritance in Testing: If designers do not follow OOD guidelines especially, if test is done incrementally, it will lead with objects that are extremely hard to debug and maintain

Similarly, the concept of inheritance opens various issues e.g., if changes are made to a parent class or superclass, in a larger system of a class it will be difficult to test subclasses individually and isolate the error to one class.


16. Software / System development life cycle in Object Oriented Approach [10 Mark] [5 Mark]

• Object oriented development offers a different model from the traditional software development approach. This is based on functions and procedures. To develop software by building self contained modules or objects that can be easily replaced, modified and reused.

• In Object oriented environment, software is a collection of discrete object that encapsulate their data as well as the functionality to model real world objects. Each object has attributes (data) and method (function). Objects are grouped in to classes and objects are responsible for it. A chart object is responsible for things like maintaining its data and labels and even for drawing itself.

• The basic software development life cycle consists of analysis, design, implementation, testing and refinement. Its main aim is to transform users' needs into a software solution.

• The development is a process of change, refinement, transformation or addition to the existing product. The software development process can be viewed as a series of transformations, where the output of one transformation becomes input of the subsequent transformation.

• Transformation 1 (analysis) translates the users' needs into system requirements & responsibilities.

• Transformation 2 (design ) begins with a problem statement and ends with a detailed design that can be transformed into an operational system. It includes the bulk of s/w development activity.

• Transformation 3 (implementation) refines the detailed design into the system deployment that will satisfy the users' needs. It represents embedding s/w product within its operational environment.

• An example of s/w development process is the waterfall approach which can be stated as below


17. Object Oriented Methodologies [10 Mark] [5 Mark]

• Object oriented development offers a different model from the traditional software development approach. This is based on functions and procedures. To develop software by building self contained modules or objects that can be easily replaced, modified and reused.

• In Object oriented environment, software is a collection of discrete object that encapsulate their data as well as the functionality to model real world objects. Each object has attributes (data) and method (function). Objects are grouped in to classes and objects are responsible for it. A chart object is responsible for things like maintaining its data and labels and even for drawing itself.

Benefits of Object Orientation:

• Allows higher level of abstraction: Object oriented approach supports abstraction at the object level. Since objects encapsulate both data (attributes) & functions (methods), they work at a higher level of abstraction. This makes designing, coding, testing & maintaining the system much simpler.

• Provides Seamless transition among different phases of software development: Object oriented approach, essentially uses the same language to talk about analysis, design, programming and database design. This seamless approach reduces the level of complexity and redundancy and makes for clearer, more robust system development.

• Encourage good development techniques: In a properly designed system, the routines and attributes within a class are held together tightly, the classes will be grouped into subsystems but remain independently and therefore, changing one class has no impact on other classes and so, the impact is minimized.

• Promotes of reusability: Objects are reusable because they are modeled directly out of a real - world problem domain. Here classes are designed, with reuse as a constant background goal. All the previous functionality remains and can be reused without changed.


Database Management Systems

10Marks & 5Marks

1. Feasibility Study [10 Mark]

The goal of a feasibility study is to determine whether a proposed project is worth pursuing. The study examines two fundamental categories costs and potential benefits. A feasibility study should provide management with enough information to decide, they are

  • Whether the project can be done?
  • Whether the final product will benefit its intended users?
  • What are the alternatives among which a solution will be chosen?
  • Is there a preferred alternative?

Feasibility study is divided into costs and benefits,

Ⅰ. Costs

Costs are divided into up-front or one-time costs and ongoing costs.

Upfront/Onetime Costs

  • Software
  • Hardware
  • Communication
  • Data Conversion
  • Studies and Design Training

Almost all projects will entail similar up-front costs. The organization will often have to purchase additional hardware, software and communication equipment. These costs can be estimated with the help of vendors.

Ongoing Costs

  • Personal
  • Supplies
  • Support
  • Software Upgrade
  • Software and Hardware Maintenance

Once the project is completed and the system installed, costs will arise from several areas,

  • New system might require additional personnel and supplies.
  • Additional training and support might be required to deal with employee turnover and system modification
  • Software and hardware will have to be modified and replaced entailing maintenance costs

Ⅱ. Benefits

Benefits are divided into cost savings, increased value and strategic advantages

Cost Savings

  • Fewer Errors
  • Software Maintenance
  • Less User Training
  • Loss Data Maintenance

Increased Value

  • Better Access to Data
  • Better Decisions
  • Better Communication
  • More Timely Reports
  • Faster Reaction to Change
  • New Products and Services

Strategic Advantages

  • Lock and Competitors
    • Benefits are even more difficult to estimate.
    • Some benefits are tangible and can be measured with a degree of accuracy.
    • Many benefits are intangible and cannot be assigned specific monetary values.
    • In a database project benefits can arise from improving operation which leads to cost savings.
    • Database projects can provide many benefits but the organization will receive those benefits only if the project is completed correctly, on time and within the specified budgets.

2. Database Testing / Testing Queries [10 Mark]

Database testing checks the integrity and consistency of data by verifying the schema, tables, triggers, etc., of the application's database that is being tested. In Database testing, we create complex queries to perform the load or stress test on the database and verify the database's responsiveness.

An issue in the database might cause a crash or leakage of data, we are aware of the importance of keeping the privacy of the user's data. So, it is crucial to perform database testing to ensure data integrity, consistency, etc., are being maintained.

By performing database testing we can guarantee the security and reliability of an application as it exposes the vulnerability in the database.

Benefits of Database Testing:

  1. Database testing helps in ensuring the database's efficiency, stability, performance, and security.
  2. During database testing, we can understand the behavior of complex transactions and how the system handles such queries.
  3. It makes sure that only valid data values and information are received and stored in the database.
  4. Database testing protects us from vulnerabilities like data loss, saves aborted transaction data, and doesn't allow access to information for unauthorized users.

Example:

Consider an application that captures the day-to-day transaction details for users and stores the details in the database. From database testing point of view, the following checks should be performed,

  1. The transactional information from the application should be stored in the database and it should provide correct information to the user.
  2. Information should not be lost when it is loaded to database.
  3. Only completed transactions should be stored and all incomplete operations should be aborted by the application.
  4. Access authorization to database should be maintained. No unapproved or unauthorized access to user information should be provided.

3. Client/Server Database Systems [10 Mark] [5 Mark]

Client/Server

Client/server describes the relationship between two computer programs in which one program, the client, makes a service request from another program, the server, which fulfills the request.

In a network, the client/server model provides a convenient way to interconnect programs that are distributed efficiently across different locations. The client/server model has become one of the central ideas of network computing.

Client-server computing is a software engineering technique often used within distributed computing that allows two independent processes to exchange information, through a dedicated connection, following an established protocol.

Client-server system is mainly two different processors that exchange information on common server. Unlike peer to peer system there is one server that stores the information and gives it only when the client provides specific identification like username.

Functions such as email exchange, web access and database access, are built on the client-server model.

Example:

To check the bank account from computer, a client program in the computer forwards the request to a server program at the bank. That program may in turn forward the request to its own client program that sends a request to a database server at another bank computer to retrieve the account balance. The balance is returned back to the bank data client, which in turn serves it back to the client in the personal computer, which displays the information for us.

Web as a Client Server System [5 Mark]

The World Wide Web (abbreviated as WWW or W3, commonly known as the Web), is a system of interlinked hypertext documents accessed via the Internet. With a web browser, one can view web pages that may contain text, images, videos, and other multimedia, and navigate between them via hyperlinks.

The World Wide Web was designed as a client/server system. The objective was to enable people to share information with their colleagues. The clients run browser software that receives and displays data files. The servers run web server software that answers requests, finds the appropriate files, and sends the required data.


4. DML (Data Manipulation Language) [5 Mark]

Definition: [2 Mark]

Data Manipulation Language (DML) commands in SQL deals with manipulation of data records stored within the database tables. It does not deal with changes to database objects and its structure.

DML Commands:

1. SELECT

Used to query or fetch selected fields or columns from a database table.

  • Syntax:

    SELECT column_name
    FROM table_name;

2. INSERT

Used to insert new data records or rows in the database table.

  • Syntax:

    INSERT INTO table_name
    VALUES (a list of data values);

3. UPDATE

Used to set the value of a field or column for a particular record to a new value.

  • Syntax:

    UPDATE table_name
    SET column_name = value
    WHERE condition;

4. DELETE

Used to remove one or more rows from the database table.

  • Syntax:

    DELETE FROM table_name
    WHERE condition;


5. DDL (Data Definition Language) [5 Mark]

Definition: [2 Mark]

Data Definition Language or DDL commands in standard query language(SQL) are used to describe/define the database schema. These commands deal with database schema creation and its further modifications.

DDL Commands:

1. CREATE

Used for creating database objects like a database or a database table.

  • Syntax:

    CREATE DATABASE database_name;

    CREATE TABLE table_name(
    col_name_1 datatype CONSTRAINT,
    col_name_2 datatype CONSTRAINT,
    .
    .
    col_name_n datatype CONSTRAINT);

2. ALTER

Used for modifying and renaming elements of an existing database table.

  • Syntax:

    ALTER TABLE table_name
    ADD (column_name datatype);

    ALTER TABLE table_name_1
    RENAME TO table_new_name;

    ALTER TABLE table_name
    DROP column_name;

3. TRUNCATE

Used to remove all the records from a database table.

  • Syntax:

    TRUNCATE TABLE table_name;

4. DROP

Used for removing an entire database or a database table.

  • Syntax:

    DROP DATABASE database_name;

    DROP TABLE table_name;


6. DCL (Data Control Language) [5 Mark]

Definition: [2 Mark]

DCL is abbreviation of Data Control Language. It is used to create roles, permissions, and referential integrity as well it is used to control access to database by securing it.

DCL Commands:

1. GRANT

Used to provide authorization to one or more users to perform an operation or a set of operations on a database object.

  • Syntax:

    GRANT privileges ON object TO user;

2. REVOKE

Used to Withdraw user's access privileges to database object given with the GRANT command.

  • Syntax:

    REVOKE privileges ON object FROM user;


7. TCL (Transaction Control Language) [5 Mark]

Definition: [2 Mark]

Transaction Control Language commands are used to manage transactions in the database. Managing transactions simply means managing the changes made by DML-statements. It also allows statements to be grouped together into logical transactions.

TCL Commands:

1. COMMIT

Used to permanently save any transaction into the database.

  • Syntax:

    COMMIT;

2. SAVEPOINT

Used to temporarily save a transaction so that you can rollback to that point whenever necessary.

  • Syntax:

    SAVEPOINT savepoint_name;

3. ROLLBACK

Used to restore the database to last committed state. It is also used with savepoint command to jump to a savepoint in a transaction.

  • Syntax:

    ROLLBACK;


8. Data Clustering (Cluster Analysis) [5 mark] [10 Mark]

• Cluster analysis or clustering is the assignment of a set of observations into subsets (called clusters) so that observations in the same cluster are similar in some sense

• In other words, "Clustering" is the process of organizing data into meaningful groups and these groups are called clusters.

• Data clustering improves performance by identifying data that is commonly accessed together.

• Only some of the large transaction-oriented database systems support clustering i.e. ORACLE.

Advantages

  • Clustering the data improves application speed by reducing the number of disk accesses

  • Clustering is useful in several exploratory pattern-analysis, grouping, decision-making and machine learning situations including data mining, document retrieval, image segmentation and pattern classification.


9. Data Partitioning [5 Mark] [10 Mark]

• Data partitioning is a technique to improve application performance or security by splitting tables across multiple locations.

• Data partitioning is the process of logically or physically partitioning data into segments that are more easily maintained or accessed.

Horizontal Partitioning

• Horizontal partitioning is often used to split data so that it can be stored in location where it will use the most. It involves putting different rows into different tables.

• Some of the rows (i.e. active data) will be stored in one location and other rows (i.e. inactive data) will be stored in a different location. The active data will be stored on high speed disk drives.

• The user does not need to know about the split because the DBMS automatically retrieve data from either location.

Vertical Partitioning

• Vertical partitioning involves creating tables with fewer columns and using additional tables to store the remaining columns.

• In vertical partitioning active or frequently used columns of data are stored on a faster drive, while inactive or rarely used columns are moved to a cheaper and slower drives.

• Overall performance will improve because the DBMS will be able to retrieve more of the smaller rows.

• Vertical partitioning is useful for limiting the amount of data that need to read into memory.


10. Advantages of DBMS [5 Mark] [10 Mark]

The DBMS is preferred over the conventional file processing system due to the following advantages,

1. Minimal Data Redundancy:

Redundancy means repitition or duplication of data. In DBMS, the data redundancy can be controlled or reduced but it is not removed completely. By controlling the data redundancy, you can save storage space.

2. Data Consistency:

The DBMS also has system to maintain data consistency with minimal effort.

3. Integration of Data:

Since data in database is stored in tables, any data in the database can be easily retrieved, combined and compared using the query system.

4. Data Sharing:

In DBMS, data can be shared by authorized users of the organization. The DBA manages the data and gives rights to users to access the data. Many users can be authorized to access the same set of information simultaneously.

5. Ease of Application Development:

The DBMS provides tools that can be used to develop application programs thereby reduces the cost and time for developing new applications.

6. Uniform Security, Privacy & Integrity:

Centralized control and standard procedures can improve data protection & data integrity in DBMS.


11. Components of DBMS [5 Mark] [10 Mark]

A DBMS is evaluated based on the following components,

  1. Database Engine

  2. Data Dictionary

  3. Query Processor

  4. Report Writer

  5. Forms Generator

  6. Application Generator

  7. Communication and Integration

  8. Security and Other Utilities

Database Engine

The database engine is the heart of the dbms. The engine is responsible for defining, storing and retrieving the data. It affects the performance (speed) and the ability to handle large problems (scalability). It is a stand-alone component that can be purchased and used as an independent software module. Example: Microsoft Jet Engine

Data Dictionary

The data dictionary holds the definition of all the tables. A data dictionary is a reserved space within a database which is used to store information about the database itself i.e. design information, user permissions etc.

Query Processor

It is the fundamental component of DBMS. It enables developers and users to store and retrieve data. All database operations can be run through the query language. Query language is processed by the query processor.

Report Writer

Report is a summarization of database data. It extracts information from one or more files and presents the information in a specified format.

Software Engineering

10Marks & 5Marks

1. Software Design [10 Mark]

Software design is the process to transform the user requirements into some suitable form, which helps the programmer in software coding and implementation.

Objectives of Software Design [5 Mark]

  1. Correctness: 
    A good design should be correct i.e. it should correctly implement all the functionalities of the system.
  2. Efficiency: 
    A good software design should address the resources, time, and cost optimization issues.
  3. Understandability: 
    A good design should be easily understandable, for which it should be modular and all the modules are arranged in layers.
  4. Completeness: 
    The design should have all the components like data structures, modules, and external interfaces, etc.
  5. Maintainability: 
    A good software design should be easily amenable to change whenever a change request is made from the customer side.

Software Design Concepts [5 Mark]

The software design concept simply means the idea or principle behind the design. It describes how you plan to solve the problem of designing software, the logic, or thinking behind how you will design software.

  1. Abstraction: [2 Mark] 
    Abstraction simply means to hide the details to reduce complexity and increases efficiency or quality. Different levels of Abstraction are necessary and must be applied at each stage of the design process so that any error that is present can be removed to increase the efficiency of the software solution and to refine the software solution.
  2. Modularity: [2 Mark] 
    Modularity simply means dividing the system or project into smaller parts to reduce the complexity of the system or project. In the same way, modularity in design means subdividing a system into smaller parts so that these parts can be created independently and then use these parts in different systems to perform different functions. If the system contains fewer components then it would mean the system is complex which requires a lot of effort (cost) but if we are able to divide the system into components then the cost would be small.
  3. Refinement: [2 Mark] 
    Refinement simply means to refine something to remove any impurities if present and increase the quality. The refinement concept of software design is actually a process of developing or presenting the software or system in a detailed manner that means to elaborate a system or software. Refinement is very necessary to find out any error if present and then to reduce it.
  4. Information Hiding: [2 Mark] 
    Information hiding simply means to hide the information so that it cannot be accessed by an unwanted party. In software design, information hiding is achieved by designing the modules in a manner that the information gathered or contained in one module is hidden and can't be accessed by any other modules.
  5. Architecture: 
    Architecture simply means a technique to design a structure of something. Architecture in designing software is a concept that focuses on various elements and the data of the structure. These components interact with each other and use the data of the structure in architecture.

2. Types of Testing [10 Mark]

Testing is the process of executing a program with the aim of finding errors. To make our software perform well it should be error-free. If testing is done successfully it will remove all the errors from the software.

1. Unit Testing [2 Mark]

It focuses on the smallest unit of software design. In this, we test an individual unit or group of interrelated units. It is often done by the programmer by using sample input and observing its corresponding outputs.

Example:

  • In a program we are checking if loop, method or function is working fine
  • Misunderstood or incorrect, arithmetic precedence.
  • Incorrect Initialization.

2. Integration Testing

The objective is to take unit tested components and build a program structure that has been dictated by design. Integration testing is testing in which a group of components is combined to produce output.

Integration testing is of four types: (i) Top-down (ii) Bottom-up (iii) Sandwich (iv) Big-Bang

Example:

  • Black Box testing: It is used for validation. In this we ignore internal working mechanism and focus on what is the output?.
  • White Box testing: It is used for verification. In this we focus on internal mechanism i.e. how the output is achieved?

3. Regression Testing

Every time a new module is added leads to changes in the program. This type of testing makes sure that the whole component works properly even after adding components to the complete program.

Example:

  • In school record suppose we have module staff, students and finance combining these modules and checking if on integration these module works fine is regression testing

4. Smoke Testing

This test is done to make sure that software under testing is ready or stable for further testing It is called a smoke test as the testing an initial pass is done to check if it did not catch the fire or smoke in the initial switch on.

Example:

  • If project has 2 modules so before going to module make sure that module 1 works properly

5. Alpha Testing (Acceptance Testing) [2 Mark]

This is a type of validation testing. It is a type of acceptance testing which is done before the product is released to customers. It is typically done by QA people.

6. Beta Testing

The beta test is conducted at one or more customer sites by the end-user of the software. This version is released for a limited number of users for testing in a real-time environment

7. System Testing [2 Mark]

This software is tested such that it works fine for the different operating systems. It is covered under the black box testing technique. In this, we just focus on the required input and output without focusing on internal working.
In this, we have security testing, recovery testing, stress testing, and performance testing

8. Stress Testing

In this, we give unfavorable conditions to the system and check how they perform in those conditions.

Example:

  • Test cases that require maximum memory or other resources are executed
  • Test cases that may cause thrashing in a virtual operating system
  • Test cases that may cause excessive disk requirement

9. Performance Testing

It is designed to test the run-time performance of software within the context of an integrated system. It is used to test the speed and effectiveness of the program. It is also called load testing. In it we check, what is the performance of the system in the given load.

Example:

  • Checking number of processor cycles.

10. Object-Oriented Testing

This testing is a combination of various testing techniques that help to verify and validate object-oriented software. This testing is done in the following manner:

Example:

  • Testing of Requirements,
  • Design and Analysis of Testing,
  • Testing of Code,
  • Integration testing,
  • System testing,
  • User testing.

3. Software Cost Estimation Techniques [10 Mark]

Software cost estimates are based on past perfomance. Cost estimates can be made either (i)top-down (ii)bottom-up

  • Top-Down: focus on system level cost such as computer resources. Personnel level required to develop the system
  • Bottom-Up: focus on the cost to develop each module or subsystem. Then combined to arrive at an overall estimate

1. Expert Judgement [5 Mark]

Most widelly used cost estimation techniques(top down)

Expert judgement relies on the experience background and business sense of one or more key people in an organisation mode.

Example: An expert might arrive at a cost estimate in a following manner,

  1. The goal is to estimate the requirements to develop a process controll system
  2. It is similar to one that was developed last year in 10 months at a cost of one million dollar
  3. It was not a respectible profit
  4. The new system has same control functions as the previous but 25% more control activities. So the time and cost is increased by 25%
  5. Same computer and controlling devices and many of the same people are available to develop the new sysem therefore 20% of the estimate is reduced
  6. Reusing the low level code from the previous reduces the time and cost estimates by 25%
  7. This results in the estimation of 8,00,000$ & 8 Months development time
  8. With a small margin of safety added, it becomes 8,50,000 & 9 Months development time
  9. Advantage: Experience

2. Delphi Cost Estimation [5 Mark]

This technique was developed at the rand corporation in 1948

This technique can be adapted to software estimation in the following manner,

  1. A co-ordinator was developed at the rand corporation in 1948
  2. Estimators study the document and complete their estimates
  3. They ask questions to the co-ordinator but they wont discuss with one another
  4. The co-ordinator prepares and distributes a summary of the estimators response
  5. The estimators complete another estimate from the previous estimator
  6. The process is iterated for as many as required

3. Work Breakdown Structure [5 Mark]

  • WBS is a bottom-up estimation tool
  • WBS is a hierarchical chart that accounts for the indiviual parts of the system
  • WBS chart can indicate either product hierarchy or process hierarchy
  • Product-Hierarchy: It identifies the product components and indicates the manner in which the components are interconnected
  • Process-Hierarchy: It identifies the work activity and relationship among those activities
  • Using WBS cost are estimated by assigning cost to each individual component in the chart and summing the cost

4. COCOMO (Constructive Cost Model/Algorithmic Cost Model) [5 Mark]

This family of models was proposed by Boehm in 1981. The models have been widely accepted in practice. In the COCOMOs, the code-size S is given in thousand LOC (KLOC) and efforts is on person-month. COCOMO is actually a hierarchy of estimation models that address the following areas:

Application composition model: Used during the early stages of software engineering, when prototyping of user interfaces, consideration of software and system interaction, assessment of performance, and technology maturity are paramount.

Early design stage model: Used once requirements have stabilized and basic software architecture has been established.

Post-architecture-stage model: Used during the construction of the software.

  1. Basic COCOMO: This model uses three sets of {a, b} depending only on the complexity of the software.

    1. For simple, well-understand applications, a = 2.4, b = 1.05;
    2. For more complex systems, a = 3.0, b = 1.15;
    3. For embedded systems, a = 3.6, b = 1.20;
  2. Intermediate & Detailed COCOMO: In the intermediate COCOMO, a nominal effort estimation is obtained using the power function with three sets of {a, b}, with coefficient a being slightly different from that of the basic COCOMO.

    1. For simple, well-understood applications, a = 3.2, b = 1.05;
    2. For more complex systems, a = 3.0, b = 1.15;
    3. For embedded systems, a= 2.8, b = 1.20;

    Then, fifteen Cost Factors with values ranging from 0.7 to 1.66 are determined. The overall impact factor 'M' is obtained as the product of all individual factors, and the estimate is obtained by multiplying 'M' to the nominal estimate

    While both basic and intermediate COCOMOs estimate the software cost at the system level, the detailed COCOMO works on each sub-system separately and has an obvious advantage for large systems that contain non-homogenous subsystems.


4. Software Requirement Specification [10 Mark]

Definition: [5 Mark] [2 Mark]

Software Requirement Specification (SRS) Format as name suggests, is complete specification and description of requirements of software that needs to be fulfilled for successful development of software system. These requirements can be functional as well as non-functional depending upon type of requirement. The interaction between different customers and contractor is done because its necessary to fully understand needs of customers.

Depending upon information gathered after interaction, SRS is developed which describes requirements of software that may include changes and modifications that is needed to be done to increase quality of product and to satisfy customer's demand.

Software Requirement Specification Format: [5 Mark] [10 Mark]

1. Introduction

  • Purpose of the document –

    At first, main aim of why this document is necessary and what's the purpose of document is explained and described.

  • Scope of the document –

    In this, overall working and main objective of document and what value it will provide to customer is described and explained. It also includes a description of development cost and time required.

  • Overview –

    In this, description of product is explained. It's simply summary or overall review of product.

2. General Description

In this, general functions of product which includes objective of user, a user characteristic, features, benefits, about why its importance is mentioned. It also describes features of user community.

3. Functional Requirements

In this, possible outcome of software system which includes effects due to operation of program is fully explained. All functional requirements which may include calculations, data processing, etc. are placed in a ranked order.

4. Interface Requirements

In this, software interfaces which mean how software program communicates with each other or users either in form of any language, code, or message are fully described and explained. Examples can be shared memory, data streams, etc.

5. Performance Requirements

In this, how a software system performs desired functions under specific condition is explained. It also explains required time, required memory, maximum error rate, etc.

6. Design Constraints

In this, constraints which simply means limitation or restriction are specified and explained for design team. Examples may include use of a particular algorithm, hardware and software limitations, etc.

7. Non-Functional Attributes

In this, non-functional attributes are explained that are required by software system for better performance. An example may include Security, Portability, Reliability, Reusability, Application compatibility, Data integrity, Scalability capacity, etc.

8. Preliminary Schedule and Budgets

In this, initial version and budget of project plan are explained which include overall time duration required and overall cost required for development of project.

9. Appendices

In this, additional information like references from where information is gathered, definitions of some specific terms, acronyms, abbreviations, etc. are given and explained.

Resource Management Technique

10Marks & 5Marks

Visual Programming

10Marks & 5Marks

Important Questions (BCA)

Web Technology

Sub-Code: SAZ6A

Open →

Data Communication & Networking

Sub-Code: SAZ6B

Open →

Software Testing

Sub-Code: SAZ6C

Open →

Object Oriented Analysis & Design

Sub-Code: SEZ6C

Open →

Multimedia Systems

Sub-Code: SEZ6B

Open →