A prototype is an early sample or model built to test a concept or process or to act as a thing to be replicated or learned from.
Advantages of prototyping
- May provide the proof of concept necessary to attract funding
- Early visibility of the prototype gives users an idea of what the final system looks like
- Encourages active participation among users and producer
- Enables a higher output for user
- Cost effective (Development costs reduced).
- Increases system development speed
- Assists to identify any problems with the efficacy of earlier design, requirements analysis and coding activities
- Helps to refine the potential risks associated with the delivery of the system being developed
- Various aspects can be tested and quicker feedback can be got from the user
- Helps to deliver the product in quality easily
- User interaction available during development cycle of prototype
Disadvantages of prototyping
- Producer might produce a system inadequate for overall organization needs
- User can get too involved whereas the program can not be to a high standard
- Structure of system can be damaged since many changes could be made
- Producer might get too attached to it (might cause legal involvement)
- Not suitable for large applications
- Over long periods, can cause loss in consumer interest and subsequent cancellation due to a lack of a market (for commercial products
Rapid application development-RAD
Rapid application development (RAD) refers to a type ofsoftware development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself. The lack of extensive pre-planning generally allows software to be written much faster, and makes it easier to change requirements.
Agile software development (Agile) | |
Pros | Minimizes feature creep by developing in short intervals resulting in miniature software projects and releasing the product in mini-increments. |
Cons | Short iteration may add too little functionality, leading to significant delays in final iterations. Since Agile emphasizes real-time communication (preferably face-to-face), using it is problematic for large multi-team distributed system development. Agile methods produce very little written documentation and require a significant amount of post-project documentation. |
Extreme Programming (XP) | |
Pros | Lowers the cost of changes through quick spirals of new requirements. Most design activity occurs incrementally and on the fly. |
Cons | Programmers must work in pairs, which is difficult for some people. No up-front “detailed design” occurs, which can result in more redesign effort in the long term. The business champion attached to the project full time can potentially become a single point of failure for the project and a major source of stress for a team. |
Joint application design (JAD) | |
Pros | Captures the voice of the customer by involving them in the design and development of the application through a series of collaborative workshops calledJAD sessions. |
Cons | The client may create an unrealistic product vision and request extensive gold-plating, leading a team to over- or under-develop functionality. |
Pros | Creates minimalist solutions and delivers less functionality earlier |
Cons | Product may lose its competitive edge because of insufficient core functionality and may exhibit poor overall quality. |
Rapid application development (RAD) | |
Pros | Promotes strong collaborative atmosphere and dynamic gathering of requirements. Business owner actively participates in prototyping, writingtest cases and performing unit testing. |
Cons | Dependence on strong cohesive teams and individual commitment to the project. Decision making relies on the feature functionality team and a communal decision-making process with lesser degree of centralized PM and engineeringauthority. |
Pros | Improved productivity in teams previously paralyzed by heavy “process”, ability to prioritize work, use of backlog for completing items in a series of short iterations or sprints, daily measured progress and communications. |
Cons | Reliance on facilitation by a master who may lack the political skills to remove impediments and deliver the sprint goal. Due to relying on self-organizing teams and rejecting traditional centralized "process control", internal power struggles can paralyze a team. |
Table 1: Pros and Cons of various RAD types
System Maintenance
In the early days, home computers were largely self-referential; people used them because they were interested in them. Now, computers are usually used for real-world tasks, yet they still need some navel-gazing attention at times!
The basic routine maintenance tasks are:
Backup
To backup is to create a redundant copy, so that if anything should happen to the original file, you have recourse to the backup. The process can be as simple as copying files to diskettes, but this soon becomes a problem where files are too big for diskette, where there are too many files, or where too many diskettes are required.
A better solution is to use an archiver (such as WinZip) or a backup utility to create a single compressed file from a collection of data files, and to split this over as many diskettes as required. This uses fewer diskettes and allows large files to be backed up even if the file is larger than a diskette can hold.
For large data sets, you may need to use a bulk storage medium such as tape, Zip disk, CDR or similar. These are generally faster and more reliable than diskettes.
The systems I set up will usually have a facility to backup data and core system files to the hard drive, and another to copy the most recent of such backups to diskettes. You should use this whenever you have done more work than you would want to redo from scratch. If your work is saved outside the designated data subtree then it won't be backed up by this process; you will have to make your own arrangements to back it up (WinZip, copy, etc.)
Malware management
There's more on safe computing and malware. Malware includes viruses, worms, trojans, and increasingly invasive commercial applications, and management has several parts:
For best performance, you can use on-demand rather than on-access antivirus scanners - but this requires the user to know when to use this, and act accordingly.
Updating an antivirus generally involves these steps:
File system maintenance
Much can be done during system setup to improve the survivability, maintainability and recoverability of the file system and its data, as discussed on the data management page. Thereafter, there are three tasks required on a regular basis:
http://cquirke.mvps.org/9x/maintain.htm
The basic routine maintenance tasks are:
- Data backup
- Malware management
- File system maintenance
Backup
To backup is to create a redundant copy, so that if anything should happen to the original file, you have recourse to the backup. The process can be as simple as copying files to diskettes, but this soon becomes a problem where files are too big for diskette, where there are too many files, or where too many diskettes are required.
A better solution is to use an archiver (such as WinZip) or a backup utility to create a single compressed file from a collection of data files, and to split this over as many diskettes as required. This uses fewer diskettes and allows large files to be backed up even if the file is larger than a diskette can hold.
For large data sets, you may need to use a bulk storage medium such as tape, Zip disk, CDR or similar. These are generally faster and more reliable than diskettes.
The systems I set up will usually have a facility to backup data and core system files to the hard drive, and another to copy the most recent of such backups to diskettes. You should use this whenever you have done more work than you would want to redo from scratch. If your work is saved outside the designated data subtree then it won't be backed up by this process; you will have to make your own arrangements to back it up (WinZip, copy, etc.)
Malware management
There's more on safe computing and malware. Malware includes viruses, worms, trojans, and increasingly invasive commercial applications, and management has several parts:
- Risk avoidance and evaluation - choice of applications and system setup
- Risk avoidance and evaluation - user education and safe computing practice
- Risk detection and destruction - choice and use of antivirus software
- Keeping abreast of malware - antivirus updates and ongoing user education
For best performance, you can use on-demand rather than on-access antivirus scanners - but this requires the user to know when to use this, and act accordingly.
Updating an antivirus generally involves these steps:
- Go to antivirus vendor's web site via (say) Internet Explorer
- Navigate to the download section of the site
- Download any updates that are relevant, noting where these are saved
- Extract files from downloaded archive to the antivirus program directory
File system maintenance
Much can be done during system setup to improve the survivability, maintainability and recoverability of the file system and its data, as discussed on the data management page. Thereafter, there are three tasks required on a regular basis:
- Check that sufficient free space is available; ideally 50M+ on C: volume
- Check the file system for errors, and manage these
- Defragment the file system once it is known to be error-free
http://cquirke.mvps.org/9x/maintain.htm
Wednesday, March 23, 2011
System Analysis and Design
System
A collection of components that work together to realize some objective forms a system. Basically there are three major components in every system, namely input, processing and output.
System Life cycle
System life cycle is an organisational process of developing and maintaining systems. It helps in establishing a system project plan, because it gives overall list of processes and sub-processes required developing a system.
System development life cycle means combination of various activities. In other words we can say that various activities put together are referred as system development life cycle. In the System Analysis and Design terminology, the system development life cycle means software development life cycle.
Different phases of Software development Life Cycle
(a) System Study
System study is the first stage of system development life cycle. This gives a clear picture of what actually the physical system is? In practice, the system study is done in two phases. In the first phase, the preliminary survey of the system is done which helps in identifying the scope of the system. The second phase of the system study is more detailed and in-depth study in which the identification of user’s requirement and the limitations and problems of the present system are studied. After completing the system study, a system proposal is prepared by the System Analyst (who studies the system) and placed before the user. The proposed system contains the findings of the present system and recommendations to overcome the limitations and problems of the present system in the light of the user’s requirements.
(b) Feasibility Study
On the basis of result of the initial study, feasibility study takes place. The feasibility study is basically the test of the proposed system in the light of its workability, meeting user’s requirements, effective use of resources and .of course, the cost effectiveness. The main goal of feasibility study is not to solve the problem but to achieve the scope. In the process of feasibility study, the cost and benefits are estimated with greater accuracy.(c)
(c)System Analysis
Assuming that a new system is to be developed, the next phase is system analysis. Analysis involved a detailed study of the current system, leading to specifications of a new system. Analysis is a detailed study of various operations performed by a system and their relationships within and outside the system. During analysis, data are collected on the available files, decision points and transactions handled by the present system. Interviews, on-site observation and questionnaire are the tools used for system analysis.
(d) System Design
Based on the user requirements and the detailed analysis of a new system, the new system must be designed. This is the phase of system designing. It is a most crucial phase in the development of a system.
(e) Coding
After designing the new system, the whole system is required to be converted into computer understanding language. Coding the new system into computer programming language does this. It is an important stage where the defined procedure are transformed into control specifications by the help of a computer language. This is also called the programming phase in which the programmer converts the program specifications into computer instructions, which we refer as programs. The programs coordinate the data movements and control the entire process in a system.
It is generally felt that the programs must be modular in nature. This helps in fast development, maintenance and future change, if required.
(f) Testing
Before actually implementing the new system into operations, a test run of the system is done removing all the bugs, if any. It is an important phase of a successful system. After codifying the whole programs of the system, a test plan should be developed and run on a given set of test data. The output of the test run should match the expected results.
(g) Implementation
After having the user acceptance of the new system developed, the implementation phase begins. Implementation is the stage of a project during which theory is turned into practice. During this phase, all the programs of the system are loaded onto the user's computer. After loading the system, training of the users starts.
(h) Maintenance
Maintenance is necessary to eliminate errors in the system during its working life and to tune the system to any variations in its working environment. It has been seen that there are always some errors found in the system that must be noted and corrected. It also means the review of the system from time to time.
A collection of components that work together to realize some objective forms a system. Basically there are three major components in every system, namely input, processing and output.
System Life cycle
System life cycle is an organisational process of developing and maintaining systems. It helps in establishing a system project plan, because it gives overall list of processes and sub-processes required developing a system.
System development life cycle means combination of various activities. In other words we can say that various activities put together are referred as system development life cycle. In the System Analysis and Design terminology, the system development life cycle means software development life cycle.
Different phases of Software development Life Cycle
(a) System Study
System study is the first stage of system development life cycle. This gives a clear picture of what actually the physical system is? In practice, the system study is done in two phases. In the first phase, the preliminary survey of the system is done which helps in identifying the scope of the system. The second phase of the system study is more detailed and in-depth study in which the identification of user’s requirement and the limitations and problems of the present system are studied. After completing the system study, a system proposal is prepared by the System Analyst (who studies the system) and placed before the user. The proposed system contains the findings of the present system and recommendations to overcome the limitations and problems of the present system in the light of the user’s requirements.
(b) Feasibility Study
On the basis of result of the initial study, feasibility study takes place. The feasibility study is basically the test of the proposed system in the light of its workability, meeting user’s requirements, effective use of resources and .of course, the cost effectiveness. The main goal of feasibility study is not to solve the problem but to achieve the scope. In the process of feasibility study, the cost and benefits are estimated with greater accuracy.(c)
(c)System Analysis
Assuming that a new system is to be developed, the next phase is system analysis. Analysis involved a detailed study of the current system, leading to specifications of a new system. Analysis is a detailed study of various operations performed by a system and their relationships within and outside the system. During analysis, data are collected on the available files, decision points and transactions handled by the present system. Interviews, on-site observation and questionnaire are the tools used for system analysis.
(d) System Design
Based on the user requirements and the detailed analysis of a new system, the new system must be designed. This is the phase of system designing. It is a most crucial phase in the development of a system.
(e) Coding
After designing the new system, the whole system is required to be converted into computer understanding language. Coding the new system into computer programming language does this. It is an important stage where the defined procedure are transformed into control specifications by the help of a computer language. This is also called the programming phase in which the programmer converts the program specifications into computer instructions, which we refer as programs. The programs coordinate the data movements and control the entire process in a system.
It is generally felt that the programs must be modular in nature. This helps in fast development, maintenance and future change, if required.
(f) Testing
Before actually implementing the new system into operations, a test run of the system is done removing all the bugs, if any. It is an important phase of a successful system. After codifying the whole programs of the system, a test plan should be developed and run on a given set of test data. The output of the test run should match the expected results.
(g) Implementation
After having the user acceptance of the new system developed, the implementation phase begins. Implementation is the stage of a project during which theory is turned into practice. During this phase, all the programs of the system are loaded onto the user's computer. After loading the system, training of the users starts.
(h) Maintenance
Maintenance is necessary to eliminate errors in the system during its working life and to tune the system to any variations in its working environment. It has been seen that there are always some errors found in the system that must be noted and corrected. It also means the review of the system from time to time.
No comments:
Post a Comment