First of all you have to define a new Object. You can do that by adding your custom module.

Eg for new object:- file is ” custom_test.py”

from osv import osv,fields
from openerp.tools.translate import _

class custom_class(osv.osv):
_name=’custom.class’
_columns={
‘names’ : fields.char(‘Name’, size=128, required=True),
‘class’ : fields.char(string=’Class’, required=True),
‘code’ : fields.char(string=’Code’),
}

custom_class()

class custom_subject(osv.Model):
_name = “custom.subject”
_description = “Subjects”
_columns = {
‘name’: fields.char(‘Name’, size=64, required=True),
‘code’: fields.char(‘Code’, size=12, required=True),
‘maximum_marks’: fields.integer(“Maximum marks”, size=5),
‘minimum_marks’: fields.integer(“Minimum marks”, size=5),
‘weightage’: fields.integer(“Weightage”, size=10),
‘is_practical’:fields.boolean(‘Is Practical’, help=’Check this if subject is practical.’),
‘no_exam’ : fields.boolean(“No Exam”, help=’Check this if subject has no exam.’),

}
custom_subject()

Then you have to define your view  file

Steps to add menu item:-

1. define your menu item

Eg:

<menuitem   icon=”terp-project” id=”my_test_menu”   name=”My Test” sequence=”4″ action=”action_my_form”/>

**This is your main menu item that shows in your tab

2. define your action

Eg:

<record model=”ir.actions.act_window” id=”action_my_form”>
<field name=”name”>Class</field>
<field name=”res_model”>custom.class</field>
<field name=”view_type”>form</field>
<field name=”view_id” ref=”my_test_form” />
<field name=”view_mode”>tree,form</field>
</record>

**here i defined action for my main menu item and specified its view types

3. then you can link your views to action

Eg:

<record id=”action_my_form_tree” model=”ir.actions.act_window.view”>
<field name=”view_mode”>tree</field>
<field name=”view_id” ref=”my_test_tree”/>
<field name=”act_window_id” ref=”action_my_form”/>
</record>

**here i linked my tree view to action, you can link your each view like this,ie form,search etc….

My custom view file “custom_test_view.xml” as follows:

<?xml version=”1.0″ encoding=”utf-8″?>
<openerp>
<data>

<record model=”ir.ui.view” id=”my_test_form”>
<field name=”name”>my.test.form</field>
<field name=”model”>custom.class</field>
<field name=”arch” type=”xml”>
<form string=”Class Information” version=”7.0″>
<sheet>
<group col=”4″ colspan=”4″>
<field name=”names” />
<field name=”class” />
<field name=”code” />
</group>
</sheet>
</form>
</field>
</record>

<record model=”ir.ui.view” id=”my_test_tree”>
<field name=”name”>my.test.tree</field>
<field name=”model”>custom.class</field>
<field name=”arch” type=”xml”>
<tree string=”Class”>
<field name=”class”/>
<field name=”code”/>
</tree>
</field>
</record>

<record model=”ir.ui.view” id=”view_custom_subject_form”>
<field name=”name”>custom.subject.form</field>
<field name=”model”>custom.subject</field>
<field name=”arch” type=”xml”>
<form string=”Subjects” version=”7.0″>
<sheet>
<group col=”4″ colspan=”4″>
<field name=”name” placeholder=”Name”/>
<field name=”code” placeholder=”Code”/>
<field name=”maximum_marks” />
<field name=”minimum_marks” />
<field name=”weightage” />
<field name=”is_practical”/>
<field name=”no_exam”/>
</group>

</sheet>
</form>
</field>
</record>

<record model=”ir.ui.view” id=”view_custom_subject_tree”>
<field name=”name”>custom.subject.tree</field>
<field name=”model”>custom.subject</field>
<field name=”arch” type=”xml”>
<tree string=”Subjects”>
<field name=”name”/>
<field name=”code”/>
<field name=”maximum_marks”/>
<field name=”minimum_marks”/>
<field name=”weightage”/>
<field name=”no_exam”/>
</tree>
</field>
</record>

<record model=”ir.actions.act_window” id=”action_my_form”>
<field name=”name”>Class</field>
<field name=”res_model”>custom.class</field>
<field name=”view_type”>form</field>
<field name=”view_id” ref=”my_test_form” />
<field name=”view_mode”>tree,form</field>
</record>

<record id=”action_my_form_tree” model=”ir.actions.act_window.view”>
<field name=”view_mode”>tree</field>
<field name=”view_id” ref=”my_test_tree”/>
<field name=”act_window_id” ref=”action_my_form”/>
</record>

<record model=”ir.actions.act_window” id=”action_subjects_form”>
<field name=”name”>Subjects</field>
<field name=”res_model”>custom.subject</field>
<field name=”view_type”>form</field>
<field name=”view_id” ref=”view_custom_subject_form”/>
<field name=”view_mode”>tree,form</field>
</record>

<record id=”action_view_custom_subjects_tree” model=”ir.actions.act_window.view”>
<field name=”view_mode”>tree</field>
<field name=”view_id” ref=”view_custom_subject_tree”/>
<field name=”act_window_id” ref=”action_subjects_form”/>
</record>

<record id=”action_view_custom_subjects_form” model=”ir.actions.act_window.view”>
<field name=”view_mode”>form</field>
<field name=”view_id” ref=”view_custom_subject_form”/>
<field name=”act_window_id” ref=”action_subjects_form”/>
</record>

<menuitem
icon=”terp-project” id=”my_test_menu”
name=”My Test” sequence=”4″
action=”action_my_form”/>

<menuitem
name=”Subjects” parent=”my_test_menu”
id=”menu_subjects”
sequence=”2″/>

<menuitem name=”Subjects Details” parent=”menu_subjects”
id=”menu_sub_subject” action=”action_subjects_form”/>

</data>
</openerp>

Source: How do you make new menu items and attach them to models,views & actions? | Odoo