Wednesday, December 28, 2011

Android 4.0 Platform Highlights

Simple, beautiful, beyond smart

Android 4.0 builds on the things people love most about Android — easy multitasking, rich notifications, customizable home screens, resizable widgets, and deep interactivity — and adds powerful new ways of communicating and sharing.

Refined, evolved UI
UI
  • Refined animations and feedback throughout the system make interactions engaging and interesting. 
Lock Screen
  • An entirely new typeface optimized for high-resolution screens improves readability and brings a polished, modern feel to the user interface.
  • Virtual buttons in the System Bar let users navigate instantly to Back, Home, and Recent Apps. 
  • New lock screen actions -The lock screens now let users do more without unlocking. From the slide lock screen.
  • Users can jump directly to the camera for a picture or pull down the notifications window to check for messages. When listening to music, users can even manage music tracks and see album art.

Sunday, August 14, 2011

SRS structure for Web Site/Application


Chapter 1
SRS Document for . . . . . . . . .

1.     Introduction

1.1.Purpose/Problem Definition :

1.2.Scope of the Project :

1.3.References :

2.     Overall Description

2.1.Product perspective :

2.2.Product Functions :

2.2.1.      Customer Module :

2.2.2.      Administrative Module :

2.3.User Classes and Characteristics :

2.3.1.      Administrator :

2.3.2.      Customers :

2.3.3.      Casual Visitors :

2.4.Design and Implementation Constraints :

3.     External Interface Requirements :

SRS structure for Software Application


This is the basic structure of an SRS - Software Requirement Specification. The below given points are to be highlighted in detail in a SRS document, though explaining every point is not compulsory, it is recommended that they are mentioned.

 Introduction

1.1    Purpose Of This Document

1.2    Scope Of This Document

1.3    Overview

             General Description
             
              Functional Requirements

3.1    Description

3.2    Criticality

3.3    Technical Issues

3.4    Cost And Schedule

3.5    Risks

3.6    Dependencies With Other Requirements

       Interface Requirements

4.1    User Interfaces

4.2    GUI

4.3    CLI

4.4    API

4.5    Hardware  Interfaces

4.6    Software Interfaces

4.7    Communications Interfaces

       Performance Requirements

       Design Constraints

       Other Non-Functional Attributes

7.1    Security

7.2    Binary Compatibility

7.3    Reliability

7.4    Maintainability

7.5    Portability

7.6    Extensibility

7.7    Reusability

7.8    Application Compatibility

7.9    Resource Utilization

7.10Serviceability

       Operational Scenarios

       Preliminary Schedule
   
       Preliminary Budget 
                    
       Appendices

11.1Definitions, Acronyms, Abbreviations.

11.2References.

Friday, May 6, 2011

Step1: Creating Classes for UML Diagrams with their attributes and operations(return type and parameters)


Creating Classes
            Creating Classes is the very important step in creating UML diagrams. This is because it exponentially reduces the time you would require to model your diagrams. Study your problem statement and analyze it thoroughly. Identify the Classes . . .

There are 4 ways of identifying classes:

 1. Noun Phrase Method

         In this method you have to identify each and every noun in the problem statement and checklist it. Then try to eliminate them on the basis that they cannot become fully fledged classes; they are better as attributes of classes or that they are not required at all.

2. CRC - Class Responsibility Collaboration
         In this method you draw a CRC as shown below. This would help you to determine the functions of the Classes and other Classes that are connected to this Class. 


 The left Column consist of the Class’ member functions and attributes and the right column consists of its relationships with other columns.
3. Use Case Driven
         In this method you are expected to identify classes from use case scenarios. But in this case you will need to identify the scenarios first, which we will learn when we will see how to prepare a Use-Case Diagram.

4.Common Class Pattern Approach  
        This approach asks you to define Classes with fixed and universal functionalities. E.g. an ATM system Class in Banking Application. Various other patterns that may be defined are: Organization Class, People and Person, Devices, Places, etc.

 The best and relatively simpler approach to identifying classes, we would suggest, is the ‘Noun Phrase Approach’.

 Assuming that you have identified your Classes for your Problem Statement we should now see how to create a Class in Rational Rose, how to define its attributes, operations and functions, arguments and parameters, return type and relations with other Classes.
  
 


Thursday, May 5, 2011

Starting with UML Diagrams


         The Unified Modeling Language (UML) is used to specify, visualize, modify, construct and document the artifacts of an object-oriented software-intensive system under development. UML offers a standard way to visualize a system's architectural blueprints, including elements such as:

1. Activities
2. Actors
3. Business Processes
4. Database Schemas
5. (Logical) Components
6. Programming Language Statements
7. Reusable Software Components
  

           UML combines techniques from data modeling (entity relationship diagrams), business modeling (work flows), object modeling, and component modeling. It can be used with all processes, throughout the software development life cycle, and across different implementation technologies.
We would like to give you a hierarchy of diagrams.

1. Structural diagrams
1.1. Profile Diagram
1.2. Class Diagram
1.3. Composite structure Diagram
1.4. Component Diagram
1.5. Deployment Diagram
1.6. Object Diagram
1.7. Package Diagram
 
2. Behavior Diagrams
2.1. Activity Diagram
2.2. Use case Diagram
2.3. State Machine Diagram
2.4. Interaction Diagram
2.4.1 Sequence Diagram
2.4.2 Communication Diagram
2.4.3 Interaction Overview Diagram
2.4.4 Timing Diagram


In next post we would see how to create a diagram

Starting with Rational Rose


Starting with Rational Rose.

Working with Rational Rose could be more fun if you know the basics right. Rational Rose is a software that provides many features other than just UML modeling. It helps to control the versions, generate code from your UML diagrams, and assign specific users to specific diagrams.
Descriptions and definitions of various features of Rational Rose is what you would find in abundance on the net, but this is more specific to what you are searching. Let’s see what to do with Rational Rose. . .



It is very important to select an appropriate model based on our project, programming language, and OS platform. A more generic model that can be used on various platforms is the ‘rational unified process’.



Selecting the model will give you the modeling window where you are expected to draw your diagrams.


Read next posts to learn more.

Saturday, April 16, 2011

Binary Tree Array


import java.util.Scanner;

class NodeBT
{
    int info;
    boolean used;
}

public class BinaryTreeArray
{

    NodeBT node[]=new NodeBT[20];

    void MakeTree(int val)
    {
        node[0]=new NodeBT();
        node[0].info=val;
        node[0].used=true;
        for(int i=1;i<20;i++)
        {
            node[i]=new NodeBT();
            node[i].info=0;
            node[i].used=false;
        }
    }

    void setLeft(int p,int val)
    {

Binary Tree with Traversels– InOrder, PreOrder, PostOrder – (Recursive& Non-Recursive)


import java.util.Scanner;
import java.util.Stack;

public class Node
{
    int info;
    Node next,prev;
    Node left,right;
}

public class BinaryTree
{
    Node Insert(int val)
    {
        Node t=new Node();
        t.info=val;
        return(t);
    }
    void setLeft(Node p,int val)
    {
        if(p==null || p.left!=null)
            System.out.println("\nInvalid Insertion");
        else
            p.left=Insert(val);
    }
    void setRight(Node p,int val)
    {
        if(p==null || p.right!=null)
            System.out.println("\nInvalid insertion");
        else
            p.right=Insert(val);
    }
    void InRecur(Node Start)
    {

Circular Queue


import java.util.*;
public class CircularQueue
{
    int front,rear,size=5;
    int a[]=new int[size];

    CircularQueue()
    {
        front=rear=size-1;
    }

    void Insert(int n)
    {
        Ins:
        {
        if(rear==size-1)
            rear=0;
        else rear++;
        if(rear==front)
        {
            System.out.println("Overflow");
            break Ins;

Merging two Link List


import java.util.Scanner;
import java.util.Stack;
public class MergeList
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        SingleLL s1=new SingleLL();
        SingleLL s2=new SingleLL();
        int i,j;
        System.out.println("Enter 5 Elements for Link 1");
        for(i=0;i<5;i++)
            s1.AddEnd(in.nextInt());
        System.out.println("Enter 5 Elements for Link 2");
        for(i=0;i<5;i++)
            s2.AddEnd(in.nextInt());
        SingleLL s3=new SingleLL();
        s3=s1;
        s3.end.next=s2.start;
        Stack s=new Stack();
        s3.curr=s3.start;
        while(s3.curr!=null)

Double Link List with Operations - Add in Beginning, Add at End, Del at Beg, Del at End, Del any Element, Display, Search


import java.util.Scanner;

public class Node
{
    int info;
    Node next,prev;
    Node left,right;
}

public class DoubleLL
{
    Node start=new Node();
    Node end=new Node();
    Node curr=new Node();
    int num;
   
    DoubleLL()
    {
        start=null;
        end=null;
        num=0;
    }
    void AddBeg(int val)
    {
        Node t=new Node();
        t.info=val;

Single Link-List with Operations - Add in Beginning, Add at End, Del at Beg, Del at End, Del any Element, Display, Search


import java.util.Scanner;
public class SingleLL
{
    Node start=new Node();
    Node end=new Node();
    Node curr=new Node();
    int num;

    SingleLL()
    {
        start=null;
        end=null;
        num=0;
    }
   
    void AddBeg(int val)
    {
        Node t=new Node();
        t.info=val;
        if(num++==0)
            end=t;
        else
            t.next=start;
        start=t;
    }

    void AddEnd(int val)
    {

Stack Operations – Push, Pop & Display for Characters


import java.io.IOException;
import java.util.Scanner;
public class Stack_Char
{
    char arr[];
    int top;
   
    Stack_Char()
    {
        arr=new char[30];
        top=-1;
    }

    void Push(char val)
    {
        if(top==30)
            System.out.println("Stack OVerflow");
        else
            arr[++top]=val;
    }
   
    char Pop()
    {
        if(top==-1)
        {
            System.out.println("Stack Underflow");
            return 0;
        }

Stack Operations – Push, Pop & Display for Numbers


import java.util.Scanner;
public class Stack_Num
{
    double arr[];
    int top;
   
    void Push(double val)
    {
        if(top==9)
            System.out.println("Stack OVerflow");
        else
            arr[++top]=val;
    }
   
    double Pop()
    {
        if(top==-1)
        {
            System.out.println("Stack Underflow");
            return 0;
        }
        else
        {
            return arr[top--];
        }
    }


    void Display()
    {
        if(top==-1)
               System.out.println("Stack is Empty");
        else
        {
            System.out.println("Stack is");
            for(int i=0;i<=top;i++)
                System.out.print(arr[i] + "-");
        }
        System.out.println(" ");
    }

    boolean isEmpty()
    {
        if (top<0)
            return true;
        else
            return false;
    }

    Stack_Num()
    {
        top=-1;
        arr=new double[10];
    }

    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int ch,val;
        Stack_Num s=new Stack_Num();
        while(true)
        {
            System.out.println("Choose");
            System.out.println("1 : Push\t2 : Pop\t3 : Display\t4 : Exit");
            ch=in.nextInt();
            switch(ch)
            {
                case 1:
                {
                    System.out.println("Enter Value");
                    val=in.nextInt();
                    s.Push(val);
                    break;
                }
                case 2:
                {
                    System.out.println("Popped Value is " + s.Pop());
                    break;
                }
                case 3:
                {
                    s.Display();
                    break;
                }
                case 4:
                {
                    System.exit(0);
                }
                default:
                    System.out.println("Wrong Choice");
            }
        }
    }
}

Link List with Queue


import java.util.Scanner;

public class Node
{
    int info;
    Node next,prev;
    Node left,right;
}

public class QueueLL
{
    Node start=new Node();
    Node end=new Node();
    Node curr=new Node();
    int ch,num;
    Object obj=new Object();

    QueueLL()
    {
        start=null;
        end=null;
        num=0;
    }

    void Add(int val)
    {

Link-List with Stack


import java.util.Scanner;
public class StackLL
{
    Node start=new Node();
    Node top=new Node();
    Node curr=new Node();
    int ch,num;

    StackLL()
    {
        num=0;
        start=null;
        top=null;
    }

    void Push(int val)
    {
        Node t=new Node();
        t.info=val;
        t.next=null;
        if(num++==0)
            start=t;
        else
            top.next=t;
        top=t;

Depth First Search with Stack


import java.util.Scanner;
class Stack
{
    int stk[]=new int[10];
    int top;
    Stack()
    {
        top=-1;
    }
    void Push (int item)
    {
        if (top==9)
            System.out.println("Stack overflow");
        else
        stk[++top]=item;
    }
    boolean isEmpty()
    {
    if (top<0)
        return true;
    else
        return false;
    }
    int Pop()
    {
        if (isEmpty())
        {

Breadth First Search with Queue


import java.io.*;
import java.util.Scanner;
class Queue
{
    int items[]=new int[10];
    int front,rear;
    Queue()
    {
        front=0;
        rear=-1;
    }

    void Insert(int e)
    {
        if(rear==9)
            System.out.println("Queue overflow");
        else
            items[++rear]=e;
    }

    int Empty()
    {
        return(rear<front? 1:0);
    }

Friday, April 15, 2011

Sequential Search 2


import java.io.*;
class seqsearch
{
  public static void main(String args[]) throws IOException
  { searching x=new searching();
                DataInputStream in=new DataInputStream(System.in);
                int n=10,key=0;
                int a[]=new int[n];
                System.out.print("Enter number of elements ");
                n=Integer.parseInt(in.readLine());
               
                System.out.print("Enter elements");
               
                for(int i=0;i<n;i++)
                {
      a[i]=Integer.parseInt(in.readLine());
    }
   
    System.out.print("Enter number to be searched-");
   
    key=Integer.parseInt(in.readLine());
     
    int z=x.search(a,n,key);