ProcessSequential Execution of Instructions
Tasks
Each task is independent since it is controlled by a scheduler or kernel of an Operating System
No task can call other tasks. since the Scheduler schedules the tasks
Each task is associated with an ID.
Each task has priority. for a 1 byte priority assignment, values 0 to 255 is used. higher the [...]
Continue reading Tasks, Process and Threads
There are five types of software maintenance
Preventive Maintenance – A system may be checked and maintained periodically
Corrective Maintenance – Correct the deviation noticed under certain conditions of field use of the system
Perfection or Enhancement Maintenance – development team delivers a system on schedule and then finds another design capable of working more accurately and effectively
Adaptive [...]
Continue reading Software Maintenance
PeoplePeople Senior Manager1. Responsible for creating environment,2. Organising, coordinating and managing all communications
Project Technical Manager or Team Leader1. Selecting the language and tools2. reorganize available software specification3. Maintain activity graph for starting4. motivates and encourage implementors
Implementors1. Implements the software and hardware development process2. uses modeling, source code engineering, testing
Customer or End User1. Specifies the product [...]
Continue reading Software Project Management
#include reg51.h>void main(){TMOD = 0×20;TH1=-3;SCON = 0×50;TR1 = 1;while(1){SBUF = ‘ABCD’;while(TI=1){TI=0;}}}
Continue reading Serial Communication using UART
Delay CalculationCrystal frequency = 11.059MHz.1 machine cycle = 1 / (11.059/12) = 1.085μ sFor 1second delay1.085μ s * 921660 = 1 sec (approx)
#include main(){int i,j;P0=0xff;for(i=0;i
Continue reading Square Wave Generation using Delay
#include reg51.h>at 0×2000 xdata char sinetable[13];at 0×80 sfr sineout;char dacout;char i;void timer_isr(void) interrupt 1{TF0=0;dacout = sinetable[i++];TH0= 0xff;TL0=0xfb;TR0=1;if(i>13){dacout = sinetable[0];i=1;}}void main(){sinetable [0] = 128; //0sinetable [1] =192; //30sinetable [2] =238; //60sinetable [3] =255; //90sinetable [4] =238;sinetable [5] =192;sinetable [6] =128;sinetable [7] =64;sinetable [8] =17;sinetable [9] =0;sinetable [10] =17;sinetable [11] =64;sinetable [12] =128;i=0;IE=0×82;TMOD=0×01;TCON = 0×01;TH0 = 0xff;TL0 [...]
Continue reading Sine Wave Generation
Issues in Requirement Analysis and Design
Inter Process Communication
Fault Tolerance and Reliability
Event Latencies
Maximum Latencies of ISRs
Maximum response Time
Issues in Implementation
Selection of OS (RTOS)
Selection of Processors, Hardware, Memory and its Size
Selection of Programming Language
Power Management using wait and sleep mode
Caches to be used or not
Issues in Testing
Testing the Inter Process Communication (IPC)
Testing Parallelism and Concurrency
Testing Memory [...]
Continue reading Issues in Real Time Software Development
Verification – to ensure that all the specific functions are correctly implemented
Validation – to ensure that the software that has been created is as per the requirments agreed upon at the analysis phase and to ensure its quality
Testing
White Box Testing (also called as Glass Box)
Testing the program flow
Testing the conditions
testing all the loop indices (start [...]
Continue reading Software Testing, Verifiying and Validating
Use of language in which the software team has expertise and experience
Use an Operating System or RTOS that is more appropriate. (Small scale does not need RTOS, so code size will be reduced much)
Simpliciyt to be maintained. Each function should perform a single task and have simple design
Comments must be added before control statements
Program implementation [...]
Continue reading Software Implementation
Phases in Software Development
Definition and Analysis of System Requirements
Clarity of the Specifications
Specifications are obtained for
Required processing of data
Necessary functions & tasks and their expected performance
Expected system behavior
Design constraints
Life cycle of the product
Development
Software design, coding and testing are the main activities in the development process.
Support
Software should need little support for software reengineering by changing environment
Models for [...]
Continue reading Software Development Life Cycle (SDLC)