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.
 
  • In Cost plus contract, the only firm figure is the fee
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
*Even though goto and const are no longer used in the Java programming language, they still cannot be used.

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 utilize POJO-style domain models in their applications in ways extending well beyond Object/Relational Mapping.
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 solves object-relational impedance mismatch problems by replacing direct persistence-related database accesses with high-level object handling functions.

Hibernate is free software that is distributed under the GNU Lesser General Public License.
http://en.wikipedia.org/wiki/Hibernate_%28Java%29





  • Component

Refers to the UML modeling term ofRefers to the UML modeling term of
composition
Commonly referred to as a “has a”
relationshipeato s p
– An AccountOwner has an Address
Does not exist on its own; dependentDoes not exist on its own; dependent
on a parent object

Address’ is a component
• Address  is a component of ‘AccountOwner
– Non-existent without AccountOwner
– No id of its own

Entity
lives on its own
Can be made components
Can be related/associated to other entities

AccountOwner’ is an Entity
– Can lives on its own
– 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
ithi it t id tif th t lwithin it to identify the component class


Nested Components
Component  Address  has nested component ‘ZipCode



Inheritance
Commonly referred to as an “is a”Commonly referred to as an  is a
relationship
Polymorphism
– Dynamic realization of subclass behavior while
treating the object as an instance of its superclass


Inheritance Realization
Easy to do in an object oriented language
– Java: Use ‘extends’ or implements’ keyword
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.Determine your domain model
What objects have hierarchical relationships?
2. Choose your inheritance strategy
• Hibernate implicit polymorphismHibernate implicit polymorphism
• Table-per-concrete class
• Table-per-class-hierarchy
• Table-per-subclassTable per subclass
3. Create your database tables based on the
chosen strategy
4. Code your Java objects, using extends’ or
implements’
5. Write your Hibernate mapping file using
the appropriate subclass tags



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 neededconfiguration/mapping needed
– Not a lot of nullable columns (good for integrity)
Queries against individual types are fast and simple– 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 key to both tables; Databases y
don’t support it  (Example:  AccountOwner:Account)
– Polymorphic queries are process intensive
• For queries against the superclass, Hibernate executes o que es aga s e supe c ass, be a e e ecu es
multiple queries
– SELECT * FROM CHECKING_ACCOUNT WHERE
ACCOUNT_OWNER_ID=?
– SELECT * FROM SAVINGS_ACCOUNT WHERE
ACCOUNT_OWNER_ID=?
– Database schema evolution more complexp
• 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 fileg pp g f
• Based on superclass
• Includes union-subclass’ definitions for inherited classes


Table-per-concrete class

• Advantages
Shared mapping of common elements
• Shared database id
– Not a lot of nullable columns (good for integrity)Not a lot of nullable columns (good for integrity)
– Queries against individual types are fast and simple
Less SQL statements generated with use of ‘Union’ for
polymorphic queries
• Disadvantages
– Still have difficulty with relationships
• Foreign keying to two tables not possible
– Database schema evolution still more complexp
• 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
Denormalized table has columns for all attributes

Hibernate Mapping
– Single mapping file still based on superclass
– Includes subclass’ definitions for inherited
classes
– Use ‘discriminator’ column/field to identity
concrete type


Table-per-class-hierarchy
• Advantages
– Simple
– Fast reads/writes, even across types
• Disadvantages
– Lots of nullable columns
Possible data integrity concern
Denormalized table generally considered bad
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 joined subclass’ definitions for– Includes  joined-subclass  definitions for
inherited classes



Table-per-subclass
• Advantages
– Normalized schema
• Schema evolution and integrity are straight
fdforward
– 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 poor performance for complex systems
• Requires many joins or sequential reads for queries



When to use Which
• Leave implicit polymorphism for queries against interfaces (based on behavior not differentinterfaces (based on behavior, not different
attributes)

• If you rarely require polymorphic queries, lean towards table-per-concrete-class.

• If polymorphic behavior is required, AND subclasses have only a few distinct properties, try table-per-l hi hclass-hierarchy

• If polymorphic AND many distinct properties, look atIf polymorphic AND many distinct properties, look at table-per-subclass or table-per-concrete-class,
weighing the cost of joins versus unions



Summary
Components are different from Entities
Enties have their own IDs
• Component are dependant on Entities

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-Component_and_Inheritance_Mapping
http://courses.coreservlets.com/Course-Materials/hibernate.html




  • Relationship Types

Association
– Mapping relationships between two objects
– Example
• Account and AccountOwner
• Collection• Collection
– Collection of values representing individual
pieces of data
– Example
• Map of holidays
• String array of months



Relationship Dimensions

Relationships between entities can p
exist in multiple ways
– Multiplicity
• How many on each side of the
relationship?p
– Directionality
• From which side(s) of the relationship canFrom which side(s) of the relationship can
you access the other?



Relationship Multiplicity


One-to-Many
A il Ath Tti– A single Account has many Transactions
– 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 AccountOwner has a single HomeAddress
– A single HomeAddress has a single AccountOwnerg g
• Many-to-Many
– Multiple Accounts have multiple AccountOwners
Oft li d th h t t lti hi– Often realized through two one-to-many relationships
• A single Account has multiple AccountOwners
• A single AccountOwner has multiple Accounts



Relationship Directionality
Unidirectional
Cl bjf idfh– Can only traverse objects from one side of the
relationship
– Example: Account : Transaction
• Given an Account object, can obtain related
Transaction objects.
• Given a Transaction object, cannot obtain related
Account object.
• Bidirectional
– Can traverse objects from both sides of the relationshipCan traverse objects from both sides of the relationship
– Example: Account : Transaction
• Given an Account object, can obtain related
Transaction objectsTransaction objects.
• Given a Transaction object, can obtain related
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 t bl bit il j i it l ith• A table can arbitrarily join its columns with
columns of other tables (not just those keyed
to)
– Transition by joining tables together through
joins/foreign keys



Relationships in Database
Denormalized table
• 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 pyp p
between two identities (usually for M:M)
Ad hoc joins in a query
• 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 keysDuplicate values allowed, using different keys
• Can be organized with or without order
– List
• Duplication allowedDuplication allowed
• Objects expected to be organized in an order
– Arrays
• Duplication allowed
• Objects expected to be organized in an order
• Strongly typed to particular object type, and lacks ability to resize



Relationships in Database
Denormalized Table
P– Pros
Very fast
• Easy to query against
– Cons
• Contains redundant data
• Requires many nullable columns

Foreign Keys
P– Pros
• Reduce redundancy
• Better modeling of data
– Cons
• Slower than denormalized table
• Slightly more complicated to query against

Join Tables
Pros– Pros
• Built on foreign key model, enables many:many relationships
– Cons
• Slower yet and even more complex querying

Joins
– Pros
• Allows for any possible query a user can think of without having
to predefine the requirements in the schema design
C– Cons
• No model enforcement
– Can join ‘age’ and ‘office floor’ columns – but does it make sense?
• Can be complicated/confusing to write; results may not appear
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
lcolumns
– <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 duplicatesUnordered/ordered collection allowing duplicates
• Realized through Collection/List
• Requires value column
idb– <idbag>
• Used for many-to-many relationships
• Same as Bag but with additional identifierSame as Bag, but with additional identifier
column used for surrogate keys
• Requires an ID Generator just like Entity classes



03-hibernate-Association_and_Collection_Mapping
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 t th d i bj t i fil3. Create the domain object mapping files
– <domain_object>.hbm.xml
4 Make Hibernate aware of the mapping files4. Make Hibernate aware of the mapping files
– Update the hibernate.cfg.xml with list of mapping files
5 Implement a HibernateUtil class5. Implement a HibernateUtil class
– Usually taken from the Hibernate documentation
6. Write your code


02-hibernate-A_Simple_Example
http://courses.coreservlets.com/Course-Materials/hibernate.html




  • N-Tier Architecture


Application is made up of layers or tiers
– Each layer encapsulates specific responsibilities
– Enables changes in one area with minimal impact to other
areas of the applicationareas of the application

• Common tiers
– Presentation
• ‘View’ in model-view-controller
• Responsible for displaying data only.  No business logic
Service– Service
• Responsible for business logic
– Persistence
• Responsible for storing/retrieving data


01-hibernate-Introduction_to_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 are often encountered when a relational database management system (RDBMS) is being used by a program written in an object-oriented programming language or style; particularly when objects or class definitions are mapped in a straightforward way to database tables or relational schema.


Mismatches

Object-oriented concepts
Encapsulation
Object-oriented programs are designed with techniques that result in encapsulated objects whose representation is hidden. Mapping such private object representation to database tables makes such databases fragile according to OOP (object-oriented programming) philosophy, since there are significantly fewer constraints for design of encapsulated private representation of objects compared to a database's use of public data, which must be amenable to upgrade, inspection and queries

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 are not supported by relational database systems


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 very often subtly to vastly different between the models, causing problems in mapping.

For example, most SQL systems support string types with varying collations and constrained maximum lengths (open-ended text types tend to hinder performance), while most OO languages consider collation only as an argument to sort routines and strings are intrinsically sized to available memory. A more subtle, but related example is that SQL systems often ignore trailing white space in a string for the purposes of comparison, whereas OO string libraries do not. It is typically not possible to construct new data types as a matter of constraining the possible values of other primitive types in an OO language.



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 be composed of other objects—often to a high degree—or specialize from a more general definition. This may make the mapping to relational schemas less straightforward. This is because relational data tends to be represented in a named set of global, unnested relation variables

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 generally handle query and manipulation through custom-built or lower-level, case and physical access path specific imperative operations


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 some attempts at building object-oriented database management systems (OODBMS) that would avoid the impedance mismatch problem. They have been less successful in practice than relational databases however, partly due to the limitations of OO principles as a basis for a data model

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 XForms) and native XML databases on the server that use the XQuery language for data selection. This allows a single data model and a single data selection language (XPath) to be used in the client, in the rules engines and on the persistence serve



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 some of the problems we will face in the previous strategy.

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 object oriented “is a” relationship into a relational “has a” relationship using foreign keys.


http://simsonlive.wordpress.com/2008/03/09/how-inheritance-works-in-hibernate/




  • 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(Single Table Strategy)
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 TwoWheelerVehicle and FourWheelerVehicle are inherited from Vehicle Abstract class


1. Table per concrete class with unions
In this case there will be 2 tables
Tables: TwoWheelerVehicle, FourWheelerVehicle[all common attributes will be duplicated]

2. Table per class hierarchy
Single Table can be mapped to a class hierarchy
There will be only one table in database called 'Vehicle' that will represent all the attributes required for all 3 classes.
But it needs some discriminating column to differentiate between TwoWheelerVehicle and  FourWheelerVehicle;


3. Table per subclass
In this case there will be 3 tables represent TwoWheelerVehicle , FourWheelerVehicle and Vehicle



There are three possible strategies to use.
    Single Table Strategy,
    With Table Per Class Strategy,
    With Joined Strategy




http://www.dineshonjava.com/p/implementing-inheritance-in-hibernate.html#.UfoIF11jG70





  • 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 UtilityVan.

1. Table per concrete class with unions
In this scenario there will be 2 tables
Tables: Car, UtilityVan, here in this case all common attributes will be duplicated.

2. Table per class hierarchy
Single Table can be mapped to a class hierarchy
There will be only one table in database named 'Vehicle' which will represent all attributes required for all three classes.
Here it is be taken care of that discriminating columns to differentiate between Car and UtilityVan

3. Table per subclass
Simply there will be three tables representing Vehicle, Car and UtilityVan


http://www.interviewjava.com/2007/10/explain-different-inheritance-mapping.html



  • Hibernate Object Lifecycle


hibernate considers objects it can
tl bi ffmanage to always be in one of four
states
Transient– Transient
– Persistent
– Removed
– Detached


Transient State
All objects start off in the transient
ttstate
– Account account = new Account();
• account is a transient object
Hibernate is not aware of the object
instance


Persistent State
Hibernate is aware of, and managing, the object
This is the only state where objects are saved to the
database


Persistent State
Session session =
SessionFactory getCurrentSession();SessionFactory.getCurrentSession();
// ‘transient’ state – Hibernate is NOT aware that it exists
Account account = new Account();Account account  new Account();
// transition to the ‘persistent’ state. Hibernate is NOW
// aware of the object and will save it to the databasej
session.saveOrUpdate(account);
// modification of the object will automatically bejy
// saved because the object is in the ‘persistent’ state
account.setBalance(500);
// it th t ti// commit the transaction
session.getTransaction().commit();


Removed State
A previously persistent object that is
deleted from the database
– session.delete(account);



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



  • 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