Latest Post

Application programmaing Interface (API)

Java API is not but a set of classes and interfaces that comes with the JDK. Java API is actually a huge collection of library routines that performs basic programming tasks such as looping, displaying GUI form etc. In the Java API classes and interfaces are packaged in packages. All these classes are written in Java programming language and runs on the JVM. Java classes are platform independent but JVM is not platform independent. You will find different downloads for each OS.

Java Collections API - Presentation:


SHARE THIS POST

Author: Robin Saxena
I m computer science student and i Interested in cs, c/c++ programming, java, html ,Photography , Music , and generally connecting with others.

Java Environment

JDK contains tools that are required to build and execute Java applications and applets. JDK can be freely downloaded from the sun's website.
  • javac _Java Compiler
The Java source code will be compiled by this compiler, which checks for the syntax of the program and will list out errors if any, or will generate the byte code. The Java compiler generate the .class file (byte code).
  • java –Java interpreter
Java interpreter reads the .class file of the application programs that contains the byte code and executes the code in a local machine.
  • appletviewer
The applet viewer runs the Java applets
  • javadoc_ Java Documentation
 Document generator that can be used to create documents for large source codes.
  • javah_ C header
 Produces header files that are used for writing native methods.
  • javap_ Disassembler
Helps to convert byte code into program description.
  • jdb-Debugger
 Helps to find errors in our program.

For free JDK download visit :-


New Features Of JDK 7 - Presentation: 

 


SHARE THIS POST

Author: Robin Saxena
I m computer science student and i Interested in cs, c/c++ programming, java, html ,Photography , Music , and generally connecting with others.

Features of Java

  • Simple, Small and familiar
  • Compiled and interpreted
  • Platform independent and portable
  • Pure Object_Oriented
  • Distributed
  • Robust
  • Secure
  • High Performance
  • Multithreaded and Interactive
  • Dynamic and Extensible
 Platform Independent:
  • The concept of Write-once-run-anywhere (known as the Platform independent) is one of the important key feature of java language that makes java as the most powerful language. Not even a single language is idle to this feature but java is more closer to this feature.
  • The programs written on one platform can run on any platform provided the platform must have the JVM.
Simple, Small and Familier:
  • There are various features that makes the java as a simple language. Programs are easy to write and debug because java does not use the pointers explicitly.
  • It is much harder to write the java programs that can crash the system but we can not say about the other programming languages.
  • Java provides the bug free system due to the strong memory management. It also has the automatic memory allocation and deallocation system.
Object Oriented:
      To be an Object Oriented language, any language must follow at least the four characteristics.
   Inheritance         
          It is the process of creating the new classes and using the behavior of the existing classes by   extending
          them  just to  reuse  the existing code and adding the additional features as needed. 
   Encapsulation         
          It is the mechanism of combining the information and providing the abstraction.
   Polymorphism          
          As the name suggest one name multiple form, Polymorphism is the way of providing the different       
          functionality by the  functions  having the same name based on the signatures of the methods.
     Dynamic binding  
          Sometimes we don't have the knowledge of objects about their specific types  while writing our code. It is    
          the way  of providing the maximum functionality to a program about the specific type at runtime. 
  • As the languages like Objective C, C++ fulfills the above four characteristics yet they  are not fully object oriented languages because they are structured as well as object oriented languages.
  • But in case of java,  it is a fully Object Oriented language because object is at the outer most level of data structure in java. No stand alone methods, constants, and variables are there in java. Everything in java is object even the primitive data types can also be converted into object by using the wrapper class.
Robust:
  • Java has the strong memory allocation and automatic garbage collection mechanism. It provides the powerful exception handling and type checking mechanism as compare to other programming languages.
  • Compiler checks the program whether there any error and interpreter checks any run time error and makes the system secure from crash. All of the above features makes the java language robust.
Distributed:
  • The widely used protocols like HTTP and FTP are developed in java. Internet programmers can call functions on these protocols and can get access the files from any remote machine on the internet rather than writing codes on their local system.
Portable:
  • The feature Write-once-run-anywhere  makes the java language portable provided that the system must have interpreter for the JVM.
  • Java also have the standard data size irrespective of operating system or the processor. These features makes the java as a portable language.
Dynamic:
  • While executing the java program the user can get the required files dynamically from a local drive or from a computer thousands of miles away from the user just by connecting with the Internet.
Secure:
  • Java does not use memory pointers explicitly. All the programs in java are run under an area known as the sand box. Security manager determines the accessibility options of a class like reading and writing a file to the local disk.         
  • Java uses the public key encryption system to allow the java applications to transmit over the internet in the secure encrypted form. The bytecode Verifier checks the classes after loading.
Performance:
  • Java uses native code usage, and lightweight process called  threads. In the beginning interpretation of bytecode resulted the performance slow but the advance version of JVM uses the adaptive and just in time compilation technique that improves the performance.
Multithreaded:
  • As we all know several features of Java like Secure, Robust, Portable, dynamic etc; you will be more delighted to know another feature of Java which is Multithreaded.
  • Java is also a Multithreaded programming language. Multithreading means a single program having different threads executing independently at the same time.
  • Multiple threads execute instructions according to the program code in a process or a program. Multithreading works the similar way as multiple processes run on one computer.  
  • Multithreading programming is a very interesting concept in Java. In multithreaded programs not even a single thread disturbs the execution of other thread.
  • Threads are obtained from the pool of available ready to run threads and they run on the system CPUs. This is how Multithreading works in Java which you will soon come to know in details in later chapters.
Interpreted:
  • We all know that Java is an interpreted language as well. With an interpreted language such as Java, programs run directly from the source code. 
  • The interpreter program reads the source code and translates it on the fly into computations. Thus, Java as an interpreted language depends on an interpreter program.
  • The versatility of being platform independent makes Java to outshine from other languages. The source code to be written and distributed is platform independent. 
  • Another advantage of Java as an interpreted language is its error debugging quality. Due to this any error occurring in the program gets traced. This is how it is different to work with Java.

SHARE THIS POST

Author: Robin Saxena
I m computer science student and i Interested in cs, c/c++ programming, java, html ,Photography , Music , and generally connecting with others.

History of Java

  • The Java platform and language began as an internal project at Sun Microsystems in December 1990, providing an alternative to the C++/C programming languages. Engineer Patrick Naughton, James Gosling and Mike Sheridan were attempting to develop a new technology for programming next generation smart appliances (like set-top boxes!), which Sun expected to be a major new opportunity. It was called the Green project.

           James Gosling -Father of Java
The team originally considered using C++, but it was rejected for several reasons as follows:
  • Because they were developing an embedded system with limited resources, they decided that C++ demanded too large a footprint and that its complexity led to developer errors.
  • C/C++ does not have garbage collection. This means that programmers have to manually manage system memory - a difficult and error-prone task.
  • C/C++ also suffered from lack of portable facilities for security, distributed programming, and threading.
  • Finally, they wanted a platform that could be easily ported to all types of devices.
Initially, Gosling attempted to modify and extend C++ but soon abandoned that in favor of creating an entirely new language, which he called Oak, after the tree that stood just outside his office.
By the September of 1992, they were able to demonstrate portions of the new platform including the Green OS, the Oak language, the libraries, and the hardware.
Java was initially developed to write software for consumer electronic products like television, ovens etc. Later with the development of Internet and World Wide Web there was a need for a programming language that is platform independent, So Java gained popularity and became one of most popular language for Internet programming.

Java meets Internet
  • In June and July 1994, John Gage, the Director of Science for Sun, Gosling, Joy, Naughton, Wayne Rosing, and Eric Schmidt (the now CEO of Google) re-targeted the platform for the World Wide Web.  With the arrival of the first graphical web browser, Mosaic, they felt the Internet was on its way to evolving into a powerful, highly interactive medium. As a prototype, Naughton wrote a small browser, WebRunner, later renamed HotJava.
  • That year, the language was renamed Java after a trademark search revealed that Oak was used by another company. The first public release of Java and the HotJava browser was on 23 May 1995. Netscape browsers started to include Java support. On 9 January 1996, the JavaSoft group was formed by Sun Microsystems in order to develop the technology.
Major Java Versions
  • JDK (Java Development Kit) 1.0 was released on (January 23, 1996), JDK 1.1 was released on February 19, 1997. Major altereations were on the AWT event model, inner classes, JavaBeans and JDBC were added to the language.
  • J2SE 1.2 (December 8, 1998) — This and subsequent releases were rebranded Java 2. The version name "J2SE" (Java 2 Platform, Standard Edition) was used instead of JDK. J2EE (Java 2 Platform, Enterprise Edition) and J2ME (Java 2 Platform, Micro Edition) were available. Major additions included reflection, a Collections framework and the integration of the Swing graphical API into the core classes. Sun's JVM was equipped with a JIT compiler for the first time.
  • J2SE 1.3 (May 8, 2000) - Notable changes included the bundling of the HotSpot JVM, Java Sound, Java Naming and Directory Interface (JNDI) and Java Platform Debugger Architecture (JPDA).
  • J2SE 1.4 (February 6, 2002) — regular expressions modeled after Perl, exception chaining, an integrated XML parser and XSLT processor (JAXP), and Java Web Start.
  • J2SE 5.0 (September 30, 2004) — Internal version numbered 1.5. A number of significant new language features include the for-each loop, generics, autoboxing and var-args.
  • The current version, Java SE 6 (December 11, 2006) — is bundled with a database manager, facilitates the use of scripting languages (currently JavaScript) with the JVM and has Visual Basic language support.
  • As of this version, Sun replaced the name "J2SE" with Java SE and dropped the ".0" from the version number 6.0. Lots of GUI improvements including native UI enhancements to support the look and feel of Windows Vista and improvements to the Java Platform Debugger Architecture (JPDA) & JVM Tool Interface for better debuging were new featuers.
  • Java SE 7 — Codename Dolphin is in the early planning stages.
History of JAVA - Presentation:



SHARE THIS POST

Author: Robin Saxena
I m computer science student and i Interested in cs, c/c++ programming, java, html ,Photography , Music , and generally connecting with others.

Java

Java is a programming language expressly designed for use in the distributed environment of the Internet. It was designed to have the "look and feel" of the C++ language, but it is simpler to use than C++ and enforces an object-oriented programming model. Java can be used to create complete applications that may run on a single computer or be distributed among servers and clients in a network. It can also be used to build a small application module or applet for use as part of a Web page. Applets make it possible for a Web page user to interact with the page.

Java - Presentation:
 

 

 

SHARE THIS POST

Author: Robin Saxena
I m computer science student and i Interested in cs, c/c++ programming, java, html ,Photography , Music , and generally connecting with others.

Concepts of Object Oriented Programming

The Object Oriented Programming is a  type of programming in which programmers define not only the data type of a data structure, but also the types of operations (functions) that can be applied to the data structure. In this way, the data structure becomes an object that includes both data and functions. In addition, programmers can create relationships between one object and another.

The concepts used in OOPs are
  • Objects
  • Classes
  • Data Abstraction and Data Encapsulation
  • Inheritance
  • Polymorphism
  • Dynamic Binding
  • Message Passing
Objetcs
  • Object is defined as the basic run time entity that contains data and its related methods.
  • Object may be a person, place or any item that the program has to handle.
  • The methods are operating on the data.
  • The objects may be either physical or logical.
  • When a program is executed, the objects interact by sending messages to one another.
Classes
  • A class is defined as a collection of Objects with same type of data and functions.
  • Once a class is defined we can create number of objects belonging to that class.
  • Class is a user defined data type
Data Abstraction
  • Abstraction refers to the act of representing essential features without including the back ground details.
  • Also by the feature of data abstraction it is possible to create user defined data types and thus increase the power of programming language
Data encapsulation
  • Data Encapsulation is the process of combining data and functions into a single unit called class.
  • By this method one cannot access the data directly.
  • Data is accessible only through the functions present inside the class.
  • Data Encapsulation provides data hiding.
Inheritance
  • Inheritance is a process of deriving new classes from existing classes.
  • The derived classes contain all attributes and functions of existing classes plus its own attributes and functions.
  • Existing class is called as Base class or Super class and inherited class is called as Derived class or Sub class.
  • The inheritance concept gives data reusability
Polymorphism
  • Polymorphism means the ability to take more than one forms.
  • An operation may exhibit different behavior in different instances.
  • The behavior depends on the type of data used in the operation.
Dynamic Binding
  • Binding refers to the connection between the function call and the corresponding function code to be executed.
  • Dynamic binding means code associated with the given procedure call is not known until run time.
Message Passing
  • Message passing is a process of sending request to execute a function for an object.
  • Message passing involves specifying the name of the object, name of the method and the information to be sent. 
Object Oriented Programming Concepts - Presentations:





SHARE THIS POST

Author: Robin Saxena
I m computer science student and i Interested in cs, c/c++ programming, java, html ,Photography , Music , and generally connecting with others.

Paradigms of Programming Languages

The Paradigms of programming Language gives the model to the programmer to write the programs.The different Paradigms of programming languages are
  1. Unstructed Programming (or) Monolithic Programming
  2. Procedural Programming
  3. Structural Programming
  4. Object Oriented Programming

 Monolithic Programming:
  • In this whole problem is solved as a single block.
  • All the data are global and there is no security.
  • To share the codes jumps are allowed and so contain lot of go to statements.
  • This is suitable only for small problem.
  • Difficult to follow and correct errors
                         Eg, Assembly Language, BASIC.

Procedural Programming:
  • The given problem is divided in to a number of sub problems depending upon its functionality.
  • The sub problems are called procedures or Methods.
  • Any procedure can be called at any point during the program execution.
  • The program has global and local variables.
  • Global variables can be only be used 




Features of procedure oriented Programming:
  1. Large Programs are divided in to small function or Procedure.
  2. Uses Top-Down programming Approach.
  3. Data moves freely from one function to another.
  4. Most of the functions share common data.
  5. Emphasis is given for algorithms.
Disadvantages:
  1. Very difficult identify which data is used by which function.
  2. Error Correction is difficult.
Structural Programming:
  • The program is divided into modules and the modules are then divided into functions.
  • The usage of goto statement is removed or reduced.
  • Each module can work independent of one another.
               Example: ADA, C++.




Object Oriented Programming:
  • The Program is divided into number of small units called Object. The data and function are build around these objects.
  • The data of the objects can be accessed only by the functions associated with that object.
  • The functions of one object can access the functions of other object.


Features:
  1. Emphasis is given on data rather than procedures.
  2. Problems are divided into objects.
  3. Data structures are designed such that they organize the object.
  4. Data and function are tied together.
  5. Data hiding is possible.
  6. New data and functions can be easily loaded.
  7. Object can communicate with each other using functions.
  8. Bottom-up programming approach is used
Difference between Structured and Object Oriented Programming
 
Structured Programming Object-oriented Programming
Top-down approach is followed. Bottom-up approach is followed.
Focus is on algorithm and control flow. Focus is on object model.
Program is divided into a number of sub modules or functions or procedures. Program is organized by having a number of classes and objects.
Functions are independent of each other. Each class is related in a hierarchical manner.
No designated receiver in the function call. There is a designated receiver for each message passing.
Views data and functions as two separate entities. Views data and functions as a single entity.
Maintenance is costly. Maintenance is relatively cheaper.
Software reuse is not possible. Helps in software reuse.
Function call is used. Message passing is used.
Function abstraction is used. Data abstaction is used.
Algorithm is given importance. Data is given importance.
Solution is solution-domain specific. Solution is problem-domain specific.
No encapsulation. Data and functions are separate. Encapsulation packages code and data altogether. Data and functionalities are put together in a single entity.
Relationship between programmer and program is emphasized. Relationship between programmer and user is emphasized.
Data-driven technique is used. Driven by delegation of responsibilities.

Programming Paradigms - Presentation:




SHARE THIS POST

Author: Robin Saxena
I m computer science student and i Interested in cs, c/c++ programming, java, html ,Photography , Music , and generally connecting with others.

Introduction to OOPs

OOP is a type of programming in which programmers define not only the data type of a data structure, but also the types of operations (functions) that can be applied to the data structure. In this way, the data structure becomes an object that includes both data and functions. In addition, programmers can create relationships between one object and another. For example, objects can inherit characteristics from other objects.



One of the principal advantages of object-oriented programming techniques over procedural programming techniques is that they enable programmers to create modules that do not need to be changed when a new type of object is added. A programmer can simply create a new object that inherits many of its features from existing objects. This makes object-oriented programs easier to modify.


To perform object-oriented programming, one needs an object-oriented programming language (OOPL). Java, C++ and Smalltalk are three of the more popular languages, and there are also object-oriented versions of Pascal.

Oop Introduction - Presentation:
 

SHARE THIS POST

Author: Robin Saxena
I m computer science student and i Interested in cs, c/c++ programming, java, html ,Photography , Music , and generally connecting with others.

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.

SHARE THIS POST

Author: Robin Saxena
I m computer science student and i Interested in cs, c/c++ programming, java, html ,Photography , Music , and generally connecting with others.

Software Requirements Specification

A Software requirements specification (SRS), a requirements specification for a software system, is a complete description of the behavior of a system to be developed and may include a set of use cases that describe interactions the users will have with the software. In addition it also contains non-functional requirements. Non-functional requirements impose constraints on the design or implementation such as performance engineering requirements, quality standards, or design constraints. 
                       The software requirements specification document enlists all necessary requirements that are required for the project development. To derive the requirements we need to have clear and thorough understanding of the products to be developed. This is prepared after detailed communications with the project team and customer.

SHARE THIS POST

Author: Robin Saxena
I m computer science student and i Interested in cs, c/c++ programming, java, html ,Photography , Music , and generally connecting with others.

Functional specification

In systems engineering a functional specification is a document that clearly and accurately describes the essential technical requirements for items, materials, or services including the procedures by which it can be determined that the requirements have been met. 

         Specifications help avoid duplication and inconsistencies, allow for accurate estimates of necessary work and resources, act as a negotiation and reference document for engineering changes, provide documentation of configuration, and allow for consistent communication among those responsible for the eight primary functions of Systems Engineering. 
                      They provide a precise idea of the problem to be solved so that they can efficiently design the system and estimate the cost of design alternatives. They provide guidance to testers for verification of each technical requirement.

Purpose  :
            There are many purposes for functional specifications. One of the primary purposes on team projects is to achieve some form of team consensus on what the program is to achieve before making the more time-consuming effort of writing source code and test cases, followed by a period of debugging. Typically, such consensus is reached after one or more reviews by the stakeholders on the project at hand after having negotiated a cost-effective way to achieve the requirements the software needs to fulfill. 

Process :
      In the ordered industrial software engineering life-cycle (waterfall model), functional specification describes what has to be implemented. The next, Systems architecture document describes how the functions will be realized using a chosen software environment. In non industrial, prototypical systems development, functional specifications are typically written after or as part of requirements analysis. When the team agrees that functional specification consensus is reached, the functional spec is typically declared "complete" or "signed off". After this, typically the software development and testing team write source code and test cases using the functional specification as the reference. While testing is performed, the behavior of the program is compared against the expected behavior as defined in the functional specification. 

Methods :
        One popular method of writing a functional specification document involves drawing or rendering either simple wire-frames or accurate, graphically designed UI screenshots. After this has been completed, and the screen examples are approved by all stakeholders, graphical elements can be numbered and written instructions can be added for each number on the screen example. For example, a login screen can have the username field labeled '1' and password field labeled '2,' and then each number can be declared in writing, for use by software engineers and later for beta testing purposes to ensure that functionality is as intended. The benefit of this method is that countless additional details can be attached to the screen examples.

SHARE THIS POST

Author: Robin Saxena
I m computer science student and i Interested in cs, c/c++ programming, java, html ,Photography , Music , and generally connecting with others.

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 :

SHARE THIS POST

Author: Robin Saxena
I m computer science student and i Interested in cs, c/c++ programming, java, html ,Photography , Music , and generally connecting with others.

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 .

SHARE THIS POST

Author: Robin Saxena
I m computer science student and i Interested in cs, c/c++ programming, java, html ,Photography , Music , and generally connecting with others.

Risk Classification

The key purpose of classifying risk is to get a collective viewpoint on a group of factors. These are the types of factors which will help project managers to identify the group that contributes the maximum risk.
A best and most scientific way of approaching risks is to classify them based on risk attributes. Risk classification is considered as an economical way of analyzing risks and their causes by grouping similar risks together into classes .

Software risks could be classified as internal or external. Those risks that come from risk factors within the organization are called internal risks whereas the external risks come from out of the organization and are difficult to control. Internal risks are project risks, process risks, and product risks. External risks are generally business with the vendor, technical risks, customers ,satisfaction, political stability and so on.

Some of most important risks in software engineering project are categorized as,

  •  Software requirement risks
  • Software cost risks
  • Software scheduling risk
  • Software quality risks

SOFTWARE REQUIREMENT RISKS

1. Lack of analysis for change of requirements.
2. Change extension of requirements
3. Lack of report for requirements
4. Poor definition of requirements
5. Ambiguity of requirements
7. Change of requirements
8. Inadequate of requirements
9. Impossible requirements
10. Invalid requirements

SOFTWARE COST RISKS

1. Lack of good estimation in projects
2. Unrealistic schedule
3. The hardware does not work well
4. Human errors
5. Lack of testing
6. Lack of monitoring
7. Complexity of architecture
8. Large size of architecture
9. Extension of requirements change
10. The tools does not work well
11. Personnel change, Management change, technology change, and environment change
12. Lack of reassessment of management cycle

SOFTWARE SCHEDULING RISKS

1. Inadequate budget
2 . Change of requirements and extension of requirements
3. Human errors
4. Inadequate knowledge about tools and techniques
5. Long-term training for personnel
6 .Lack of employment of manager experience
7. Lack of enough skill
8. Lack of good estimation in projects

SOFTWARE QUALITY RISKS

1. Inadequate documentation
2. Lack of project standard
3. Lack of design documentation
4. Inadequate budget
5. Human errors
6. Unrealistic schedule
7. Extension of requirements change
8. Poor definition of requirements
9. Lack of enough skill
10. Lack of testing and good estimation in projects
11. In adequate knowledge about techniques, programming language, tools, and so on.

SHARE THIS POST

Author: Robin Saxena
I m computer science student and i Interested in cs, c/c++ programming, java, html ,Photography , Music , and generally connecting with others.

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.

SHARE THIS POST

Author: Robin Saxena
I m computer science student and i Interested in cs, c/c++ programming, java, html ,Photography , Music , and generally connecting with others.

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.

SHARE THIS POST

Author: Robin Saxena
I m computer science student and i Interested in cs, c/c++ programming, java, html ,Photography , Music , and generally connecting with others.

Universal Gates

NAND Gate:
 
             The NAND gate represents the complement of the AND operation. Its name is an abbreviation of NOT AND.

             The graphic symbol for the NAND gate consists of an AND symbol with a bubble on the output, denoting that a complement operation is performed on the output of the AND gate.

The truth table and the graphic symbol of NAND gate is shown in the figure.



The truth table clearly shows that the NAND operation is the complement of the AND.

NOR Gate:

           The NOR gate represents the complement of the OR operation. Its name is an abbreviation of NOT OR.
           The graphic symbol for the NOR gate consists of an OR symbol with a bubble on the output, denoting that a
complement operation is performed on the output of the OR gate.

           The truth table and the graphic symbol of NOR gate is shown in the figure.

  
The truth table clearly shows that the NOR operation is the complement of the OR.

To build a basic gates using universal gates:

Using NAND Gate:

NAND Gate

Click the picture to see the flash Animation


Using NOR Gate:

NOR Gate
 
Click the picture to see the flash Animation
 

SHARE THIS POST

Author: Robin Saxena
I m computer science student and i Interested in cs, c/c++ programming, java, html ,Photography , Music , and generally connecting with others.