Sunday, October 28, 2012
cost of quality
any activity that helps you find, prevent or fix defects in your products is included in the cost of quality
stakeholder
stakeholder
someone who has invested money into something, or who has some important connection with it, and therefore is affected by its success or failure
http://www.ldoceonline.com/dictionary/stakeholder
a stakeholder is anyone who is affected by the cost, time or scope of your project.
Project Selection Methods
Project Selection Methods
a project can be selected by using one or more project selection methods that fall into three categories:
1. Benefit measurement methods
2. Constrained optimization methods
3. Expert Judgment
Benefit Measurement Methods
These methods use comparative approaches to compare the benefits obtained from the candidate projects so that the project with the maximum benefit will be selected. These methods fall into three categories:
1. Scoring models
2. Benefit contributions and
3. Economic models.
Scoring Models
A scoring model evaluates projects by using a set of criteria with a weight or score assigned to each criterion.
Benefit Contributions
These methods are based on comparing the benefit contributions from different projects.
Economic Models
An economic model is used to estimate the economic efficiency of a project, and it involves a set of calculations to provide overall financial data about the project.
The common terms involved in economic models are explained in the following list.
Benefit Cost Ratio (BCR)
- This is the value obtained by dividing the benefit by the cost.
Cash flow
- Whereas cash refers to money, cash flow refers to both the money coming in and the money going out of an organization
Internal Return Rate (IRR)
- This is just another way of interpreting the benefit from the project
Present Value (PV) and Net Present Value (NPV)
- To understand these two concepts, understand that one rupee today can buy you more than what one rupee can buy next year. (Inflation)
Opportunity cost
- This refers to selecting a project over another due to the scarcity of resources
Discounted Cash Flow (DCF)
- The discounted cash flow refers to the amount that someone is willing to pay today in anticipation of receiving the cash flow in the future.
Return on Investment (ROI)
- The ROI is the percentage profit from the project.
Constrained Optimization Methods
Constrained optimization methods are concerned with predicting the success of the project. These methods are based on complex mathematical models that use formulae and algorithms to predict the success of a project
These models use the following kinds of algorithms:
• Linear
• Nonlinear
• Dynamic
• Integer
• Multiple objective programming
Expert Judgment (take a look)
Expert judgment is one of the techniques used in project management to accomplish various tasks, including project selection. It refers to making a decision by relying on expert advice from one or more of the following sources:
• Senior management
• An appropriate unit within the organization
• The project stakeholders, including customers and sponsors
• Consultants
• Professional and technical associations
• Industry groups
• Subject matter experts from within or outside of the performing organization
• Project management office (PMO)
The use of expert judgment is not limited to the project selection. It can be and is used in many processes, such as developing a project charter. Expert judgment can be obtained by using a suitable method, such as individual consultation, interview, survey, and panel group discussion.
http://pmpkiriakidis.wikidot.com/project-selection-methods
Saturday, October 27, 2012
Halo Effect
Halo Effect
Halo Effect is the assumption that because the person is good at a technology, he will be good as a project manager.
http://www.preparepm.com/notes/hr.html
communication channels
1. You are managing a telecom project. You have got two teams reporting to you. One team is responsible for equipment installation and the other team is responsible to commission and test that equipment. Both teams are working in parallel such that as soon as the installation teams finishes equipment installation at one site they move on to another site for installations and the commissioning and testing team start their activities on the newly installed site. The reporting structure is such that each of the teams has 5 engineers headed by a team lead. Each team member interacts with each other; however only the team leads interact with you. Both the team leads also interact with each other to synchronize their operations.
How many communication channels do you have in your project?
A. 33
B. 23
C. 42
D. 78
the answer is 33 and logic convinces (But the explanation is little misunderstanding, so I am putting in different words)
Here we have two independent teams.
Each team has 6 members, i.e., 5 engineers and one team lead.
Each team member is interacting with each other, so communication channels for each team are (6)(6-1)/2=15.
Both the team leads are communicating with you (PM) so there are two communication channels for this interaction.
Further since both the team leads are interacting with each other there is an another communication channel between them.
Hence the total communication channels in your project is 15+15+2+1=33
http://pmzilla.com/question-calculation-communication-channels-please-help-solution-0
- N(N-1)/2 – Formula for Number of Communication Channels
N(N-1)/2 is the formula to calculate the number of communication channels on a project where N=the number of team members/stakeholders on a project
http://projectmanagementessentials.wordpress.com/2010/02/02/nn-12-formula-for-number-of-communication-channels/
Herzberg's motivation-hygiene theory
- Herzberg's motivation-hygiene theory
The Two-factor theory (also known as Herzberg's motivation-hygiene theory and Dual-Factor Theory) states that there are certain factors in the workplace that cause job satisfaction, while a separate set of factors cause dissatisfaction. It was developed by Frederick Herzberg, a psychologist, who theorized that job satisfaction and job dissatisfaction act independently of each other
Two-factor theory distinguishes between:
Motivators (e.g. challenging work, recognition, responsibility) that give positive satisfaction, arising from intrinsic conditions of the job itself, such as recognition, achievement, or personal growth,and
Hygiene factors (e.g. status, job security, salary, fringe benefits, work conditions) that do not give positive satisfaction, though dissatisfaction results from their absence. These are extrinsic to the work itself, and include aspects such as company policies, supervisory practices, or wages/salary
http://en.wikipedia.org/wiki/Two-factor_theory
mcclelland's achievement theory
- mcclelland's achievement theory
David McClelland and his associates proposed McClelland’s theory of Needs / Achievement Motivation Theory. This theory states that human behaviour is affected by three needs - Need for Power, Achievement and Affiliation. Need for achievement is the urge to excel, to accomplish in relation to a set of standards, to struggle to achieve success. Need for power is the desire to influence other individual’s behaviour as per your wish. In other words, it is the desire to have control over others and to be influential. Need for affiliation is a need for open and sociable interpersonal relationships. In other words, it is a desire for relationship based on co-operation and mutual understanding
http://www.managementstudyguide.com/mcclellands-theory-of-needs.htm
Maslow's hierarchy of needs
Maslow's hierarchy of needs
Maslow's hierarchy of needs is a theory in psychology, proposed by Abraham Maslow in his 1943 paper "A Theory of Human Motivation"
http://en.wikipedia.org/wiki/Maslow%27s_hierarchy_of_needs
Douglas McGregor's X Y Theory
- Douglas McGregor's XY Theory
Douglas McGregor, an American social psychologist, proposed his famous X-Y theory in his 1960 book 'The Human Side Of Enterprise'. Theory x and theory y are still referred to commonly in the field of management and motivation, and whilst more recent studies have questioned the rigidity of the model, Mcgregor's X-Y Theory remains a valid basic principle from which to develop positive management style and techniques. McGregor's XY Theory remains central to organizational development, and to improving organizational culture.
McGregor's X-Y theory is a salutary and simple reminder of the natural rules for managing people, which under the pressure of day-to-day business are all too easily forgotten.
McGregor's ideas suggest that there are two fundamental approaches to managing people. Many managers tend towards theory x, and generally get poor results. Enlightened managers use theory y, which produces better performance and results, and allows people to grow and develop
http://www.businessballs.com/mcgregor.htm
- Motivation Theory - McGregor
Theory X workers could be described as follows:
- Individuals who dislike work and avoid it where possible
- Individuals who lack ambition, dislike responsibility and prefer to be led
- Individuals who desire security
Theory Y workers were characterised by McGregor as:
- Consider effort at work as just like rest or play
- Ordinary people who do not dislike work. Depending on the working conditions, work could be considered a source of satisfaction or punishment
- Individuals who seek responsibility
http://www.tutor2u.net/business/people/motivation_theory_mcgregor.asp
- Theory X and Theory Y
Theory X and Theory Y are theories of human motivation created and developed by Douglas McGregor at the MIT Sloan School of Management in the 1960s that have been used in human resource management, organizational behavior, organizational communication and organizational development. They describe two contrasting models of workforce motivation.
Theory X and Theory Y have to do with the perceptions managers hold on their employees, not the way they generally behave
http://en.wikipedia.org/wiki/Theory_X_and_Theory_Y
contract types
Contract Types and Risk | 1. Fixed Price 2. Cost-Reimbursable 3.Time & Material |
CR | Buyer has risk, as total cost are unknownYou are buying “what to do” from seller. |
Cost plus fee or Cost Plus Percentage of Cost (CPPC) | No valid for federal contracts. Sellers are not motivated to control cost, used when buyer can tell what is needed then what to do. Seller write SOW. Bad for buyer |
Cost Plus Fixed Fee (CPFF) | Used for research and development contracts (which generally have low level of detail in the scope); fixed fee can change if there is a change to the contract (usually through change orders). The risk rests with the buyer. This is the most common cost reimbursable contract. |
Cost Plus Incentive Fee CPIF) | Buyer and seller share in savings based on predetermined %s; long performance periods and substantial development and test requirements (incentive to the seller to perform on or ahead of time) Cost plus agreed fee plus a bonus for beating the objective |
Cost plus Award fee | Similar to CPIF but award amount is amount is determined in advance and apportioned out depending on performance. |
|
|
T & M | Used for small amount contract. Good if the buyer wants to be in full control and/or the scope is unclear/not detailed or work has to start quickly. Profit factor into the hourly rate. Fixed rate but variable total cost. They are open ended. |
Fixed price or Firm Fixed Price (FFP) | Buyer defines reasonably detailed specifications (e.g. SOW). Shift risk to seller. Good when deliverable is not a core competency. Fixed Price (FP) is the most common type of contract in the world. Seller is at risk. |
Fixed Price Plus Incentive Fee (FPIF) | Incentives for fixed price contract. The inventive is same as CPIF. High-value projects involving long performance periods |
Fixed Price Award Fee | “bonus” to the seller based on performance (e.g. 100K + 10K for every designated incremental quality level reached. Award fee is decided in advance. |
Fixed Price Economic Price Adjustment (FPEPA) | Allow Price increase if the contract is for multiple years |
Purchase Order | A form of contract that is normally unilateral and used for simple commodity purchases. It is simplest type of fixed price contract and is usually unilateral(Signed by one party instead of bilateral) |
Contract type Vs Risk | FP – FPIF – FPAF – FPEPA – T&M – CPIF – CPAF – CPFF – CPPC Fixed Price – T&M – Cost Reimbursable Buyer’s risk from low to high Seller’s risk from high to low |
http://www.pmpnotes.com/pmp-notes/procurement-management/
CONFLICT MANAGEMENT
- Win-Win, Win-Lose, and Lose-Lose Situations
Win-win, win-lose, and lose-lose are game theory terms that refer to the possible outcomes of a game or dispute involving two sides, and more importantly, how each side perceives their outcome relative to their standing before the game. For example, a "win" results when the outcome of a negotiation is better than expected, a "loss" when the outcome is worse than expected.
expectations determine one's perception of any given result.
Win-win outcomes occur when each side of a dispute feels they have won
Since both sides benefit from such a scenario, any resolutions to the conflict are likely to be accepted voluntarily
Win-lose situations result when only one side perceives the outcome as positive. Thus, win-lose outcomes are less likely to be accepted voluntarily.
Lose-lose means that all parties end up being worse off. An example of this would be a budget-cutting negotiation in which all parties lose money. In some lose-lose situations, all parties understand that losses are unavoidable and that they will be evenly distributed. In such situations, lose-lose outcomes can be preferable to win-lose outcomes because the distribution is at least considered to be fair
http://www.beyondintractability.org/bi-essay/win-lose
Resolving conflict rationally and effectively
We've all seen situations where different people with different goals and needs have come into conflict
The fact that conflict exists, however, is not necessarily a bad thing: As long as it is resolved effectively, it can lead to personal and professional growth.
Thomas-Kilmann Conflict Mode Instrument (TKI) which helps you to identify which style you tend towards when conflict arises.
http://www.mindtools.com/pages/article/newLDR_81.htm
- ACHIEVING EFFECTIVE CONFLICT MANAGEMENT
Thomas (1976) proposes that each of the five management styles identified may be effective depending on the situation. In fact, he matches the five conflict management styles with the appropriate situation as follows:
Avoidance
- When the issue is trivial
- When the costs outweigh the benefits of resolution
- To let the situation cool down
- When getting more information is imperative
- When others can solve the problem more effectively
- When the problem is a symptom rather than a cause
Compromise/sharing
- When the objectives are important, but not worth the effort or potential disruption likely to result from assertive behaviour
- When there is a "standoff"
- To gain temporary settlements to complex problems
- To expedite action when time is important
- When collaboration or competition fails
Competition/domination
- When quick, decisive action is essential, as in emergencies
- When critical issues require unpopular action, as in cost cutting
- When issues are vital to the welfare of the organization
- Against individuals who take unfair advantage of others
Accommodation
- When you find you have made a mistake
- When the issues are more important to others
- To build good will for more important matters
- To minimize losses when defeat is inevitable
- When harmony and stability are particularly important
- To allow subordinates a chance to learn from their mistakes
Collaboration/integration
- When both sets of concerns are so important that only an integrative solution is acceptable; compromise is unsatisfactory
- When the goal is to learn
- To integrate insights from individuals with different perspectives
- When consensus and commitment are important
- To break through ill feelings that have hindered relationships (pp. 101, 102)
http://www.mun.ca/educ/faculty/mwatch/vol1/treslan.html
- Team Conflict Management Strategies to Grow Your Organization
Defining Destructive and Creative Conflict
Destructive conflict is typically characterized by ineffective communication and work relationships leading to tension, argument, antagonism, or animus. Destructive conflict may take the form of mild team conflict, wider arguments or hostility, or even a dysfunctional senior leadership team. Left unaddressed, destructive conflict may spread throughout the work place. It reduces effectiveness and The PICAS Factors, and can tear apart an organization.
Constructive or creative conflict is characterized by effective communication and strong relationships. There is deep respect for and valuing of each other's ideas and perspectives. People have the mindset and skills to work together well with colleagues and customers of different cultural backgrounds. This builds The PICAS Factors and business success.
http://mdbgroup.com/conflict1.html
- Seven Strategies for Managing Conflict
Deal with it. Most people prefer to avoid conflict.
Conflict needs to be dealt with. If you ignore or avoid it, it can lead to increased stress and unresolved feelings of anger, hostility and resentment.
Think it through. Before addressing the person with whom you have a conflict, consider discussing the situation with an objective friend or family member
Talk it out, face to face. Meeting in person can be intimidating, but it is often the best way to go.
Use a mediator if necessary. If a situation is particularly volatile or troublesome and other efforts have not worked, you might invite a neutral third party, such as a supervisor, to act as a mediator if this is agreeable to all concerned
Apologize when appropriate. Be aware of your own part in creating the conflict. If you've done something wrong or inappropriate, be willing to acknowledge it and say you're sorry, even if the conflict is not entirely a result of your actions
Choose your battles. There always will be differing opinions and ways of doing things. Decide which issues you can live with and which need addressing
Work to minimize conflict. Take steps to minimize conflict at work before it happens
Work on your own communication skills. The ability to express yourself clearly will allow you to say what's on your mind, ask for what you want and need and get your point across
Avoid troublemakers as much as possible. They will suck you in and drag you down.
http://www.dcardillo.com/articles/sevenstrategies.html
- Conflict management
Conflict management involves implementing strategies to limit the negative aspects of conflict and to increase the positive aspects of conflict at a level equal to or higher than where the conflict is taking place
http://en.wikipedia.org/wiki/Conflict_management
- Resolving Conflict in Work Teams
http://www.innovativeteambuilding.co.uk/pages/articles/conflicts.htm
- Successful Team Conflict Management Strategies
http://www.life123.com/career-money/career-development/team-conflict/team-conflict-management-strategies.shtml
Gold-Plating
What Is Gold-Plating in Project Management?
Gold-Plating in Project Management is the act of giving the customer more than what he originally asked for. Gold plating is common in software projects, and is usually done by team members either on an individual or a collaborative basis, most of the times without the knowledge of the Project Manager.
Why Gold Plate?
Gold plating is giving the customer something that he did not ask for, something that wasn’t scoped, and often something that the he may not want. So why do it?
http://www.projectmanagementlearning.com/what-is-gold-plating-in-project-management.html
- Gold plating
Gold plating in software engineering or Project Management (or time management in general) refers to continuing to work on a project or task well past the point where the extra effort is worth the value it adds (if any). After having met the requirements, the developer works on further enhancing the product, thinking the customer would be delighted to see additional or more polished features, rather than what was asked for or expected. The customer might be disappointed in the results, and the extra effort by the developer might be futile
http://en.wikipedia.org/wiki/Gold_plating_%28software_engineering%29
Kaizen
- Kaizen
Kaizen Japanese for "improvement", or "change for the better" refers to philosophy or practices that focus upon continuous improvement of processes in manufacturing, engineering, and business management.
http://en.wikipedia.org/wiki/Kaizen
- What Is Kaizen?
In business management, kaizen is a Japanese tradition which is now used internationally, modified by each culture to best suit their own business environments. A literal translation of kaizen could be "to become good through change". At its most basic the concept of kaizen is one of restructuring and organizing every aspect of a system to ensure it remains at peak efficiency.
Kaizen is founded upon five primary elements:
Quality Circles: Groups which meet to discuss quality levels concerning all aspects of a company's running.
Improved Morale: Strong morale amongst the workforce is a crucial step to achieving long-term efficiency and productivity, and kaizen sets it as a foundational task to keep constant contact with employee morale.
Teamwork: A strong company is a company that pulls together every step of the way. Kaizen aims to help employees and management look at themselves as members of a team, rather than competitors.
Personal Discipline: A team cannot succeed without each member of the team being strong in themselves. A commitment to personal discipline by each employee ensures that the team will remain strong.
Suggestions for Improvement: By requesting feedback from each member of the team, the management ensures that all problems are looked at and addressed before they become significant.
Unlike many Western management techniques, which treat employees as numbers to be crunched for maximum efficiency, kaizen takes the opposite outlook, proposing essentially that a happy employee is a productive employee.
http://www.wisegeek.com/what-is-kaizen.htm#
Seven Basic Quality Tools
- Seven Basic Tools of Quality
The Seven Basic Tools of Quality is a designation given to a fixed set of graphical techniques identified as being most helpful in troubleshooting issues related to quality
They are called basic because they are suitable for people with little formal training in statistics and because they can be used to solve the vast majority of quality-related issues
The seven tools are:
Cause-and-effect (also known as the "fish-bone" or Ishikawa) diagram
Check sheet
Control chart
Histogram
Pareto chart
Scatter diagram
Stratification (alternately, flow chart or run chart)
http://en.wikipedia.org/wiki/Seven_Basic_Tools_of_Quality
- Seven Basic Quality Tools
Quality pros have many names for these seven basic tools of quality, first emphasized by Kaoru Ishikawa, a professor of engineering at Tokyo University and the father of “quality circles.”
Start your quality journey by mastering these tools, and you'll have a name for them too: "indispensable."
Cause-and-effect diagram (also called Ishikawa or fishbone chart): Identifies many possible causes for an effect or problem and sorts ideas into useful categories.
Check sheet: A structured, prepared form for collecting and analyzing data; a generic tool that can be adapted for a wide variety of purposes.
Control charts: Graphs used to study how a process changes over time.
Histogram: The most commonly used graph for showing frequency distributions, or how often each different value in a set of data occurs.
Pareto chart: Shows on a bar graph which factors are more significant.
Scatter diagram: Graphs pairs of numerical data, one variable on each axis, to look for a relationship.
Stratification: A technique that separates data gathered from a variety of sources so that patterns can be seen (some lists replace “stratification” with “flowchart” or “run chart”).
http://asq.org/learn-about-quality/seven-basic-quality-tools/overview/overview.html
- Basic Quality Tools
Most of the organizations use quality tools for various purposes related to controlling and assuring quality.
These quality tools are quite generic and can be applied to any condition.
There are seven basic quality tools used in organizations.
http://www.tutorialspoint.com/management_concepts/basic_quality_tools.htm
- run chart
A run chart is also known as run sequence plot. It is a graphical representation of observed data in a time sequence. The data generally represents the performance or output of a process. They are used to find anomalies in data that may help to detect factors that influence variability of a process. It is a simplest form of control chart as it depicts only the elementary measures of data over a period. These can also be created in Excel from the Ql Macros pull down menu
http://www.management-hub.com/project-management-tools-pert-gantt-run-chart.html
- Pareto Charts
Pareto Charts have been used in project management, especially Six Sigma, as a useful tool. The Pareto chart shows vertical bars (in descending order) and a line chart depicting the cumulative totals of categories. Pareto charts can be easily created in Microsoft Excel. Generally, Pareto charts are an important tool used in quality management - but when are you supposed to use these? There are at least four instances when creating a Pareto chart is advisable:
To analyze the frequency of defects in a process
To look at causes in a process
To figure out what the most significant problem in a process is
To communicate data with others
http://www.brighthubpm.com/project-planning/57119-when-do-you-need-to-use-a-pareto-chart/
- Cause-and-effect diagram (also called Ishikawa or fishbone chart): Identifies many possible causes for an effect or problem and sorts ideas into useful categories.
Control charts: Graphs used to study how a process changes over time.
Pareto chart: Shows on a bar graph which factors are more significant.
Scatter diagram: Graphs pairs of numerical data, one variable on each axis, to look for a relationship.
http://asq.org/learn-about-quality/seven-basic-quality-tools/overview/overview.html
- The run chart can be a valuable tool at the beginning of a project, as it reveals important information about a process before you have collected enough data to create reliable control limits.
https://www.pqsystems.com/qualityadvisor/DataAnalysisTools/run_chart.php
Direct and Manage Project Execution
- Direct and Manage Project Execution
Direct and Manage Project Execution is the process for "[...] executing the work defined in the project management plan to achieve the projects's requirements defined in the project scope statement"
Process Output
The Deliverables are the produced (but not conformed) results of the project
The Requested Changes "are request "[...] to expand or reduce project scope, to modify policies or procedures, to modify projct cost or budget, or to revise the project schedule [...]"
The Implemented Change Requests are the realized results of approved change requests
The Implemented Corrective Actions are the realized results of approved corrective actions
The Implemented Preventive Aactions are the realized results of approved preventive actions
The Implemented Ddefective Rrepair are the realized results of approved defective repair
The Work Performance Information are status information collected and documented by the team
http://www.mypmps.net/en/mypmps/knowledgeareas/integration/direct-manage-project-execution.html
Thursday, October 25, 2012
Closing Process Steps
In the closing phase you should do the following:
1. Get the formal sing off from customer (you can said it like a formal acceptance of the deliverable)
2. Write the Lessons Learnt
3. Complete the project archives. Project files (It includes information in the project activities, including project scope, cost, time, risk and change management.). Project closure documentation (if project is cancelled before time)
4. Release the team.
Item 2,3 are OPAs. (Organizational Process Assets). Some authors manage the project files different than the project archives.
In Ritta's is that last thing to be done is release the team, but before you should complete the project archives.
Example:
A project is considered closed, when
A) Clients accept the product
B) Lesson learned are completed
C) Archives are completed
D) Contract is finished
http://pmzilla.com/steps-closing-process
Project Kick-off Meeting
The agenda usually includes purpose of the project, deliverables and goals, key success factors of the project, communication plan, and the project plan.
http://www.tutorialspoint.com/management_concepts/project_kick_off_meeting.htm
Wednesday, October 24, 2012
Wireless Networking Protocols
IEEE 802.11 is a set of standards for implementing wireless local area network (WLAN) computer communication in the 2.4, 3.6 and 5 GHz frequency bands.
http://en.wikipedia.org/wiki/IEEE_802.11
the most prevalent is 802.11b. Equipment using 802.11b is comparitively inexpensive. The 802.11b wireless communication standard operates in the unregulated 2.4 Ghz frequency range. Unfortunately, so do many other devices such as cordless phones and baby monitors which can interfere with your wireless network traffic. The maximum speed for 802.11b communications is 11 mbps.
The newer 802.11g standard improves on 802.11b. It still uses the same crowded 2.4 Ghz shared by other common household wireless devices, but 802.11g is capable of transmission speeds up to 54 mbps
The 802.11a standard is in a whole different frequency range. By broadcasting in the 5 Ghz range 802.11a devices run into a lot less competition and interference from household devices. 802.11a is also capable of transmission speeds up to 54 mbps like the 802.11g standard, however 802.11 hardware is significantly more expensive.
Bluetooth devices trasnmit at relatively low power and have a range of only 30 feet or so. Bluetooth networks also use the unregulated 2.4 Ghz frequency range and are limited to a maximum of eight connected devices. The maximum transmission speed only goes to 1 mbps.
http://netsecurity.about.com/cs/wirelesssecurity/qt/qt_wifiprotocol.htm
- a wireless personal area network technology designed and marketed by the Bluetooth Special Interest Group aimed at novel applications in the healthcare, fitness, beacons,security, and home entertainment industries
Compared to Classic Bluetooth, Bluetooth Smart is intended to provide considerably reduced power consumption and cost while maintaining a similar communication range.
CSR Mesh protocol uses Bluetooth Smart to communicate with other Bluetooth Smart devices in the network. Each device can pass the information forward to other Bluetooth Smart devices creating a “mesh” effect. For example, switching off an entire building of lights from a single smartphone.
https://en.wikipedia.org/wiki/Bluetooth_low_energy
- Wi-Fi calling is nothing new; apps like Skype, Google Hangouts, Facebook Messenger and WhatsApp make it easier to use a phone to place calls and send texts over the internet and forgo mobile networks altogether.
Carriers are also adopting Wi-Fi calling themselves. Whether it's because they want to bolster their network coverage or improve user experience, several networks have phones that have this service baked in.
Instead of using your carrier's network connection, you can make voice calls via a Wi-Fi network. That could mean using a Wi-Fi connection you have set up at home, or whatever Wi-Fi hotspot you happen to be on when you're out and about, such as at a cafe or library. In most ways, it's like any other phone call, and you still use regular phone numbers.
Wi-Fi calling is especially useful when you're in an area with weak carrier coverage. For example, when you're traveling to the residential countryside, or you're in a building with spotty reception. You may already be familiar with using Wi-Fi to send messages when SMS texting is unavailable (apps like Kik and Facebook Messenger provide these services) -- and the same applies when you're trying to place a call. With Wi-Fi, you can call a friend up even if you're in a dingy, underground bar (assuming you can connect to the bar's Wi-Fi, that is.)
Carrier-branded Wi-Fi calling is a bit different, however. It's baked directly into the phone's dialer, so you don't need to fire up an app or connect to a service to use it.
https://www.cnet.com/news/what-you-need-to-know-about-wifi-calling/
- A duplex communication system requires a pair of channels/frequencies hence the term duplex meaning two parts. The two channels are defined as uplink/downlink or reverse/forward.
In a full-duplex system simultaneous transmission/reception is available,i.e., one can transmit and receive simultaneously.
In a half-duplex system, each party can communicate with the other but not simultaneously; the communication is one direction at a time. Half duplex systems utilize separate channels for uplink and downlink, i.e., a transmit and receive frequency. In a half duplex communications system one user is allowed to transmit on the uplink channel at a time.
https://en.wikipedia.org/wiki/Duplex_(telecommunications)
Tuesday, October 23, 2012
reserved words in java?
The table below lists all the words that are reserved:
abstract | assert | boolean | break | byte | case |
catch | char | class | const* | continue | default |
double | do | else | enum | extends | false |
final | finally | float | for | goto* | if |
implements | import | instanceof | int | interface | long |
native | new | null | package | private | protected |
public | return | short | static | strictfp | super |
switch | synchronized | this | throw | throws | transient |
true | try | void | volatile | while |
http://java.about.com/od/javasyntax/a/reservedwords.htm
Hibernate
- Relational Persistence for Java and
. NET
Historically, Hibernate facilitated the storage and retrieval of Java domain objects via Object/Relational Mapping. Today, Hibernate is a collection of related projects enabling developers to
http://www.hibernate.org/
Hibernate is an object-relational mapping (ORM) library for the Java language, providing a framework for mapping an object-oriented domain model to a traditional relational database. Hibernate
Hibernate is free software that
http://en.wikipedia.org/wiki/Hibernate_%28Java%29
- Component
Refers to the UML modeling term
composition
Commonly referred to as a “has a”
– An
Does not exist on its own;
on a parent object
• Address is a component of ‘
– Non-existent without
– No id of its own
Entity
lives on its own
Can
Can
‘
– Can
– Has its own id
Using Components
1. Determine your domain model
Which objects are best suited to be a component?
2. Create your database tables
Model your components accordingly within entity tables
Create your Java classes
• One for each entity, and one for each component
• Setup your components within the entity classes
Write the Hibernate mapping file for the
entity, using the embedded component tag
Nested Components
Component Address has nested component ‘
Inheritance
Commonly referred to as an “is
relationship
Polymorphism
– Dynamic realization of subclass behavior while
treating the object as an instance of its superclass
Inheritance Realization
Easy to do in an
– Java: Use ‘extends’ or
Not so easy to do in a relational database
– Tables do not ‘extend’ from each other
– Part of the ‘impedance mismatch’ problem
How do we get around this?
– Four approaches through Hibernate
• Hibernate implicit polymorphism
• Table-per-concrete class
• Table-per-class-hierarchy
• Table-per-subclass
Modeling Inheritance
1
What objects have hierarchical relationships?
2. Choose your inheritance strategy
• Hibernate implicit
• Table-per-concrete class
• Table-per-class-hierarchy
• Table-per-
3. Create your database tables based on the
chosen strategy
4. Code your Java objects, using
5. Write your Hibernate mapping file using
the
Implicit Polymorphism
Database
– One database table per concrete class
Hibernate Mapping Files
– Separate mapping files for each inherited class
• Like normal, including any inherited properties
Default Behavior
– Out of the box Hibernate will automatically
recognize any Java inheritance associations
Implicit Polymorphism
Advantages
– Get it for free. Hibernate automatically scans classes
on startup (including inheritance); No additional
configuration/mapping
– Not a lot of
Queries against individual types are fast and simple
Disadvantages
– Makes handling relationships difficult
• One-to-many relationships typically require a foreign key, but
inherited associations can’t
don’t support it (Example:
– Polymorphic queries are process intensive
• For queries against the superclass, Hibernate executes
multiple queries
– SELECT * FROM CHECKING_ACCOUNT WHERE
ACCOUNT_OWNER_ID=?
– SELECT * FROM SAVINGS_ACCOUNT WHERE
ACCOUNT_OWNER_ID=?
– Database schema evolution more
• Need to add the same column to multiple tables
• Integrity constraints might have to span multiple tables
Table-per-concrete class
Database
– One database table per concrete class
Hibernate Mapping
– Single mapping
• Based on superclass
• Includes
Table-per-concrete class
• Advantages
Shared mapping of common elements
• Shared database id
– Not a lot of
– Queries against individual types are fast and simple
–
polymorphic queries
• Disadvantages
– Still have difficulty with relationships
• Foreign keying to two tables not possible
– Database schema evolution still more
• Need to add the same column to multiple tables
• Integrity constraints might have to span multiple tables
Table-per-class-hierarchy
Database
– One database table for all subclasses
–
Hibernate Mapping
– Single mapping file still based on superclass
– Includes
classes
– Use ‘discriminator’ column/field to identity
concrete type
Table-per-class-hierarchy
• Advantages
– Simple
– Fast reads/writes, even across types
• Disadvantages
– Lots of
•
–
database design
Table-per-subclass
Database
– One database table for the superclass AND
one per subclass
• Shared columns in superclass table
• Subclass tables have their object-specific
columns
Hibernate Mapping File• Hibernate Mapping File
– Single mapping file based on the superclass
Includes
inherited classes
Table-per-subclass
• Advantages
– Normalized schema
• Schema evolution and integrity are straight
– Reduced number of SQL statements produced
• Hibernate uses inner joins for subclass queries• Hibernate uses inner joins for subclass queries,
outer joins for polymorphic ones
• Disadvantages
– Can have
• Requires many joins or sequential reads for queries
When to use Which
• Leave implicit polymorphism for queries against interfaces (based on behavior not
attributes
• If you rarely require polymorphic queries, lean towards table-per-concrete-class.
• If polymorphic AND many distinct properties, look
weighing the cost of joins versus unions
Summary
Components
•
• Component are
the different methods of modeling inheritance relationships through Java/Database/Hibernate, and where each one is best
suited
Hibernate implicit polymorphism
• Table-per-concrete class
• Table-per-class-hierarchy
• Table-per-subclass
04-hibernate-
http://courses.coreservlets.com/Course-Materials/hibernate.html
- Relationship Types
Association
– Mapping relationships between two objects
– Example
• Account and
• Collection• Collection
– Collection of values representing individual
pieces of data
– Example
• Map of holidays
• String array of months
Relationship Dimensions
Relationships between entities can
exist in multiple ways
– Multiplicity
• How many on each side of the
– Directionality
• From which side
you access the other?
Relationship Multiplicity
One-to-Many
– Reverse of a many-to-one relationship
• Many-to-Oney
– Multiple Transactions belong to a single account
– Reverse of a one-to-many relationship
One to One• One-to-One
– A single
– A single
• Many-to-Many
– Multiple Accounts have multiple
Oft li d
• A single Account has multiple
• A single
Relationship Directionality
Unidirectional
Cl
relationship
– Example: Account
• Given an Account object, can
Transaction objects.
• Given a Transaction object, cannot
Account object.
• Bidirectional
– Can traverse objects from both sides of the
– Example: Account
• Given an Account object, can
Transaction
• Given a Transaction object, can
Account object
Java vs. Database
Objects are inherently directional
• An object has a reference/pointer to another
object
– Transition by walking a networked graph of
object references
Database
– Relations are not inherently directional
A
columns of other tables
to)
– Transition by joining tables together through
joins/foreign keys
Relationships in Database
• Record repeated in same table each time capturing• Record repeated in same table, each time capturing
different relationship data.
– Foreign keys
• Follow identifiers to related records on other tables
– Join tables
• Tables specifically setup to maintain a relationship
between two identities (usually for M
–
• Arbitrary joins between columns relating data
Relationships in Java
For ‘Many’ side, Collections API
– Set
• No duplication allowed• No duplication allowed
• Objects organized with or without order
– Map
• Duplicate values allowed using different
• Can
– List
• Duplication
• Objects expected to
– Arrays
• Duplication allowed
• Objects expected to
• Strongly typed to
Relationships in Database
P
•
• Easy to query against
– Cons
• Contains redundant data
• Requires many
Foreign Keys
P
• Reduce redundancy
• Better modeling of data
– Cons
• Slower than
• Slightly more complicated to query against
Join Tables
Pros
• Built on foreign key model, enables
– Cons
• Slower yet and even more complex querying
Joins
– Pros
• Allows for any
to
C
• No model enforcement
– Can join ‘age’ and ‘office floor’ columns
• Can
as desired
Java-to-Database Through Hibernate
Association & Collection mapping tags practically identical
Hibernate Collection Types
-<set>
• Unordered/Ordered, requiring value column
– <map>
• Unordered/Ordered, requiring key and value
– <list>
Ordered requiring an index column on the• Ordered, requiring an index column on the
referenced object table
– <array>
• Map to Java Type and Primitive Arrays• Map to Java Type and Primitive Arrays
• Ordered, requiring an index column on the
referenced object table
– <bag>
• No direct implementation available in Java
• Unordered/ordered collection allowing
• Realized through Collection/List
• Requires value column
• Used for many-to-many relationships
• Same as Bag but with
column used for surrogate keys
• Requires an ID Generator just like Entity classes
03-hibernate-
http://courses.coreservlets.com/Course-Materials/hibernate.html
- Building a Hibernate Application
Define the domain model
2. Setup your Hibernate configuration
– hibernate.cfg.xml
3 C
– <
4 Make Hibernate aware of the mapping files4. Make Hibernate aware of the mapping files
– Update the hibernate.cfg.xml with
5 Implement a HibernateUtil class5. Implement a HibernateUtil class
– Usually taken from the Hibernate documentation
6. Write your code
02-hibernate-
http://courses.coreservlets.com/Course-Materials/hibernate.html
- N-Tier Architecture
– Each layer encapsulates specific responsibilities
– Enables changes in one area with minimal impact to other
areas of the
• Common tiers
– Presentation
• ‘View’ in model-view-controller
• Responsible for displaying data only. No business logic
Service
• Responsible for business logic
– Persistence
• Responsible for storing/retrieving data
01-hibernate-
http://courses.coreservlets.com/Course-Materials/hibernate.html
- impedance mismatch
The object-relational impedance mismatch is a set of conceptual and technical difficulties that
Mismatches
Object-oriented concepts
Encapsulation
Object-oriented programs
Accessibility
In relational thinking, "private" versus "public" access is relative to need rather than being an absolute characteristic of the data's state, as in the OO model. The relational and OO models often have conflicts over relativity versus absolutism of classifications and characteristics.
Interface, class, inheritance and polymorphism
essential OOP concepts for classes of objects, inheritance and polymorphism
Mapping to relational concepts
Data type differences
A major mismatch between existing relational and OO languages is the type system differences. The relational model strictly prohibits by-reference attributes (or pointers), whereas OO languages embrace and expect by-reference behavior. Scalar types and their operator semantics are also
For example, most SQL systems support string types with varying collations and constrained maximum lengths (open-ended text types
Structural and integrity differences
Another mismatch has to do with the differences in the structural and integrity aspects of the contrasted models. In OO languages, objects can
Manipulative differences
The relational model has an intrinsic, relatively small and well defined set of primitive operators for usage in the query and manipulation of data, whereas OO languages
Transactional differences
relational database transactions, as the smallest unit of work performed by databases, are much larger than any operations performed by classes in OO languages
Solving impedance mismatch
Minimization
There have been
Alternative architectures
The rise of XML databases and XML client structures has motivated other alternative architectures to get around the impedance mismatch challenges. These architectures use XML technology in the client (such as
http://en.wikipedia.org/wiki/Objecwt-relational_impedance_mismatch
- Inheritance is one of the most visible facets of Object-relational mismatch.
Object oriented systems can model both “is a” and “has a” relationship. Relational model supports only “has a” relationship between two entities. Hibernate can help you map such Objects with relational tables. But you need to choose certain mapping strategy based on your needs.
1. Map one table per concrete class. Your mapping ignores the inheritance relationship and maps one table per concrete class. (implicit polymorphism)
2. Map one table per concrete class with union-subclass mapping. You still have one table per concrete class, but you use a “union-subclass” clause in your mapping. This helps mitigate
3. Map one table per class hierarchy. Here your table will have a row for all the fields in the full class hierarchy. You will have a lot of potential null values and you will have a discriminator column to hold type information.
4. Map one table per subclass. Here you convert the
http://simsonlive.
- inheritance models in Hibernate and describes how they work like vertical inheritance and horizontal
1. Table per concrete class with unions
2. Table per class hierarchy
3. Table per subclass
(omitting implicit polymorphism which is table per concrete class)
Example:
Let us take the simple example of 3 java classes.
Class
1. Table per concrete class with unions
Tables:
2. Table per class hierarchy
There will be only one table in
But it needs some discriminating column to differentiate between
3. Table per subclass
There are three
Single Table Strategy,
With Table Per Class Strategy,
With Joined Strategy
http://www.dineshonjava.com/p/implementing-inheritance-in-hibernate.html#
- There can be three kinds of inheritance mapping in hibernate
1. Table per concrete class with unions
2. Table per class hierarchy
3. Table per subclass
Example:
We can take an example of three Java classes like Vehicle, which is an abstract class and two subclasses of Vehicle as Car and
1. Table per concrete class with unions
In this
Tables: Car,
2. Table per class hierarchy
There will be only one table in
Here it
3. Table per subclass
http://www.interviewjava.com/2007/10/explain-different-inheritance-mapping.html
- Hibernate Object Lifecycle
hibernate considers objects it can
states
Transient
– Persistent
– Removed
– Detached
Transient State
All objects start off in the transient
– Account account = new Account
• account is a transient object
Hibernate is not aware of the object
instance
Persistent State
Hibernate
This is the only state where objects
database
Persistent State
Session session =
// ‘transient’ state
Account account = new Account
// transition to the ‘persistent’ state. Hibernate is NOW
// aware of the object and will save it to the
session
// modification of the object will automatically
// saved because the object is in the ‘persistent’ state
account
// it
session
Removed State
A previously persistent object that is
deleted from the database
– session
Detached State
A persistent object that is still referenced
after closure of the active sessionafter closure of the active session
– session.close() changes object’s state from persisted to
detached
Saving Changes to the Database
Session methods do NOT save changes to
the databasethe database
– save();
– update();p ();
– delete();
These methods actually SCHEDULE
changes to be made to the databasechanges to be made to the database
Hibernate collects SQL statements to be
issued
Statements are later flushed to the database
– Once submitted, modifications to the database are not
permanent until a commit is issuedpermanent until a commit is issued
• session.getTransaction().commit();
Flushing the Context
Submits the stored SQL statements to
th d t bthe database
• Occurs when:
– transaction.commit() is called
– session.flush() is called explicitly
Before a query is executed– Before a query is executed
• If stored statements would affect the results of the quer
Cascading
Hibernate represents domain object
• Propagate the persistence action not only to
the object submitted, but also to any objects
associated with that object
05-hibernate-Object_Lifecycle_Persistence_and_Session_Management
http://courses.coreservlets.com/Course-Materials/hibernate.html
- Transactions
Represents a single unit-of-work
All or nothing – either all of the actions get committed or the entire effort fails
Other resources can also participate in• Other resources can also participate in
transactions
– Java Messaging Service (JMS)gg ( )
• Roll back a message if something fails
– Legacy Systems
– Anything that leverages JTS (Java Transaction Service)
• TransactionManager Interface
- Walked through Query by Criteria (QBC) and Query by
Example (QBE) querying methods, and learned about the
core Hibernate classes involved in querying
• Criteria
• Criterion
• Restrictions
• Property
• Order
• Projections
07-hibernate-Querying_QBC_and_QBE
http://courses.coreservlets.com/Course-Materials/hibernate.html
- three ways of handling inheritance
– Single table per class hierarchy
• InheritanceType.SINGLE_TABLE
Tbl i l– Table per concrete entity class
• InheritanceType.TABLE_PER_CLASS
“join” strategy where fields or properties that are– join strategy, where fields or properties that are
specific to a subclass are mapped to a different
table than the fields or properties that are pp
common to the parent class
• InheritanceType.JOINED
MiiHib t’Iliit• Missing Hibernate’s Implicit
Polymorphism
10-hibernate-JPA.pdf
http://courses.coreservlets.com/Course-Materials/hibernate.html
Hibernate supports various types of connection pooling mechanisms such as C3P0, Apache DBCP, Proxool. C3P0 is an Open source connection pool that comes bundled with hibernate.
http://www.mindfiresolutions.com/How-to-configure-C3P0-connection-pooling-in-Hibernate-1649.php
- What is Connection Pooling? In many of our applications we need to connect to the database for various purposes such as inset, update , delete and retrieve the data from the DB. For each of these activities the application needs to connect to the database which is expensive in terms of resource as well as time. Instead of connecting to the database each time a user makes a request which requires database operation an application should use a pool of connections. Then each application thread that needs to access the database can request a connection from the pool and returns the same to the pool when all the database operations have been executed. This mechanism is called connection pooling.
Hibernate supports various types of connection pooling mechanisms such as C3P0, Apache DBCP, Proxool. C3P0 is an Open source connection pool that comes bundled with hibernate.
http://www.mindfiresolutions.com/How-to-configure-C3P0-connection-pooling-in-Hibernate-1649.php