Monday, November 5, 2007

Concept of Partition

A partition is a division of a logical database or its constituting elements into distinct independent parts.

Database partitioning is normally done for manageability, performance or availability reasons.

The partitioning can be done either building separate smaller databases (each with its own tables, indexes, and transaction logs), or by splitting selected elements, for example just one table.

Horizontal partitioning involves putting different rows into different tables. Perhaps customers with ZIP Codes less than 50000 are stored in CustomersEast, while customers with ZIP Codes greater than or equal to 50000 are stored in CustomersWest. The two partition tables are then CustomersEast and CustomersWest, while a view with a union might be created over both of them to provide a complete view of all customers.

Vertical partitioning involves creating tables with fewer columns and using additional tables to store the remaining columns. Normalization is a process that inherently involves vertical partitioning. Different physical storage might be used to realize vertical partitioning as well; storing infrequently used or very wide columns on a different device, for example, is a method of vertical partitioning. Done explicitly or implicitly, this type of partitioning is called "row splitting".

Criteria forPartitioning

Current high end relational database management systems provide for different criteria to split the database. They take a partitioning key and assign a partition based on certain criteria. Common criteria are:

Range partitioning

Selects a partition by determining if the partitioning key is inside a certain range. An example could be a partition for all rows where the column zipcode has a value between 70000 and 79999.

List partitioning

A partition is assigned a list of values. If the partitioning key has one of these values, the partition is chosen. For example all rows where the column Country is either Iceland, Norway, Sweden, Finland or Denmark could build a partition for the Nordic countries.

Hash partitioning

The value of a hash function determines membership in a partition. Assuming there are four partitions, the hash function could return a value from 0 to 3.

Composite partitioning allows for certain combinations of the above partitioning schemes, by for example first applying a range partitioning and then a hash partitioning.

Functional and Non-functional Requirements

  • Functional requirements:-

Functional requirements define the internal workings of the software: that is, the calculations, technical details, data manipulation and processing, and other specific functionality that show how the use cases are to be satisfied. They are supported by non-functional requirements, which impose constraints on the design or implementation (such as performance requirements, security, quality standards, or design constraints).

As defined in requirements engineering, functional requirements specify specific behaviors of a system. This should be contrasted with non-functional requirements which specify overall characteristics such as cost and reliability. (An alternative view is that functional requirements specify specific behavior while nonfunctionals provide adjectives which may be used to describe these behaviors.)

Typically, a requirements analyst generates functional requirements after building use cases. However this may have exceptions since software development is an iterative process and sometimes certain requirements are conceived prior to the definition of the use cases. Both artifacts (use cases documents and requirements documents) complement each other in a bidirectional process.

A typical functional requirement will contain a unique name and number, a brief summary, and a rationale. This information is used to help the reader understand why the requirement is needed, and to track the requirement through the development of the system.

The core of the requirement is the description of the required behavior, which must be a clear and readable description of the required behavior. This behavior may come from organizational or business rules, or it may be discovered through elicitation sessions with users, stakeholders, and other experts within the organization. Many requirements will be uncovered during the use case development. When this happens, the requirements analyst should create a placeholder requirement with a name and summary, and research the details later, to be filled in when they are better known.

Software requirements must be clear, correct, unambiguous, specific, and verifiable.


  • Non-functional requirements:-

In systems engineering and requirements engineering, non-functional requirements are requirements which specify criteria that can be used to judge the operation of a system, rather than specific behaviors. This should be contrasted with functional requirements that specify specific behavior or functions. Typical non-functional requirements are reliability, scalability, and cost. Non-functional requirements are often called the ilities of a system. Other terms for non-functional requirements are "quality attributes" and "quality of service requirements".

Examples

A system may be required to present the user with a real-time display of the number of records in a database. This is a functional requirement. In order to fulfill this requirement, the system architects must ensure that the database is capable of updating its record count within a predetermined response time - this is a non-functional requirement.

Sufficient network bandwidth may also be a non-functional requirement of a system.

Other examples:

  • Availability
  • Certification
  • Dependency on other parties
  • Documentation
  • Efficiency (resource consumption for given load)
  • Legal and licensing issues
  • Maintainability
  • Performance / Response time
  • Platform compatibility
  • Price
  • Resource constraints (processor speed, memory, disk space, network bandwidth etc. )
  • Safety
  • Scalability
  • Security
  • Software, tools, standards etc. Compatibility
  • Support issues
  • Usability by target user community

Process Analysis


An operation is composed of processes designed to add value by transforming inputs into useful outputs. Inputs may be materials, labor, energy, and capital equipment. Outputs may be a physical product (possibly used as an input to another process) or a service. Processes can have a significant impact on the performance of a business, and process improvement can improve a firm's competitiveness.

The first step to improving a process is to analyze it in order to understand the activities, their relationships, and the values of relevant metrics. Process analysis generally involves the following tasks:

· Define the process boundaries that mark the entry points of the process inputs and the exit points of the process outputs.

· Construct a process flow diagram that illustrates the various process activities and their interrelationships.

· Determine the capacity of each step in the process. Calculate other measures of interest.

· Identify the bottleneck, that is, the step having the lowest capacity.

· Evaluate further limitations in order to quantify the impact of the bottleneck.

· Use the analysis to make operating decisions and to improve the process.

Process Flow Diagram

The process boundaries are defined by the entry and exit points of inputs and outputs of the process.

Once the boundaries are defined, the process flow diagram (or process flowchart) is a valuable tool for understanding the process using graphic elements to represent tasks, flows, and storage. The following is a flow diagram for a simple process having three sequential activities:

Process Flow Diagram

The symbols in a process flow diagram are defined as follows:

· Rectangles: represent tasks

· Arrows: represent flows. Flows include the flow of material and the flow of information. The flow of information may include production orders and instructions. The information flow may take the form of a slip of paper that follows the material, or it may be routed separately, possibly ahead of the material in order to ready the equipment. Material flow usually is represented by a solid line and information flow by a dashed line.

· Inverted triangles: represent storage (inventory). Storage bins commonly are used to represent raw material inventory, work in process inventory, and finished goods inventory.

· Circles: represent storage of information (not shown in the above diagram).

In a process flow diagram, tasks drawn one after the other in series are performed sequentially. Tasks drawn in parallel are performed simultaneously.

In the above diagram, raw material is held in a storage bin at the beginning of the process. After the last task, the output also is stored in a storage bin.

When constructing a flow diagram, care should be taken to avoid pitfalls that might cause the flow diagram not to represent reality. For example, if the diagram is constructed using information obtained from employees, the employees may be reluctant to disclose rework loops and other potentially embarrassing aspects of the process. Similarly, if there are illogical aspects of the process flow, employees may tend to portray it as it should be and not as it is. Even if they portray the process as they perceive it, their perception may differ from the actual process. For example, they may leave out important activities that they deem to be insignificant.

Process Performance Measures

Operations managers are interested in process aspects such as cost, quality, flexibility, and speed. Some of the process performance measures that communicate these aspects include:

· Process capacity - The capacity of the process is its maximum output rate, measured in units produced per unit of time. The capacity of a series of tasks is determined by the lowest capacity task in the string. The capacity of parallel strings of tasks is the sum of the capacities of the two strings, except for cases in which the two strings have different outputs that are combined. In such cases, the capacity of the two parallel strings of tasks is that of the lowest capacity parallel string.

· Capacity utilization - the percentage of the process capacity that actually is being used.

· Throughput rate (also known as flow rate ) - the average rate at which units flow past a specific point in the process. The maximum throughput rate is the process capacity.

· Flow time (also known as throughput time or lead time) - the average time that a unit requires to flow through the process from the entry point to the exit point. The flow time is the length of the longest path through the process. Flow time includes both processing time and any time the unit spends between steps.

· Cycle time - the time between successive units as they are output from the process. Cycle time for the process is equal to the inverse of the throughput rate. Cycle time can be thought of as the time required for a task to repeat itself. Each series task in a process must have a cycle time less than or equal to the cycle time for the process. Put another way, the cycle time of the process is equal to the longest task cycle time. The process is said to be in balance if the cycle times are equal for each activity in the process. Such balance rarely is achieved.

· Process time - the average time that a unit is worked on. Process time is flow time less idle time.

· Idle time - time when no activity is being performed, for example, when an activity is waiting for work to arrive from the previous activity. The term can be used to describe both machine idle time and worker idle time.

· Work In process - the amount of inventory in the process.

· Set-up time - the time required to prepare the equipment to perform an activity on a batch of units. Set-up time usually does not depend strongly on the batch size and therefore can be reduced on a per unit basis by increasing the batch size.

· Direct labor content - the amount of labor (in units of time) actually contained in the product. Excludes idle time when workers are not working directly on the product. Also excludes time spent maintaining machines, transporting materials, etc.

· Direct labor utilization - the fraction of labor capacity that actually is utilized as direct labor.

Little's Law

The inventory in the process is related to the throughput rate and throughput time by the following equation:

W.I.P. Inventory = Throughput Rate x Flow Time

This relation is known as Little's Law, named after John D.C. Little who proved it mathematically in 1961. Since the throughput rate is equal to 1 / cycle time, Little's Law can be written as:

Flow Time = W.I.P. Inventory x Cycle Time

The Process Bottleneck

The process capacity is determined by the slowest series task in the process; that is, having the slowest throughput rate or longest cycle time. This slowest task is known as the bottleneck. Identification of the bottleneck is a critical aspect of process analysis since it not only determines the process capacity, but also provides the opportunity to increase that capacity.

Saving time in the bottleneck activity saves time for the entire process. Saving time in a non-bottleneck activity does not help the process since the throughput rate is limited by the bottleneck. It is only when the bottleneck is eliminated that another activity will become the new bottleneck and present a new opportunity to improve the process.

If the next slowest task is much faster than the bottleneck, then the bottleneck is having a major impact on the process capacity. If the next slowest task is only slightly faster than the bottleneck, then increasing the throughput of the bottleneck will have a limited impact on the process capacity.

Starvation and Blocking

Starvation occurs when a downstream activity is idle with no inputs to process because of upstream delays. Blocking occurs when an activity becomes idle because the next downstream activity is not ready to take it. Both starvation and blocking can be reduced by adding buffers that hold inventory between activities.

Process Improvement

Improvements in cost, quality, flexibility, and speed are commonly sought. The following lists some of the ways that processes can be improved.

· Reduce work-in-process inventory - reduces lead time.

· Add additional resources to increase capacity of the bottleneck. For example, an additional machine can be added in parallel to increase the capacity.

· Improve the efficiency of the bottleneck activity - increases process capacity.

· Move work away from bottleneck resources where possible - increases process capacity.

· Increase availability of bottleneck resources, for example, by adding an additional shift - increases process capacity.

· Minimize non-value adding activities - decreases cost, reduces lead time. Non-value adding activities include transport, rework, waiting, testing and inspecting, and support activities.

· Redesign the product for better manufacturability - can improve several or all process performance measures.

· Flexibility can be improved by outsourcing certain activities. Flexibility also can be enhanced by postponement, which shifts customizing activities to the end of the process.

In some cases, dramatic improvements can be made at minimal cost when the bottleneck activity is severely limiting the process capacity. On the other hand, in well-optimized processes, significant investment may be required to achieve a marginal operational improvement. Because of the large investment, the operational gain may not generate a sufficient rate of return. A cost-benefit analysis should be performed to determine if a process change is worth the investment. Ultimately, net present value will determine whether a process "improvement" really is an improvement.

Business Systems Analyst Responsibilities

Business Systems Analyst Responsibilities


Job Responsibilities

  • Act as a strategic partner between the business community and IT development teams to resolve functional and technical issues related to business applications, to troubleshoot data or transaction issues, and to review opportunities to leverage new functionality
  • Drive efficiency and operational improvement through business process definition, system alignment, and optimization of standard business application functionality.
  • Identify gaps between the current deployment of applications and future requirements that have evolved due to organizational growth, changes, or strategy. Translate business requirements into system definitions and solutions.
  • Lead cross-functional efforts to address business process or systems issues
  • Analyze requests or requirements for application patches or upgrades to determine impact to business and integrated systems
  • Comprehensive project management of new business application initiatives, performing requirements gathering, development effort estimates, resource management, gap analysis, implementation configuration, scope control, testing, training and end-user support, according to project methodology
  • Work with business community to document functional test scenarios, test plans, and end-user acceptance testing criteria


  • Participate in technical design sessions, working with technical resources, to provide insight during solution development
  • Identify and communicate project risks and recommend solutions
  • Designing, interpreting, or using complex logical data and object models to guide technical design decisions and overall business applications strategy
  • Provide support during period close and other major financial milestones of the company
  • Provide ad hoc data queries or reports to the business for analysis (using TOAD, Hyperion, or other query tools)
  • Promote use and acceptance of project methodology and documentation standards

Qualifications Requirements

  • Deep business applications experience (including Oracle Financials, Purchasing, Inventory, BOM, and Order Management)
  • Strong financial accounting knowledge and industry experience
  • Full analytical capability based on understanding of technical architecture and query tools
  • Exceptional leadership, written and oral communication, and meeting facilitation skills
  • Experience in software implementations, requirements gathering, systems analysis, and functional design
  • Ability to communicate effectively with both business and technical staff to convey complex ideas both verbally and in written form
  • Ability to quickly grasp concepts relating to customizations that have been designed and developed.
  • Ability to translate business requirements into high-level and detailed functional specifications.
  • Exposure to various project management methodologies and their application to cross-functional project work.
  • Demonstrated success in leading a team, with both functional and technical resources, to address cross-functional issues
  • CPA or related background a plus

Business analyst interview questions

You never know what you will be asked on a job interview. The following sample of interview questions for business analyst will help you prepare. You need to be able to answer all questions truthfully and professionally. Here are the business analyst interview questions:

Q. Can you tell me why are you considering leaving your present job?
A. Regardless of the reason, do not bad mouth your current employer. Negativism will always hurt you. Good answers include: “There is no room for growth at my current employer. I am looking for a company with long term growth opportunities”. “Due to a company restructuring, my entire department is relocating to Florida. I was give the option of moving, but do not wish to relocate”. “My current company is not doing well, and has been laying off employees. There is no job security there, and more layoffs are expected”.

Q. How do you handle stress and pressure?
A. “I find that I work better under pressure, and I enjoy working in an environment that is challenging.” “I am the type of person that diffuses stress. I am used to working in a demanding environment with deadlines, and enjoy the challenges.”

Q. We have met several business analyst’s. Why are you the one we should hire?
A. Give definite examples of your skills and accomplishments. Be positive, and emphasize how your background matches the job description. Mention any software packages and spreadsheet software you are familiar with. Also let them know if you have advanced knowledge of any of the software.

Q. What do you know about our company?
A. This question is used to see if you have prepared for the interview. Candidates that have researched the company are more appealing. Companies like prepared, organized candidates.

Q. What are your greatest strengths?
A. Be positive and honest. “My greatest strength is maximizing the efficiency of my staff. I have successfully lead numerous teams on difficult projects. I have an excellent ability to identify and maximize each of my staffs strengths.” Give examples.

Q. Tell me about your greatest weakness?
A. It is very important to give a strength that compensates for your weakness. Make your weakness into a positive. “I consider myself a 'big picture' person. I sometimes skip the small details. For this reason, I always have someone on my team that is very detail oriented.” Another good answer: “Sometimes, I get so excited and caught up in my work that I forget that my family life should be my number one priority.”

Q. What are your goals for the future?
A. “My long term goals are to find a company where I can grow, continue to learn, take on increasing responsibilities, and be a positive contributor”.

Hopefully these typical business analyst interview questions will help you. It is important to customize the answers for your specific background and experience.

Now that we have gone over the interview questions for business analyst, you need to be aware of important resources that can make your job search easier and more thorough.

What can a Business Analyst do differently than project मेनेजर?

A project/program manager, as the name suggests, is mostly concerned with the progress of the entire project and taking care of the project members. This includes cost management (invoicing, billing), time management (scheduling), risk management (project closure) and similar things.

A business analyst is mostly concerned with gathering and documenting business requirements (application requirements) and communicating them to the development and test teams.

Hope this clarifies your question.

Business analyst interview questions

You never know what you will be asked on a job interview. The following sample of interview questions for business analyst will help you prepare. You need to be able to answer all questions truthfully and professionally. Here are the business analyst interview questions:

Q. Can you tell me why are you considering leaving your present job?







A. Regardless of the reason, do not bad mouth your current employer. Negativism will always hurt you. Good answers include: “There is no room for growth at my current employer. I am looking for a company with long term growth opportunities”. “Due to a company restructuring, my entire department is relocating to Florida. I was give the option of moving, but do not wish to relocate”. “My current company is not doing well, and has been laying off employees. There is no job security there, and more layoffs are expected”.

Q. How do you handle stress and pressure?
A. “I find that I work better under pressure, and I enjoy working in an environment that is challenging.” “I am the type of person that diffuses stress. I am used to working in a demanding environment with deadlines, and enjoy the challenges.”

Q. We have met several business analyst’s. Why are you the one we should hire?
A. Give definite examples of your skills and accomplishments. Be positive, and emphasize how your background matches the job description. Mention any software packages and spreadsheet software you are familiar with. Also let them know if you have advanced knowledge of any of the software.

Q. What do you know about our company?
A. This question is used to see if you have prepared for the interview. Candidates that have researched the company are more appealing. Companies like prepared, organized candidates.

Q. What are your greatest strengths?
A. Be positive and honest. “My greatest strength is maximizing the efficiency of my staff. I have successfully lead numerous teams on difficult projects. I have an excellent ability to identify and maximize each of my staffs strengths.” Give examples.

Q. Tell me about your greatest weakness?
A. It is very important to give a strength that compensates for your weakness. Make your weakness into a positive. “I consider myself a 'big picture' person. I sometimes skip the small details. For this reason, I always have someone on my team that is very detail oriented.” Another good answer: “Sometimes, I get so excited and caught up in my work that I forget that my family life should be my number one priority.”

Q. What are your goals for the future?
A. “My long term goals are to find a company where I can grow, continue to learn, take on increasing responsibilities, and be a positive contributor”.

Hopefully these typical business analyst interview questions will help you. It is important to customize the answers for your specific background and experience.

Now that we have gone over the interview questions for business analyst, you need to be aware of important resources that can make your job search easier and more thorough.