Click the text links below to read and download
- Various types of restructuring techniques and how restructuring help in maintaining a program
- Dynamic testing tools and the functions that they must support
- Object Oriented Programming Concepts
- Multiplication Table using Two Dimensional Array in C++
- Routers, Bridges, Repeaters, and Gateways
- Computer Memory
- How to use Java Methods
- Data Structures and Functional Programming Preliminary Exam Solutions
- Network Protocols
- Polymorphism
- Signals and Systems
- Common coupling, Communicational cohesion, Class diagram, Structure chart
- Java AWT Graphics
- Yahtzee Game
- 2-3 Trees Sequence
- Allegro in C++
- Computer Architecture
- Asynchronous Inputs
- Beginner Game Programming With C
- Boolean Search
- Merge Sort Program in Java
- Checker Board in C++
- Chord
- Crossword Puzzle in C++
- Customer Account Program C++
- Database Planning Workbook
- Distributed process management – Distributed deadlock
- Drawing & Animation in JavaScript
- Employee Account C++ Program
- Finite State Machines
- FIR Filters
- Hashing
- Homework help in Java
- Hotel Management System C++
- Hotel reservation database
- How to Create a C++ Graphics Application
- Inference Rules Proof Methods
- Introduction to SQL
- Tic-Tac-Tac Game
- Java 3D
- Kruskal's and Prim's algorithm
- Median for Grouped Data
- Network Design and Implementation
- Network Topologies
- Cyclic Redundancy Check
- Enqueue() and Dequeue() C++ program
- Networking Lab Manual
- Nondeterministic Finite Automata (NFA)
- Nondeterministic finite automaton
- Outlier Concepts and Techniques
- Packet Tracer
- Prime numbers program
- Programming Questions and Answers
- Using the remove item in Java
- The Sleeping-Barber Solution
- What is Allegro
- C++ Graphics
- Optimum location of point to minimize total distance
- DrJava Turtle Graphics
- Cyclomatic complexity in program test, sequence of testing and software testability
- Karger's Algorithm
- TWILKINS
- 4-Gates and Circuits_solved
- Computer Science Theory
- Operating Systems
- Difference between throw-away prototyping and evolutionary prototyping
_________________________________________________________________________
Advantages and disadvantages of Modular Programming
Advantages and disadvantages of Modular Programming
The advantages of using modular programming:
1. Fewer bug because each set of programming commands is shorter
2. Algorithm is more easily understood
3. Many programmers can be employed, one on each of the modules
4. Programmers can use their expertise on particular techniques
5. Testing can be more thorough on each of the modules
6. Allows library programs to be inserted
7. All of which saves time and means the finished program can be completed more quickly
The disadvantages of using modular programming:
1. Can lead to problems with variable names
2. Means documentation of modules must be thorough
3. Can lead to problems when modules are linked because link must thoroughly tested
___________________________________________________________________________________
What is a software process? How do software myths affect a software process?
Software process is a Coherent set of activities for specifying, designing, implementing and testing software systems.
Software myths propagate misinformation and confusion. Software myths had a no of attributes. For instance, they appeared to be reasonable statements of fact, they had an intuitive feel, and they were often promulgated by experienced practitioners who “know the score”.
___________________________________________________________________________________
Advantages of using prototype software development model instead of waterfall model and the effect of defining a prototype on the overall cost of the software project.
1. The waterfall model: This is the classic SDLC model, with a linear and sequential method that has goals for each development phase. The waterfall model simplifies task scheduling, because there are no iterative or overlapping steps. One drawback of the waterfall is that it does not allow for much revision.
2. The prototyping model: In this model, a prototype (an early approximation of a final system or product) is built, tested, and then reworked as necessary until an acceptable prototype is finally achieved from which the complete system or product can now be developed.
___________________________________________________________________________________
Modular system and properties of a modular system
___________________________________________________________________________________
Bottom-Up, Top-Down and Hybrid Design Concepts
Bottom up design- This approach leads to a style of design where we decide how to combine these modules to provide larger ones; to combine those to provide even larger ones, and so on, till we arrive at one big module which is the whole of the desired program.
___________________________________________________________________________________
Modular system and properties of a modular system
A modular system consists of well defined manageable units to well defined interfaces among them. Desirable properties are
1. Each module is a well defined subsystem useful to others.
2. Each module has a well defined single purpose.
3. Modules can be separately compiled and stored in library.
4. Modules can use other modules.
5. Modules should be easier to use than build.
6. Modules should have a simple interface.
___________________________________________________________________________________
Reverse Engineering and the main objectives of reverse engineering.
The reverse engineering is the process of generating representations that are implementation independent, starting from code. It is opposite of normal forward engineering process.
The main objectives of the reverse engineering process are:
1. It helps the companies to understand the complexities of the system.
2. Helps the analyst to generate useful lost information about legacy systems.
3. Can be used to identify reusable components for analysis and future use.
4. Helps in generating graphical representation of the system from different perspectives e.g. ER diagram, DFD, class diagram etc.
5. Can be used as a part of Re-engineering process.
6. Over a period of time modifications made to the software also result into unexpected problems. The anomalies can be detected using reverse engineering techniques.
More on reverse engineering here
More on reverse engineering here
Bottom up design- This approach leads to a style of design where we decide how to combine these modules to provide larger ones; to combine those to provide even larger ones, and so on, till we arrive at one big module which is the whole of the desired program.
Since the design progressed from bottom layer upwards, the method is called bottom up design. The main argument for this design is that if we start coding a module soon after its design, the chances of recoding is high; but the coded module can be tested and design can be validated sooner than a module whose sub modules have not yet been designed.
Top down design- A top down design approach starts by identifying the major modules of the system, decomposing them into their lower level modules and iterating until the desired level of details is achieved. This is stepwise refinement; starting from an abstract design, in each step the design is refined to a more concrete level, until we reach a level where no more refinement is needed and the design can be implemented directly.
Hybrid design- Pure top-down or pure bottom up approaches are often not practical therefore hybrid approach which combines the above two approaches is often used.
___________________________________________________________________________________
How the network layer in a connection-oriented packet-switching network differ from the network layer in a connectionless packet-switching network.
The network layer in connection-oriented networks maintains state information about every connection. It can allocate resources at the switches through admission control. The network layer in connectionless networks has no knowledge of "connections", and instead deals independently with each packet.
The network layer in connection-oriented networks performs routing on a per connection basis. Each packet is routed based on a connection identifier of some sort and packets of the same connection have the same identifier value. In a connectionless network, routing is performed on per packet basis; each packet is routed independently based on information carried in the packet header, for example, the destination address.
In connection-oriented networks, the network layer forwarding table is set up by a signaling procedure during the connection establishment. In connectionless networks, the routers may execute a distributed algorithm to share network state information and dynamically calculate the routing table continuously.
In case of failure, the connection must be re-established in connection-oriented networks, whereas in connectionless networks, the packets are re-routed. The network layer in connectionless networks is more robust against failures.
Summary of differences
Connection-oriented
|
Connectionless
|
Maintain state information about every connection
|
No knowledge of the "connection"
|
Allocate resources to connections at switches
|
No resource allocation
|
Admission control
|
No admission control
|
Per connection routing
|
Per packet routing
|
Route packet based on identifier
|
Route packet based on destination address.
|
Forwarding table specifies the output port and outgoing identifier value as function of the incoming identifier value
|
Routing table specifies the output port depending on the destination address
|
Forwarding table set up by signaling during connection establishment.
|
Router executes distributed algorithm to share network state information and dynamically calculate the routing table
|
Connection must be re-established in cases of failure
|
Packets are rerouted around failures, robust against failures
|
IPv4 and IPv6
Up until 2013, IPv4 had been used, however the world’s supply of IPv4 addresses have been depleted; IPv6 succeeds IPv4 web addresses.
The main limitations of IPv4 are listed below.
1. Scarcity of IPv4 Addresses.
2. Security Related Issues.
3. Address configuration related issues.
4. Quality of service (QoS).
What Are the IPv6 Advantages
1. Increased Capacity: of address space—resources are efficiently allocated to accommodate additional web addresses.
2. Efficient Routing: allows for easy aggregation of prefixes assigned to IP networks.
3. Efficient Data Flow: enables large data packets to be sent simultaneously helping to conserve bandwidth.
4. Security: is improved due in part to improved authentication methods built into network firewalls.
What Are the Disadvantages of IPv6
1. Conversion: IPv4 is still widely used and the world is slow to convert to IPv6.
2. Communication: IPv4 and IPv6 machines cannot communicate directly to each other, in the very rare circumstance that they would need to.
3. Transition: The process of making the switch to IPv6 from IPv4 is slow and tedious.
4. Readability: Understanding IPv6 subnetting can be difficult on its own, let alone trying to remember/memorize your IPv6 address.