Latest Post

Latest POSTS

Software Configuration Management

Changes are inevitable when software is built. A primary goal of software engineering is to improve the ease with which changes can be made to software. Configuration management is all about change control.
              Every software engineer has to be concerned with how changes made to work products are tracked and propagated throughout a project.
                          To ensure that quality is maintained the change process must be audited. A Software Configuration Management (SCM) Plan defines the strategy to be used for change management.

RISK MANAGEMENT

The term risk is defined as the potential future harm that may arise due to some present actions . Risk management in software engineering is related to the various future harms that could be possible on the software due to some minor or non-noticeable mistakes in software development project or process.

“Software projects have a high probability of failure so effective software development means dealing with risks adequately . Risk management issue is generally managed by Software Project Management (SPM).

During the life cycle of software projects, various risks are associated with them. These risks in the software project is identified and managed by software risk management which is a part of SPM.

Some of the important aspects of risk management in software engineering are :

Strategies for Risk Management

During the software development process various strategies for risk management could be identified and defined according to the amount of risk influence.

Based upon the amount of risk influence in software development project, risk strategies could be divided into three classes namely careful, typical, and flexible . Generally,careful risk management strategy is projected for new and in experienced organizations whose software development projects are connected with new and unproven technology.

Typical risk management strategy is well-defined as a support for mature organizations with experience in software development projects and used technologies, but whose projects carry a decent number of risks, and flexible risk management strategy is involved in experienced software development organizations whose software development projects are officially defined and based on proven technologies .

Software Risk Management

Since there could be various risks associated with the software development projects, the key to identify and manage those risks is to know about the concepts of software risk management. Many concepts about software risk management could be identified but the most important are:-

  • Risk Index
  • Risk Analysis
  • Risk Assessment

Risk Index: Generally risks are categorized into two factors namely impact of risk events and probability of occurrence. Risk index is the multiplication of impact and probability of occurrence. Risk index can be characterized as high,medium, or low depending upon the product of impact and occurrence. Risk index is very important and necessary for prioritization of risk.

Risk Analysis:
           There are quite different types of risk analysis that can be used. Basically, risk analysis is used to identify the high risk elements of a project in software engineering.
Also, it provides ways of detailing the impact of risk mitigation strategies.
Risk analysis has also been found to be most important in the software design phase to evaluate criticality of the system, where risks are analyzed and necessary counter measures are introduced .
The main purpose of risk analysis is to understand risks in better ways and to verify and correct attributes.
A successful risk analysis includes important elements like problem definition, problem formulation, data collection .

Risk Assessment:
               Risk assessment is another important case that integrates risk management and risk analysis. There are many risk assessment methodologies that focus on different types of risks.
Risk assessment requires correct explanations of the target system and all security features. It is important that a risk referent levels like performance, cost, support and schedule must be defined properly for risk assessment to be useful.

Data Modeling

Data modeling in software engineering is the process of creating a data model for an information system by applying formal data modeling techniques. Data modeling is a process used to define and analyze data requirements needed to support the business processes within the scope of corresponding information systems in organizations. 

Therefore, the process of data modeling involves professional data modelers working closely with business stakeholders, as well as potential users of the information system. 

There are three different types of data models produced while progressing from requirements to the actual database to be used for the information system- 

The data requirements are initially recorded as a conceptual data model which is essentially a set of technology independent specifications about the data and is used to discuss initial requirements with the business stakeholders. 

The conceptual model is then translated into a logical data model, which documents structures of the data that can be implemented in databases. Implementation of one conceptual data model may require multiple logical data models. 

The last step in data modeling is transforming the logical data model to a physical data model that organizes the data into tables, and accounts for access, performance and storage details. Data modeling defines not just data elements, but also their structures and the relationships between them. 

Data modeling techniques and methodologies are used to model data in a standard, consistent, predictable manner in order to manage it as a resource. The use of data modeling standards is strongly recommended for all projects requiring a standard means of defining and analyzing data within an organization.

  • to assist business analysts, programmers, testers, manual writers, IT package selectors, engineers, managers, related organizations and clients to understand and use an agreed semi-formal model the concepts of the organization and how they relate to one another. 
  •  to manage data as a resource 
  • for the integration of information systems 
  • for designing databases/data warehouses

Data modeling may be performed during various types of projects and in multiple phases of projects. Data models are progressive; there is no such thing as the final data model for a business or application. The data models should ideally be stored in a repository so that they can be retrieved, expanded, and edited over time. 

Strategic data modeling:
           This is part of the creation of an information systems strategy, which defines an overall vision and architecture for information systems is defined. Information engineering is methodology that embraces this approach. 

Data modeling during systems analysis:
                In systems analysis logical data models are created as part of the development of new databases. 

Data modeling is also used as a technique for detailing business requirements for specific databases. It is sometimes called database modeling because a data model is eventually implemented in a database.

Cardinality :
       The data model must be capable of representing the number of occurrences object in a given relationship.

            Cardinality is the specification of the number of occurrences of one object that can be related to the number of occurrences of another object.

               Cardinality is represented as “one” or “many”.

  1.  One to One (1:1) : An occurrence of object ‘X’ can relate to one and only one occurrence of object ‘Y’ and an occurrence of ‘X’ can relate to only one occurrence of ‘Y’ .
  2. One to many (1:N): One occurrence of object ‘X’ can relate to one or many occurrences of ‘Y’ but an occurrence of ‘Y’ can relate to only one occurrence of ‘X’.
  3.  Many to Many (M:M): An occurrence of object ‘X’ can relate to one or more occurrences of ‘Y’ while an occurrence of ‘Y’ can relate to one or more occurrences of ‘X’.

Modality :
              The modality of a relationship is 0, if there is no explicit need for the relationship to occur or the relationship is optional. The modality is 1 if an occurrence of the of the relationship is mandatory.

Type of Memory Packages

 Type of Memory Packages :-

   Memory package is a small circuit board that contains memory chips. SIMM,DIMM,SODIMM, AND RIMM are some of the memory packages. These packages are the form factors of RAM chip. The installation of a memory depends on the form factors of a RAM. A form factor is the size and shape of the memory packages.

Single In-line Memory Module ( SIMM) :-
                  SIMM is a small circuit board desingned to hold memory chips. It contains pins for accepting data from the control circuit. These circuit boards or modules are known as apckages. There are various SIMM packages available based on the number of pins it contains. For Example there are 30 pin packages and 72 pin packages.
The capacities of a 30-pin package SIMM package are 256 Kb, 1 MB, 2 MB, 4MB,8MB,16MB RAM. It contains 2,4,0r 8 chips per module. A 30-pin SIMM package has a data bus width of 9 bits with 9- bit parity . Parity checks the accuracy of the data transmission. An odd parity and an even parity are the two modes of parity checking.
A 72-pin SIMM package has 32-bit data width with 36-bit parity . PS/2 is another term used for the 72-pin package . The capacities of a 72- pin package are 1 MB, 2MB, 4MB,8MB,16MB,32MB,64,MB,AND 128MB RAM. It contains 2,4,8,or 16 data chips permodule. FPM DRAM uses a 72-pin package.

Dual In-line Memory Module (DIMM) :-
         DIMM package is also a small circuit board that contains the memory chips. The difference between the SIMM and DIMM is that DIMM is a 168-pin package. The data of the DIMM packages are 64-bit ,72-bit, or 80-bit. A 168-pin DIMM package is available in thr SDRAM, EDO or FPM DRAM chips.

Small outline Dual In-Line Memory Module (SODIMM) :-
              Laptops and notebook systems uses this package. It is the smallest version of the DIMM. The SODIMM package has a notch at the bottom of the circuit board. This notch helps in inserting the SODIMM package is the memory socket. SODIMM packages are available with 144 and 200 pins. A 144- pin SODIMM package has 64-bit data path. The FPM DRAM and EDO RAM use this package. The 72 pins on both the sides of the package divide a 144-pin package.
A 200-pin SODIMM package has 64-bit data path. PC2 100 memory and pc2700 memory use this package. The 100 pins on both sides of the package divide a 200-pin package .

Micro DIMM :-
            Micro DIMM stands for MIcro Dual Inline Meory Module. This package is smaller than DIMM and SODIMM packages. The sub-notebook systems use these memory packages. The Micro DIMM package pins connect the memory module with the memory socket. These pins provide two communication lines for the module and the system. This Package does not have the notch at the bottom. Micro DIMM packages are vailable with 144 and 172 pins.

Rambus Inline Memory Module (RIMM) :-
         RDRAM chip uses the RIMM memory package . This package is same as the DIMM package. It only differs in the pin configuration. The high bandwidth and the low latency application use this memory package .
The RIMM package has a data storage speed of 600 MHz, 711 MHz, 800 MHz and 1066 MHz. It has 184 connecting pins. The distance between each pn in the RIMM package is 1mm. This package starts opearting from 2.5 voltage supply. The RIMM package are available in 16-bit data buses 32-bit data buses, and 64-bit data buses. The memory bandwidth of the RIMm package is up to 9.6 GB per second.

Memory

  Memory is one of the functions of the brain that enables to store and remember the past events. Similarly, in Computers the term memory refers to a chip that stores data. It also enables us to retrieve the stored Data. The processor retrieves information stored in the memory for processing Data. The storage capacity of a memory depends on the type of the memory package used.

Types of Memory

Memory can be divided into two types, Volatile memory and non volatile memory. Volatile memory temporarily stores the data. It loses data as soon as the system supply is turned off. Non-volatile memory stores data permanently.It does not lose the data even if the system supply id turned off.
Further, Memory is classified into physical memory, logical memory, virtual memory and flash memory.

Two types of Physical Memory :-

RAM - Stands for Random Access Memory. It is a semiconductor-based memory where the CPU or the other hardware devices can read and write data. It temporarily stores the data and it is a volatile memory.Once the system turns off, it loses the data. As a result, Ram is used as a temporary storage area.
                         Types Of RAM :-

ROM - Stands for Read only Memory. It stores the Data permanently and it is a non volatile memory. It does not lose data even after the system turns off. As a result ROM is a permanent data storage area.

Logical Memory:-
                                 Logical memory enables the user to use large amount of memory to store data.It defines a way to organize the physical memory such as RAM and cache. This enables the operating system to arrange memory into a logical manner such as assigning a logical address. Logical address is a memory location and it is accessed by an application program. The system maps the logical address to real physical storage address.

Virtual Memory :-
                                 Virtual memory is a part of the hard disk which is used as a memory . It has a set of memory addresses and stores the instruction or the data. When the processor executes the instructions it converts the virtual memory addressed into real memory addresses. The main use of the virtual memory is to increase the address space.

Flash Memory :-
                            Flash memory is the high-density device. It is a non volatile memory. It is fast in reading and writing data. This is because it writes data in chunks or blocks. Flash memory is an electrically re-programmable device. The contents from the flash memory are erased in blocks and not in bytes. The block size can range from 256 bytes to 16 kB . Flash Memory can replace hard disk in portable computers. In this context, flash memory is available as pc card that you can plug into the PC MCIA slot.

Cache Memory :-
                                Cache memory is a small and fast memory which is placed between the CPU and RAM.It is accessed at a very high speed than the system memory. As a result, the programs which access the same data or instructions over and over run faster. The cpu does not have to transverse to the main memory to get the data . It will first access the cache to find the data.

Media Access Control Address

MAC (Media Access Control) Address is a hardware address that is embeddred in the NIC. It is also known ad hardware or physical address. Every NIC has a unique MAC address assigned by IEEE. The MAC address operates at the data link layer of the OSI Model.

        MAC Address is a 12 digit Hexadecimal number (48 bit address). The MAC address is made up of numbers from 0-9 or a letter from A-F.

      The MAC Address is divided in two parts.The first part of the address gives information about the adapter manufacture. It represents the ID number of the manufacture. This ID is provided to the manufactures by IEEE. The second half of the MAC address represents a serial number for that NIC provided by the manufacturer. 




                                           FRAME STRUCTURE OF MAC

Microprocessor


  
 Microprocessor is an electronic component that is used by a computer to do its work. microprocessor is an integrated circuit that engineers imprint onto a small  Silicon Semiconductor Chip.

        It is a Central Processing Unit on a single integrated circuit chip containing millions of very small components including Transistors, Resistors, and Diodes that work together. Microprocessors help to do everything from writing to searching the Web. Everything a computer does is described by lots of precise instructions, and microprocessors carry out these instructions at incredible speed-many millions of times a second.
          Microprocessors are responsible for performing the majority of a computer's processing tasks, which include making calculations, managing data and following input instructions. With personal computers, the term "microprocessor" is synonymous with the term "central processing unit" or CPU.
Example :-  Microprocessor include 8085, 8086, Pentium, i3, i5 etc.



              

        Three basic characteristics differentiate Microprocessors :-

 Instruction Set :-  An Instruction Set or Command Set is the basic set of commands understood by the microprocessor. When compiled the High-Level instructions of the programming language are transformed into the Machine-Level commands for a specific microprocessor. Two important  factors in instruction set design are decoder simplicity and code density.
                    The decoder reads the next instruction from memory, and then routes the component pieces of that instruction appropriately. The design of the instruction set can dramatically affect the complexity and, therefore, the speed of decoding the instructions. Code density is the combined size of the instructions needed to perform a particular task. Higher density improves memory utilization.

Bandwidth :-  In order to carry out instructions, microprocessors transmit data in bits, or units of binary notation that appear as either ones or zeros. The maximum number of bits that a microprocessor can process while carrying out a single instruction is known as bandwidth. The higher a microprocessor's bandwidth, the more processing power a microprocessor has. For example, a microprocessor with a bandwidth of 32 bits is more powerful than a microprocessor with a bandwidth of 16 bits.

Clock-Speed :-   Alternatively referred to as Clock Rate and Processor Speed, Clock Speed is the speed that the microprocessor executes each instruction or each vibration of the clock. The CPU requires a fixed number of  cycles to execute each instruction. The faster the clocks rate, the faster the CPU, or the faster it can execute instructions. Clock Speeds are usually determined in MHz, 1 MHz representing 1 million cycles per second, or in GHz, 1 GHz representing 1 thousand million cycles per second. The higher the CPU speed the better a computer will perform in a general sense.
                              Other components can improve a computer's performance as well like memory (RAM) and the motherboard as well as the number of cores that a processor has like dual core or quad core.