Network Security and Management

by Professor Brijendra Singh.

Systems Analysis and Design

by Professor Brijendra Singh.

Data Communication And Computer Networks

by Professor Brijendra Singh.

Quality Control And Reliability Analysis

by Professor Brijendra Singh

Friday, 10 April 2020

Network Management

Network Management


The objective of network management is to meet the requirements of a network which includes availability, real-time, operational performance, and Quality of Service at a reasonable cost.
Network Management can be defined as OAM and P (Operation, Administration, Maintenance and Provisioning) of Network and services.

Network Management
* Network management software,
* Clients, servers, managers and agents,

* Simple Network Management Protocol


Any complex systems requires monitoring and control.
Management involved the deployment, integration and coordination of devices to monitor, test, poll, configure, analyse, evaluate, and control the network and its components.

Performance Management
The goal is to quantify, measure, report, analyse and control the utilisation or throughput of different network components.
Performance management of computer network comprises two broad functional categories - monitoring and controlling. 

Fault Management
To maintain proper operation of complex network, care must be taken that system as a whole, and each essential component individually, are in proper working order.
The goal is to log, detect, and respond to fault conditions in the network.

Configuration Management
The goal is to allow network manager to track which devices are on the managed network and the hardware and software configurations of these device. Configuration management is concerned with initialising a network and gracefully down part or all of the networks.

Accounting Management
Accounting management allows the network manager to specify log and control uses and device access to network resources.
Usage quotas, usage-based changing, allocation of resources and privileges all fall under accounting. 

Security Management
Security management is concerned with information protection and access control facilities.
The goal of security management is to control access to network resources according to well-defined policy.




























Firewall




Firewall:

A firewall is a device that filters all traffic between a protected or “inside” network and a less trustworthy or “outside” network.


Usually, a firewall runs on a dedicated device, because it is single point through which traffic is channeled, performance is important, which means non-firewall functions should not be done on the same machine.
Because a firewall is executable code, the attacker could compromise that code and execute from the firewall device.


The purpose of the fIrewall is to keep “bad” things outside a protected environment. To accomplish that,
firewall implement a security that is specifically designed to address what bad thing’s might happen.

Packet-Filtering Firewalls
Packet-filtering firewalls or packet-filtering gateway applies a set of rules to each incoming IP packet and then forwards or discards the packets.
The router is typically configured to filter packets going in both directions (from and to the internal networK). 

Stateful Inspection Firewalls
Filtering firewall work on packets one at a time, accepting or rejecting each packet and moving on to the next. They have no concept of “state” or “context” from one packet to the next. A stateful inspection firewall maintains state information from one packet to another in the input stream. 

Proxy Firewalls
A proxy firewall also called an application layer firewalls, is a firewall that simulates the (proper) effects of an application, so that the application will receive only requests to act properly.

Guards
A guard is a sophisticated firewall. Like a proxy firewall, it receives protocol data units, interprets them, and passes through the same or different protocol data units that achieve either the same result or a modified results.
The guard decides what services to perform on the user’s behalf in accordance with its available knowledge. 

Personal Firewalls
A personal firewall is an application program that runs on a workstation to block unwanted traffic, usually from the network.
The personal firewall is configured to enforce some policy. For example, the user may decide that certain sites, such as computers on the company networks, are highly trustworthy but most other sites are not.

Limitations of Firewalls
1.The firewall cannot protect against attack that bypass the firewall.
2.The firewall does not protect against internal threats.
3.The firewall can not protect against the transfer of virus-infected programs or files.
4.The firewall can be “fooled” by source routing or address spoofing. 



















Thursday, 2 April 2020

Activities of Software Design Process

Activities of the Software Design Process




Software design is an explanation of the structure of the software to be implemented, data models, structures used by the system, interfaces between system components, and algorithms used.
Activities of design process are as:


  1. Architectural design exposes the top level design and permits a designer to reason about satisfaction of software requirements in terms of assignment of functionality to design elements and allows designers to develop recurring patterns of software organization. There is different architectural design style such as:
    • Data-Centered Architecture
    • Layered Architecture (OS Type)
    • Layered Architecture (Protocol Layer Type)
    • Call and Return Architecture
    • Client Server Architecture
    • - Data-Flow Architecture (Batch Sequential)
    • - Data-Flow Architecture (Pipes and Filters)

  2. Interface design is part of the software and is designed as it is expected to provide the user. Interface design focuses on anticipating what users might need to do and ensuring that the interface has elements that are easy to understand, access, and use to facilitate those actions. User interface brings together concepts from interaction design, visual design, and information architecture. User interface (UI) is divided into two categories: command-line interface (CLI) and graphical user interface (GUI). 

  1. There are numerous tools available using which the designers can develop complete GUI on a mouse click. Some tools can be embedded into the software environment such as an integrated development environment (IDE). GUI implementation tools provide a dominant array of GUI controls. For software customization, software designers can change the code consequently. There are different segments of GUI tools according to their different use and platform. For example: Computer GUI, Mobile GUI, Touch-Screen GUI etc. Here is a list of some tools which is used to create GUI:
  2. FLUID
    LucidChart
     AppInventor (Android)

    Wavemaker
    Visual Studio 

  3. 3. Component design is a design specification for adaptable components. Using the generation procedure set of these components is implemented for certain products and software. For example: A component design is a specification for an adaptable component that can be used to assemble a draft application work product. The adaptation specification defines the adaptation parameters for this adaptable component. The interface specification is parameterized where suitable in terms of these adaptation parameters.

  4. 4. Database design is a process of developing a detailed data model of database which contains all the needed physical and logical design. Physical storage parameters needed to generate a design in a data definition language which can then be used to create a database. For example: The unified modeling language (UML) is used to expressing complex systems in visual way which is created in an object-oriented language. For instance, an entity is known as a class in UML.










Cloud Computing Infrastructure





Cloud Computing Infrastructure

Cloud Computing Infrastructure (CCI) is a structured integration of physical as well as virtual resources which together create overall cloud environment and plays a crucial role in cloud service provisioning.

Cloud computing has emerged as a result of paradigm shift from local to network-centric computing and network-centric content, in which computing and storage resources are provided by distant data centers. Scientific and engineering applications, data mining, computational financing, gaming and social networking, and many other computational and data-intensive activities are getting benefitted from cloud computing. This vast domain of cloud applicability has been possible due to summing up of various key techniques, such as data storage technologies (like Google File System), Virtualization techniques, data management technologies (like Big Table), Distributing Computing as well as programming models and task scheduling models (like Map-Reduce) used in cloud computing. This integration of technologies has made the Cloud Infrastructure very huge in its dimension and complexity; and therefore it needs careful analysis to keep it resilient to a wide range of threats and vulnerabilities.


Infrastructure of a Cloud is comprised of the hardware and software components such as servers, storage, networking and virtualization software, which are bind together to support the computing requirements of a cloud computing model. Cloud computing infrastructure includes a software abstraction layer that virtualizes resources and logically presents them to users through programmatic means. In cloud computing, virtualized resources are hosted by a service provider or IT department and delivered to users over a network or the Internet. These resources include virtual machines and components such as servers, compute, memory, network switches, firewalls, load balancers and storage.
Cloud computing infrastructure can be visualized as a envelope that cover up each of the three cloud computing service models: infrastructure as a service (IaaS), platform as a service (PaaS) and software as a service (SaaS) within public, private and hybrid model. Together, these three service models form a cloud computing stack, with IaaS as the foundation, PaaS as the middle layer, and SaaS as the top layer. Figure 1 shows the layout of cloud computing infrastructure which is divided into three levels named as host level, network level and application level. All of these three levels are having different working patterns and different security features. Each level is dependent on other levels for communication and for providing services. 

Businesses or cloud service provider (CSPs) use cloud infrastructures to run their applications. Cloud infrastructures are typically purchased using a pay-per-use model. A cloud infrastructure provider is like a company that offers some component of cloud computing such as IaaS, SaaS or PaaS to other businesses or individuals. There are many companies which provide basic different services of cloud, Amazon (AWS) and Rackspace provides only IaaS for public, private and hybrid model. Windows azure and WorkXpress give their services only for PaaS. All these companies are not providing all services on a single platform, they are having their service infrastructure at different places and they treat a single service like an infrastructure.
A cloud thus not necessarily be confined to a small geographic location; but as the case of most CSPs like Amazon, Cloud infrastructure is built around Regions and Availability Zones, consisting of one or more discrete data centers, each with redundant power, networking and connectivity, housed in separate facilities. This geographically distributed nature of cloud along with abrupt migration of Virtual machines (VMs) between various physical host- locations increases the complexity of Cloud computing Infrastructure (CCI) many folds.
For any complicated system with a massive infrastructure, the most strenuous task is to keep it resilient towards all possible threats and vulnerabilities. This is why security and data privacy are still continuing to be key considerations in the evaluation and selection of cloud platforms. It makes organizations to have an immense focus on cloud Infrastructure‟s security aspects and design & implement a robust and easily configurable security architecture. 
Infrastructure is defined as „the basic physical and organizational structures and facilities (e.g. buildings, roads, power supplies, communication system) which are necessary for the operation of a society, system or any enterprise". Similarly Cloud Computing Infrastructure (CCI) is a structured integration of physical as well as virtual resources which together create overall Cloud environment; including servers, data storage and network components. 


Cloud Computing Infrastructure (CCI) consists of a wide range of cloud components such as processing elements, data centers, storage devices, networking, service level agreement(SLA) constraints, web based applications, cloud management software, deployment software, and platform virtualization.








Tuesday, 31 March 2020

Feasibility Study

Feasibility Study

Feasibility is defined as the practical extent to which a project can be performed successfully. To evaluate the feasibility of the project feasibility study is performed. A feasibility study should be comparatively economical and fast. Estimation is made of whether the recognized user requirements may be satisfied using existing software and hardware technology. The result should notify the verdict of whether or not to go forward with an added comprehensive analysis.
It is important to find out the strengths and weaknesses of proposed project and present guidelines of activities which will improve a project and accomplish desired results. Feasibility study is used to review the project to find out the strengths and weaknesses of project. The nature and components of feasibility study depend mainly on the areas in which analyzed projects are implemented. The acronym TELOS refers to the five areas of feasibility such as: Technical, Economic, Legal, Operational, and Schedule. Technical feasibility is one of the most important and first study that must be conducted after a project has been identified.
For sustainable success of projects economic feasibility is an important aspect to consider. Therefore, project component, investment, reinvestment costs of system, and running costs for its operation were analyzed. The project team has to construct a systematic analysis of the legal issues surrounding the project. Operational feasibility study evaluates the project potential for success and schedule feasibility used to assess of how reasonable the project timetable is. These feasibility studies summarized as:  
Technical feasibility focused on gaining an understanding of the current technical resources of the organization and their applicability to the estimated needs of the proposed system. It is an assessment of the hardware and software and how it meets the requirement of the proposed system. For example: A space organization constructs a prototype to determine if a new type of spacecraft propulsion is technically feasible or not.
Economic feasibility demonstrates the net benefit of a proposed project for accepting or disbursing electronic funds, consider the benefits, costs to the organization, and the common user as a whole. For example: A software organization performs a study to determine if an innovative new software design would be cost competitive given the current cost of required resources, components, machines, technology, and effort.
Legal feasibility determines whether the proposed system conflicts with legal requirements. For example: A bank is considering introduce an innovative novel financial product. They begin with a feasibility study focused on all legal aspects such as regulatory risks and compliance.
Operational feasibility is a measure of how well a proposed system solves the problems, takes advantage of the opportunities acknowledged during scope definition, and how it satisfies the requirements identified in the requirements analysis of software development. For example: A data center investigates the feasibility of power self-adequacy using solar panels and battery systems with the network as a backup.
Schedule feasibility is a measure of how rational the project schedule is. For example: A software project is in the early planning phases with partial scope and no schedule when an executive announces to the world that the project will be completed by July. The project manager rapidly informs the executive that this is might be unfeasible. The executive requests that the project manager make it occur. The project manager responds by conducting a schedule feasibility assessment based on a list of requirements, out-of-scope items, and July deadline.















Product Quality VS. Process Quality




Product QualityVs. Process Quality

Software process used to create software product and achieve quality in software product within a given time and cost. In this chapter, software process quality and software product quality are discussed from several perspectives to see the relationship of software process quality and software product quality.

Because software more and more rule our world and becomes universal and embedded in almost everything we do. We have to make definite that software work in an enhanced way as we desire. The quality of software involves product and process quality. Process-oriented approaches deal with the organization of rules, standards, manuals, principles, guidelines, process definitions, and improvement of software quality processes. The high-quality software product is resulted from high-quality software development process. The absence of software process and product quality, increase troubles during the software development process. Process and product quality are process-driven approaches with detailed steps to achieve software development goals. The process and product quality consider requirement, design, development, and production. Quality assurance is a protective approach from occurring by providing methods and rules which prevents errors and defects from occurring. It starts in the software development process from the early phase of the software development lifecycle. It grants self-assurance to the user concerning the software development process and the software product. It is a systematic and planned pattern of all events essential to provide sufficient confidence that a software product conforms to recognized technical requirements.

Process and product quality declaration are very significant aspects in the development of software. Process and product quality assurance observe the software engineering processes and methods to guarantee software quality. It is the software process of confirming and verifying whether services and products meet the user requirement and expectation or not. The purpose of process and product quality assurance (PPQA) is to offer management and staff with purpose insight into processes and related work products. Process and product quality have become the key to success in the software development lifecycle. For the instance being we identify the fact that software measurement helps us to better evaluate, understand, and control the products, processes, and software projects from the various perspective of evaluating, controlling, tracking, forecasting, and understanding. A suitable measurement process can offer organizations to make improved and appropriate decisions to achieve success in software projects.


Software process quality contributes to software product quality to conform to the software requirement and user expectation using monitoring, reviewing, and evaluation of the software process. Software process impacts on the software product and its quality such as: usability, performance, reliability, security, availability, functionality, maintainability, and safety. Software process quality is having the highest efficiency and best utilization of all resources in software development. Software product quality is having the least defects and higher consumer satisfaction. 

Software process quality is related to how people develop the product. There are mainly effectiveness, efficiency, and predictability aspect of the software. Software product quality associated with the absence of defects in software. Various important quality attributes for software success are usability, efficiency, maintainability, portability, reliability, reusability, and availability. All these software quality totally depends on the quality of software process. 




Monday, 30 March 2020

Quality defined by various gurus

SOFTWARE QUALITY 

When the expression “Software Quality” is used, we usually think in terms of an excellent software product that fulfills our expectations. These expectations are based on the intended use. A number of models have been proposed for evaluation of software quality based on various characteristics

If we are to talk intelligently about the quality of a thing or the quality of the product, we must have in mind a clear picture of what we mean by quality. Quality defined by the various quality gurus in various ways, depending on the user perspective.
  •   Dr. Barry Boehm thinks of quality as Achieving high levels of user satisfaction, portability, maintainability, robustness, and fitness for use.

  •   Phil Crosby has created the definition with the currency because of its publication in his famous book “Quality is free”. He states that quality means “conformance to user requirements”.

  •   Tom McCabe, the software complexity specialist, de- fines quality as “High levels of user satisfaction and low defect levels, often associated with low complexity”.

  •   John Musa of Bell Laboratories states that quality means a combination of “low defect level, adherence of software functions to users needs, and high reliability”.

  • Traditionally, the quality of a product is defined in terms of its fitness of purpose. Although fitness of the purpose is a satisfactory definition of quality for hardware products, but it is not satisfactory for software products.