Category: Uncategorized

  • Software SDLC Primary Concept

    @.  SDLC:

    The full meaning of SDLC is Software Development Life Cycle.

    SDLC is a process used by the software industry to design, develop and test high quality software.

    SDLC is a process followed for a software project, within a software organization.

    The typical stages in the Software Development Life Cycle include:

    1. Requirements Gathering:

    In this phase, project stakeholders, including clients, users, and developers, gather and document the software requirements. This involves understanding the needs, goals, and functionalities expected from the software.

    1. Analysis and Planning or Define Requirements:

    During this stage, the development team analyzes the gathered requirements, assesses the project scope, defines a plan, and estimates the resources and time required for the project.

    1. Design:

    In the design phase, the system architecture and software design are created based on the requirements. It includes defining the software’s structure, data models, algorithms, and user interface design.

    1. Implementation / Coding:

    In this phase, the actual coding and programming of the software are carried out. Developers write the source code based on the design specifications.

    1. Testing:

    The software is thoroughly tested to identify and fix any defects or issues. Different testing methods, such as unit testing, integration testing, system testing, and user acceptance testing, are employed to ensure the software meets the specified requirements.

    1. Deployment:

    Once the testing phase is successful, the software is deployed to the production environment or made available to end-users.

    1. Maintenance:

    After deployment, the software enters the maintenance phase, where updates, bug fixes, and improvements are made to ensure its continued functionality and usability.

    The SDLC is a cyclical process, and iterations may be required to improve and enhance the software over time.

    Different methodologies and approaches, such as Waterfall, Agile, and DevOps, are used to implement the Software Development Life Cycle, depending on the project’s requirements and complexity.

    Each phase in the SDLC has its specific goals and deliverables, and effective management and communication are essential throughout the development process to ensure successful software development and delivery.

  • Java Basic Tutorial | Java Programming

    Java Basic Tutorial | Java Programming

    Introduction to Java

    Java is a high-level programming language originally developed by Sun
    Microsystems and released in 1995.
    Java runs on a variety of platforms, such as Windows, Mac OS, and the various versions of UNIX.

    Features of Java

    Object Oriented: In Java, everything is an Object. Java can be easily extended since it is based on the Object model.

    Platform independent: Unlike many other programming languages including C and C++, when Java is compiled, it is not compiled into platform specific machine, rather into platform independent byte code. This byte code is distributed over the web and interpreted by virtual Machine (JVM) on whichever platform it is being run.

    Simple: Java is designed to be easy to learn. If you understand the basic concept of OOP Java would be easy to master.

    Secure: With Java’s secure feature it enables to develop virus-free, tamper-free systems. Authentication techniques are based on public-key encryption.

    Architectural-neutral: Java compiler generates an architecture-neutral object file format which makes the compiled code to be executable on many processors, with the presence of Java runtime system.

    Portable: Being architectural-neutral and having no implementation dependent aspects of the specification makes Java portable.

    Compiler in Java is written in ANSI C with a clean portability boundary which is a POSIX subset.

    Robust: Java makes an effort to eliminate error prone situations by emphasizing mainly on compile
    time error checking and runtime checking.

    Multithreaded: With Java’s multithreaded feature it is possible to write programs that can do many tasks simultaneously. This design feature allows developers to construct smoothly running interactive applications.

    Interpreted: Java byte code is translated on the fly to native machine instructions and is not stored anywhere. The development process is more rapid and analytical since the linking is an incremental and light weight process.

    High Performance: With the use of Just-In-Time compilers, Java enables high performance.

    Distributed: Java is designed for the distributed environment of the internet.

    Dynamic: Java is considered to be more dynamic than C or C++ since it is designed to adapt to an evolving environment. Java programs can carry extensive amount of run-time information that can be used to verify and resolve accesses to objects on run-time.

    Tools you will need

    For performing the examples discussed in this tutorial, you will need a Pentium 200-MHz computer with a minimum of 64 MB of RAM (128 MB of RAM recommended)
    You also will need the following software:
    • Operating system.
    JDK (Java Development Kit)
    • Java editor

    Popular Java Editors

    To write your Java programs, you will need a text editor. There are even more
    sophisticated IDEs available in the market. But for now, you can consider one of
    the following:

    Notepad: On Windows machine you can use any simple text editor like
    Notepad, TextPad.

    Netbeans: is a Java IDE that is open-source and free which can be
    downloaded from http://www.netbeans.org/index.html

    Eclipse: is also a Java IDE developed by the eclipse open-source community
    and can be downloaded from http://www.eclipse.org/

    Simple Java Program


    public class MyFirstJavaProgram
    {
    public static void main(String []args)
         {
    System.out.println("Hello World");
         }
    }

    Java Identifiers

    • Names used for classes, variables and methods are called identifiers.
    • All identifiers must follow the following rules:
    • An identifier is a sequence of characters that consists of letter (A to Z or a to z), digits(0 to 9), currency character ($) or an underscore (_).
    • All identifiers should begin with a letter (A to Z or a to z), currency character ($) or an underscore (_).It can not start with a digit (0-9).
    • A keyword cannot be used as an identifier.
    • Most importantly identifiers are case sensitive. (area, Area, AREA are all different identifiers)
    Examples of legal identifiers: age, $salary, _value, __1_value
    Examples of illegal identifiers: 123abc, -salary

    Basic Operators in Java

    1. Arithmetic Operators
    2. Relational Operators
    3. Bitwise Operators
    4. Boolean Logical Operators
    5. Conditional Operator ( ? : )

    1. Arithmetic Operators

    • Addition +
    • Subtraction –
    • Multiplication *
    • Division /
    • Remainder %
    • Increment ++
    • Addition Assignment +=
    • Subtraction Assignment -=
    • Multiplication Assignment *=
    • Division Assignment /=
    • Modulus Assignment %=
    • Decrement —

    Arithmetic Assignment Operators

    OperatorExampleEquivalent ToIncrement/decrement
    +=
    -=
    *=
    /=
    %=
    x += y
    x -= y
    x *= y
    x /= y
    x %= y
    x = x + y
    x = x – y
    x = x * y
    x = x / y
    x = x % y
    • Preincrement:  i = ++n;
    • Predecrement: i = –n;
    • Postincrement: i = n++;
    • Postdecrement: i = n–;

    2. Relational Operators

    • > greater than
    • >= greater than or equal to
    • < less than
    • <= less than or equal to
    • = = equal to
    • != not equal to
    • The outcome of these operations is a boolean value.
    • = = , != can be applied to any type in java.
    • Only numeric types are compared using ordering operator.

    3. Bitwise Operators
    ~ Bitwise unary NOT
    & Bitwise AND
    | Bitwise OR
    ^ Bitwise XOR
    >> Shift Right
    >>> Shift Right zero fill
    << Shift left
    & = Bitwise AND Assignment
    |= Bitwise OR Assignment
    ^= Bitwise XOR Assignment
    >>= Shift Right Assignment
    >>>= Shift Right zero fill Assignment
    <<= Shift Left Assignment

    4. Boolean Logical Operators

    & Logical AND
    | Logical OR
    ^ Logical XOR
    || Short-circuit OR
    && Short-circuit AND
    ! Logical unary NOT
    &= AND Assignment
    |= OR Assignment
    ^ = XOR Assignment
    = = Equal to
    != Not equal to
    ?: Ternary if-then-else

    5. Conditional Operator ( ? : )
    (expression) ? value if true : value if false
    (a > b) ? a : b;
    it is an expression which returns one of two values, a or b. The condition, (a > b), is tested. If it is
    true the first value, a, is returned. If it is false, the second value, b, is returned.

    if (a > b) {
    max = a;
    }
    else {
    max = b;
    }
    max = (a > b) ? a : b;
    Conditional Operator is equivalent to if ..else

    Taking input from User – Scanner Class

    ‘Scanner’ class is used to take input from user
    An object of Scanner class is created to read input
    Java uses System.out to refer to the standard output device and System.in to standard input device
    Import ‘java.util.Scanner’ package to use scanner class Commonly used methods for Scanner class

    • nextByte(): reads an Byte value from the user
    • nextShort() : reads an Short value from the user
    • nextInt() : reads an int value from the user
    • nextLong() : reads an Long Integer value from the user
    • nextFloat() : reads an Float value from the user
    • nextDouble() : reads an Double value from the user
    • next() : reads a word from the user
    • nextLine() : reads a Line of Text from the user

    Exercise:
    Using Scanner class
    • Take two integer numbers as input and calculate their sum.
    • Calculate the area of a circle. Take radius as input.
    • Take some information about yourself (i.e. name, age, cgpa, department, section etc) as input and display them.

    1. import java.util.*;
    2. public class ScannerExample {
    3. public static void main(String args[]){
    4. Scanner in = new Scanner(System.in);
    5. System.out.print(“Enter your name: “);
    6. String name = in.nextLine();
    7. System.out.println(“Name is: ” + name);

    Exercise:
    • Check whether a number is even or odd.
    • Check whether a number is positive or negative.
    • Check whether a year is LEAP YEAR or Not.
    • Find out the maximum value of three numbers.
    • Make a simple calculator.

    Thanks for your time!

  • Computer Fundamental

    Computer Basic Concept

    @. Computer Memory

    Computer memory is the storage space in the computer, where data is to be processed and instructions required for processing are stored.

    Each location has a unique address in memory.

    @. CPU Register:

    CPU Register or processor register is a quickly accessible location available to a computer’s CPU.

    It is fastest among the all types of data storage.

    @. Cache Memory:

    It is used to hold the data and program parts most frequently required to execute a program.

    It consumes less access time as compared to main memory, so it is faster than main memory.

    It is the portion of memory made of high-speed RAM (SRAM).

    Cache memory has limited capacity to store data.

    Widely used for Memory Caching.

    Works on the “Principle of Locality of Reference”.

    #.  It acts as a buffer between the CPU and the main memory.

    @. Primary Memory

    Primary memory is computer memory that is accessed directly by the CPU.

    @.     RAM is used to hold the programand data during computation.

    Such as: stores temporary data.

    #. Volatile memory:

    Data retains as long as a continuous power supply is provided.

    #.      RAM: Random Access Memory

    #.      SRAM: Static Random Access Memory

    #.      DRAM: Dynamic Random Access Memory

    @.     Any cell can be accessed in any order at same speed if address is known ROM

    #. Non-volatile:

    Information can simply be read by the user but cannot be modified.

    Generally stores BIOS (Basic Input Output System)

    #.      ROM: Read Only Memory

    #.      PROM–Programmable Read Only Memory

    #.      EPROM– Erasable Programmable Read Only Memory

    #.      EEPROM– Electrically Erasable Programmable Read Only Memory

    Units to Measure Computer Memory

    @. Secondary Memory:

    Communicate indirectly with CPU via main memory. So, it is slower than the main memory.

    #. Non- volatile

    Store data is permanent.

    @. Magnetic Storage Devices:

    It is sequential access memory.

    • Hard Disk
    • Floppy Disk
    • Magnetic Tape

    @. Optical Storage Devices:

    • CD-ROM
    • CD-Recordable
    • CD-Rewritable
    • DVD-ROM

    @. USB Flash Drive

    • Memory Cards
    • Solid State Drive

    @. Processing Devices:

    Processing devices are parts of the computer that are responsible for processing or converting data into meaning full information.

    • Processor
    • Buses
    • System Clock

    @. Processor:

    #.      The CPU is traditionally referred to as a Processor.

    #.      The CPU is a computer chip located on the motherboard.

    #.      Performs processing and control activities performed by different parts of computer.

    #.      Main electronic circuitry in the computer.

    #.      Carries out the instructions contained in a computer program by performing arithmetic, logical, control and input/output operations.

    #.      Most modern CPUs are contained on a single Integrated Circuit (IC) chip and as such are called microprocessors.

    #.      A processor can have two or more CPUs or independent processing units called “cores” on a single chip and such processor is called a multi-core processor.

    @. Buses:

    Electrical pathway that transfers data and instructions among different parts of computer.

    Main memory is directly/indirectly connected to the processor via a bus.

    • Data Bus
    • Address Bus
    • Control Bus

    @. Data Bus:

    Data bus is Bidirectional because the Microprocessor can read data from memory or write data to the memory.

    @. Address Bus:

    Address bus is Unidirectional because the microprocessor is addressing a specific memory location.

    @. Control Bus:

    The control bus is a communication path in a computer that carries signals to coordinate and control the actions of different hardware components.

    .

    @. System Clock:

    Used to synchronizing the activities performed by the computer.

    @. Software:

    Software is a set of computer programs which includes instructions, used for performing a particular task using hardware.

    Software tells hardware: what to do? How to do?

    @. System Software:

    System software is “Background” software that helps the computer manage its own internal resources.

    It enables the application software to interact with the computer hardware.

    Such as: Operating System, Device Drivers,

    Utility Software, Translators, etc

    @. Application Software:

    Collection of programs is written for a specific application.

    @. Operating System:

    System software helps in managing the resources of a computer.

    Primary goal: make computer convenient and efficient to use.

    Such as: MS-DOS, MS-Windows, UNIX, Linux, MacOSetc…

    @.Tasks performed by OS:

    • Process Management
    • Memory Management
    • File Management
    • Device Management
    • Security and user Interface
    • Servicing the request by user

    @.Types of OS:

    • Batch Processing OS
    • Multiuser OS
    • Multi tasking OS
    • Multi threading OS
    • Time Sharing OS

    @. Device Drivers:

    System Software is responsible for proper functioning of devices.

    Each device has a device driver associated with it.

    Whenever computer system needs the use of device, the process or issues general commands to the driver of device.

    When you buy an operating system, many device drivers are built into the product.

    In Windows operating systems, a device driver file usually has a file name suffix of DLL or EXE.

    @. Utility Software:

    Used to analyze, configure and maintain the computer system.

    Such as: Antivirus software, backup software, disk cleaners,

    clean up tools, defragmentation tool etc.

    @. Different between of low and high level language:

    NoAspectLow-Level LanguageHigh-Level Language
    01AbstractionMinimal abstraction closely resembles hardware instructions.Higher level of abstraction, closer to human language. 
    02ReadabilityLess readable due to complex and hardware-specific syntax.More readable with human-friendly syntax and structure. 
    03Memory ManagementRequires manual memory management (malloc, free).Automatic memory management (garbage collection).
    04PortabilityLess portable, code is closely tied to specific hardware.More portable, code can be used on different systems with minor modifications.
    05EfficiencyGenerally more efficient as it closely maps to hardware operations.May be less efficient due to abstraction layer, but optimizations are done by the compiler.
    06Development SpeedSlower development due to detailed coding requirements.Faster development due to higher-level constructs and libraries.
    07ExamplesAssembly languages(x86 assembly)C, C++, Java, Python, etc

    #.      Malloc and free are functions commonly used in programming, particularly in languages like C and C++, to manage memory dynamically during runtime.

    @. Levels of Programming Languages:

    @. Low level Language:

    • Machine Language
    • Assembly Language

    @. High level Language:

    #.  Specific Purpose Language – LISA, Prolog, etc

    #.  General Purpose Language – C, C++, Java, etc

    @. Different between of portal and non-portal device:

    NoAspectPortable Devices                  Non-Portable Devices              
    01MobilityDesigned for easy mobility and use on-the-go.Generally meant for stationary use.
    02SizeCompact and lightweight.Compact and lightweight.
    03Power SourceOften battery-powered.Typically connected to power outlets.
    04ConnectivityWireless and wired connectivity options.Mainly wired connectivity options.
    05Usage ScenariosTravel, outdoor activities, remote work.Travel, outdoor activities, remote work.
    06DurabilityOften built with durability in mind to withstand travel.Focus on functionality and robustness. 
    07ExamplesLaptops, smart-phones, tablets, portable speakers.Desktop computers, home appliances. 

    @. Machine Language:

    First Generation Language

    Instructions are represented by combinations of 0’s and 1’s.

    Programs are executable, can be run directly.

    Requires memorization of binary codes so difficult to learn

    Machine Dependent Codes, not portable

    @. Assembly Language:

    Second Generation Language

    Machine language instructions are replaced with simple pneumonic abbreviations (like ADD, MUL, DIV, etc.).

    Programs need to translate into machine language.

    @. Assembler:

    Translate assembly language statements into machine language codes.

    @. Types of Assembler:

    • Single-pass Assembler
    • Two-pass Assembler

    @. High-Level Language

    Consist of set of English like statements, it makes programming easier and lesser or-prone.

    Languages are not closely related to internal characteristics of computer.

    @. Two Categories:

    Specific Purpose Languages (LISP, Prolog etc…)

    General Purpose Language (C++, JAVA, C etc…)

    #. Source File – nur.c

    #. Object File – nur.o

    #. Header File – nur.h

    #. Executable File – uur.exe

    @. Compiler:

    The name compiler is primarily used for programs that translate source code from a highlevel programming language to a lower level language (e.g., assembly language, object code, or machine code) to create an executable program.

    Compiler resides on a disk or other storage media, when a high-level program is to be compiled. Compiler is loaded into main-memory.

    @. Interpreter:

    Interpreter is converted high-level language

    code into corresponding machine code.

    Instead of entire program, one statement at

    a time is translated and executed immediately.

    @. Linker/ Link Editor/ Binder:

    In high-level language built-in library functions need to be linked to the library. This is done by Linker.

    Sometimes, programs are divided into modules. These modules are combined and assembled and object module is generated.

    Linker has the responsibility to combine/ Link all modules and generate a single executable file of the source program.

    @. Loader:

    @. What is the complete process of compilation?

    @. What is the complete process of creating and running code?

  • Software Fundamental

    Software Fundamental

    The Institute of Electrical and Electronic Engineers or IEEE:

    Software is a collection of computer programs, procedures, rules, associated documentation, and data.

    Software:

    Software is a set of instructions, data, or programs used to operate computers and execute specific tasks.

    It is the opposite of hardware, which describes the physical aspects of a computer.

    Software does not wear out:

    Different things like clothes, ornaments do wear out after some time.

    But, software once created never wears out.

    It can be used for as long as needed and in case of need for any updating, required changes can be made in the same software and then it can be used further with updated features.

    @. Software is not manufactured:

    Software is not manufactured but is developed.

    So, it does not require any raw material for its development.

    @. Work of software:

    Software controls, integrates, and manages the hardware components of a computer system.

    It also instructs the computer what needs to be done to perform a specific task and how it is to be done.

    Such as: Software instructs the hardware how to print a document, take input from the user, and display the output.

    @. Software Characteristics:

    Software characteristics are classified into nine major issues.

    #. Efficiency:

    The software is produced in the expected time and within the limits of the available resources.

    #. Reliability:

    This is the ability of the software to provide the desired functionalities under every condition.

    This means that our software should work properly in each condition.

    #. Usability:

    The usability of the software is the simplicity of the software in terms of the user.

    The easier the software is to use for the user, the more is the usability of the software as more number of people will now be able to use it and also due to the ease will use it more willingly.

    #. Flexibility:

    Every software is flexible.

    What this means is that we can make necessary changes in our software in the future according to the need of that time and then can use the same software then also.

    #. Portability:

    Portability of the software means that we can transfer our software from one platform to another that too with ease.

    Due to this, the sharing of the software among the developers and other members can be done flexibly.

    #. Reusability:

    As the software never wears out, neither does its components, i.e. code segments.

    So, if any particular segment of code is required in some other software, we can reuse the existing code form the software in which it is already present. This reduced our work and also saves time and money.

    #. Maintainability

    Every software is maintainable.

    This means that if any errors or bugs appear in the software, then they can be fixed.

    #. Interoperability:

    The software system can interact properly with other systems.

    This can apply to software on a single, stand-alone computer or to software that is used on a network.

    #. Correctness:

    The program produces the correct output.

    @. Types of Software Products:

    Software engineers are concerned with developing software products, that is, software that can be sold to a customer.

    There are two kinds of software product:

    Different the Generic products and customize products:

    NoGeneric ProductsNoCustomize Products
    01Product developers own the specification. 01Customers own the specification and it also controlled by the customer.
    02Developer can be able to change the specification 02Customer is also involved; therefore, for changing the specification, both customer and the developer must make discussion for the implementation.
    03Developer can be able to change the specification due to some other external change. 03The customer and the developer will involve in the business process changes and they will implement if both are satisfied
    04Generic product user cannot control the evolution of the product. User can get application immediately.04The application will take some year for the process of development and it is not available immediately.
    05Such as: Microsoft Word, Microsoft power point, Microsoft Excel05Such as: Embedded control systems, air traffic control software, traffic monitoring systems.

    @. Generic software product:

    Generic software is a ready-to-use solution that may be customized to fit the needs of a wide range of customers.

    In generic software product development, the specification is owned by the product developer.

    Example: Microsoft Word, Microsoft power point, Microsoft Excel.

    @. Customized software product:

    Software products were developed as per the requirements of a specific customer.

    An example of this could be a software product developed for an internal team at an organization.

    Examples – embedded control systems, air traffic control software, traffic monitoring systems.

    @. Software Failure:

    There are a variety of causes for software failures but the most common are:

    • Lack of user participation
    • Changing requirements
    • Inability to handle the project’s complexity
    • Failure to use software engineering methods
    • Inaccurate estimates of needed resources
    • Badly defined system requirements
    • Lack of resources
    • Unmanaged risks
    • Poor communication among customers, developers, and users
    • Use of immature technology
    • Poor Project Management
    • Lack of Stakeholder involvement

    @. Software Product and Software Process:

    Software Product:

    In the context of software engineering, a product is any software created in response to a client’s request.

    In other terms, a product is the outcome of a planned and managed software project.

    The Software Product may not contain details about the software process, but the software process has every detail about the final product from the very initial phase itself that how the software would be like.

    @.Different the Software products and Software Process:

    NoSoftware ProductsNoSoftware Process
    01The final software that is delivered to the customer is called the software product.01The software process is the entire way in which we produce the software.
    02It is the outcome of the entire software development process.02Where customers and engineers define the software that is to be produced and the constraints on its operation.
    03It may include source code, data, user guides, reference manuals, installation manuals, specification documentation, other documentation, etc. 03It is the entire journey from the idea of the Software to the final release of it. 
    04The software product does not have any information regarding the software process, like how it was scheduled, how many people worked on it, how the work was divided, etc. 04Software validation: where the software is checked to ensure that it is what the customer requires.
    05It only consists of the final application that fulfills the user’s requirements. 05Software evolution: where the software is modified to reflect changing customer and market requirements. 

    @. Components of Product:

    The best software products begin with an excellent value proposition, and they must be carefully designed and extensively tested to ensure that value is delivered to the end user.

    A software product’s components include:

    1. Product Design: It is the visual aesthetic and interactive interface in which users may interact with the product.
    2. Functionality and Features: When people utilize a software product, they interact with it through functionality.
    3. Content: The data or details contained in a software product are referred to as its content.

    @. Software Process:

    The software process is the entire way in which we produce the software.

    It is the entire journey from the idea of the Software to the final release of it.

    It includes all the activities that are performed to the form the final Software product, like the requirement analysis, designing of the software, coding, testing, documentation, Maintenance, etc.

    @. Activities of Software Process:

    There are various activities of the software process.

    1. Software Specification: It describes the software’s main features and the constraints surrounding them.
    2. Design and Implementation: During this step, the software is designed and programmed.
    3. Verification and Validation: The developed and programmed software should ensure that it meets the needed criteria and the needs of the client.
    4. Software Evolution: Software should be modified over time to ensure that it meets the needs of the client and the market.

    @. What is Software Engineering?

    Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages to user end.

    Software Engineering is the application of a system, disciplined, and cost-effective technique which is an engineering approach for the development, operation, and maintenance.

    Software engineering is “a systematic approach to the analysis, design, assessment, implementation, test, maintenance and reengineering of software, that is, the application of engineering to software.

    It involves applying engineering principles and methods to development in order to create efficient, robust, and high-quality system that meets the needs of users and businesses.

    As a note, software engineering is not only limited to creating new products.

    Existing software products need maintenance. Software maintenance is also a part of software engineering.

    Software engineering is not just programming.

    The keyword here is engineering.

    Engineering always connotes two things: designing a product in detail and a methodical approach to carrying out the design and production so that the product is produced with the desired qualities and a large number of people can use it.

    @. There are several tasks that are part of every software engineering project:

    • Analysis of the problem
    • Determination of requirements
    • Design of the software
    • Coding of the software solution
    • Testing and integration of the code
    • Installation and delivery of the software
    • Documentation
    • Maintenance
    • Quality assurance
    • Training
    • Resource estimation
    • Project management

    @. Why Software Engineering?

    Software engineering is extremely important for:

    @. Reduction of Development Costs:

    Software engineering helps reduce the cost of development by reusing the existing code, using better tools, and following sound software engineering practices.

    @. Reduction of Development Time:

    There are some software products and services available in the markets that provide the needed functionality immediately;

    Thus, the project team can avoid writing fresh source codes altogether to achieve the same functionality.

    The end result is that the productivity of the project team continues to improve, which allows the faster development of software products.

    @. Increasing the Quality:

    Quality is the single most important ingredient in making any product successful.

    Software engineering plays an important role in building quality software products.

    By using better software engineering methodologies and software engineering tools, it is possible to build better-quality software products.

    @. Challenges in Software Engineering:

    Software engineering employs a well-defined and systematic approach to develop software.

    This approach is considered to be the most effective way of producing high-quality software.

    However, despite this systematic approach in software development, there are still some serious challenges faced by software engineering. Some of these challenges are listed below.

    #.      The challenge in software engineering is to deliver high-quality software on time and on budget to customers.

    Software quality needs to be properly planned to enable the project to deliver a quality product.

    The effect of software failure may be large costs to correct the software, loss of credibility of the company or even loss of life.

    #.      The accurate estimation of project cost, effort and schedule is a challenge in software engineering.

    Therefore, project managers need to determine how good their estimation process actually is and to make appropriate improvements.

    #.      Risk management is an important part of project management, and the objective is to identify potential risks early and throughout the project and to manage them appropriately.

    The probability of each risk occurring and its impact is determined, and the risks are managed during project execution.

    #.      The methods used to develop small or medium-scale projects are not suitable when it comes to the development of large-scale or complex systems.

    #.      Changes in software development are unavoidable.

    In today’s world, changes occur rapidly and accommodating these changes to develop complete software is one of the major challenges faced by the software engineers.

    #.      Sometimes, changes are incorporated in documents without following any standard procedure.

    Thus, verification of all such changes often becomes difficult.

    @.

    The key challenges facing software engineering is coping with increasing diversity, demands for reduced delivery times and developing trustworthy software.

    Software Application Domains:

    Today, seven broad categories of computer software present continuing challenges for software engineers:

    @. System software:

    System Software is necessary to manage computer resources and support the execution of application programs.

    Such as: operating systems, compilers, editors and drivers, etc.

    @. Business Application software:

    This category of software is used to support business applications and is the most widely used category of software.

    Examples are software for inventory management, accounts, banking, hospitals, schools, stock markets, etc.

    @.     Engineering/scientific software:

    Scientific and engineering software satisfies the needs of a scientific or engineering user to perform enterprise-specific tasks.

    Such software is written for specific applications using principles, techniques, and formulae particular to that field.

    Examples are software like MATLAB, AUTOCAD, PSPICE, ORCAD, etc.

    @.     Embedded software:

    This type of software is embedded into the hardware normally in the Read-Only Memory (ROM) as a part of a large system and is used to support certain functionality under the control conditions.

    Examples are software used in instrumentation and control applications like washing machines, satellites, microwaves, etc.

    @. Product-line software:

    Composed of reusable components and designed to provide specific capabilities for use by many different customers.

    It may focus on a limited and esoteric marketplace (e.g., inventory control products) or attempt to address the mass consumer market.

    @. Web/Mobile applications:

    This network-centric software category spans a wide array of applications and encompasses browser-based apps, cloud computing, service-based computing, and software that resides on mobile devices.

    @. Artificial intelligence software:

    Such as: expert systems, decision support systems, pattern recognition software, artificial neural networks, etc. come under this category.

    They involve complex problems which are not affected by complex computations using non- numerical algorithms.

    @. Utility Software:

    The programs coming under this category perform specific tasks and are different from other software in terms of size, cost, and complexity.

    Such as: anti-virus software, voice recognition software, compression programs, etc.

    @. Reservation Software:

    A Reservation Software is primarily used to store and retrieve information and perform transactions related to air travel, car rental, hotels, or other activities.

    @. Software Engineering vs Computer Science:

    The primary difference is that computer science was originally a sub-branch of mathematics.

    Computer science deals with the basic structure of a computer and is more theoretical.

    It’s emphasis on math and science.

    Software engineering is a field concerned with the application of engineering processes to the creation, design, and maintenance of software for a variety of different purposes.

    One should choose Computer Science if he wants to get into a specialized field in CS like artificial intelligence, machine learning, security, or graphics.

    On the other hand, one should choose Software Engineering. if he wants to learn the overall life cycle of how specific software is built and maintained.

    @. Software Engineering vs. Software Development:

    #.      An engineer designs and plans applying the principles of engineering to software development.

    Always aware of the “big picture”, with talents in many areas.

    An engineer’s core focus lies with architecture.

    A developer executes. Without the need for the “big picture”, their talents often focused on a single area.

    #.      A software engineer is responsible for making system design and prototyping.

    So the software developer is mainly focused on developing code and testing; these are part of software development cycle.

    Software developer is responsible for coding.

    #.      Anyone can be a software developer.

    If you know a small amount of programming concept then you have the foundation to become Software Developer.

    They write code without any performance and scalability analysis.

    But, a systematic education and training are required to become a software engineer.

    @. Does All Software Require Software Engineering?

    Not all software requires software engineering.

    Simplistic games or programs that are used by consumers may not need engineering, depending on the risks associated with them.

    Almost all companies do require software engineering because of the high-risk information that they store and security risks that they pose.

    @. Best software engineering techniques and methods:

    A software product can be developed using any of the popular software engineering methodologies (or models or approaches).

    At one extreme, the entire product is developed under one project using a big project planning model.

    At the other extreme, you can develop the product incrementally. Which model should be used for software development for a specific project boil down to the preference of the sponsors or clients of the project?

    If the clients prefer to have a product with minimal (or essential) features at the beginning and launch it into the market and, on the basis of the market response, continue adding additional features later on, then the incremental model is preferred.

    A software product can be incrementally built using any of the many popular agile methodologies such as eXtreme Programming, Scrum, and Rational Unified Process (used by Eclipse platforms).

    On the other hand, if the clients want the entire product to be delivered in one shot, then the big project planning model is preferred, better known as the Waterfall model.

    So, there are many factors that need to be considered in deciding which model is best suited for a given project.

    @. Software making:

    While all software projects have to be professionally managed and developed, different techniques are appropriate for different types of system.

    Such as: games should always be developed using a series of prototypes whereas safety critical control systems require a complete and analyzable specification to be developed.

    You can’t, therefore, say that one method is better than another.

    @. What differences has the Internet made to software engineering?

    The rise of the Internet led to very rapid growth in the demand for international information display/e-mail systems on the World Wide Web.

    The growth of browser usage, running on the HTML language, changed the way in which information-display and retrieval was organized.

    Not only has the Internet led to the development of massive, highly distributed, service-based systems.

    It has also supported the creation of an “app” industry for mobile devices which has changed the economics of software.

    @. Software Engineering Ethics:

    Software products can be misused to harm people.

    For example: malware can be created to steal money from bank accounts of other people.

    Similarly, viruses can be created to infect the computer systems of other people.

    Thus, a software engineer needs to abide by a code of ethics to shy away from such activities.

    It is quite possible to create powerful software systems that can harm a large number of people.

    All software engineers should abide by a code of ethics to work for the betterment of humanity and not to harm others.

    @. Software Engineering Code of Ethics

    Principles of the Software Engineering Code of Ethics and Professional Practice:

    In 1999, the Institute for Electrical and Electronics Engineers, Inc. (IEEE) and the Association for Computing Machinery, Inc (ACM) published

    a code of eight Principles related to the behavior of and decisions made by professional software engineers, including practitioners, educators, managers, supervisors and policy makers, as well as trainees and students of the profession.

    In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles based on IEEE/ACM Code of Ethics:

    #. PUBLIC:

    The software engineer must act in accordance with the interests of the public and not his.

    #. CLIENT AND EMPLOYER:

    The software engineer must create or administer software that does not pose any danger to the safety and health of the hazards.

    He must always be trusted to his client and employer.

    #. PRODUCT:

    Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.

    #. JUDGMENT:

    Software engineers shall maintain integrity and independence in their professional judgment.

    #. MANAGEMENT:

    When a software engineer gets to a leading position, he must support all team members to meet their goals with fairness and justice.

    #. PROFESSION:

    The software engineer must act with integrity and professionalism always having the safety and welfare of the customer always prioritized.

    #. COLLEAGUES:

    Software engineers shall be fair to and supportive of their colleagues.

    #.SELF:

    Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

    @. Some Careers in Software Engineering:

    Software engineering provides several careers to pursue.

    A person having skills and interest in finding defects or shortcomings in software products can pursue a career in software testing.

    Anyone who enjoys programming can become a software developer and write source code.

    A person good in designing and architecture can become a software designer or architect.

    A person who likes the task of collection and classification of information can become a business or technical analyst.

    If a person likes discovering new things or analyzing how things work, he or she can pursue a research career.

    There are teaching careers for those who wish to educate others.

    A person who has gained experience in more than one area of software engineering can become a software project manager.

    People with different skills can also be useful because different projects need different skill sets.

    The list of careers provided here is not exhaustive.

    New careers are emerging as software engineering technology emerges.

    Still, there are some additional roles required for software projects.

    Because of the increased use of web-based software products, web designers are needed on such projects.

    Web designers have specialized skills for creating the user interface for web-based software products. Database administrators are needed to manage the databases.

    @.     Technical IT skills:

    A software engineering degree sets you up with technical IT skills that can be used in various IT and web-based careers from applications developer to web designer

    Job options

    Jobs directly related to your Software Engineering degree include:    Jobs where your degree would be useful include:

    • Applications developer
    • Cyber security analyst
    • Game developer
    • IT consultant
    • Web developer
    • Web designer
    • Software designer
    • Software architect
    • Software engineer
    • Software project manager
    • Embedded Software Engineer
    • Multimedia programmer
    • Software tester
    • Mobile Software Engineer
    • Modeling Specialist
    • Teacher
    • Research and Development Consultant
    • Database administrator
    • Forensic computer analyst
    • IT technical support officer
    • Communications Specialist
    • Systems analyst
    • Brand Strategist

    @. The History of Software Engineering

    Software engineering has evolved steadily from its founding days in the 1940s until today in the 2023s.

    Applications have evolved continuously.

    The ongoing goal to improve technologies and practices, seeks to improve the productivity of practitioners and the quality of applications to users.

    @. 1945 to 1965: The Origins:

          The term software engineering first was used in the late 1950s and early 1960s.

          The NATO Science Committee sponsored two conferences on software engineering in 1968 and 1969, which gave the field its initial boost.

    Many believe these conferences marked the official start of the profession.

          Role of women: In the 1940s, 1950s, and 1960s, software was often written by women.

    Men often filled the highest prestige hardware engineering roles.

    Grace Hopper and many other unsung women filled many programming jobs during the first several decades of software engineering.

          1965 to 1985: The Software Crisis:

    Software engineering was spurred by the so-called software crisis of the 1960s, 1970s and 1980s, which identified many of the problems of software development. Many software projects ran over budget and schedule. Some projects caused property damage. A few projects caused loss of life.

          1985 to Present: No Silver Bullet:

          For decades, solving the software crisis was paramount to researchers. Seemingly, they trumpeted every new technology and practice from the 1970s to the 1990s as a silver bullet to solve the software crisis.

          Different tools, discipline, formal methods, process, and professionalism were touted as silver bullets.

          Structured programming, object-oriented programming, CASE tools, Ada, documentation, standards, UML, and different models.

    Such as: CMM, code of ethics, licenses and professionalism were touted as silver bullets.

          1990-1999: The Internet:

    The rise of the Internet led to very rapid growth in the demand for international information display/e-mail systems on the World Wide Web. The growth of browser usage, running on the HTML language, changed the way in which information-display and retrieval was organized.

          2000-Present: Lightweight Methodologies.

    With the expanding demand for software in many smaller organizations, the need for inexpensive software solutions led to the growth of simpler, faster methodologies that developed running software, from requirements to deployment, quicker & easier.

    The use of rapid- prototyping evolved to entire lightweight methodologies. Such as: Extreme Programming (XP), which attempted to simplify many areas of software engineering, including requirements gathering and reliability testing for the growing, vast number of small software systems.

          Early 2000s: Use of integrated development environments becomes more common. Use of stand- a

          Early 2000s: Use of integrated development environments becomes more common. Use of stand- alone CASE tools declines.

    Use of the UML becomes widespread.

    Increasing use of scripting languages such as Python and PERL for software development.

    C# developed as a competitor to Java.

    Agile methods proposed and many companies experiment with these approaches.

          2010: Emergence of web-based systems and software as a service.

    Services become the dominant approach to reuse and agile methods emerge into the mainstream. Agile approaches

    Evolve to cope with larger system development.

    An app industry emerges to develop software for increasingly capable mobile devices. Government and enterprise systems continue to grow in size.

    @. Some myths and realities of Software:

    The development of software requires dedication and understanding on the developers’ part.

    Many software problems arise due to myths that are formed during the initial stages of software development.

    Unlike ancient folklore that often provides valuable lessons, software myths propagate false beliefs and confusion in the minds of management, users and developers.

    Managers, who own software development responsibility, are often under strain and pressure to maintain a software budget, time constraints, improved quality, and many other considerations. Common management myths are listed below.

          Management Myths:

    #. Myth:

    If the project is behind schedule, increasing the number of programmers can reduce the time gap.

    #. Reality:

    Adding more people to a development team won’t necessarily speed up the delivery, rather it can slow it down even more.

    New workers take longer to learn about the project as compared to those already working on the project.

    #. Myth:

    Using the latest, cutting-edge tools or technology guarantees better results then the quality of the software produced by the company will also be great.

    #. Reality:

    It is not true because the quality of the software depends moreover on its developers and the techniques and logic used to build it.

    Although the infrastructure and quality of computers and tools is a factor on which the quality of the software depends, it cannot be completely determined by these factors.

    #. Myth:

    If the project is outsourced to a third party, the management can relax and let the other firm develop software for them.

    #. Reality:

    If an organization does not understand how to manage and control software projects internally, it will invariably struggle when it outsources software projects.

    @. Customer myths:

    #. Myth:

    Brief requirement stated in the initial process is enough to start development; detailed requirements can be added at the later stages.

    #. Reality:

    Starting development with incomplete and ambiguous requirements often leads to software failure.

    Instead, a complete and formal description of requirements is essential before starting development.

    #. Myth:

    Project requirements continually change, but change can be easily accommodated because software is flexible.

    #. Reality:

    Adding requirements at a later stage often requires repeating the entire development process.

    Change, when requested after software is in production, can be much more expensive than the same change requested earlier.

    This is because incorporating changes later may require redesigning and extra resources

    #. Myth:

    Software with more features is better software.

    #. Reality:

    It is a complete myth. Efficient and useful features in the software make it better from others.

    @.     Developer Myths:

    #. Myth:

    The success of a software project depends on the quality of the product produced.

    #. Reality:

    The quality of programs is not the only factor that makes the project successful instead the documentation and software configuration also play a crucial role.

    #. Myth:

    Software engineering requires unnecessary documentation, which slows down the project.

    #. Reality:

    Software engineering is about creating quality at every level of the software project.

    Proper documentation enhances quality which results in reducing the amount of rework.

    #. Myth:

    Software quality can be assessed only after the program is executed.

    #. Reality:

    The quality of software can be measured during any phase of development process by applying some quality assurance mechanism. One such mechanism is formal technical review that can be effectively used during each phase of development to uncover certain errors.

    #. Myth:

    Once the software is created, the job is completed.

    #. Reality:

    This is the biggest myth of all. Software always requires maintenance throughout its lifetime until it gets retired.

    There’s always something to fix, change, or improve.

    Thanks for your time!

  • OOP Basic in Java | Object Oriented Programming

    OOP Basic in Java | Object Oriented Programming

    What is object-oriented programming (OOP)?

    Object-oriented programming (OOP) is a computer programming model that organizes software design around data, or objects, rather than functions and logic.

    An object can be defined as a data field that has unique attributes and behavior.

    OOP focuses on the objects that developers want to manipulate rather than the logic required to manipulate them. This approach to programming is well suited for software that is large, complex and actively updated or maintained. This includes programs for manufacturing and design, as well as mobile applications. For example, OOP can be used for manufacturing system simulation software.

    Basic features of SPM

    • Emphasis on doing algorithms.
    • Large Programs are divided into smaller programs known as Functions
    • Most of the function shares global data.
    • Data move around the system globally from function to function.
    • Function transfers the data from one form to another.
    • Employs top-down approach of Programming

    Example: C, Pascal, FORTRAN

    Problems with Structured Programming Methodology (SPM)

    • Reach their limit when project becomes too large.
    • Large program became more complex.
    • Functions have unrestricted access to global data.

    The striking features of OOP

    • Emphasis on data rather than the procedure.
    • Programs are centered on objects.
    • Data are hidden and can’t be accessed by external functions
    • Object may communicate with each other through methods (functions).
    • New data & functions can be easily added whenever necessary.

    Concepts of OOP

    • Object
    • Class
    • Methods
    • Instance Variables (Properties)

    01. Object

    • Real world entity.
    • Bundle of related variables and functions (also known methods).
    • Objects share two characteristics:
    1. Properties / State
    2. Method / Behavior (Functionalities)

    Two characteristics of Object

    • Objects share two characteristics:
    1. Properties / State 
    • State is a well-defined condition of an item. 
    • A state captures the relevant aspects of an   object
    1. Method / Behavior (Functionalities)
    • Behavior is the observable effects of an operation or event

    Example

    Object:            House

    States:            Color and Location

    Behaviors:   Close/open doors

    02. Class

    A class can be defined as a template/blueprint of an object that describes the behaviors/states that object.

    Detailing Objects

    Account:

    Has : A/C Number, Balance, Opening Date, Account Holder details

    Does: Deposit money, Withdraw money

    Employee

    Branch:

    Has: Name, Location, No of accounts

    Does: Create new accounts, make transaction

    Employee:

    Has: name, id, email, salary

    Does: Handle banking transactions

    Account Holder:

    Has: name, contact
    no, accounts

    Does: Handle banking transactions

    Basic concepts of OOP

    • Object
    • Class
    • Methods
    • Instance Variables

    Object

    • Real world entity.
    • Bundle of related variables and functions (also known methods).
    • Objects share two characteristics:
    1. Properties / State
    2. Method / Behavior (Functionalities)

    Class

    A class can be defined as a template/blueprint of an object that describes the behaviors/states that object.

    Methods

    • A method is basically a behavior.
    • A class can contain many methods.
    • It is in methods where the logics are written, data is manipulated and all the actions are executed.

    Instance Variables

    Each object has its unique set of instance variables

    Such as, 

    A Box can have Height, Width, Depth

    These are the Instance variables of that box.

    An object’s state is created by the values assigned to these instance variables.

    Basic Features of OOP

    • Abstraction
    • Encapsulation
    • Polymorphism
    • Inheritance

    Inheritance

    • Inheritance is when an object acquires the property of another object.
    • Inherited class is called as parent class or super class or base class
    • Class that inherits a parent class is called as child class or sub class or derived class

    Thank You!

  • HTML Learning Tutorial P001

    HTML Learning Tutorial P001

    What is HTML?

    • HTML stands for Hyper Text Markup Language
    • HTML is the standard markup language for creating Web pages
    • HTML describes the structure of a Web page
    • HTML consists of a series of elements
    • HTML elements tell the browser how to display the content
    • HTML elements label pieces of content such as “this is a heading”, “this is a paragraph”, “this is a link”, etc.

    A Simple HTML Document

    <!DOCTYPE html>
    <html>
    <head>
    <title>Page Title</title>
    </head>
    <body>
    <h1>My First Heading</h1>
    <p>My first paragraph.</p>
    </body>
    </html>
    
    

    Example Explained

    • The <!DOCTYPE html> declaration defines that this document is an HTML5 document
    • The <html> element is the root element of an HTML page
    • The <head> element contains meta information about the HTML page
    • The <title> element specifies a title for the HTML page (which is shown in the browser’s title bar or in the page’s tab)
    • The <body> element defines the document’s body, and is a container for all the visible contents, such as headings, paragraphs, images, hyperlinks, tables, lists, etc.
    • The <h1> element defines a large heading
    • The <p> element defines a paragraph

    What is an HTML Element?

    An HTML element is defined by a start tag, some content, and an end tag:

    <tagname> Content goes here… </tagname>

    The HTML element is everything from the start tag to the end tag:

    <h1>My First Heading</h1>

    <p>My first paragraph.</p>

    Start tagElement contentEnd tag
    <h1>My First Heading</h1>
    <p>My first paragraph.</p>
    <br>nonenone

    Note: The content inside the <body> section will be displayed in a browser. The content inside the <title> element will be shown in the browser’s title bar or in the page’s tab.

    They are as follows:

    ElementMeaningPurpose
    <b>BoldHighlight important information
    <strong>StrongSimilarly to bold, to highlight key text
    <i>ItalicTo denote text
    <em>Emphasised TextUsually used as image captions
    <mark>Marked TextHighlight the background of the text
    <small>Small TextTo shrink the text
    <strike>Striked Out TextTo place a horizontal line across the text
    <u>Underlined TextUsed for links or text highlights
    <ins>Inserted TextDisplayed with an underline to show an inserted text
    <sub>Subscript TextTypographical stylistic choice
    <sup>Superscript TextAnother typographical presentation style

    These tags must be opened and closed around the text in question.

    HTML Attributes Reference Guide

    The HTML attributes section is designed to allow you to get up close and personal with the HTML attributes that you know and love while introducing you to some advanced attributes along the way.

    Our most popular attributes include:

    <img src=""> — Learn how to pick the image to display.

    <img alt=""> — This sets the name of the image for those who can’t see the image for one reason or another.

    <a target=""> – Links don’t have to fill the current page. There are other, often better, options.

    <a href=""> — The basic link attribute sets where it will transport the user to.

    <body background-*=""> — Learn to set a webpage’s background color, image, or more.

    <table bordercolor=""> — Find out how to set the border color of your tables.

    HTML History

    Since the early days of the World Wide Web, there have been many versions of HTML:

    YearVersion
    1989Tim Berners-Lee invented www
    1991Tim Berners-Lee invented HTML
    1993Dave Raggett drafted HTML+
    1995HTML Working Group defined HTML 2.0
    1997W3C Recommendation: HTML 3.2
    1999W3C Recommendation: HTML 4.01
    2000W3C Recommendation: XHTML 1.0
    2008WHATWG HTML5 First Public Draft
    2012WHATWG HTML5 Living Standard
    2014W3C Recommendation: HTML5
    2016W3C Candidate Recommendation: HTML 5.1
    2017W3C Recommendation: HTML5.1 2nd Edition
    2017W3C Recommendation: HTML5.2

    Is there an equally simple way for sub-directories? e.g. from jakariaa.com/jakaria/index.html to mydomain.com/jakaria

    You can use <a href="/#jakaria">Md Jakaria Nur</a> to link to a specific part of your page as well jakariaa.com/index.html
    <a href="/">Home</a>
    <title>My Page Title</title>
    <link rel="icon" type="image/x-icon" href="/images/favicon.ico">

    Please Read HTML Primary Concept Before Starting HTML Basic Concept

    HTML Documents

    All HTML documents must start with a document type declaration: <!DOCTYPE html>.

    The HTML document itself begins with <html> and ends with </html>.

    The visible part of the HTML document is between <body> and </body>.

    Example

    <!DOCTYPE html>
    <html>
    <head>
    <tittle>Md Jakaria Nur</tittle>
    </head>
    <body>
    <h1>My First Heading</h1>
    <p>My first paragraph.</p>
    </body>
    </html>

    The <!DOCTYPE> Declaration

    The <!DOCTYPE> declaration represents the document type, and helps browsers to display web pages correctly.

    It must only appear once, at the top of the page (before any HTML tags).

    The <!DOCTYPE> declaration is not case sensitive.

    The <!DOCTYPE> declaration for HTML5 is: <!DOCTYPE html>

    HTML Headings

    HTML headings are defined with the <h1> to <h6> tags.

    <h1> defines the most important heading. <h6> defines the least important heading:

    Example

    <h1>This is heading 1</h1>
    <h2>This is heading 2</h2>
    <h3>This is heading 3</h3>

    <h4>This is heading 4</h4>

    <h5>This is heading 5</h5>

    <h6>This is heading 6</h6>

    HTML Paragraphs

    HTML paragraphs are defined with the <p> tag:

    Example

    <p>This is a paragraph.</p>
    <p>This is another paragraph.</p>

    HTML Links

    HTML links are defined with the <a> tag:

    Example

    <a href=”https://jakariaa.com”>JakariaA</a>

    HTML Images

    HTML images are defined with the <img> tag.

    The source file (src), alternative text (alt), width, and height are provided as attributes:

    Example

    <img src=”jakariaa.jpg” alt=”jakariaa.com” width=”500″ height=”500″>

    HTML Form

    HTML Form – 01

    <!DOCTYPE html>
    <html>
    <body>
    <h2>HTML Forms</h2>
    <form action="/action_page.php">
    <label for="fname">First name:</label><br>
    <input type="text" id="fname" name="fname" value="John"><br>
    <label for="lname">Last name:</label><br>
    <input type="text" id="lname" name="lname" value="Doe"><br><br>
    <input type="submit" value="Submit">
    </form>
    <p>If you click the "Submit" button, the form-data will be sent to a page called 
    "/action_page.php".</p>
    </body>
    </html>
    
    
    
    

    Navigation bar – 01

    <!DOCTYPE html>
    <html>
    <head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" 
    href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    <style>
    body {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;}
    .topnav {
    overflow: hidden;
    background-color: #333;}
    .topnav a {
    float: left;
    display: block;
    color: #f2f2f2;
    text-align: center;
    padding: 14px 16px;
    text-decoration: none;
    font-size: 17px;}
    .topnav a:hover {
    background-color: #ddd;
    color: black;}
    .topnav a.active {
    background-color: DodgerBlue;
    color: white;}
    .topnav .icon {
    display: none;}
    @media screen and (max-width: 600px) {
    .topnav a:not(:first-child) {display: none;}
    .topnav a.icon {
    float: right;
    display: block;}}
    @media screen and (max-width: 600px) {
    .topnav.responsive {position: relative;}
    .topnav.responsive .icon {
    position: absolute;
    right: 0;
    top: 0;}
    .topnav.responsive a {
    float: none;
    display: block;
    text-align: left;}}
    </style>
    </head>
    <body>
    <div class="topnav" id="myTopnav">
    <a href="#home" class="active">Home</a>
    <a href="#news">News</a>
    <a href="#contact">Contact</a>
    <a href="#about">About</a>
    <a href="#about">About</a>
    <a href="javascript:void(0);" class="icon" onclick="myFunction()">
    <i class="fa fa-bars"></i>
    </a>
    </div>
    <div style="padding-left:16px">
    <h2>Responsive Topnav Example</h2>
    <p>Resize the browser window to see how it works.</p>
    </div>
    <script>
    function myFunction() {
    var x = document.getElementById("myTopnav");
    if (x.className === "topnav") {
    x.className += " responsive";
    } else {
    x.className = "topnav";}}
    </script>
    </body>
    </html>
    

    Thank You!