Subscribe by Email


Showing posts with label Deadline. Show all posts
Showing posts with label Deadline. Show all posts

Thursday, April 25, 2013

What is the difference between Hard and Soft real-time systems?


- Real time operating systems are the systems that have been developed for serving to the real time requests of the applications. 
- They are readily capable of processing the data as it is inputted. 
- They do not make any delays in buffering. 
- Thus, the time taken for processing is quite less.
- The scheduling algorithms used by the real time operating systems are quite advance and dedicate themselves to a small set of applications. 
- Minimal thread switching latency and interrupt latency are two key factors of these kinds of operating systems. 
- For these systems the amount of time they take for responding matters more than amount of work they do.
These systems are used to maintaining consistency in producing the output. 

The real – time operating systems can be divided in to two categories namely:
  1. The hard – real time operating system and
  2. The soft – real time operating system
In this article we discuss about these two systems and the common differences between them.
  1. The hard real time operating systems produce less jitter while producing the desired outputs. On the other hand, the jitter produced by the soft real time operating system is quite more when compared to its hard real time counterpart.
  2. The thing that distinguishes them is not the main goal but rather the type of performance it gathers i.e., whether hard or soft.
  3. The soft real time operating systems have been designed as such that they can usually meet the deadlines whereas, the hard real time operating systems are designed in such a way so as to meet the deadlines deterministic-ally.
  4. The hard – real time systems are also called as the immediate real time systems. They are bound to work within the confined strict deadlines. If in case, the application is unable to complete its task in the allotted time, then it is said to have failed. Some examples of the hard – real time operating systems are: anti-lock brakes, aircraft control systems and the pacemakers.
  5. Hard real time operating system are bound to adhere to the deadlines assigned to them. Missing a deadline can incur a great loss. As for the soft real time operating systems, it is acceptable if the deadline is missed such as in the case of the online databases.
There is also a third category of the real – time operating systems that is not so known. It is called the ‘firm RTOS’. They also need to keep up to the deadline since missing it won’t cause any catastrophic effect but may give results that are undesirable.

More about Real time Operating System

- The embedded systems have evolved all of a sudden and now they are present all around us in digital homes, cell phones, air conditioners, cars and so on. 
- We very rarely recognize the extent to which they have eased our day to day life. 
- Safety is another aspect of our lives for which we depend on these embedded systems. 
- The thing that controls these systems is the operating systems. 
- Real time operating system is what that is used by most of these gadgets. 
- The tasks that are assigned to a real – time OS always have deadlines. 
- The OS adheres to this while completing it. 
- If these systems miss the deadline the results can be very dangerous and even catastrophic. 
- With each passing day the complexity of these systems is increasing and so our dependence on them.
- Some examples of real – time operating systems are:
Ø  OSE
Ø  RTLinux
Ø  Windows CE
Ø  LynxOS
Ø  QNX
Ø  VxWorks
- The RTOS know well not to compromise with the deadlines. 


Monday, October 31, 2011

Project Scheduling - Different ways for tracking the schedule.

A proper project schedule is very important for a successful project delivery. The project schedule is a road map for a software project manager. A project schedule needs to be properly developed. A proper project schedule defines the tasks and milestones that are tracked and controlled as project proceeds. This tracking needs to be accomplished nicely and there are different methods and ways to do so...

- Timely project meetings regarding the status of the project are held and it should be ensured that each team member should report the progress achieved and the problems that are faced.
- There are different reviews that are conducted throughout the software engineering process. It becomes necessary to evaluate the results of all these reviews in order to accomplish proper tracking.
- To accomplish proper tracking, for each task of the project, the actual start date and the planned start date should be compared.
- To accomplish tracking, one should determine whether the formal project milestones are achieved by the scheduled date.
- To accomplish tracking, progress should be assessed quantitatively.

The best indication of progress is the completion and successful review of a defined software work product.
The control administers the project resources, cope with problems and direct the project staff. Control is light if the project is on schedule and within budget. The control is exercised to reconcile the problems if they occur.

In case the problem is identified and diagnosed:
- staff is redeployed
- additional resources should be focused on problem area.

A severe deadline can be managed by time-boxing technique. It chooses an incremental software paradigm and a schedule is derived for each incremental delivery. This technique is done when the product may not be deliverable by a pre-defined deadline.


Monday, October 17, 2011

Project Scheduling - Relationship between people and effort

For a small project, requirements analysis, performing design, code generation and test conduction can be done by a single person but as the size of the project increases, more people get added. Adding people later in the project often has a disruptive effect on the project causing schedules to slip even further. If more people are added to a late project, be sure that you have assigned them work that is highly compartmentalized.

The people who are added later in the project should know the system properly. In addition to the time that it takes to learn the system, it also increases the number and complexity of communication paths. Every communication path requires additional effort and time.

Project schedules are elastic. It is possible to compress or extend a desired project completion date to some extent. If delivery can be delayed, the PNR curve indicates that project costs can be reduced substantially. As the project deadline becomes tighter and tighter, you reach a point at which the work cannot be completed on schedule, regardless of the number of people doing the work. The reality should be faced and a new delivery date should be defined.

Effort should also be distributed across the software process workflow. Recommended effort distribution is referred as 40-20-40 rule. Front end analysis and design and back end testing are allocated 40% of all effort while 20% of effort is allocated to coding. The characteristics of each project must dictate the distribution of effort. Requirement analysis may comprise 10-25 percent of project effort. Effort on analysis or prototyping should increase in direct proportion with project size and complexity.


Tuesday, October 4, 2011

Concept of Project Scheduling - What is the root cause for late delivery of software?

After all the important elements are defined for a project, it is now time to connect all the elements. It means a network of all engineering tasks is created that will enable you to get the job on time. The responsibility for each task is assigned to make sure that it is done and adapt the network. The software project managers does this at the project level and on an individual level, software engineers themselves.

Project scheduling is important because there are many tasks running in parallel in a complex system and the result of each task performed has a very important effect on the work that is performed by other task. These inter-dependencies are very difficult to understand without project scheduling.

The basic reasons why software is delivered late are:
- Unrealistic deadline by someone outside the software group.
- Changing the requirements of customer and not reflecting them in schedule change.
- Underestimate of amount of effort and number of resources required for the job.
- Non considerable predictable or unpredictable risks.
- Technical difficulties that are left unseen.
- Human difficulties that are left unseen.
- Lack of communication or mis-communication among project staff.
- Project management is not able to judge that project is falling behind schedule.

The estimation and scheduling techniques when implemented under constraint of defined deadline gives the best estimate and if this best estimate indicates that the deadline is unrealistic, the project manager should be careful from undue pressure.

If the management demands that the deadline is unrealistic then following steps should be done:
- A detailed estimate is made and and estimated effort and duration is evaluated.
- Develop a software engineering strategy using incremental process model.
- Explain to the customer the reasons why the deadline is unrealistic.
- An incremental development strategy is explained and offered as an alternative.


Thursday, August 25, 2011

What is a process framework? What is the approach of a successful project?

The process framework establishes a skeleton for project planning. It is adopted by allocating a task set that is appropriate to the project. There should be some flexibility given to the software team to select the best process model and engineering tasks suitable for the project.
- For a small project, linear sequential approach can be used.
- If for a project, tight time constraints are applied, RAD model can be used.
- If for a project, deadline is very tight, an incremental approach can be used.

After the selection of the appropriate process model, process framework is adapted to it. The process framework is invariant in nature and it acts as a basis for all software work.Process decomposition starts when the project manager wants to know how can this framework activity be accomplished.

Approach to manage a successful software project are:
- One should start on the right foot.
- Momentum should be maintained.
- Progress should be tracked.
- Decisions should be made smartly.
- Postmortem analysis should be conducted.


Facebook activity