Sunday, December 18, 2011

SAD Assessment 4

Name: Patrick Duane Valle
Course/Yr:  BSCS III

Assessment 4
Systems development models
           
            System development model is a concept that is being use to represent the model of a system. It is also a way in organizing a process in the concept of a system and it is commonly uses by the system analyst in representing a blue print for the system that they are going to make. It is very useful for the system analyst and for the client because this will allow them to visualize the system. It is a practical way to have a system development model to insure the quality and effectiveness of the system. It will also minimize the cost and maintenance of the system because if you have a model, you can see the conflict and possible problem during the deployment of the system. If the system has less error, you will have less maintenance and because of that, there will be less cost.

            There are different kinds of system development models for the system. The following are the example of system development models that is base on my research and what I have read from the source define below.

  • Waterfall model
  • Prototyping model
  • Spiral model

Waterfall model

            Waterfall model is an oldest system model that is being use and the characteristic of it is that when the phase is not yet done, you can’t proceed to another phase. The people commented and criticize this model because it’s quite impractical and unreal. They call it waterfalls because it’s simply like waterfalls and it is flowing downward. There are different phase that is present in the waterfalls system according to contributor melonfire.
           
           

  • Requirements analysis
  • Design
  • Implementation
  • Testing
  • Installation
  • Maintenance




Requirements analysis
        ↑___ Design   ¯¯¯↓

                        ↑___ Implementation¯¯¯↓

                                                     ↑___Testing   ¯¯¯↓
                                                                       
                                                                      ↑___ Installation ¯¯¯↓

                                                                                               ↑___ Maintenance


Requirements analysis
            As I understand with this phase, this will be the phase that the developer especially the analyst will gather data, analyze problem and what will be the body of the system. In every development of the system model, there is a need of data gathering to have bases. This is a critical part of the system because in this phase, you need to know the possible problem and the possible solution. You need to analyze everything and every details of your system because every detail is very important during the development of the system. You need to understand the system and you need to match the system from the customer or client specification. If the system will not match the client system specification and features then this will be useless because it will not function correctly according to its area of deployment. You can minimize the error during the deployment of the system if you can catch the entire possible problem that may occur and if you can do that, you can minimize the cost because there will be a less maintenance and with respect to that, you will have less cost. Don’t worry if you cant see all the problem because in the other phase, you can fixed it but then, this will be a time consuming and has a high cost. High cost and time consuming because sometimes, you can fix it by repeating it all over again especially if the structure of the system.

Design
            After the analysis, you need to design what you have analyzed. You can’t go to this phase that if you are unable to finish the analysis phase because you will base your design from the data that you have gather. If you want to have an effective design, you need to gather all the data that is needed in developing the design. The more accurate your data is, the more effective your design will be.  This phase also will address the structure and specification of the client. In designing phase, you need to select the hardware and the software parts, the language and the user interface part of the system. You need to understand also the cost of the design base on the budget that is given to you. The good and ideal design will have a good and strong quality with less cost. If you will select the language of the system, I might prefer that you choose the most secure one and the one that is not merely use by other so that only few people will understand it. The complex the structure is, the secure it will be because the complexity will be another key for security. Security is also need to be design to prevent the hackers and the stronger the security will be, the better protection. In designing the system, you need to make the system to be a user friendly because they are the one who will be using the system. The error can be meant by people or not like when the user is not knowledgeable for the system then they can execute an error that can destroy the system even thou they are not meant to do it.

Implementation
            In this phase, you need to build what you have design. If you will implement the design, you need to strictly follow all the design when you implement to minimize the error. In the implementation phase, it is commonly build by a team of people. This may compose of debugger, programmer, graphic designer and people with an expertise when it comes to the hardware part of the computer like computer engineer. It is better if you will choose the people which are expert to their field and you may need a project manager to organize the group. The bottom line is you need to match the system from the system architecture. In implementation part, you need to provide a user manual because not all the people know how to use the system and the system must be a user friendly so that the people that will be using the system will have less error. User manual is a guide intended for the user so that they will understand on how to use the system correctly

Testing
            It is required that every system must be tested before deploying it. In the testing phase, you will find the error in the system so that you can correct it. The common problem in the testing phase is the semantics part of the system. Mostly, this is the error of the programmer because its all about construction the language. The result is not what you have expected because maybe because of the wrong logical structure. The logical structure is very hard to detect than the syntax error. There are tools that provide correction if you have the syntax error like java but if the error is all about the logical matter, you will have the hard time to find the problem in the system. It is also the stressful part for the debugger and the best debugger is the programmer itself but you need to have another people to debug your system because base on what our instructor from programming 1 said that sometime someone is better to have a debugger beside the programmer because they can easily see you mistake. The debugger is also has a background from the programming language so that he/she can be an effective debugger.

Installation
            After a successful testing of the system, you are now ready to deploy the system. The deployment can be in the internet base or land base connection. Installation part for me is the easiest part of the phase because you just need to deploy it but this will be the hardest part for the user because they are the one that will be using the system and they need to familiarize the function and the feature. If the system is user friendly then the user will have no problem from using the system. This analyzation must be included during the designing phase.

Maintenance
            This phase has no end phase because maintenance can be sometimes recommending the system to be reconstructed because of the error that has not been predicted during the development. After you install the system, you need to maintain the performance of the system. You need to update the system so that you can meet the incoming specification because that it will always the nature of the system. You need to upgrade it to insure the quality and to coop up to the fast changing environment.

Advantage
            The advantage of the waterfall model is it is easy to use and understand. By just reading the phase, you will know the flow of the system and it is also easy to the part of inexperience people like us. Another advantage is that you can’t go to the next phase by not having the previous phase. As I can see the structure, it is very organize and easy to implement and the simple structure is very effective for the simple yet effective system. Low cost if you will develop a simple and flexible design.

Disadvantage
            To proceed from one to another phase, you need to finish it and that is an advantage but sometime this architecture can be found at the disadvantage part of the model. If you have the minimum time to spare, if your team is not yet finish in one of the phase of waterfall model, the project will be frozen and this will be a waste of time. The client is unable to see the system until the developer will finish it. This is one of disadvantage because you need to satisfy your client for the system that you are going to develop. Another disadvantage is that this model is suitable only for the simple system and not the complex one. The reason behind this is if you will build a simple system, you can see the problem clearly and you can prevent in the early stage. Unlike if you will build a more complex structure and the error is not clear. It is impractical to use this model if you developing a complex system because if you can’t see the entire major problem before it is too late, you may repeat and go back to the starting phase again. The waterfall model process is not that visible in the blue print. In order to make a complex system, the design must be more detail and the waterfall is not that detail in structure.


Prototyping model
           
            Base on my readings, prototyping is a model that has more accurate product compare to the waterfall model. Because of the characteristic of the model, the user can clearly see the system during the propagation. It is accurate in terms of the client specification because the prototyping allow the system to be reconstructed according to what the client want. In the prototyping, you are going to build a prototype model and starting from the prototype model, the user will evaluate the design and if there is any problem and error, the developer will redesign or edit the prototype to meet the demand of the user. You need to make their demands because they are the one who will be using the system. This model is a less cost model and effective because you will assume the system that there will be no problem and during the user evaluation, this assumption will be corrected. This is a close to the perfection model because you will discover the entire problem. If the problem has been identified then the new program will come in to meet the specification. I can see that this can have an accurate system product and one goal of this model is to allow the user to be more familiarize the system. In order to make the user and adjust the environment of the system, they need to test even if the system is not yet complete and in order to do that, you need to have a prototype. This is more on execution than planning and they are not required for the major planning but they are more on simulation and trial and error to perfect the system. In short, it is almost all about the demonstration of the system before it is being finalize. The prototyping is also for the system with a rapid development and this is for the system that is need to be develop in a short period of time. The type of model with a less cost because of the maintenance and the time that is being spend during the development.

            There are phases that you need to follow when you are developing a prototyping model according to the Bulbul Sharma

  • Requirement Analysis
  • Quick Design
  • Prototype Building
  • User Evaluation
  • Refine prototype
  • Engineer the product

Requirement analysis —→ quick design —→ prototype building ¯¯¯↓

Engineer the product        ←— Refine prototype ←—       user evaluation
               |                                                 |______________↑
               |_________________________________________↑

Requirement Analysis
            This phase is somehow like the requirement analysis from the waterfall model. The deference between the two is that in the waterfall model, it is very specific and it is more detail but the prototyping model, it is not that detail and it is simple and general in nature. In this phase, the analyst is only gathering all the data that is required for the development of the system. The complexity of the system doesn’t matter in this phase and for that, it makes it more flexible in every system that you want to develop.

Quick design
            In quick design, you are designing a simple design base from the simple data that you have been discovered. In quick design, you are just picturing out the perfect design to be evaluated and develop. It doesn’t matter if the design is not perfect because the system will be evaluated during the evaluating phase.

Prototype building
            In this phase, the programmer is developing a rapid prototype system base from the quick system design from the previous phase. The prototype model is for the client to familiarize and criticize into the next phase. The prototype building is better compare to the well develop and almost perfect system because if the almost perfect system will not meet the client specification, you need to re edit the design or worst, you will re create it and compare to the prototype building, it is easy to re construct because it is simple and if the client will not like it, its not that costly.

User evaluation
            In this phase, the user will have an evaluation and testing. They will give their comment about the system and if there is a further problem them this will be recorded and enhance during in the next phase of the model. The evaluation is a critical part of the system because this will define the client specification. You need to make them satisfy for what they want. In short, you need to meet their specification. This is also a way to see the problem that may encounter during the deployment. It is very practical to have this user evaluation compare to the waterfall model that they predict the problem and then build. In this method, it is more accurate because it is being tested in the real time that just having analyzing and predicting it to happened like the waterfall model.

Refine prototype
            In the refine prototype, the system will be enhance and corrected base on the comment and evaluation of the client. The opinion of the client is also important like the security of the system. The goal of this model is to create a prototype, enhance evaluate and create again. That is why it is being called a rapid development. After refining the prototype, you need to consult it again to the client and user to be evaluated further until they will be satisfied and meet the required specification of the system.

Engineer the product
            In this phase, you are going to implement the real model of the system that is being specified by the client. The error and problem in creating this final model is less because you already know the exact specification of the client because of the prototype model that you have been created.  After creating the real system, you need to go back to the user evaluation for the further enhancement. In this case, you will have few enhancements and you don’t need to rebuild the system all over again and that’s one of the advantages of this system.

Advantage
            One thing that I like about this system is that you will satisfy the client to the fullest because during the development, the user will able to see the system and test it and if it necessary to modify it, you can demand and for that. This is also a good model because the system error is being minimized because of the prototyping and if you will have the less error, you can minimize the cost and minimize the maintenance. It is very practical model if you have limited resources yet you need to develop a complex system. It is flexible in any type of system and if you sum up all the cost you spend during the development and further enhancement or upgrade will be less that the costs compare to the waterfall model.

Disadvantage
            One problem that I can see in this system model is that this model is not that secure when we talk about the security system. It is not very well planned and for that, it is not that effective sometimes. Security is always involved when you develop a system especially those system which is very confidential like the banking system.


Spiral Model
           
            The spiral model somehow combination of waterfall and prototyping model but there is an additional function which is the risk assessment. In this model, the whole process is being repeated if the client is not satisfied for the result. That explains the structure of a model because it is being arrange in the spiral form. It’s a quite good but by just watching the model, I think it is costly and the success of the system is undefined and also time consuming. The spiral model has only few steps to follow according to the center for technology in government from the University at Albany.

  • Project objective
  • Risk
  • Engineering and production
  • Planning and management

Project objective
            This phase is the same as the phase of waterfall model but you need to define your objective and know the possible problem that may encounter during the development. You need to balance all things so that the risk will be minimized and the success of the project will be maximized.

Risk
            The problem is being identify and being analyze if it is necessary for the team to have a further develop the system and enhance it. You also need to review the objective of the project and balance all things in the system. For me, there is no perfect system but you can build a balance one. Balancing the positive and negative side of the system is a practical way to cover up the system weakness. In the risk management, you may develop an alternative way to resolve the present problem.

Engineering and production
            You need to know the cost of the development before you build it further. In this phase, the cost is matter the most because you need to identify and analyze if there will be a further development that you need to do. If the client will stop the operation then the system can still function but the quality is low and if you pursue the project for further development then you need to have budget.

Planning and management
            The client will be finalizing the project if it is enough or not. If she/he still thinks that it must be develop further then you need to go back from the starting process again and repeat each phase. The feedback of the client will matter most because they will define the limitation and specification and they also are the one who will shoulder the cost of the project.

Advantage and disadvantage
            This model are using waterfall and prototyping model and for that this will inherit the future of the two. One advantage of this model is that the user can see the system during the development. It is a good quality development model and more flexible compare to the prototyping model and another is that this model has risk management to guide the client and development in controlling and preventing the risk. The disadvantage of this is that the model is somehow complex. It is not a user friendly and only applicable to those who are more experience in designing a system. If you have a small system then you apply this, it is not practical because the time and cost is higher.  
           

Conclusion
            There are different types of system development model outside. All models are not perfect and it will always matter for what kind of model you want to use in developing your own system. You just need to understand every model so that you will know what model you need to use in order to meet the goal and build a good model for your client


No comments:

Post a Comment