Sunday, December 18, 2011

Assignment 4


What is the Purpose of System Development Models?
                System development models are used to guide the analysis, design, development and maintenance of the system. System development Models is very useful in developing systems because it serves as the guide in order to create an effective and efficient information system. Some of the system development models are waterfall model, prototyping model, and spiral model. Each of these models has different designs and specific purpose or reasons, some of these models has similar goals and also has similar task. And also these models have different problems and challenges. This paper will explore the similarities and differences among these various models and will also discuss how different approaches are chosen and combined to address practical situations.

Waterfall Model

                The waterfall model is the earliest method of structured system development, nowadays this model is still widely used even though in the recent years It has come under attack for being too severe and impractical when it comes to meeting customer’s needs. It is most closely resembles a “generic” model for software development. According to some study waterfall model is a sequential design process, often used in used in software development process, it is called a waterfall model because as it seen that its progress if flowing steadily downwards life a waterfall. In 1970 up to now it has become the fundamental model for software development in many software companies. This model was introduced by Winston W. Royce. As I’ve understand waterfall model has its personal feature that sets it apart from other software development models, this feature is, waterfall model does not allow a simultaneous execution between phases, it simply means that a second phase cannot be executed when the first phase in not finish, this kind of approach is easy to implement and there is transparency in every stage. Systematic documentation is done at every phase of waterfall model. To verify whether the development process is on track and meets customer’s requirements, review meetings are conducted at the end of every stage. The waterfall model consists of the following steps; these are problem definition, feasibility study, requirement analysis, system design, coding and testing, implementation, and system maintenance.

1.       In Problem Definition Phase
-          In this phase is where we define the problem, it is not an easy job because defining the problem is more likely solving the problem, because when you find what really is the problem we can find the right solution for the problem, this phase requires a critical thinker that has the ability to think what really is the problem, identifies what is the characteristics of the problem. As an analyst we should ask our client also, because our client knows what really the main problem is, analyst can get ideas in the client, and client can help the analyst in defining the problem because the client knows what they really needs. Good relationship between client and the developer is very useful.
2.       In Feasibility Study Phase
-          In this phase, it aims to accurately and logically uncover the strengths and weaknesses of the existing business or proposed venture, opportunities and threats as presented by the environment, the resources required to carry through, and ultimately the prospects for success. In its simplest term, the two criteria to judge feasibility are cost required and value to be attained. As such, a well-designed feasibility study should provide a historical background of the business or project, description of the product or service, accounting statements, details of the operations and management, marketing research and policies, financial data, legal requirements and tax obligations. Generally, feasibility studies precede technical development and project implementation.
3.       In Requirement Analysis Phase
-          This is the phase of the waterfall model which includes a meeting with a customer to understand his/her requirements, in this phase an analyst must perform a full and complete analysis to the current situation of the customer. This phase also refers to the gathering of system requirements; an analyst should gather all the important requirements with the goal on determining how these requirements will be accommodated in the system. Extensive communication between the customer and the developer is needed and essential. According to some information this is the most crucial phase because any misconception at this phase may give rise to authentication issues later. Analyst must be detailed and precise with no doubts in defining the software.  It is very important to understand the customer requirements and expectations so that the end product meets his/her specifications. The main goal of an analyst in this phase it that an analyst should understand the customers well, analyst should understand what are the kinds of things that customer needed, good relationship is needed between the analyst and the customer. Analyst should conduct an interview with the customer. In requirement analysis phase an analyst should also understand what kind of system he/she is going to work with and he/she should understand that if it is not a big system, a day by day interview with the client is not necessary because a small system can easily be defined and can easily be analyzed so it is better when the system is not big it is necessary to ask some questions or to prepare only questionnaires not interviews. And also on important thing is, we all know some of the client wants to have a good system but sometimes other clients are exaggerated to what they need so being an analyst we should guide our client and tell them the right needs of their company. To sum it all up, requirement analysis varies on how the analyst communicate with the customer, analyzing the problem well is the main objective in this phase, analyst should gather important data’s and analyst should know what the problem is and analyze what is the body of the system.
4.       In System Design Phase
-          This is the phase where the designing of the system takes place. This explains why the waterfall model has a unique feature because you cannot proceed with the designing if you are not finished with analyzing. Once the requirements have been collected and analyze, it Is necessary to identify in detail what should be the design of the system or how the system should be constructed in order to perform necessary tasks, the main objective of the system design phase is to focus on the data requirements for example “what information will be processed in the system?” it is focus also in the software construction for example “how will the application be constructed?” and also it is focus in the interface construction for example “what will the system look like? What standards to be followed?” These questions are the main function of the system design phase, it is very important to ask these questions. It tells about the software construction, developer should know well that in software construction we should understand what the system are capable of, we should understand the way the system works and how it processes. It tells about the interface construction, a developer must understand that a simple system in terms of design is very good because developing a system does not need a good interface but a good functionality and also the developer should also understand the needs of the user and lastly it tells also about the data requirements, being a developer identifying the data requirement will help in terms of knowing the need of the system.
5.       In Coding and Testing Phase
-          This is the phase where the analyst is not capable of doing. This is the time when you gather all the needed information from the start up to this, this time the programmer takes place. In coding the programmer is the one capable of doing, after understanding all the gathered information the programmer converts this information into a machine readable computer code. The main objective in coding phase is to create the system software. Programmer makes flowcharts in order to have a guide or steps to make good software. Algorithm is the main ingredient in this phase, algorithm is the one that will solve the problems of the software and coding phase is very important because you cannot proceed with the testing phase without coding phase because you don’t have thing to be tested. And in testing phase this is the time the programmer checks for possible bugs and errors, programmers run the program several time in order to find the possible loopholes and fix it. As I’ve experience in creating a program, I divide the program into three different types, the declaration, implementation and the main program, this will help me to identify errors and this will help me to fix it easily. According to some information testing is focused in two areas: internal efficiency and external effectiveness. As I’ve understand the goal of external effectiveness testing is to verify whether the program if functioning according to the systems design and also if the program is performing all necessary functions or sub-functions and also the goal of internal testing is to know whether the computer code is efficient, uniform and well documented. It is necessary that a program should be efficient in able to avoid program crashing.
6.       In the Implementation Phase
-          This phase is the realization of the application; it is the time when the developer executes the plan, and ideas. According to some study it is a realization of a technical specification or  the realization of a technical description or algorithm as a program, software component, or other computer system through programming and deployment.
7.       In the Maintenance Phase
-          I think this is the final phase of the waterfall model the maintenance phase, in this phase the developer checks the processes made by the system from time to time. He/she will update the system if it has some errors or bugs.

The Advantage of Waterfall Model
                For me waterfall model is the commonly used model by all the systems analyst, developer and designer because it is very simple and easy to understand and the steps of waterfall model for me are the proper steps in developing a good system.

Problems or Challenges Associated with the Waterfall Model

                We all know that the waterfall model has been used extensively over the years in the production of many quality systems, but with all this the waterfall model encounter some problems. In recent years according to the study waterfall model undergo some attacks due to its rigid design and fixed procedure. Some blames fall into these categories. Some of them says that developing a system using the waterfall model can be a long, painstaking process that does not yield a working version of the system until late in the process and also at the beginning of most projects there is often a great deal of uncertainty about requirements and goals, and it is therefore difficult for customers to identify these criteria on a detailed level. The model does not accommodate this natural uncertainty very well and also in reality some projects rarely follow the steps that waterfall model proposes.

The Prototyping Model

                Some of the analyst has a difficulty in knowing the requirements at the beginning of the project, that’s why a prototyping model was created. Some of the users know how many of the objectives that they wish to address with a system but according to study they do not know all the distinctions of the data nor do they know the details of the system features and capabilities. That’s why prototyping model is created because it allows and offers a development approach that yields without first requiring all information up-front. The main function of prototyping model is that the developer builds a simplified version of the proposed system and presents it to the customer for consideration as part of the development process. In this case the customer also provides feedback to the developer, the customer goes back to the developer and improve the system requirements and incorporate additional information’s.  New programs are developed once requirements are identified. Prototyping model is consisting of the following steps; these are requirements definition/collection, design, prototype creation or modification, assessment, prototype refinement, system implementation.

1.       In Requirements Definition or Collection Phase
-          This phase is the same phase related to waterfall model but not as broad, this phase refers to the consideration of all aspects of the targeted business functions or process, with the goals of determining how each of those aspects relates with one another, and which aspects will be incorporated into the system. In this phase the information collected is usually limited to a subset of the complete system requirements. The main objective of this phase is to collect all the system requirements; it is the collection of data needed by the system.
2.       In Design Phase
-          This phase is not similar in the design phase of the waterfall model because in the waterfall model you design the whole system based on all the gathered information but in prototyping, developer is just designing a part of the system whether it is correct or not but the developer only pictures out what would be the perfect design for the system, it simply means that the design phase in prototyping model is simply a quick design, designing only what have been discovered. The main objective of this phase is just to design the initial layer of the information that is collected.
3.       In Prototype Creation or Modification Phase
-          In this phase all the information gathered is being moved in to a prototype it simple means that information is gathered to make a prototype of the system. In modification it simply means a new model is modified and united into some software or pre-develop system.
4.       In Assessment Phase
-          When the prototype is made, it is presented into the customer and customer will make its comment and suggestion and it is collected by the developer. This assessment is very helpful to the developer because it helps the developer to adjust to the problems of the system and in order for the developer to create a new kind of prototype if needed.
5.       In Prototype Refinement Phase
-          This phase is the refining of the prototype, when all the comments, suggestion are collected from the customer; the developer is now ready for refinement. The developer is ready to revise it to make the system more efficient and effective and more useful to the users,
6.       In System Implementation Phase
-          I think this is the last phase of prototyping model. In this phase once all the requirements are understood, it is time to implement the system.

Problems or Challenges Associated with the Prototyping Model

                Prototyping Model has its own problem or challenges also, some of these problems as I’ve researched is prototyping can lead to false expectations because some of the customers really believes that the systems is finished according to what I’ve said above that when designing a system using the prototyping model only a part of it a developer is designing because when the developer gathers a part of the information, the developer designs it already to make a prototype that’s why some of the customers mistakenly believes that the system is finished when in fact it is not. When prototyping work such as database normalization, documentation, testing and reviews for efficiency have not been done, some of the problem also is prototyping can lead to poorly designed systems, because we all know the primary goal of prototyping is rapid development it means that the goal of prototyping is a fast development of the system that’s why according to the study that the design of the system sometimes suffers because the system is built in layers.
Spiral Model

                Spiral Model is derived from the best features of waterfall model and prototyping model and it introduces a new component called risk assessment. Spiral is used to describe the process that is followed as the development of the system takes place. It has a similarity to the prototyping model because prototyping model designs an initial version and it is repeated after the customer tells its comment and suggestions but they are different also because in spiral model the development of the system is carefully designed. Spiral Model uses the step of the waterfall model that’s why the best features of the two models above were combined in this model. The spiral model is made up of the following steps: these are project objectives, risk assessment, engineering and production, planning and management.

1.       In Project Objectives Phase
-          In this phase the analyst should determine the objectives, it is important to determine the objectives because it serves as a guide or it serves as the goal. In this phase also possible obstacles are recognized and alternative methods are weighed.
2.       In Risk Assessment Phase
-          In this phase some of the problems are identified and possible replacements are examined by the developer. It is evaluated and weighed in the consideration of project continuation. According to the study sometimes prototyping is used to clarify needs.
3.       In  Engineering and Production Phase
-          In this phase all the detailed requirements are being determined and process and it’s time to develop some piece of the system.
4.       In Planning and Management Phase
-          This is the last phase of the spiral model. In this phase the customer is involve because the customer is given an opportunity to analyze the results of the version create in the Engineering step and to offer comment to the developer.

Problems or Challenges Associated with the Spiral Model

                Spiral model has problems also but it is difficult to understand what its strengths and weaknesses. According to the study that risk assessment component of the spiral model provides both developers and customers with a measuring tool that earlier Process Models do not have.

Conclusion
               
                To sum it all up, system development models is very important in designing a system, with these models any developer can make an effective and useful system. Although this is just a guide but any developer should follow this because without this there are no good systems present in this time.

No comments:

Post a Comment