HomeHome  PortalPortal  CalendarCalendar  FAQFAQ  SearchSearch  MemberlistMemberlist  UsergroupsUsergroups  RegisterRegister  Log inLog in  

Share | 
 

 Assignment 4 (Due: December 19, 2011, before 01:00pm)

View previous topic View next topic Go down 
AuthorMessage
Admin
Admin


Posts : 41
Points : 124
Join date : 2009-06-17

PostSubject: Assignment 4 (Due: December 19, 2011, before 01:00pm)   Tue Dec 13, 2011 9:57 pm

Identify and discuss at least 3 systems development models .. discuss each phases ... (at least 3000 words)
Back to top Go down
View user profile http://usep-ic.forumsmotions.com
annjuviepapas



Posts : 15
Points : 15
Join date : 2011-11-23

PostSubject: Identify and discuss at least 3 systems development model   Sun Dec 18, 2011 11:13 pm

It is been nearly half millennium that we recognized software crisis as things get complicated due to its demand from the users; with this many academes developed their way of aiding this viral phenomena in the world of technology through the different system development model. We follow the traditional system development cycle that many years being used but it is fairly fine to the system that involves small or medium requirements that are well understood in the minimum span of time. But How about when the company requires a lot of modules and requirements that complicates the whole system development? As the system grows, adding a lot of functionality and modules, process gets more difficult, the probability of bugs and errors are higher, and schedules get longer , I bet a better system development methodologies are highly needed when it comes to this situation.

According to Bulbul Sharma PGDMA, he defines system development models are the one that specify the activities of development process and how it was organized for the total development effort of the system. In addition, it imposes the discipline upon how the system being developed with the aim either adaptable or predictable the system will be. It is done by cutting and organizing it into phases, stages and deliverables that portray a strong reason on the stage of planning for the system.

As I researched there are a lot of system development models are being applied to their development but there 3 that stood out and commonly used by the professionals.

This paper will identify and discuss the 3 models used in system development which are the Waterfall Model, Spiral Model and the Agile Model.

One of those is the The Waterfall Lifecycle Model.

The Waterfall Lifecycle Model

The waterfall lifecycle model is a traditional model that adapted and a product of the System Development Life Cycle (SDLC). Actually, according to Sir Randy Gamboa all models that are now currently introduced to the system analyst are just an update or customized adaption of the generic model life cycle which is the system development life cycle. In waterfall lifecycle model each phase of the cycle is defined from the output of the previous phase that is completed. Whatever the output of the previous phase will be the input for its next phase. Some of the methods and techniques that are recommended are through the use of dataflow diagram, entity models, and state transition diagrams which are part of the development process.

The process is also known as “waterfall model”. The modification are still there as time goes by due to that there are a lot of names invented to each phase regarding to this model. The typical phases that were being used are below:

Problem Definition

This phase includes the defining of the problem the same as the first step in scientific method we use when we were still in high school. Defining the problem is isn’t so easy. It requires critical thinking ability to pin point what really the problem is and what problems should be considered. The characteristics of a problem is usually categorized as technical, economical and social, through that you might come up to a problem that relates to the categories given where the system falls under. In some cases solutions might become a problem like for example automobile, it become a solution to fasten and have a convenient lives wherever you wanted to go but it turns out nowadays that becomes a problem to our society where heavy traffics created due to outnumbered cars on the street and even the worse things is it is one of the reasons to the damage done in our environment. Unfortunately, not all of us were born to be a critical thinker but luckily we have a saying “practice makes perfect”. Problem is a problem if you consider it one. We sometimes are hesitant if it is a problem because we always look not because how big the problem is but how complicated the solution will be. Anticipating the problem will help you broaden your imagination in understanding what might the problem. The problem is problems and values change over time which one thing to be considered in defining the problem. That is why, we do have initial problems but we tend to never mind it without looking how good the problem is. Just try and unconsciously you could be able to determine and define the problem easily.
Feasibility Study

It considers all the aspects of how feasible the system considering to the targeted business function or process. In this phase also determine how those gathered information relates to each other and how you can use the information to conceptualize the required system. Feasibility study looks how capable of being done or how practical and useful the problems you have stated in the previous phase which is the problem definition. Before proceeding to next phase you should address where, how and whom your system you intended to have (of course you could not proceed to the next phase if still here are imprecise).
Requirement Analysis

The first step in this phase requires performing a comprehensive and complete analysis of the client’s current situation. Requirement analysis use techniques such as the detailed analysis in their previous system they had to help you on what, where and why the system did not sustain what company needed or an analysis to their current manual system being operated or a document appraising the value of their computerized system. In this phase it will be able to answer the question “what would be the next system can do to the company to improve their business functions?”. Identifying the current problem could lead you what might be the possible important requirements needed by the system which is essential in requirement analysis. During in this phase also the system analyst must not disregard what the client’s wants for example their wishlist without depriving the real needs of the business considering the costs and efficiency of the requirements given to the system. If the client is exaggerating what he wanted to be as a system analyst who knows the viability of the system you should help him to recognize the real need of the company and minimize the unconscious wishes of the client which are not very important to the system required by the organization. In this phase also you should aid the computer-illiteracy of the client and be able to communicate technical matters regarding to the system. Since clients are not very a techy people who knows about the technology, in this phase also includes to correctly translate what the client’s request even if it is not stated very well. Kung baga reading between the lines or kung pwede beyond pa jud kung makaya. Anyway, requirement analysis techniques vary on how well you communicate to the client. Some techniques may be through an interview_settle an appointment to the client to have a meeting but interview sometimes leads asking irrelevant topics that unnoticeably mislead to the personal life of the client where in the bright side you are building relationship to him however it would be a waste of time, or you may have through a questionnaire_ it is a well-structured way of gathering the requirements and it is helpful in analyzing the requisites. If the system is huge it is impractical to conduct a lot of interview to have the information needed so to aid that impracticality preparing questionnaires are better than interview. However, you cannot interact or to ask follow-up questions to what the client’s answers because of the nature of using this technique. Indeed, it is not interactive. Another way is to gather documents from the company like for example their punch cards from their log-in/log-out effect or payroll slip or internal reports if necessary_ for short an output from their existing system they use. If those things are not convincing you may give a scenario to the client given the output and the client may give what are the inputs but again since it is interactive it may be summed up as part of the interview technique.

System Design

System design is important in this cycle because here the system analyst will analyze and identify how the system will perform for the given task from the gathered requirements from the previous phase. This phase focuses on what data should be used in the system to come up to the desired system that the client wanted. During the system design phase the main agenda is to satisfy the requirements identified from requirement analysis phase. The requirements identified will be the input for this phase and the output from this phase will be again the input for the next phase and the process iterates until you reach the last phase. The user interface will being sketched and the possible functions might begin moving. Their might be a definition of external components to interact to the requirements needed if necessary. Security plan also a part of the design of the system if it requires any security measures to be attached to the system or data retention plan that describes and lists all the policies for the data management of the project.

Coding and Testing

Coding and testing is the phase where you start to materialize all the gathered information, all the head-cracking analysis done from the previous phases whom the programmers are present this time. Algorithms and flowcharts will be the main ingredients in coding. According from the site buzzle.com this is the most important phase of the waterfall model and without the coding, testing will be impossible because you don’t have a thing to be tested obviously. In testing, if bugs and errors are encountered it will turn back to the designing phase and all the deficiencies are being fixed. According to Sir Rustjohn Balagolan, the testing phase is cut into small parts where they called them modules so that it is easy for them to fix the bugs. Moreover, some system analyst called it units which very equal to module, they just differ in the terms but the same in purpose.

Acceptance

After the system has been tried and tested, it will be showed and demoed to the client. The client may use the final program and if it satisfies the client’s wants the project will be considered to be done and completed. On the other hand, if the client does not like the system the team will again analyze. It is not too heavy to the team who are divided and knows what there roles and responsibilities and whatever the lapses it will be easily to be distinguished and fixed it immediately if fortunate.

The advantage of Waterfall model

One of the characteristics that the waterfall model Is advantageous compared to the model is being linear. It followed the sequential order of each face. Each phase is being documented that helps to trace back where the flaws and where to improve the system. It also gives structure to the inexperienced staff due to its linear order and easy in good management control. The stability is higher but the cost of the resources is low.

The Limitation of Waterfall model

The problem with the waterfall model is you should know the requirements needed before you start and along the way adding a requirement are not a good practice and it will degrade the essence of the waterfall model. When in the previous phase there is a mistake it will give an after effect to the next phase that may worsen the small mistake into a horrible system. Other advantage is the client cannot preview what the system may look like to be until it finish. The other member of the team might get frozen until they reach their turn in doing their roles.
Waterfall model is a structured and a linear model where analogically speaking it is riding a bus without stop over until it reaches its own destination. Yet, Waterfall is much closer to the generic life cycle which is the system design life cycle where most common and traditionally use by the developers, system analyst and project manager.

The Spiral Model
If you notice the limitations of the waterfall model is more compared to the advantages being mentioned where the nature of the previous model is forward momentum, to overcome this and to aid the limitations garnered by the waterfall model Barry Boehm defined a new approach in developing a system in his 1988 article entitled “A Spiral Model of Software Development and Enhancement”. According to Boehm, spiral model is not a lifecycle instead a procedure because it defines an activities to the procedure rather focusing to the product.

Spiral Model highlighted two major features where more advance than the waterfall models which are the risk analysis and the evolutionary nature of the process. In his article, the process starts at the middle and traverse clockwise where traversing 4 different regions _ the evaluate risks, develop test, plan and determine goals. Each procedure will result in a risk analysis that gathered user feedbacks, system analysis and sets priorities and requirements to the next function. For example, the first traversal may result into system requirements and enter the risk analysis region where you can evaluate what you have determined and after that is the prototyping where it falls in the region of development and test. As you undergone the process and slowly creating distant to the center your system matures towards the outer area.

The Four Regions in Spiral Model

In the figure 1, it was divided into 4 regions. It started from the Plan quadrant. It includes the defining the resources, identifying initially the objectives of the system to be developed. As it traverses to the determine goals quadrant it determines the constraints and to determine the possible alternatives. Next is the evaluate risks quadrant which is to evaluate the risks obviously. Furthermore, it is also where to assess both technical and management risks. The last quadrant is the develop and test region where it creates prototypes or sample of the application that relates to the system.

Advantages of Spiral Model
Since it is more advance to the waterfall model it is clearly stated that it aids the linearism of the waterfall model. It is also more realistic in development approach to most of the industries as work progresses. It estimates the budget and time as it traverses outside. Other member of the team could work with the coordination of the team. The most important thing is any risk can be detected much earlier after traversing each region and measures can be applied right away.

Limitations of Spiral Model
The disadvantage of the Spiral Model is a product of it’s over risk assessment. In the first place it requires an expert in risk management to be able to give justice to the purpose of having this model. This is not practical in a small system where it does not requires too much risk analysis that the time spent is not realistic to the small or low-risk projects.
Spiral Model is a complex model and it is considered as a procedure rather than a life cycle. It was created by Barry Boehm in his article “A Spiral Model of Software Development and Enhancement”. This model combines Prototyping and ADDIE model. It is not much used nowadays because of its complexity.

The Agile Model
According to the survey conducted by the British Computer Society (BCS) found out that the most common reason why the project fails is due to the poor management of the project. System development requires a crucial gathering of information that sometimes it is not properly delivered and may lead to the total failure of the project. Some of the reasons that the British Computer Society gives emphasize are clients are lack of the IT fundamentals that they are unsure what they really want, user requirements are misunderstood_ where I just mentioned in the waterfall model that it is unfortunate if you misinterpret what the clients wanted to convey due to its limited knowledge about the automating their functions in business operations or it could the clients are consulted insufficiently by the person who interviewed him or her.

Because of the limitations presented by the two models _the waterfall model and the spiral model which are very complex and does follow a lot of process where it holds back the progress of the development cycle is the starts of the new born approach in development strategies_ the agile model.

Agile model reported it existence more than 10 years and according to Sir Randy Gamboa it is the most and update model that most system analyst uses. This model was defined by The Agile Alliance last 2000 with a public declaration in software development.

The Advantage of Agile Model
The alliance proposes 12 different principles but the most important feature is it welcomed change and differentiate waterfall model and spiral model. Agile is more adaptive rather than predictive that can be able to respond to the changing environment that lures companies to create agreement between the team and the clients. Furthermore, agile model is people-oriented rather than process-oriented. Face to face communication and continues inputs and updates to the system where it leaves no gap between the team representative more often is the project manager and the client. The main objective of agile model is to have a system that will work whoever the user will be.

The Limitation of Agile Model
It lacks emphasize to the other important details specifically in designing and documentation or the project can easily get taken off track if the customer representative is not clear what final outcome that they want. Lastly, it requires a senior programmers that is capable in deciding to be taken during the development process that makes newbie programmers doesn’t have place in the development process.

Conclusion
Waterfall model is predictive, agile model is adaptive and spiral model is both adaptive and predictive. All of these models are essential in different scenarios it matters on how we apply it to develop a better syste.

There are several approaches that a system may adopt but to look for the best approach is impossible because whenever a model is invented it will still have limitations and disadvantages depending on the system needs. One thing for sure whatever the model you would like it is still from the system development life cycle that many years being modeled and many systems were born through this.

Note: The figure above is not available in this site. To refer please do visit my blog.. -->http://ajpapassad.tumblr.com . Thanks.


Reference:
http://www.cavehill.uwi.edu/staff/eportfolios/paulwalcott/courses/comp2145/2010/requirements_analysis_phase.htm
http://www.buzzle.com/articles/waterfall-model-in-testing.html
http://www.the-software-experts.de/e_dta-sw-process.htm
http://www.my-project-management-expert.com/the-advantages-and-disadvantages-of-agile-software-development.html
http://www.scribd.com/doc/15243782/System-Development-Model


Last edited by annjuviepapas on Mon Dec 19, 2011 11:45 am; edited 3 times in total
Back to top Go down
View user profile
patrickduanevalle



Posts : 15
Points : 15
Join date : 2011-11-24

PostSubject: Re: Assignment 4 (Due: December 19, 2011, before 01:00pm)   Mon Dec 19, 2011 12:21 am

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


http://www.techrepublic.com/article/understanding-the-pros-and-cons-of-the-waterfall-model-of-software-development/6118423
http://www.ctg.albany.edu/publications/reports/survey_of_sysdev/survey_of_sysdev.pdf
http://www.scribd.com/doc/15243782/System-Development-Model
Back to top Go down
View user profile
viktor immanuel calonia



Posts : 15
Points : 15
Join date : 2011-11-23

PostSubject: The System Development Models   Mon Dec 19, 2011 12:36 am

The success of making the system is depending on the development models that the system analyst used. The system development models are used as a basis in developing an information system. The system development is somehow like a plan or structure in making system that system analyst plan. The following system development models are the models, or method, or plan that the system analyst follows in their process in developing their information system.
The structure of the system development process is always based on the phases that everybody followed in making information system that a system analyst handles a project. Even if they do something else or added phases from it, the common thing among the system development models circles around the system development life cycle which follows this phases or guidelines.

Planning

The first thing that the system analyst does is to start the project in doing what are the needs of the information system that the client needs. The system analysts do also in planning phase is to define the problem that the client wants to be solved in order to improve the system that the client wants to improve. In defining the problem, the system analyst will identify the problem by interviewing the key users of the system. The system analyst also will make and develop the list of the expectation on business benefits or business advantage, is define in terms of its effect or influence that can cause financial benefit to the client or the sponsor of the system development. Other than making or develop the expectation on business advantage, the system analysts also identify and define the expected system capabilities. It is part of the job in the planning phase to define the scope and the limits in terms of requirement including the making a series of documents that contains problem description, business benefits, and system capabilities. The system analyst will also do the planning of what to do and what to accomplish in a specific set of days and weeks. The system analyst will plan and make a schedule for what would be the target of the specific date. The system analyst is the one that make what would be the schedule out of the limited resources that will be given to the system analyst from the client or the sponsor of the system development. Also the system analyst will plan how to make the operation of the system development process to be faster out of the schedule that the system analyst made which will be based on the resources that will be given to the system analyst. The resources of the system development can be the members of the team that the system analyst manages, the software tools that will be used in developing the system that the system analyst develops, and can also be the hardware tools and paraphernalia that the staff of the system analyst use in developing information system that the system analyst develop. In making the schedule, it is part of the job of the system analyst to develop the work breakdown structure of the project of the project that the system analyst handles. The system analyst will identify the task and activities that the team system analyst, the project manager of the system, will do or execute along the development of the information system. In making the schedule, it is part of the job in the planning phase to make a schedule using a Gant chart. The basis of the Gant chart would be the activities and task that the team would execute along in developing the project. The system analyst, as the project manager, will also formulate the Pert Chart which will be based on the work breakdown structure which would be the individual or the subgroups’ task and activities. And as I said before, the system analyst will make schedule out of the resources available, of course, the system analyst must develop first the required resources needed in the project in making the information system which the system analyst handle. The other job in the planning phase is confirming the project feasibility. In the planning phase, it is important to determine the feasibility of the project that the system analyst handles, since it is important how feasible the project would be. The system analyst, as the project manager, will analyze what would be the feasibility of the project in terms of economic feasibility, defining if the project would cause a benefit or cost to the client or the sponsor of the project and as part of the economic feasibility analysis, the project manager will define and analyze the source of funds of the project. The system analyst also the do the organizational and cultural feasibility, technological feasibility, schedule feasibility and resource feasibility. In analyzing the organizational and cultural feasibility, the project manager must identify if the system that his team develop is fit into the culture of the company and project manager will do identifying potential risk in evaluating issues related to the system and the culture of the company. The cultural and organizational issues include low level of computer competency, computer phobia, fear employment loss which will causes usually by the automation of the system. In analyzing the technological feasibility, the project manager consider if the system is a state of the art technology, there is more consideration if the expertise needed in development the system exist in the people in the team and analyzing if there would an outside vendor to be involve in the project. In the analysis of the schedule feasibility, the system analyst as the project manager estimates what would be the need of the system even with or without complete information exist which would draw to drive realistic assumptions and estimates, recommend what time would be the range of time for the completion in order to build a completion date flexibility, assign temporary date marks to periodically reassess completion dates, the decision to involve experienced personnel, formulate the management in proper allocation of the resources. The project manager also analyze what resources are available and resources that can be acquired for the project. the project manager will analyze and define the availability of the team members that exist to work with the project, the project manager consider also the team skills and experiences of the people work for the project. the project manager will also consider the availability of the hardware and paraphernalia needed in developing the system which include the computer, equipment and supplies, and the project manager also consider the availability and time of the staff that are present to work for the system. The project manager also plan the salaries and the wages of the staff, the preparation of the equipment, training and the other things that may cause cost to the client or the sponsor of the project. Also in the planning phase and the project manager will define and analyze risk, if there exist while analyzing project feasibility, and do the risk management of the risk in doing the project in doing the information system. It is also in the planning phase that the project manager must have to know the skills and experience of the people working in the development of the system which can be done in activities such as team building but it would cost the sponsor or the client. From that planning, it would be up to the client or the sponsor of the development of the system to approve the proposal in order to let project team to start their work.

Analysis
The Analysis phase includes the job of defining and understanding what would be the business needs and what would be the needs in the processing of the system. The system analyst as the project manager will be defining what would be the system capabilities and constraints. System analyst will define what would be the functional needs of the system which would include the activities system must perform which will be based on procedures and business functions. The system analyst as the project manager will document the analysis models. The system analyst will define also the nonfunctional requirements of the system which would be the operating environment, the usability, the reliability, the security requirements, and the performance objectives of the system that the system analyst develops. The requirements of course would depend on the people with interest in successful system implementation, the one who will benefit the success of the system or the stakeholders of the system, and they would be the direct user of the system, the clients or the sponsor of the project of the system development, and the technical staff or the one that maintain the system operation. The analyst would be the one who will analyze who would be the people that corresponds to the three types of stakeholders. The first thing to do by the system analyst is to find or gather information that will be needed in the development of the project or the system that the system analyst develops. The information will be needed by the system analyst of the project in order to understand what the business-functions that are exist, and also from what the system analyst understand on the business functions. To understand more the business functions, it is practical to make or create a model of existing system, and from the model of the existing system, it would be possible to derive the information system requirements from the existing model. The other approach in the information gathering is to identify the logical requirements of the new system then the system analyst would balance the review of existing or current business functions with the new information system or system requirements. To make the results of the analysis more reliable, the system analyst does some fact finding investigation about the existing system.
The fact finding jobs can be done in the investigation about the business by doing some readings in the review of existing report or procedure reports and descriptions about the system if there’s any. With that, it is part of the job to know identify business rules, discrepancies, and redundancies, and the need of understanding of the processes that are in the business. The other way of doing fact finding would be to do some interview and discussion about the business processes with the user of the system. Doing this would cost time because it is time consuming and money because it would be required to do many sessions in order to meet all the users and in order to understand more about the business processing requirements. The other way is to do more observations and documentation of business process in order to have a documentation of the existing system for future references which can be documented with workflow diagrams. It would be possible that there will be variation from the office walkthrough to performing actual task. The other way of making fact finding about the business process is to build and create system prototype. Making a preliminary design of the information system that will develop. It is focused in making the business process prototype to accomplish single objective which means that the prototype is changeable. The other way would be to distribute and collect questionnaires about the system that will be given to the stakeholders of the system. This technique of gathering information would be limited and specific information can be taken from a large number of stakeholders which would be the same. In short, small information can be taken a large number of people and is not well suited for gathering detailed information. Conduct application design sessions with members of the team that are in the group. It is an expedite investigation of system requirements seeking to compress fact-finding, modeling, policy formation, and verification activities into shorter time frame. With this method, it is important to have all the stakeholders in the session. Research more about vendor solutions. It is to conduct research if the other company solved the problem but it may cause a purchase solution before understanding problem which would result for the analyst who would conduct the method to not know the detail about the problem. A system analyst can pick from those method in gathering information.
The system analyst will develop the system requirements of the system that the system analyst develops. It is also included in the analysis phase to define the priority of the information system requirements with that the team can identify which of the requirements would need to be handled first. In analysis phase, the system analyst as the project manager, will define the prototype for feasibility and also finding and evaluating what are the alternatives in handling the problem of the system. from that the system analyst can review recommendations in the system with the management or the client.

Design
The job here is to design what would be the functions and the operations that the system analyst wants in the information system. It would be the detail of what would be the layouts of the graphical user interface and the process of the information system that the system analyst design which would be based on the result of the analysis in the analysis phase of developing the information system along the project. At this phase there would be a design of the different screen layout. It would be here in this phase that the design of the entity-relationship diagram would be made. It would be here in this phase that the design of the data flow diagram. Data flow diagram shows how data moves through an information system and it will now show the processing steps and the program logic, it will just show what the information system does. With the collection of the dataflow diagram, a context diagram can be made out of the data flow diagram that was made. It is somewhat like a summary of all the dataflow diagram of the system. the system analyst also design a use case diagram to help them in the implementation of the information system and along the project development.

Implementation
Here all the design will be implemented in the machine. There will be implementations of the screen layout or the layout of the graphical user interface, the implementation of the business process that will be used in the business processing, and the implementation of the data flow diagrams for the what the system will do and entity relationship diagrams for how the machine manage the database of the information system. With the help of a number of programmers, the system analyst as the project manager will guide what would be specifics of the system that should be coded. Testing the codes the information technology personnel or the programmers is part of the job in the implementation in order to have a check if there are defects in the system that may cause from the bugs of the codes or some typographic error from the programmers or from the information technology personnel.

Support or Maintenance
There should be some technical team who will ensure the operation and the functionalities of the system in order of the system to deliver well to the user and to the businesses. After the deployment of the information system that the system analyst and the members of the team in the project works, the system analyst as the project manager will have some people that will monitor the information system and monitor. Monitoring the system may result to the new problem that the system analyst observe and may result to the initiation of a new project.

System Development Models
When using system development lifecycle as a structure or plan of the process in making the system, the system analyst can do the system development lifecycle in two approaches. The system development lifecycle can be in one way process approach or traditional approach which can be based on the waterfall model, or the adaptive approach which can be iterative approach and can be based on the spiral model.

Waterfall model
Also known as the waterfall model, it is the one of the most widely used model that is usually used as a structure of developing system by the system analyst. Waterfall model follows the process of the system development lifecycle it is such that the process of the waterfall model is in one direction or the structure of the plan is in linear process. The waterfall name of the model is based from the sequences of the phases of the system development lifecycle, it is like waterfall. The concept is, if the team is done in one phase, they can proceed to the next phase in the sequence of the system development lifecycle. The structure of the process of making the system of the team including the system analyst is in one direction. Meaning, the direction of the phases that the team must undergo is one direction, no turning back to the opposite direction. The phases of the system development lifecycle are planning, analysis phase, design, implementation and support or maintenance and the waterfall model can be called a traditional approach of system development lifecycle because the structure or framework of the waterfall model is done in one way approach. The waterfall model is a linear approach to the system development process and when the project ends, the system is will not be touched anymore for improvement.

Spiral model
The spiral model approach in making or developing a system is an iterative repetition way of doing system development lifecycle. The phases that will be based is like the waterfall model but the process of doing the project of making the information system can be done iteratively, it is just like doing the waterfall model repeatedly until the project of making the system more stable will be done. The output of each cycle will be the prototype of the project of the system that the system analyst works. The iteration is done because there is an assumption that the first cycle of the process would not be perfect and in every iteration or repetition, the aim is to refine and polish the previous result or prototype. There would be a mini project for each of the iterations or repetitions, and the job would be getting smaller for each of the iterations or repetitions of the project of making the information undergone.

Scrum
Scrum is the term used in rugby which means to restart the game after accidental breach or when the ball has gone out of play. In the system development, the term scrum means a method of system development that would require a fast respond to situation as rapidly as possible and fast respond to the project needs. The approach to the system development is to break the system into its subsystem or work or task that will be done and apply the waterfall model in every subsystem or task or work of a system one at a time within a certain time or in the scrum terminology, a sprint. The sprint is a basic unit of target time of work which would tend to last between a week and a month and has a deadline or having a given or allotted time to do the work. After the developing subsystems, it is possible to undergone iteration to the process in order to refine the functionalities of the system. a scrum is a kind of agile system development that promotes adaptive planning, immediate and flexible response to changes and development, and having allotted or target time to do the wo
Back to top Go down
View user profile
Alexander Manlod

avatar

Posts : 22
Points : 22
Join date : 2010-07-30
Age : 26
Location : Davao City

PostSubject: Re: Assignment 4 (Due: December 19, 2011, before 01:00pm)   Mon Dec 19, 2011 1:12 am

Identify and discuss at least 3 systems development models .. discuss each phases

Since we had a hard time knowing in class about the models of system development, I look over the internet searching about it and I was amazed and confused because it has a lot of results. It has a lot of definition to analyze about and I find it really hard.
As I understand, there are a lot of system developments models using nowadays, since most of the people now are getting involved with computers so as programmers and system developers.
• System developers sometimes use waterfall model, from the word itself waterfall meaning flows downwards which is a sequential development that flows chronologically all the way to several phases.
• Another one is the prototyping model, generally, it is an effective design for a huge and complex built project or system in which the customary application do not exist in defining the requirements of the system.
• Next is the iterative enhancement model, mainly, it merges the fundamentals of the steady sequential model with the iterative views of prototyping.
The significance of these models doesn’t show that it oppose to one another, it is just system developer want to enhance and improve the methods and techniques to have a useful and efficient and advance system. To explain further, waterfall model, usually uphold that one must move to one step or phase only. Phases of expansion in it are chiefly distinct, definitely there must be no turning back and forth on these phases. Some are sees this method or technique as certainly not flexible, they have been upgrading this kind of approach over the years and a several of new model have been combined. As argued by some of the system developers now, they say that it is a bad practice. System developers believe that it is not possible that you can create a one perfect phase of an application lifecycle and then moving on to the next phase without learning it from the previous one. It is a typical problem when there’s such an instance if one the requirements must have to change in the middle of the process may cause a lot of hard time to spent and cost and effort being exerted. As to define the characteristics of waterfall model, mainly, it is not flexible. Of course, the main part of the software or the majority of it depends on the client who requested your software. It is their right to change their stated requirements. Hence, the software you created or developed must be adaptable when you are to spend considering the effort of the design and outline to implement based on what the client want which requires flexible one or else those clients will not trust you anymore. Unless those who demand the requirements of the system and those of developed and design the system or the project are greatly capable to each other. It is really difficult to figure out exactly what are the satisfactions of each step or phase. Having a consistent test on the system you developed from the designing phase, the implementing phase, and the verification phases is much more important to ensure the validation of the phases preceding them. The clients of the system developer using waterfall model may oppose that if that system developer or designer chose to follow the protocol or the right process and does not usually take wrong moves or mistakes that then, there’s no need to consistently assure the previous phases. It is very difficult to know the time you spent and the money you invest for each step or phases you have done to any development process. Basically, the waterfall model servers nothing proper means of practicing the management control over a system or project and to have a plan in controlling, also the risk of the system or the thing that compromises your profession does not cover within the range of waterfall model. And sometimes, only a few number of team will be assigned for each step or a phase that usually affects the activities of the team members.
Talking about the phases of the waterfall model. One of these phases is analysis phase. This phase requires collecting of the requirements of the system with the objectives to know how these particular requirements will be entertained in the process of the system development. Proper communication of the system developer and the client who demands the system is very necessary. The particular problem must be listed along the way with the wanted goals of the projects. You must be particular with the limitation of the project or the system. Another one is the specification phase which the certain type of the system is conducted from the definition of the information. This system must clearly define the function of any existing product. One should consider all the factors of the sighted business function or how it is being processed with its goals and objectives on defining how did those functionality does related to the other side, and which factors will be involved into the system. In designing of the software and the system phase must be translated into any software production. After collecting and gathering the specified requirements of the system you developed. Being a system analyst, it always tries to figure out how to get involve with the computers to finish the work things done. In the implementation and testing phase stage the designs are translated into the software domain Detailed documentation from the design phase can significantly reduce the coding effort. Testing at this stage focuses on making sure that any errors are identified and that the software meets its required specification. They speak about business and some other establishments and organization that computers and software to buy, and then, they will choose how to get over those tools and techniques to work for the project together. In the integration and system testing phase all the program units are integrated and tested to ensure that the complete system meets the software requirements. After this stage the software is delivered to the customer. Mainly, computer analyst always get their work by interviewing the certain people what their satisfaction and needs for their computers to well good enough. By then, they will plan a good computer system that can do those jobs and tasks well. A system can have many computers which are working together and use different kinds of applications and softwares, and other tools. The maintenance phase the usually the longest stage of the software. In this phase the software is updated to: Meet the changing customer needsAdapted to accommodate changes in the external environment Correct errors and oversights previously undetected in the testing phasesEnhancing the efficiency of the software. By the time system analyst knows, understand and figure out what the system might need to do, they divide the task into small steps. Of course, they will draw some flow charts, diagrams to know well and understand how will the data and information can get into the computers, how that data will be processed, and then how it will make it to the people who needs it. Say for example, the particular system analyst may decide how the certain sales information will make into certain computer of a certain business and how it add up the data or information in a very useful way and gives an advantage for the store managers. primarily System analyst experiment with the other different computer system strategy, they have methods, techniques, procedure to show their skills and abilities.
Another one is prototyping model, basically, it is an usual rough calculation of a prepared system or project which is created, tested and then reviewed as necessary to know that it is an achievable or acceptable prototype is finally done in which the proposed project or system can now be started. As they say, this method or technique work effective on the scene in which all the system or project requirements are not known the information ahead of the time. Basically, it is an iterative process which is a risky method that compromises the place between the system developers and clients or users.They have to try a variety of steps and tools until they figure out the best system, which will be faster to use, easier to manipulate and of course, it least the cost. Then , analyst choose what and which computer specifications, the softwares and application they will used, the tools to buy, and other stuffs they needed on a certain project or system. They give the project programmers gradually steps and instructions on how the system or project will be efficiently done. Sometimes, some system analyst help in creating the software to use on that project too. Mainly, the job of a system analyst, is making the particular computers to work on a same path together. Of course, they connect them in a good network. System analyst then decide how to get the certain information from these computer to another computer. He also said that google is a powerful tool to get information in getting things done. You can have all the data you want to make your system increase its efficiency and complied the client and customer’s satisfaction. After planning and preparation of a certain system, the system analyst examined it of course to make it sure that it really works. They double check to make sure that information and data is processed faster than the other one and mainly, without mistakes, bugs some other error might occur to the system they created. They also look for the system if it is user friendly and easy to use, and to find it by the clients and customers convenient for them, often , they must have to quickly change their preparations to make their system and project better than other one they planned. Most of the time, computer system analyst work in offices or might be as well as computer labs. Some work from home or so they called home based job. In working on these computer for a long time can make this certain analyst eye, back , or maybe wrist problems. Some of these workers work for very long time to get the project done which must be on time they supposed to finish. that being a software project manager can be of the same skills as they correspond to the other industries. Further than the skills which is basically associated with the customary project management in the industry such as constructing and manufacturing? Of course a software project manager can classically have an wide ranging background in software engineering and development. Most of the software project managers graduated and hold a degree in information technology, computer science, computer engineering, and other related field and can typically associated with the industry as a software developer. In a huge and great customary project management, prognostic techniques and methodology such as the waterfall model is often used on a certain system. There is a usual certain emphasis as a project manager in the field of project management. He said that a project manager must have the knowledge and must responsible enough on how to plan, execute, and closing of that certain project. Certainly, we are to relate to industry of construction, networks of computers, the architecture, the software engineering or development. He said that a project manager is the person who is responsible for accomplishing the said affirmed project visions and objectives. The key project management responsibilities must take in creating sufficient, clear, attainable and achievable project visions and objectives, creating and manipulating the certain requirement of the system and projects, and managing the multi restraints for the system or project which are the money you invest for it, the time you spent in it, and of course the quality of work and the quality of the sytem which compromises your profession as a system analyst. It is often a customer or client representative and must determine and implement the correct needs and satisfaction of the customer or the client which is based on their knowledge of the firm they are use to represent.

The last one is the iterative enhancement model, generally, it usually merge the positive notion of waterfall model and the prototyping which the main concept is the application should be enhance accordingly, in way that it adds its abilities and capabilities into the system until it is fully constructed. In each phase and structure update can be done. The best part of this method is can be done by better testing since in each augmenting phase can be test which is more easier than testing the whole system as what waterfall model defines. As we all noticed, all of these ways and methods are a big advantage especially to the every system developer. Hence, most of these tools and techniques should be choose well since not all methods are to be used in just one developing or enhance system project. Of course, it usually depends on what kind of system you are supposed to use, the parts that are to be used, the flow of it and many other facts to be considered. If a certain system analyst or developer is not skilled enough to figure out the types of models he or she best use, then it might be hard to show the system development life cycle. Though a lot of ideas overlap, the one who is good at creating design on mainframe system is not necessarily a great candidate for web development. The system analyst must be familiar with the designing concepts that suites for the appropriate project of the particular development environment. Basically , system analyst develops and enhances the information system and information technology to make the best benefits and advantage for an establishment or business. While computer programming, it is commonly a person needs to get a knowledge on how to program effectively by using high-end of programming languages. Computer programmers seek their knowledge on some other computer-based fields like network systems, graphical user interfaces, That means the one who is great at designing commercial buildings is not usually a good one to design residential housing. I have previously investigate through the internet, I have read that “ system analysis and design has a huge difference from computer programming though some of us actually relate the system analyst as a programmer in the project team. Basically , system analyst develops and enhances the information system and information technology to make the best benefits and advantage for an establishment or business.Though a lot of ideas overlap, the one who is good at creating design on mainframe system is not necessarily a great candidate for web development. The one must have the ability to use the techniques to manage his or her work. Say for example, in designing software tools. one must have the business knowledge or the capacity to use them. System development is a lot like a huge number of blind people trying to know out what a certain animal looks like. Each individual has his or her own field of knowledge. Hence, the more knowledge of one person has would make the process easier and make better outcome. A great communication skill without saying is much more important. Mainly, a system analyst and developer must know the overall function and flow of the system. He or she has to make a look of the system he created and sees to it with what is the main function of the programmer and the developer. The system analyst should get into the information of the system, and he or she must the one who creates the flowchart. These things make up the dissimilar steps of a system analyst in software / systems expansion project. Some use the customary approaches like the waterfall model, overlapping (or concurrent phases), and iteration. Now there are also many type of methodologies used in system development. Same as your situation, a system analyst, are keen to details, you will make precise planned models.

next, a system analyst should enhanced his own programming skills. This step is very effective most importantly in dealing with the certain system from a client and customer. As a system analyst, you can get the while specifications of the project you are going to create with, . It is somehow relates to the skill of the people that a system analyst should mainly possess. Some use the customary approaches like the waterfall model, overlapping (or concurrent phases), and iteration. Now there are also many type of methodologies used in system development. Same as your situation, a system analyst, are keen to details, About an essay article entitled the differences of being a system analyst and a programmer I have previously investigate through the internet, I have read that “ system analysis and design has a huge difference from computer programming though some of us actually relate the system analyst as a programmer in the project team. Basically , system analyst develops and enhances the information system and information technology to make the best benefits and advantage for an establishment or business. A system analyst should work with the people on project which composed of the system developers and programmers, designers, the one who document, the one who test, the one who document, the project managers and a lot of others counting the customers and client sometimes. Skills on communication are very significant especially particularly on dealing with different people which are involved in your system. The manager we interviewed pointed out that as a system analyst, you do not have to make yourself think that your really a programmer, but a usual person.
It usually depends on what kind of system you are supposed to use, the parts that are to be used, the flow of it and many other facts to be considered. If a certain system analyst or developer is not skilled enough to figure out the types of models he or she best use, then it might be hard to show the system development life cycle. Though a lot of ideas overlap, the one who is good at creating design on mainframe system is not necessarily a great candidate for web development.
Back to top Go down
View user profile
Michael S. Palacio



Posts : 15
Points : 15
Join date : 2011-11-23
Location : Davao City

PostSubject: Systems Developmet Models   Mon Dec 19, 2011 10:26 am

Systems Development
Systems development is a process that encompasses all the activities from defining a requirement for the target system up to the resulting system fully implemented and accepted by the end user. Systems development is not just a simple process where someone can just develop a system in a blink of an eye. Systems development needs to be performed and implemented with full attention of a system developer and other people involved. The whole process is very crucial that the development of a system is divided into different stages and can take a very long time. The process is called Systems Development Life Cycle (SDLC). Systems development life cycle, as defined in the reporting on “Approaches to System Development”, is a step by step process that provides the overall framework or structure for managing systems development process. It gives the system developer a formal process to execute and finish an information technology project. Basically, systems development life cycle consists of system planning (the request to do the project), system analysis (understanding the business requirement of the client), system design (creating the plan of the system that satisfies the requirements of the client), system implementation (the construction of the system using different tools), and system operation and support (the maintenance and enhancement of the system).

Systems Development Model
In systems development, there are a lot of different models and approaches to implement systems development life cycle. Systems development models could be predictive (where the requirements of the system are well understood and well defined and there is low technical risk) and adaptive (where the requirements and needs of the system are uncertain and there is a high technical risk). The two approaches have their own advantages and disadvantages over from each other. It is now up to the system developer or the system analyst to decide which model to use in the process of system development. And speaking of models, in this paper, we are going to identify and discuss three of the many system development models there is. These system development models are defined based on the system development life cycle (SDLC). All the models are developed through SDLC. The models I have identified are Waterfall Model, Prototyping, Spiral Model, and Iterative Enhancement Model.

The Waterfall Life Cycle Model
Waterfall model, based on the report on the class, is a system development life cycle approach that assumes the various phases of a project can be completed sequentially in which one phase leads into the next phase. In this model, it is strictly to follow that one cannot proceed unless the previous phase is not yet finished. The output of each phase is then used as an input to the next phase.

Phases of Waterfall Model
Waterfall model is the model that is centered closest to the traditional systems development life cycle. It is a linear and sequential approach in system design and development. The phases of waterfall model are almost the same as to the system development life cycle (SDLC).
• Problem Definition
o This is the very first step of system development and is sometimes the hardest part of the process. Defining the problem is not that easy. It is not just discovering a problematic part of the system and then that would be the main problem, but in fact using the mind to accurately identify and then define what the real problem is.
o Problem definition is also where the requirements of the to-be system is defined by the client. From here, the system analyst will now identify some of the possible issues regarding the requirements defined by the client.
• Feasibility Study
o From the problems and requirements defined in the previous phase, the feasibility study comes up next, where the system analyst or system developer studies the viability or the possibility of the system to be unique, useful, and to be with sense. It examines the market issues of the company and its financial state, whether the business requirements of the company meets the safe net of the organizations budget. Feasibility study also clarifies if the system to be created should be really implemented or better not. Cost is really considered in this phase.
• Requirement Analysis
o When the target system is feasible based on the results of the feasibility study phase, the system analyst or system developer now analyses the situation of the company. In this phase, he or she studies the flow of the system of the company, fully understanding every area of the business process; and to do that, the system analyst or system developer communicates with every employee of the company and also to the boss. Constant communication with the client is really important for it could assure that the understanding of the process of the client’s business is accurate and also the needs and wants of the client is not failed to meet.
• System Design
o In this phase, the system analyst or system developer creates the blueprint of the system. He or she develops the database design, illustrate how the user interface would look like, plan how the implementation would carry out, deciding what programming language to use, and other important duties that would affect the system development. Translating the requirements to information technology is also done in this phase. The desired features of the system should also be planned in this phase. A lot of designing tools are used in this phase such as Microsoft Visio for creating Data Flow Diagrams, Use Case, Entity Relationship Diagrams, and other diagrams relevant to system development. The system analyst also plans the approach on how to develop the system, for example is planning the modules of the system.
• Coding and Testing
o Based on the design created in system design phase, the system developer now uses his or her programming skills to translate to code the design of the system. How the system is implemented is based on what approach the system analyst defined in the system design phase. Developing in modules is the most used by lots of system developers. It is because with modules, finding the bugs and fixing them would be easier and faster. System testing is also executed by the system developer. System testing is very crucial because in this part of the process, possible errors might occur and which must be fixed. System testing should not be done only once, for when the system developer makes changes on each bug he or she finds, other functions or modules might be affected creating another bug. Perseverance and patience should be present in doing the system testing.
• Implementation
o Now that the system is now fully developed and already bug-free, it is now to be deployed and delivered to the client company. In this phase, implementation also refers to training the users of the new system developed. The system analyst would now present to the boss of the company the finished product.
• System Maintenance
o All systems eventually would generate bugs and errors for no system are perfect. It is like a metal that in the long run, the metal would rust. Systems are also like that. That is why system analyst or system developer should keep in mind to be open to future errors and bugs. And to prevent those future bugs and errors, timely maintenance should be performed on the system. If possible, further enhancement should be made for the system to become more efficient.

Advantages of Waterfall Model
With waterfall model, it is really a simple model to follow. It is easy to understand and easy to use. First time system analysts or system developers should be able to create systems easily and efficiently. This model is good for management control for it is clear when to plan, design, and track the current status of the developing system. The requirement definition is also stable that causes stable development.

Limitations of Waterfall Model
Waterfall model have need of all the requirements to be defined and known upfront. There is also a possibility that the system can be frozen even before the design begins. When the system is frozen, which could take lots of years, technology selected for the system might be on the verge of becoming obsolete due to the fast changing technology. System freeze is also due to the fact that one phase can only proceed when the previous phase has finished executing. The customer or client can only view the system on development only once, and he or she might be unsatisfied; and when that happens, the system created might be for nothing because the client might change his or her mind in accepting the finished system.

Prototyping
Prototyping is one of the system development models where, obviously as the term defines, prototypes are the created. These prototypes, according to Walter Maner, are easily modifiable and extensible models of the system that already have the interface and input/output functionality. Prototypes are versions of software that are still under development and undergo constant changes.

Phases of Prototyping
Prototyping is developed to solve the limitations of waterfall model (obsolete technology due to system freeze and system requirements could also be frozen). With this, prototyping is done with the following process model:


• Requirement Analysis
o Basic requirements of the system needed are gathered. In this stage, only what the system basically all about is required. From here, the system developer analyses the flow of the system that the client wants.
• Quick Design
o From the requirement of the client and with the basic information about the system, the system analyst now designs the system with minimal functionalities but assuring that the important requirement is considered.
• Building Prototype
o The system is now developed using programming languages and other tools needed in creating systems.
• Customer Evaluation
o After the first prototype is finished creating, the system developer now presents it to the customer or client and then evaluates the finished product. In this stage, the system developer and the client communicates and analyses as to what are lacking in the system, or what are the changes needed to do for the client to be satisfied.
• Refining Prototype
o In this stage, the person involved is the system analyst or system developer. He or she now does modifications and enhancements by planning again the things to change. He or she would present it again to the client if he or she is satisfied with the plan.
• Engineer Product
o This stage is just like the building prototype stage. The difference is that the system being developed is not from scratch. The system analyst or developer only do the enhancement and modification based on the new design he or she created from the previous phase. After the enhancements and modification are done, he or she would present it again to the client to know if he or she is now satisfied; and if satisfied, then the system analyst or developer would execute finishing touches to finalize the system.

Advantages of Prototyping
In prototyping, there is a more active participation from the client for he or she could see the requirements as while being gathered. The client also can give right away his or her comments and have the tendency to change his or her mind on the requirements he or she needs. Errors can also be detected easy for the development stage needs only a short amount of time, thus testing can be done right away. In prototyping, flexible design and development is also allowed. The overall development cost can also be lowered when requirements change frequently.

Limitations of Prototyping
In prototyping, the complexity of the system may change beyond the original plan. False expectations can be created because of the fact that prototyping can produce systems very different from the one you want and expect.

Spiral Model
Spiral model is a system development model where the system undergoes four stages iteratively. This model is a combination of the elements of waterfall and prototyping models. As the name suggests, the activities in this model can be organized like a spiral which has many cycles.
Spiral model is more comprehensive life cycle model proposed by Barry Boehm in 1988 that is for the purpose of addressing the inadequacies of the waterfall model. According to Boehm, the approach of spiral model is to create risk-driven software process rather than a document-driven or code-driven process. Spiral model uses prototypes to minimize risk by repetitively using them.

Phases of Spiral Model
The structure of the spiral model is shown in the figure given below. Each cycle in the spiral begins with the identification of objectives for that cycle and the different alternatives are possible for achieving the objectives and the imposed constraints.

• Quadrant 1: Determine objectives, alternatives, and constraints.
o In this quadrant, the system analyst or system developer should understand the system or product objectives. He or she should consider the performance of the system, its functionalities, and ability to accommodate change as we all know that the system undergoes spiral change. Different implementations should also be kept in mind. Some of the implementations may be design, reuse, procure, and modify. From the implementations, limitations arise such as technology, cost, schedule, support, and risk. All these things must be investigated to make the system efficient.
• Quadrant 2: Evaluate alternatives, identify, and resolve risks.
o Alternative approaches are selected that best satisfies the constraints or limitations on technology, cost, schedule, support, and risk that are found on the last quadrant. In this quadrant, the focus is to alleviate or, if possible, diminish the risk. Each alternative is investigated and prototyped to reduce the risk associated with the development decisions. The outcome of the evaluation determines the next course of action. If critical operational and technical issues such as performance and interoperability risks remain, more detailed prototyping may need to be added before progressing to the next quadrant.
• Quadrant 3: Develop, verify, next-level product.
o If a determination is made that the previous prototyping efforts have resolved the critical operational and technical issues, activities to develop, verify, next-level product are performed. As a result, the basic “waterfall” approach may be employed—meaning concept of operations, design, development, integration, and test of the next system or product iteration. If appropriate, incremental development approaches may also be applicable.
• Quadrant 4: Plan next phases.
o The spiral development model has one characteristic that is common to all models—the need for advanced technical planning and multidisciplinary reviews at critical staging or control points. Each cycle of the model culminates with a technical review that assesses the status, progress, maturity, merits, risk, of development efforts to date; resolves critical operational and technical issues; and reviews plans and identifies critical operational and technical issues to be resolved for the next iteration of the spiral.

Advantages of Spiral Model
Advantage of spiral model is that the risk is managed carefully. This is due to the comprehensive understanding of every possible constraint or limitation of a system and thinking of the best way to cope up with those constraints. The users or client can also observe the system earlier due to the very fast prototyping tools.

Limitations of Spiral Model
Spiral model explicit risk management is only applicable to large scale systems. The time spent for evaluating risks is too large for small or low-risk projects. This model is also a very complex one, where a lot of considerations must be kept in mind. And as for the main concept of risk management system development model, expertise in risk management is really required, which is a rare skill a system analyst or developer has.

Iterative Enhancement Model
Iterative enhancement model is one of the system development models which are based on the idea that the software should be developed by increments where each increment adds relevant functionality until the system is fully capable of satisfying the requirement of a client. This model combines the elements of linear sequential model or the waterfall model and the iterative prototyping. In this model, several modules are incrementally developed and delivered.

Phases of Iterative Enhancement Model
Iterative enhancement model consists of only three phase but is executed many times. The steps are just the basic phases of the waterfall model of the system development life cycle (SDLC) – design, implement, and analyze. The following figure shows the process model of iterative enhancement model.

• Design
o In this step, the preliminary design of the system is made. The system analyst or system developer creates the plan where the basic functionality is present. A specific task is the main objective on each iteration of the model.
• Implement
o To code the designed system and to test them is done on this phase. The implementation is the current prototype to be tested.
• Analysis
o In this phase, the system analyst or the system developer evaluates the prototype created from the previous phase. The performance of the system is analyzed and the analysis for the next iteration is done. The decision to what task to do is also answered in this phase.

Advantages of Iterative Enhancement Model
As there are only three phases in each stage, the feedback from the previous stage improves the next stage. The possibility of changes in requirements to be reduced is also a result of the said reason. With early delivery of prototypes, these useful components could generate improved cash flow.
As smaller sub-projects are easier to control and manage, job satisfaction is increased for developers who see their labors generate good results at regular and short intervals of time.

Limitations of Iterative Enhancement Model
Some of the programmers are more productive in larger scale projects than in this model where the each prototype is finished very fast. There are also functionalities that are difficult to divide in modules which are developed incrementally.

There are a lot of system development models created for different purposes and situations. It is now up to the systems analyst or systems developers to know and decide what model is best for the project he or she is making for. It even is possible to make your own model for systems development models are just basis for understanding and improving the life cycle of a system development.

Source:
http://www.scribd.com/doc/15243782/System-Development-Model
http://csweb.cs.bgsu.edu/maner/domains/Proto.htm
http://www.freetutes.com/systemanalysis/sa2-prototyping-model.html
http://courses.cs.vt.edu/csonline/SE/Lessons/Spiral/index.html
http://www.selectbs.com/analysis-and-design/what-is-the-spiral-model
http://www.freetutes.com/systemanalysis/sa2-iterative-enhancement-model.html
http://www.scribd.com/doc/49760660/21/ITERATIVE-ENHANCEMENT-MODEL[center]


Last edited by Michael S. Palacio on Tue Dec 20, 2011 11:32 am; edited 1 time in total
Back to top Go down
View user profile
Alvin Mark Cabeliño



Posts : 14
Points : 15
Join date : 2011-11-26
Age : 25
Location : Davao City

PostSubject: Re: Assignment 4 (Due: December 19, 2011, before 01:00pm)   Mon Dec 19, 2011 12:01 pm

It was the ending of the year, yet we still strive for the subject SAD (System Analysis and Design) regarding with some different topics that must be research and discuss by the groups. Last weeks topic was all about the System Analyst. Wherein, we discuss about the true meaning of an analyst towards business development and problem solving or problem finding. We really had a great source of information coming from a professional analyst graduated from a computer school somewhere in south cotabato. The next topic was all about the characteristic and skills that an analyst must have to sustain the needs of people especially business partners. Mr. Alqaque, our system analyst respondent did quote something about the second topic. He said that “an analyst must meet up the demands of the client so as the demand of his teammates…..respect and resolution.” A long term of achievement would mean a lot to those who are still in the process of making their own system design to support everybody’s needs.

In addition, the fourth topic that I am about to tackle is all about the three systems development models for SAD. I was not able to have an advanced research for this topic that is why I am trying my very best here to discuss the said topic. It’s on 9:00 am in the morning when I was able interview a system analyst/project manager of the building Pryce tower. It’s near located at LANDCO Bldg. near Victoria Plaza, Bajada, Davao City. I was able to asked question about the said job. According to Mr. Alqaque, Professional system developers and the customers they serve share a common goal of building Information systems that effectively support business process objectives. In order to ensure that cost-effective, quality systems are developed which address an organization’s business needs. There are typical that can be performed such as system conceptualization, system requirements and benefits analysis, project adoption and product probing, system design, Specification of software requirements, Architectural design, Detailed design, Unit development, Software integration & testing, Installation at site, Site testing and acceptance, Training and documentation, Implementation, and Maintenance
On the other hand, we were tasked to make a report or blog for the three different system development models and we must discuss. After I read the notification I went again to my project analyst, and scheduled an interview form him so that he can have a better issue right now. Things might like complicate but it won’t be as long as I will not let it happen right now. Thus, I was able to go to library and had some research with the said topic. I google to, just in case things won’t work out the way I wanted it to be. Around 10:30 am Saturday, I was able to gather information about the different system development models. Just as I thought, the topic was that hard for me. Sinking it to the brain was not that easy. I kept on reading it until I was able to understand a little bit of it.

And later on I was able to have my best three for the different system models that needs to be discussed. These are the following: Prototyping Model, the Waterfall Model, and The Exploratory Model. These are the three models that I will be conveying in the next pages of this paper.

We live in a world of systems driven by cause and affect. Those systems include financial, production, inventory, biological, chemical, thermodynamic or workflow. Systems can be modeled as nodes representing system variables and connecting lines representing causal effects. The changing value of one variable can cause another to increase or decrease as described by equations. Understanding how a system really works is the first step towards using, improving, automating or explaining it to others. That is why certain models are created as a guide on how to make everything fine when it talks about project analysis, so as with problem solving. Different models were created for different view of understanding things especially on how to come up with a solution that has accuracy and speed.


Prototyping

This first model that I choose was but a good model for people and analyst who are not that sure what to do with regards to the input and data that needs to be analyze. Thus, prototyping model will allow analyst to build a simplified version of the proposed project or system prior to the demands of the clients and business allies. Typically speaking a user can make or think hundreds or thousands of way on how to make a system fully functional and make it better in the side of the people. However the only problem is that the user itself can’t measure how much data will be needed for the operation. And here comes prototyping where they can offer a development approach that yields results without first requiring all information up-front.

There are a few different approaches that may be followed when using the Prototyping Model:

• creation of the major user interfaces without any substantive coding in the background in order to give the users a “feel” for what the system will look like,

• Development of an abbreviated version of the system that performs a limited subset of
Functions ; development of a paper system (depicting proposed screens, reports, relationships etc.), or

• use of an existing system or system components to demonstrate some functions that will
be included in the developed system.

When using the Prototyping Model, the developer builds a simplified version of the proposed
system and presents it to the customer for consideration as part of the development process. The customer in turn provides feedback to the developer, who goes back to refine the system
requirements to incorporate the additional information. Often, the prototype code is thrown away and entirely new programs are developed once requirements are identified.



The new system requirements are defined in as much detail as possible. This usually involves interviewing a number of users representing all the departments or aspects of the existing system. A preliminary design is created for the new system. A first prototype of the new system is constructed from the preliminary design. This is usually a scaled-down system, and represents an approximation of the characteristics of the final product. The users thoroughly evaluate the first prototype, noting its strengths and weaknesses, what needs to be added, and what should to be removed. The developer collects and analyzes the remarks from the users. The first prototype is modified, based on the comments supplied by the users, and a second prototype of the new system is constructed. The second prototype is evaluated in the same manner as was the first prototype. The preceding steps are iterated as many times as necessary, until the users are satisfied that the prototype represents the final product desired. The final system is constructed, based on the final prototype. The final system is thoroughly evaluated and tested. Routine maintenance is carried out on a continuing basis to prevent large-scale failures and to minimize downtime.

Design

Once the initial layer of requirements information is collected, or new information is gathered, it is rapidly integrated into a new or existing design so that it maybe folded into the prototype. Same as the other system models prototyping model is looking up for designing the said system. On designing the system one must gather data, think logically and come up with resolution far better that what he/she is initially expecting to happen. Thus, according to our respondent analyst, it’s better to have broad mind or idea on how to solve certain problem because it helps you to understand things in a more complicated way that will challenge your thinking capability and business logic approach.


Prototype Creation/Modification

The information from the design is rapidly rolled into a prototype. This may mean the creation/modification of paper information, new coding or modifications to existing coding. As the other model tends to follow there own algorithm in designing, prototyping model has this modification phase where existing coding can be modified and integrate to some software or pre-develop system.

Assessment

The prototype is presented to the customer for review. Comments and suggestions are collected from the customer. Like other system models, prototyping models needs to be evaluated by certain group of people called, consumers. The flow is that, critics and opinions are gathered along the way in order for the developer to adjust to what is the best thing to do and what are the inputs that must be implemented so as what should be the expected output of each model subjects.

Prototype Refinement

Information collected from the customer is digested and the prototype is refined. The developer revises the prototype to make it more effective and efficient. Any other system would to undergo reconstructions in the developing phase. Why? Because the only constant in this world is change which is the reason why analyst must be flexible enough on how to handle things in an unexpected situations. For this phase of the model, the customer is the basis of changing the mood of the system. The prototyping model will change depends upon the collected opinions and factual basis from the customer. And I myself can say that being flexible to certain things will not that as easy as it is right now. Define, grab, Refine.

System Implementation

In most cases, the system is rewritten once requirements are understood. Sometimes, the Iterative process eventually produces a working system that can be the cornerstones for the fully functional system


Problems/Challenges associated with the Prototyping Model

Prototyping often creates a situation where the customer mistakenly believes that the system is “finished” when in fact it is not. More specifically, when using the Prototyping Model, the pre-implementation versions of a system are really nothing more than one-dimensional structures.
Because the primary goal of Prototyping is rapid development, the design of the system can sometimes suffer because the system is built in a series of “layers” without a global consideration of the integration of all other components. While initial software development is often built to be a “throwaway,” attempting to retroactively produce a solid system design can sometimes be problematic.













Waterfall Model

This model was totally embraced by system developers and analyst due to its widely accepted cycle pattern. This model represents the software life with relation to the business an analyst is dealing with. In this model each product was used to produce a new looking product. As I have read some of the articles for the said model, I have understood the fact that a first product can be upgraded as a second product with regards to the process that the product must undergo. For simplification, Product1 processProduct2. That’s a logic behind the waterfall model. Processes includes: Requirements Engineering, Design, Programming, Integration, Delivery, and lastly is the maintenance.

System Conceptualization

System Conceptualization refers to the consideration of all aspects of the targeted business function 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. Conceptualizing is the key on making an effective system design. It shows that system conceptualization will help a lot on targeting the said business logic that desired and want by the client. Thus, conceptualization depends on what business are you in to or what system are you trying to design.

Systems Analysis

This step refers to the gathering of system requirements, with the goal of determining how these requirements will be accommodated in the system. Extensive communication between the customer and the developer is essential. Analyzing the requirements and inputs in designing the system would mean a lot for the expected output the user desires to have. Linking the whole information to one another will make the system more effective in such a way that the analyst can integrate and find the fault lines to each requirement. In addition, close relation of the customer and the developer is very essential for developing the said system.

System Design

Once the requirements have been collected and analyzed, it is necessary to identify in detail how the system will be constructed to perform necessary tasks. More specifically, the System Design phase is focused on the data requirements /what information will be processed in the system, the software construction /how will the application be constructed? And the interface construction what will the system look like? What standards will be followed?






Coding

Also known as programming, this step involves the creation of the system software. Requirements and systems specifications from the System Design step are translated into machine readable computer code. This phase of the waterfall model describes the eternal action of developer. Source coding, keeping up with the languages, using different algorithms, integrating the whole module, and keeping up the functionality are but a hard time for a system developer. In this stage, patience and intelligence of the analyst are tested.

Testing

As the software is created and added to the developing system, testing is performed to ensure that it is working correctly and efficiently. Testing is generally has variety of conditions that must be worked on by developer to fully test if the system is properly working along the user itself. First is testing the efficiency of the system. In this area, verifying the software according to the system design, and test the performance of all sub-functions are done. Second is the test of effectiveness. In this phase, computer codes, and algorithms are test for efficiency. Furthermore, testing the system will be a labor-process considering the iteration of such systems.

Challenges associated with the Waterfall Model

Although the Waterfall Model has been used extensively over the years in the production of many quality systems, it is not without its problems. In recent years it has come under attack, due to its rigid design and inflexible procedure. Thus, even if Waterfall has been a great help to some system developer but still weakness of the said model can always affects the performance of the model,. Real projects rarely follow the sequential flow that the model proposes. 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.



Exploratory Model

In some situations it is very difficult, if not impossible, to identify any of the requirements for a
system at the beginning of the project. Thus, we researchers and future system analyst are eager to gather of much information that will lead you to confusion of what must be the systems main reason of developing. However, because of this model, even theoretical analysis can be presented and recognized by some software developers because of the presence of this exploratory model. A work based on theories, hypothesis and even assumptions can be presented through this model.


Initial Specification Development

Using whatever information is immediately available, a brief System Specification is created to provide a rudimentary starting point. On this phase, a least specification of the proposed system can be presented by using any information regarding the said system. Randomly using of data and information from the system specification can help to build a modified system.

System Construction

A system is created and/or modified according to whatever information is available. The availability of the information’s during the gathering period can affect the performance of the system in the future making. As a future researcher, I have learned how to handle time when we are in great pressure especially when we are meeting the signals there. System construction must have variety of knowing the different programming languages.

System Test

The system is tested to see what it does, what can be learned from it, and how it may be improved. Same as the other system model, being flexible enough to handle things can contribute into the development of the proposed system. On this phase, certain things such as testing, checking, compiling and running the program must be critical because it might not meet the desired output of the customers.


System Implementation

After many iterations of the previous two steps produce satisfactory results, the system is dubbed as “finished” and implemented. After all the gathering of info from least to broad information, then proceeding to designing the system , It’s a quite scary to in this process because certain modifications and changes can be made depending on what is the need of the client right away. Maintenance, must also be considered after the implementation too/

Challenges associated with the Exploratory Model

It is limited to use with very high-level languages that allow for rapid development, such
•It is difficult to measure or predict its cost-effectiveness.

•As with the Prototyping Model, the use of the Exploratory Model often yields inefficient
or crudely designed systems, since no forethought is given as to how to produce a
streamlined system.

References:
http://www.ctg.albany.edu/publications/reports/survey_of_sysdev/survey_of_sysdev.pdf
http://www.excelsoftware.com/system_models.pdf
http://whatis.techtarget.com/definition/0,,sid9_gci755395,00.html
Back to top Go down
View user profile
brian flores



Posts : 15
Points : 15
Join date : 2011-11-23

PostSubject: Re: Assignment 4 (Due: December 19, 2011, before 01:00pm)   Mon Dec 19, 2011 12:24 pm

To begin the discussion of the about the three system development life cycle models, let’s define and discuss first what is system development life cycle.
The SDLC or the System Development Life Cycle provides the general framework for managing systems development process. It used for the sake of the project to be well organize and could be done accordingly. In system development, there are two approaches that primarily used and these are the predictive approach and adaptive approach.
The predictive approach of System Deployment Life Cycle assumes project can be planned put in advance. In this approach the requirements are well understood and well define that provides a low technical risk. All aspect shall be considered before doing the project and all possible things that might happen must also be consider. The advantage of this approach is making the development process of the system to become invulnerable from errors; it is because the information about the system is being gathered and made an advance solution for the error that will thing happen. The disadvantage of this is there a need of more time in gathering and understanding the system before it can start the process of development.
While in the predictive approach it assumes that the project cannot be planned out in advance. In this approach the requirements and needs uncertain that provides high technical risk. The requirement of the project is not define during the start of the project which causes a high rate of unexpected problem that might occur. The advantage of this predictive approach is there no need of more information about the system before it can start the process. On the other hand, because of the lacking of information about the system there will be some things might go wrong in the any part of the development process in the system.
Both adaptive and predictive approach able to use lots of models in system development, but in paper the only three models will be discussed such the Waterfall, Spiral and the V-model.
The Waterfall model is a System Deployment Life Cycle approach that assumes the various phases of a project can be completed. It this model, the phases are done in sequential order. The process can’t proceed to another phases until the current phases is finish. This model follows the rule of step by step procedure, just like the idea of being as a student in the enrolment process. The student needs to go through all step sequentially, student need to pay first his/her miscellaneous fee before being advice, and then encode his/her information to the student account office. After that, the student will go to registrar to become an officially enrolled student. The advantage of this model of development process is the less chance of encountering a problem caused by the previous phase because the process cannot proceed to another phase if meron pa ring nakitang problem in the certain phase. While the disadvantage of the waterfall model ay di pagka-pantay pantay ng oras na iuukol in a certain phase. It is because the ensuring that there are no errors in a phase before proceeding to another phase, there will be a starving of time of the waiting phase. To explain further, take as an example of enrolment process above, consider the enrolment period last long in just a one week. So student need to finish all phase of enrollment process in just a week, but if the student spend three days of seeking his/her adviser for him to be advice. Now the problem is after the advising phase, how the student manage the remaining phase in a very short amount of time of two days of the student account and registrar phases.
The Modified Waterfall model is another version of waterfall model stated above where the phases are overlapping. The process can do many phases even in time single time. It mostly the same from the water fall model because the modified waterfall model of a newer version of waterfall model. The from the waterfall model, the phases of development process of the system can be done simultaneously. It just likes the multitasking of the phases, doing a task on the one hand while doing another task on the other hand on the same time. In this model helps the process of development to be done a more period of time compared to the waterfall model. It is because there is no need a phase to be fully done before it can proceed to another phase. It gives an easy way of revising the phases if there is a problem encountered. In case of revising if a phase the other phases will not be affected because each phase is independent from the each other. While the disadvantage the reliability of development process. It is because the phase ay hindi masyadong magkaugnay sa isa’t isa there is chance of a loss of connection of form each phases

All the phases of waterfall model of the System Deployment Life Cycle are the project planning, analysis, design, implementation, and support.
Project planning is where the project has been to initiate, ensure feasibility of thing that might happen in the middle of the process of development, plan the schedule and set a milestones for the transparency of the process where also set as a goal of each phases, obtain approval for the project to start officially the launching of the development in the possible time. Also, in the project planning the business problem and scope are defined for the proper assessment of the problem. Produce detailed project needs in terms of economic, organizational, technical, and resource. It is also confirm the project feasibility that can be done based in the schedule sets. The requirements of this phase are set of functionalities and constraints that the end-user expects from the system. The requirements are gathered from the end-user by consultation or survey, these requirements are analyzed for their validity and the possibility of incorporating the requirements in the system to be development is also studied.

Analysis is the phase where must understand the business needs and processing requirements. It conducts gathering information to learn problem domain. It defines system requirements to meet in the end of process of the development of the system. It builds a prototype for discovery of requirements and prioritizes those requirements. Then, it will generate and evaluate alternatives way of doing the project success. It also reviews the recommendations with management for the future assessment of the process. The requirement specifications from first phase are studied in this phase and system design is prepared. System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture.
Design phase is the phase where the solution of the system is being defines based on requirements and analysis decisions. It design and integrate the network for the effective work. It designs the application architecture on how to implement the process of development of the system. Also, in this phases the user interfaces is being designed for the compatibility of the user to adapt the new interfaces that will be introduce. It also designs the system interfaces of how the system will look like and what will be the flow of gathering, processing and storing of the information of the system. It also design and integrate the database that will be used by the system at the time that is will implemented for ensuring the accessibility and protection of the information of the system. It also design and integrate system controls for the easy way of the any user to understand and manage the system.
The implementation and testing phase is where the construction, testing, train users, and installing the new system to the field that is ready to use and works properly. In this phase, it constructs the software components verify and test the system if needs and requirements of the project are being meets by the system. It also ensures that the system convert data in the expected output. In this phases in trains users that will the future user of the system and then document the system on how to use or make a user manual. The system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality.
Support phase is where the system keeps on running and improves. This phase maintains system conduct some small patches, repairs, and updates to enhance system for make better and more suitable the side of the users and management. It also conducts small upgrades or enhancements to expand system capabilities. It also deploys support teams and information about on how to use the system. Generally, problems with the system developed (which are not found during the development life cycle) come up after its practical use starts, so the issues related to the system are solved after deployment of the system. Not all the problems come in picture directly but they arise time to time and needs to be solved.
Another model is the Spiral model of System Deployment Life Cycle Is where the phases are continuously and repeatedly executed. Project cycles through development activities over and over until project is complete. Each iteration refines previous result. This model assumes no one gets it right the first time and always need to be revised. There are a series of mini projects for each of the iteration made of the cycle. The phases of this model can be and not perfectly done and can be modified, because the development of a single phase is continuous all over the process until the system is finish. This model of development combines the features of the prototyping model and the waterfall model. The spiral model is intended for large, expensive, and complicated projects. The advantage of using this model is it more able to cope with the changes that software development generally entails.
Primarily the development of spiral life cycle viewed as a circle which consists of four quadrants:
Quadrant 1: Determine Objectives, Alternatives, and Constraints
In this quadrant, the objectives, constraints, and alternative solution are being determined as a first step of taking a new goal of every cycle made. It makes to establish an understanding of the system such as performance, functionality, and ability to accommodate change. It also Investigate implementation alternatives such as design, reuse, procure, and procure/ modify.
Also, this phase investigate constraints imposed on the alternatives such as technology, cost, schedule, support, and risk. Once the system or product’s objectives, alternatives, and constraints are understood, the process may proceed to the Quadrant 2.

Quadrant 2: Evaluate Alternatives, Identify, Resolve Risks
After the alternatives, and objectives are determine, it is the time for the system developer selects an alternative approach that best satisfies technical, technology and cost, schedule, and risk constraints in this phase. The focus here is on risk mitigation. Each alternative is investigated to reduce the risk associated with the development decisions.
The outcome of the evaluation determines the next course of action. If critical operational and/or technical issues such as performance remain at the high risk, more detailed modification may need to be added before progressing to the next quadrant.
Quadrant 3: Develop, Verify, Next-Level Product
After evaluating the alternatives ways in the development of the system, this phase will develop the alternatives as a subject for the solution of meeting needs of the project. If a determination is made resolved the activities to develop, verify, next-level product are performed. As a result, the basic “waterfall” approach may be employed as meaning concept of operations, design, development, integration, and test of the next system or cycle of iteration.
Quadrant 4: Plan Next Phases
The spiral development model has one characteristic that is common to all models is the need for advanced technical planning and multidisciplinary reviews at critical staging or control points. Each cycle of the model culminates with a technical review that assesses the status, progress, maturity, merits, risk, of development efforts to date; it resolves critical operational or technical issues and reviews plans and identifies what need problems to be resolved for the next iteration of the spiral.
This four quadrant will continuously executed until the development is completer and do reviews about the progress and problems need to assess in every cycle that has been made.
The third model of system development life cycle to be discussed is the V-model. The V-model is a software development model which can be presumed to be the extension of the waterfall model. Instead of moving down in a linear way, the process steps are bent upwards after the coding phase as a substitute for the maintenance and support phase, to form the typical V shape. The V-Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing. The advantage of this model is the emphasize planning for verification and validation of the product in early stages of product development, each deliverable ensure to be testable, project management process can track progress by milestones. While the disadvantage is it needs an established process to implement, it is not proposed for short term projects as it requires reviews at each stage. It’s very costly to implement (requires lot of resources and money) and thus followed/implemented by only big companies.
This is the first part phases of V-model in the downward position of development which is the verification process:
1. Requirements analysis:
In this phase, the requirements of the proposed system are collected by analyzing the needs of the user(s). This phase is concerned about establishing what the ideal system has to perform. However, it does not determine how the software will be designed or built. Usually, the users are interviewed and a document called the user requirements document is generated. The user requirements document will typically describe the system’s functional, physical, interface, performance, data, security requirements etc. as expected by the user. It is one which the business analysts use to communicate their understanding of the system back to the users. The users carefully review this document as this document would serve as the guideline for the system designers in the system design phase. The user acceptance tests are designed in this phase.
2. System Design:
System engineers analyze and understand the business of the proposed system by studying the user requirements document. They figure out possibilities and techniques by which the user requirements can be implemented. If any of the requirements are not feasible, the user is informed of the issue. A resolution is found and the user requirement document is edited accordingly.
The software specification document which serves as a blueprint for the development phase is generated. This document contains the general system organization, menu structures, data structures etc. It may also hold example business scenarios, sample windows, reports for the better understanding. Other technical documentation like entity diagrams, data dictionary will also be produced in this phase. The document for system testing is prepared in this phase.
3. Architecture Design:
This phase can also be called as high-level design. The baseline in selecting the architecture is that it should realize all which typically consists of the list of modules, brief functionality of each module, their interface relationships, dependencies, database tables, architecture diagrams, technology details etc. The integration testing design is carried out in this phase.
4. Module Design:
This phase can also be called as low-level design. The designed system is broken up in to smaller units or modules and each of them is explained so that the programmer can start coding directly. The low level design document or program specifications will contain a detailed functional logic of the module, in pseudo code - database tables, with all elements, including their type and size - all interface details with complete API references- all dependency issues- error message listings- complete input and outputs for a module. The unit test design is developed in this stage.
This is the second part phases of V-model in the downward position of development which is the validation process:

Unit Testing
In computer programming, unit testing is a method by which individual units of source code are tested to determine if they are fit for use. A unit is the smallest testable part of an application. In procedural programming a unit may be an individual function or procedure. Unit tests are created by programmers or occasionally by white box testers. The purpose is to verify the internal logic code by testing every possible branch within the function, also known as test coverage. Static analysis tools are used to facilitate in this process, where variations of input data are passed to the function to test every possible case of execution.
Integration Testing
In integration testing the separate modules will be tested together to expose faults in the interfaces and in the interaction between integrated components. Testing is usually black box as the code is not directly checked for errors.
System Testing
System testing will compare the system specifications against the actual system. After the integration test is completed, the next test level is the system test. System testing checks if the integrated product meets the specified requirements. Why is this still necessary after the component and integration tests? The reasons for this are as follows:
User Acceptance Testing
Acceptance testing is the phase of testing used to determine whether a system satisfies the requirements specified in the requirements analysis phase. The acceptance test design is derived from the requirements document. The acceptance test phase is the phase used by the customer to determine whether to accept the system or not.
Acceptance testing helps
• To determine whether a system satisfies its acceptance criteria or not.
• To enable the customer to determine whether to accept the system or not.
• To test the software in the "real world" by the intended audience.
Purpose of acceptance testing:
• To verify the system or changes according to the original needs.
Release Testing
Release testing is a phase that determines if the software is suitable for the organization of the end-user. How is compatibility with other systems ensured? Is the performance of the software optimized?
Back to top Go down
View user profile
kevinmendez



Posts : 15
Points : 15
Join date : 2011-11-23

PostSubject: Assignment 4   Mon Dec 19, 2011 12:42 pm

The very first system development models that had created and made the basis of the other system development model’s framework is the Waterfall Model. The Waterfall model is a sequential software development which can be seen as a flowing steadily downwards by the development, like a water fall, that passes through several phases. The Waterfall Model has a process that one should move to the next phase only if the preceding phase or process is completed and perfected. The developments of every phase in the waterfall model are as a consequence of discrete, and there is no jumping back and forth or overlap between them. As many professionals now in the present that see this approach as particularly rigid, modifying the waterfall model has been made over the years and new variants of the model have emerged. This Waterfall Model had been created several decades ago by Royce on 1970. He was proposed as what is now popularly called The Waterfall Model as an initial concept, and he made a statement that the model he had created was flawed. Then his documentation was explored on how the waterfall model could be developed into an Iterative Model, another method of structured system development model. And it has a feedback from each phase that influences the previous phases, which is similar to other system development models used widely and highly regarded by many in the present. Kahit na ang intensyon ni Royce sa kanyang ginawang Waterfall Model ay pagbutihin, palawagin at i-improve into an Iterative Model, the Waterfall Model is still widely use in the present because of its purely sequential process. And the term Waterfall Model in software development structure has always been refer to any approach to software creation which is seen as inflexible and non-iterative. Even though the waterfall model has always been attacked in many years for being too rigid and unrealistic when it comes in meeting the needs of the customers quickly, but still the waterfall model is still popular in the present at ang pagkakaroon ng teoritikal na basehan para sa ibang prosesong modelo o process models dahil para ito ay ang pinakamalapit na resembolo ng henerikong modelo para sa pagpapa-unlad ng pagbabago o pagdevelop ng mga software. The waterfall model has followed the phases perfectly in sequential order, namely, Requirements Specifications, System Design, Implementation, Integration, Testing, Installation, and Maintenance. The Requirement specification phase must capture the all possible requirements of the system to be developed. These requirement gathering must be gathered from the end user (who will be using the system) at the start of the software development phase, but those requirements must have some set of functions and constraints that the end user expects from the system. After gathering data, the requirements are analyzed for their validity, and also studied for the possibility of incorporating the requirements in the system to be developed. Then the last is the creation of a document of requirement specification which serves the purpose of guideline for the next phase. But some source stated that System Conceptualization must be the first step in the process because it refers to the consideration of all aspects of the targeted business function 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, and the extensive communication between the customer and the developer is essential. That is why the first step is mainly the job of a system analyst because it is the purpose of his profession in a team project of collecting and gathering required data, and having an analysis on the collected data with the goal of determining how these requirements will be accommodated in the system. And the first process in the waterfall model is very crucial in the hands of the system analyst and project manager because this is the foundation of the software development, and for some instance that the system requirements they have gathered are incorrect or mayroong pagkukulang at taliwas sa kagustuhan ng kliyente, and they proceed in the next phase without completing or perfecting the gathering and analysis of the system requirement, mayroon sigurong mangyayaring hindi maganda sa pagsisimula ng software development at mahahantong sa project failure ng isang team kasi importante sa waterfall model ang pagperpekto sa isang phase bago simulan ang susunod na process para walang aberya mangyayari sa project. In the System and Software Design, it is really important in understanding the requirements of the end user and having an idea on how should the end product looks like before starting the actual coding phase. The first phase of requirements specifications are studied in the second phase and a system design is prepared. System Design helps in defining the overall system architecture, and specifying hardware and system requirements. The specifications of system design must serve as an input for the next phase. It is really necessary in identifying the details on how the system will be constructed to perform necessary tasks after the requirements have been collected and analyzed, and the System Design phase is focused on the data requirements, and software and interface construction. The basis of the second phase’s success depends on the completion and perfection of the first phase’s requirements gathering and analysis because the design is mainly dependable on how accurate and worthy the data gathered from the sources. Designing a system maybe difficult if the gathered data is inaccurate in some reason that limited resources or limited information with the system analyst’s lack of responsibility in working his tasks. Next is the Implementation phase, the actual coding is started here and the work is divided in modules or units after receiving the system design documents. Ang system ay una munang dinedevelop sa isang maliliit na programs na tinatawag na units, which are integrated in the next phase. Every unit is developed and tested for their functionality and it is called unit testing. The purpose of unit testing is to verify if the modules or units meet their specification. This implementation phase can also be called programming because this process is mainly worked by coding all those design presented using any programming languages, and involves the creation of the system software. All those requirements and systems specifications are all translated into machine readable computer code from the System Design phase. In the implementation phase or coding phase, there are lots of individuals must be grouped in this process because of the complexity of the process that must be worked out, but it depends on the system they are working with and the skills of the programmer possess, and the programmer must always interact with the designer to make their work complement each other because having misunderstanding with their works may cause major disaster in the software development and may also cause of wasting the important time they might use in creating and implementing the desired design. After creating and implementing the designed system, it is important to have some testing of the coded software to ensure that the system created is working well, and detect some bugs and errors in the programmed system because working a large system might encounter some technical errors due to overlapping statements and functionalities in the program. In Integration and System testing, it is first divided the system into units which are developed and tested for their functions. After that, the units will be integrated into a complete system during integration phase and have some testing to check if all modules or units can coordinate each other, and the system as a whole behaves as per the specification. After running a successful testing of the software, it is finally delivered to the client. Testing has generally focused on two areas, namely, internal efficiency and external effectiveness. The goal of external effectiveness is to have verification on the software if it is functioning according to the system design, and that it is performing all the important functions or sub-functions. While the goal of internal efficiency testing is to make sure that the program codes is standardized, efficient, and well documented. Because of its iterative nature, internal efficiency testing can be a labor intensive process. Then the last step of the waterfall model is the maintenance phase, and the operations and maintenance phase is the phase of the waterfall model which is virtually a never-ending phase. Sa pangkalahatan, ang lahat ng mga problema na maaring makita sa paggawa at pagdevelop ng system, ngunit hindi ito nakita sa panahonng development life cycle, ay maari lamang malaman at makita pagkatapos nitong i-deploy at gamitin ng mga customer kasi hindi lahat ng mga problema maaaring mangyari ay medaling madetect habang pinaplano at ginagawa pa ito bilang isang proyekto. Kaya ang mga isyung nauugnay sa isang system ay maari lamang masolusyunan kapag ito ay pagkatapos maideploy ang system. The problems are not all come into picture directly and easily but they arise from time to time and need to be solved as fast as possible, that is why this process is called maintenance. Every system that have created in any individual, establishments, companies, and organization, there has always been a maintenance process in the software system they are using because of the reason that there is no perfect software system that a man had created in the technological age, and every devices, every software we are using must have a maintenance in its lifetime. There are some advantages in using the Waterfall Model in the software development, one of it is that the work and control in the waterfall model has a clear compartmentalization because it is easier to set schedule for everyone’s tasks to be completed within a specific period of time since there is a compartmentalization. The other advantage of the waterfall model is that if the work of the particular phase has over after it was done working, it is the time to start for the next phase of the model. Because of it, there is no overlapping of every phases or the product does not need to have to go through different iterative steps. And most of the managers are prefer to use the waterfall model in their software project because it is the easiest model to implement due to its linear model, and the managers are like to reduced in a large extent the cost of its resources because the processes of the waterfall model are carried out in a linear manner. This in turn helps the client or the organization in reducing the cost of the project considerably. Then the last is the creation of documentation and running a test happens at the end of each phase, which in turn, helps in maintaining the quality of the project. If there is an advantage in using a waterfall model in a particular system development, there are also some disadvantages with the usage of that model. One of the disadvantages is the time consuming of gathering in all the important requirement specifications and the analysis of all the data, because it is very important to collect and gather all the possible requirements in the process of requirement gathering and analysis phase in order to properly design the system, but not all of the time that the requirements are received at once due to some lack of cooperation of some end users or customers. Sometimes the requirements that must need to gather from the customer can be added to the list even after the end of the process of requirement gathering and analysis phase that can affect the system development process and the success of solving the negative aspects. And most of the programmers or every individual who had an experienced in creating a database design also experienced this kind of problem arising from not well planned project and one of it is the problem in one phase are never solved completely during the timeline of working that phase and it is a fact that many problems regarding in that particular phase arise after the phase is signed off and move to the next phase of the process because they only see the problem and errors of the previous phase when there are some mismatch and flaws of the two phases. And that results in badly structured system because not all of the problems related to that phase are solved during the same phase and the other reason is that the project is not partitioned in every phases in a flexible way because of its linear manner. And as the reasons of the requirements of the end users are only getting added to the list even if the requirement gathering and analysis phase was finished, not all of the requirements are fulfilled and being put into process, and this results in development of almost unusable system. That is why some of the system development can experience the increase of cost of resources because of the problem of some requirements are not fulfilled of the finished project and they want to meet the added requirements in the newer version of the system. There are so many criticisms that also arises because many real projects in the present rarely follow the sequential flow that the model proposes, and most of the beginning of the project is that there is often a very great deal of uncertainty in their requirements and goals, and it is then difficult for the client to identify those criteria on a detailed level. And the waterfall model does not provide accommodation in this natural uncertainty very well. Using the waterfall model in the development of the system can be a long, painstaking process that does not give way in a working version of the system until late in the process. But even though there are arises some or few disadvantages that may experience in applying the waterfall model, it still to continue to be one of the popularly and widely used software development approach in the business and information technology industry in the world. This can be attributed to the fact that many of the advantages in using the waterfall model can outweigh or go beyond the disadvantages of it in certain kind of system projects. And the waterfall model perfectly fit for a particular project that the team who handled it does not have lots of experiences in creating a large system development.

Another sytem develoment model that had created by man to address nad modify the traditional system develoment life cycle is the Prototype Model. The Prototype Model is the development of the program that is not based on strict planning, but instead it is based on the response of the end users. Because most of the traditional system development life cycle are those type of development who have all focused on the developers and not in the end users. The concept of prototyping has its bases on the development by creating prototypes after prototypes until the software created has been perfected. The Prototype Model is building slowly from a simple concept of what is a program, and the software is updated and tested little by little in a real time environment. The users have its participation and able to test and improvethe software as what they are created. There are different types of the Prototype Model of system develoment life cycle. Each of the different types have their own advatages and disadvantages but the protype model has its purpose in constantly changing until it reaches their intendedend users and functions. There are mainly four types of Prototype Models that is based on their development planning: The Patch Up Prototype, Non-Operational Prototype, First of a Series Prototype, and Selected Features Prototype. The first type of the Prototype Model is the Patch Up Prototype, it is the of Prototype Model that encourages cooperationin different developers. Every developers will only work on a specific part of a program, and after each of the developers has done their part, the integration of the program will takes place and each of the program will combine resulting in a whole new program. Patch Up Protoype is a fast development model because everyone is working on a different field, and if every developers are highly skilled, there is no need in overlapping in a specific function of work. The Patch Up Prototype as the type of software development model that only need a strong and experoenced project manager who can monitor the development of the program. The project manager only controls the work flow of the developers and ensure there is no overlapping of functions happende among different developers. The second type of Prototype Model is the Non-Operational Prototype. The Non-Operational Prototype Model is only used on a certain part of the program that should be updated. The specific part of the program will work ir could be tested as planned, even though it is not a fully operational program. The prototype or the main sotware is not affected by updates and modifications as the dummy program is applied in the application. This non-operational prototype is only implemented when certain problems in a specific part of the program arises, and because the software could be in a prototype mode for a very long time, updating and maintenace ofspecific parts isvery important. Then the third type is the First os a Series Prototype, this is also known as beta version and could be very efficient if it is properly launched. But even though it is fully functional software, the only aim of it being in a beta version is to gather feedbacks, and suggestions. This kind of prototype model could be very successful if it is properly done. And the last and fourth type of prototype model is the Selected Features Prototype. It is also a beta version of releasing a software but in another form. This selected features prototype is only introduced in the public the only selected features or limited access to some imortant tools in the program.

The another type of system development model is the Exploratory model, this used occasionaly to design and develop a computer system and this is an experimental, research-based system develoment model. This is the process that involved in the Exploratory model:
• The work is determined at starting point. It as gathered together all of the information in attempt to get an idea on what will be the new system looks like, and how it can be done.
• A rudimentary first-generation system is put together, based on the idea that has been formulated in the previous step.
• The first-generation system is need to test to see how it performs,what will be updates need to do, and what it can and cannot perform.
• A second-generation system is created from the first system, based on the improvements planned in the previous step.
• The second-generation system is tested. There have an evaluation of the performance,and the possibility of improvements determined.
• Then the process is repeated as many time as necessary to get the satisfaction of the end users,or until it is decided the the project is unusable.
• Then the last is the routine maintenace is carried out on a long-term basis to avoid large-scale failures and to minimize downtime.

References:
http://it.toolbox.com/wiki/index.php/Prototyping_Model
http://www.learn.geekinterview.com/it/sdlc/prototype-model.html
http://www.buzzle.com/editorials/1-5-2005-63768.asp
http://www.ctg.albany.edu/publications/reports/survey_of_sysdev/survey_of_sysdev.pdf
Back to top Go down
View user profile
Gertrude_R_Cordero



Posts : 15
Points : 15
Join date : 2011-11-23

PostSubject: System Development Models - Assignment # 4   Mon Dec 19, 2011 1:21 pm

Identify and discuss at least 3 systems development models. Discuss each phases.

As of today, there are different system development models in system development in order to reach the desired result which match the requirements that are impose by the business or company and to give ease on the end users of the system. System development models varies on what kind of environment does the system will be deployed, can be the system delivered on the specific date mandated by the business or company, how could the system address solution to the end users problems, the resources that are available for the system development and also to the decision of the ones making the system. System development approach are divided into two, first is the predictive approach in which the proposed system is planned ahead of time and the second is the adaptive approach which is the propose system is adaptive to changes that may occur during the development phase of the propose system. But even though system development approach is divided into two they both have similar phases that the system should under go throughout its life cycle and there are four that mentioned by Ronald LeRoi Burback (1998).

The Analysis Phase
According to Ronald LeRoi Burback (1998), this phase defines the requirements that the system should meet disregarding the implementation details and provides a requirement document of the system. The requirement document contains both high and low level details of the requirement. One example that was stated by Ronald LeRoi Burback (1998) on low level details that would appear in the requirement document is a constraint on the image size of the application. And high level details are those that needs to be specific and should be exact, which it could need mathematical logic or engineering details. Ronald LeRoi Burback (1998) also said that requirement document describes the things in the system and the actions that can be done on those things. In a HR system for an example, an administrator could add new users, edit users information, view users information, delete users, activate or deactivate users account or limit users access on the system. The one of the things that is present in the example was the user and the actions that the user can have are add, edit, delete, activate or deactivate and limit access.
Ronald LeRoi Burback (1998) also tells that it is too unclear when requirements are describe in written human language and harder to describe it based in mathematical logic, so precise description is not attainable. But even so that a precise description is not attainable, system requirements must be better describe with the use of both written human language and mathematical logic in order to secure that the system will deliver its desired functions.
Ronald LeRoi Burback (1998) also tells that a requirement document should include states, events, typical scenarios of usage and atypical scenarios of usage where:

States - are defined as a sequence of settings and values which distinguishes one time-space slice of a system from another slice (Ronald LeRoi Burback 1998).
Typical Scenario – what should the system would normally do.
Atypical Scenario – what should the system would do if there are errors. The system should be able to deal with errors and faults by using several established techniques, such as exception handlers, replications, process monitoring, and roll over (Ronald LeRoi Burback 1998).

The Design Phase
In this phase, the system architecture is established. This architecture defines the system’s component, interfaces and behaviors according to Ronald LeRoi Burback (1998). In this phase, it discusses what kind of software and hardware tools are the developing team should use and what are the trade-offs upon using it into the system. Also, the graphical user interface of the system is created and designed in this phase, what could be the fields that should be needed, what are the buttons that should be put and how should be the data is presented. If it deals with the data storing and processing, the kind of database management system to use and the database design is designed in this phase.
Aside from the architecture document, this phase should also indicate critical priorities by having critical priority analysis (Ronald LeRoi Burback 1998). Critical priority analysis creates list of critical task which are categories into two, the first is associated with construction of the system and the second is the system once it is implemented (Ronald LeRoi Burback 1998). In the system’s construction, as an example given by Ronald LeRoi Burback (1998) was “a high-quality implementation of a critical section of code in the system”. While on the system once it is implemented is, for an example in an enrollment system, the system should calculate the new tuition of the student after the student’s add or drop a subject.

The Implementation Phase
The results of this phase are the codes that are group into modules that performs specific task in the system and satisfy what is requested and what is in the design document presented by design phase. But as to what Ronald LeRoi Burback (1998) said, even though the requirements are achieve, there should be space in the system for improvements and innovations. Also, in implementation phase critical points in the system is dealt and remove.

The Testing Phase
Quality, the system is useless even though it meets all the requirements aside from quality. In this phase, the developed system is being tested in order to check either it has bugs throughout its running state and be able to fix it before the actual release of the system. Testing techniques are bases on regression and then split into several major focuses namely internal, unit, application and stress (Ronald LeRoi Burback 1998).
Regression Testing – the system runs into multiple tests, bugs that are found on the test are corrected the tests conducted and its results are collected. Those valid results will become the standards of the system for the next test to conduct.
Internal Testing – it test the internal functions or components of the system.
Unit Testing – this test certain parts of the system which it contains multiple functions as one that interacts which each other.
Application Testing – Graphical User Interface based testing. In this test, it checks whether the buttons in graphical user interface of the system is working or the text field is editable.
Stress Testing – this test the system into the environment. The system is test with the workloads greater than it should have experience. How does the system can handle stress when it is deployed.

Through the needs and innovations that exist as of today in system development, different system development models arise in order to cope up with the needs of today’s world. It roots from the traditional system development lifecycle and it continues to grow. Some of those models are as follows:

Waterfall Model
The waterfall model is one of the examples of system development model that belongs to the predictive approach in system development in which the development process of this model is from top to bottom just like a waterfall. Each phase in this model is passed sequentially throughout the system development and every phase that is finished provides results that are needed for the succeeding phases. Some of these phases that are mentioned in (waterfall-model.com) are as follows:

Definition Study / Analysis
This is the initial phase of the system development. In this phase, the problem is defined by gathering information or data that are relevant to the existence of the problem and then analyze those data in order to formulate solutions in the form of a system which address to the problem. Information gathering and analysis can be done by conducting formal or informal meetings and visits with the company or business and interview the end user of the system. It also much better to conduct brainstorming within the development team in order to come up even greater ideas that could profit not only to the end users but also will help them throughout the system development phases. Different solutions may come up during the problem analysis but it doesn’t mean that there can only be one planned solution to the problem, so it should be decided in this phase what kind of planned solution they should take in order to provide result into the next phase. It should be clear to the development team what the requirements are and specification of the clients with regards to the system for it may alter the system development if there are changes between the phases and will cause delays on the development team.

Basic Design
After a result is derived during analysis, the construction of the basic design of the solution is done in this phase. A general overview of the system or what can be seen after the system development is finished. What are the modules and graphical user interface that the system should have but it does not have the functionally yet. The design should be also based on the requirements that are passed from the analysis phase. It is also important to understand the requirements of the end user should be able to visualize what would be the system would like when it is finish for it will help in formulating the design.

Technical Design / Detailed Design
Once the basic design is layout, it is decided in this phase what are the functions and modules and how they will work in the system. The programming approach when it comes in writing the codes is also decided and tackled in this phase. The system can be programmed in procedural way in which codes are executed from top to bottom or it could be programmed in an object-oriented way. Procedural programming is good when the developer is writing short codes but it would be disastrous if the developer will write most of the code in one file, it is very time consuming for the developer look certain part of the code to change or modify it and it is error prone for its process may be connected to parts of the code within that file. While on the object oriented way of segregates each functions into different file which they are related and creates an object of it so when it is needed, the developer will just invoke the object in to use and access the functions related to it.

Construction
In this phase, the source code the system is written. Coding can be done by different levels of abstraction. The system can be modulated and then program each module based on what it should do for the system and later combine it together after all modules are finish in coding. The system can also be program in an object oriented manner, where functions are group by there relativity and can be access by its object.

Testing
After the system is finish and has its functionality, the system now will undergo through different types of tests in order to check whether it has bugs or miscalculations in order to correct it before handling it over to the end users. In this way, the development team insures the quality of the system and should meet needs and standards of the client.

Integration
In this phase, integration could mean that the system could be put into a hardware device, run the system together with other third party software or by just deploying it into the work area. Embedded systems, if the developed system is needed to be place within a hardware device well then this is the phase for it. If the system is made to aid existing software, the system integration is done after testing the new system in order to avoid bugs and errors that may exist when the integrated system runs. And if the system is not an embedded system or an aid to other software, this phase would be the deployment part of the system into the work area.

Management
Once the system is up, especially if it is web base system, it is important to manage the system by keeping it up and be able to access the system anytime. It is important to manage what comes in and out in the system for it could affect the performance of the system, the traffic that the system could handle during normal or busy internet hours.

Maintenance
After the system is deployed, it does not mean that it is completely perfect. Even though it does passed all the test conducted during its development phase, it does not guarantee that it will work as it is always be especially when the environment it has is different from its development then into in deployment. During the test, the developers cannot assume all the possible inputs and actions that could be entered and be done when it comes in the work environment. So it is important to maintenance and updates on the system in order to keep it working and to continue its service to the client.


Spiral Model
Developed by Boehm in 1988, the spiral model iterations of prototype are represented as a cycle in the spiral [3]. This model is one of the examples of the models that use adaptive approach throughout its system development and the development grows bigger in every iteration or cycle the system development using this model finish. Spiral software development model is a risk-oriented and cost inefficient software development approach [3] for it requires expertise on the side on the development team and in order to cope up with the development, the system development should be aided by new technology such us CASE tools. This system development model is applicable to use in large scale projects and if the project provides difficult requirements in such short development time [3]. Its development phases was the same as the waterfall system development model but its development does not stop when it reach into the implementation and delivery phase, it will go back to the initial phase for any improvements and reconstruction on the previous iterations until it finally meets the requirements set by the end users. To be able to know better what does really happen on the spiral model on system development, onestoptesting.com mentioned steps in spiral development model [4] and they are as follows:
1. The new system requirements are defined in as much detail as possible. This usually involves interviewing a number of users representing all the external or internal users and other aspects of the existing system [4]. The system development can’t move ahead if the system requirements are not sufficient enough in order to come up with the system that will address to the end users problems.
2. A preliminary design is created for the new system [4]. This is the phase where the developer designs an initial prototype of the system given those requirements that the system should become after its completion.
3. A first prototype of the new system is constructed from the preliminary design. This is usually a scaled-down system, and represents an approximation of the characteristics of the final product [4]. The first prototype may not
4. A second prototype is evolved by a fourfold procedure: (1) evaluating the first prototype in terms of its strengths, weaknesses, and risks; (2) defining the requirements of the second prototype; (3) planning and designing the second prototype; (4) constructing and testing the second prototype [4]. After the delivery and implementation of the first prototype, the development team will go back to analysis phase and then determine what adjustments the development team should do on the first prototype. Also,
5. At the customer's option, the entire project can be aborted if the risk is deemed too great. Risk factors might involve development cost overruns, operating-cost miscalculation, or any other factor that could, in the customer's judgment, result in a less-than-satisfactory final product [4]. When using this kind of system development model in developing a system, it can’t be avoided that the system under development will be prone to risk due to fast and rapid pace of its development that some factors could pose potential threat not only to the development team but also to the client. So the client should have the call to stop the system development when it becomes too risky to take.
6. The existing prototype is evaluated in the same manner as was the previous prototype, and, if necessary, another prototype is developed from it according to the fourfold procedure outlined above [4]. All other prototypes should undergo the process that the first prototype have undergone to insure not only the quality of the presiding prototypes but also to insure that the system will still address itself by being the solution to the problem.
7. The preceding steps are iterated until the customer is satisfied that the refined prototype represents the final product desired [4]. As what comes in my mind after I have read this is that the system development completion with regards to the spiral model approach could depend on the customers satisfaction, so it could mean that the system can finish ahead of the target time or be delayed as much as the time you have started.
8. The final system is constructed, based on the refined prototype [4]. Of course, the finish system should be derived from it previous prototypes and those changes that are made in order to function it is desired.
9. The final system is thoroughly evaluated and tested. Routine maintenance is carried out on a continuing basis to prevent large-scale failures and to minimize downtime [4]. After the client is satisfied on the final system it is always comes fort the maintenance of the system in order for it to provide its purposes of existence and track and prevent possible bugs from crashing the system down.

Sashimi Waterfall Model
The sashimi waterfall model was originally created by Peter DeGrace [5]. By permitting overlap between the phases of the sashimi, issues can be discovered in the earlier software development process which helps in minimization of re-work and a better final product [5]. So during the planning phase, system developers can discover problems that may occur during the design and implementation phase of the system and so as to the presiding phases as well and then formulate solution for it in advance. The sashimi waterfall model process consist of six phases, requirements, design and architecture, development and coding, quality assurance and software testing, implementation, and maintenance and support [5]. These phases are similar to any other system development model but some phases in this model do not wait for the other phase to finish, overlap occurs.
Requirement Phase – Most commonly on every system development phases, system requirements are very important for it will the dictate the entire system development process.
Design and Architecture – in design and architecture, it is the technical and/or functional definition of the project in which they defined [5].
Development and Coding – Depending on how hard the project is, the development and coding of the project may begin even if the design and architecture is still on going or it may not and waits for the previous phase to finish its task and then start with and development. As to what is have understood, if the development and coding in finish and implemented ahead of time, early feedback can be derived from it and be able to come up with adjustments to the system [5].
Quality Assurance and Software Testing – Testing occurs throughout the development process and by this, issues and bugs are determined. Developers are encouraged to test the software throughout the development of the software and also in deployment process [5]. Those tests includes Unit testing, Regression testing, Integration testing, Performance testing, Load testing, Compatibility testing, system testing, functional testing and human factors [5] that will affect the total run of the software in it is out.
Implementation – This phase can also overlap with other phases depending on the nature of the project [5].
Maintenance and support – Clients satisfaction should be insured and should be able to provide solutions to problems that may arise after the software’s implementation and deployment.

It should be taken into account what kind of system development model we should take by realizing all the factors that will influence the system's development like the client's requirements and the time it will take for the system to be finish and delivered to the client.

References:
1]. Waterfall Model
www.waterfall-model.com
2]. The Analysis Phase by Ronald LeRoi Burback (1998)
http://www.infolab.stanford.edu/~burback/watersluice/node4.html
3]. Spiral Lifecycle Model
http://www.softdevteam.com/Spiral-lifecycle.asp
4]. Spiral Model
http://www.onestoptesting.com/sdlc-models/spiral-model.asp
5]. Sashimi Waterfall Model
http://www.waterfall-model.com/sashimi-waterfall-model/





Last edited by Gertrude_R_Cordero on Mon Dec 19, 2011 1:30 pm; edited 1 time in total
Back to top Go down
View user profile
Louie_P_Sanchez



Posts : 15
Points : 15
Join date : 2011-11-24

PostSubject: Re: Assignment 4 (Due: December 19, 2011, before 01:00pm)   Mon Dec 19, 2011 1:26 pm

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.
Back to top Go down
View user profile
melissa_carpio



Posts : 15
Points : 15
Join date : 2011-11-23
Age : 26
Location : 773 Panorama Homes Buhangin, Davao City

PostSubject: Identifying 3 Systems Development Models   Mon Dec 19, 2011 1:29 pm

Name: Melissa B. Carpio
Course/Year: BSCS 3


The world of Information Technology has already been under software crisis for almost four decades now and most of the software being developed were product of the traditional system development cycle that was proposed ages ago. This kind of software can support the needs of the business organization if the requirements are not that complex enough to be handled by the system. But what if as time goes on, business organization needs are getting complex that the software they have are not suitable anymore to the requirements they need? There would probably be a need of system modification; adding or changing functionality that could be difficult to deal with, other unexpected problems are bugs that can be encountered as modification of the system goes, and span of time concerning the modification of system must be on the top of the things that are needed to consider because it would take the time of the business organization to operate their business.

One way of dealing this complex problem is through the adoption of the system development life cycle that is made to aid the development of a system. It emphasizes the structuring of the step by step phases on developing a system. According to an editor in National Institute of Standards and Technology, Shirley Radack, a System Development Life Cycle is a multistep process on developing a system. It starts with the initiation, analysis, design, and implementation and followed by the maintenance and disposal of the working system. It is a conceptual model that is used in project management that depicts the step by step phases included in a system project, starting from the initial feasibility study through the deployment and maintenance of the system.

Aside from the traditional System Development Life Cycle (SDLC) model that the IT world embraces are other SDLC methodologies that have been developed to guide the processes involved in developing the system. Most common methodologies are the Waterfall Model, the Agile Model, the Rapid Application Development (RAD), Joint Application Development (JAD), the spiral model, the fountain model, and the typical build and fix model. My main objective in making this paper is to identify at least three system development models and discuss each. I will be focusing on Waterfall model, Agile Model, and the Spiral Model for my discussion in this paper.

WATERFALL MODEL

Waterfall model, as what was presented by the reporters, is a System Development Life Cycle approach that assumes a sequential method of handling the various phases of a project, that is, one phase must be polished and done first before going to the next phase. This waterfall model or should I say those models mentioned above including the waterfall model, according to Sir Randy Gamboa, are actually based on the traditional System Development Life Cycle that we had. The ones that are known today are just adaptation on the previous life cycle model. In waterfall model, in order to proceed to the next phase, the output on the previous phase must be done first because the output of the previous phase would be the input for the next phase.

I repeatedly mentioned the word phase here and clueless on what the following phases are so to clear this one out, here are the following phases under waterfall model:

Project Definition

Project definition phase in a simple understanding is the phase where a systems analyst must define the goals of the project, the requirements, and its specification. By defining the goal means investigating first the need of the client. In dealing with this phase, we must be able to interpret what the client wants through communicating with them and sometimes communicating with them may not be as easy as picking up the phone and list the orders that the client wants to be delivered, some say that it is the crucial part of the first phase since misinterpretation at this phase may give rise to the software that is being developed. After the goal has been defined and the requirements have been noted, we must be critical enough to make sure that the specified needs of the client are detailed and accurate in order for us not to meet any ambiguity as we get along with the system. By doing this, it will make the clients confident enough to rely on the system that is handled by you. In this phase also, we as systems analysts must not only meet the need of the clients, that is, to have a new system or an improved system, but consider also that the main reason why they made decision on having a new system is that in order for them to gain more profit than what they have on their previous systems.

System Design

System design phase is the phase where we as systems analysts identify the software requirements along with the hardware requirements because as what was acquired from the previous phase, the requirements are broken down into logical units so that the software process can be easily implemented. In this phase also, we must also interpret the design used to create the system. the accumulated logical units are interrelated to each other so that there would be connection on all the parts needed to create the system and to do that, we are to recognize different algorithms and providing diagrams on the plan can make the work easier to understand and follow. In other words, this phase would focus on the fundamental work for programming and implementation. Documentations are present in this phase because this phase is considered as the crucial phase on developing a working system.

Coding and Implementation

It is clear in this phase that we are to deal with coding after the design has been identified. The source code of the program is written in this phase. It is where the algorithms and diagrams are translated into a functional system. After arriving from a functional system, implementation takes place to check in the produced system has met the need of the client. Any revisions on the system would occur on the next phase which is the testing phase.

Integration and Testing

Integration and testing phase would not be possible if the system has not been implemented. Implementing a system does not necessarily mean that the system is ready for operation but implementation phase is done to check whether certain conditions from the clients are met and if so, testing phase is next to it. It is now the work of the client to test the system according to its, functionality, integrity, capacity to perform the desired outcome, that is to make the lives of the client easier in order for them to gain profit easier also. If the clients noticed some bugs along the implementation, further revision may be done and most probably the system would undergo to another repetitive step or the phases and start in the designing phase to identify the bug and fix it for improvements.

Deployment and Maintenance

This is probably the last phase of the Waterfall Model, where the system has being tested and is checked by the clients for the acceptance, is now ready for deployment. The work would not end here for it is necessary for the systems analyst to execute maintenance on every system that they deploy because as clients go along with the system, they may be stumbled on a foreign procedure on the system and it is the work of the systems analyst to explain each part of the system so that clients would be familiarized to it and would be dependent to the systems analyst just for a short while. Other changes and improvements that the client wants for their system would make the entire process under revision and also it will start again from the first phase of the Waterfall model.

Advantages of the Waterfall Model

Here are some advantages of the Waterfall model that I read on the internet:

• The system requires the output of the first phase for it would be used as the input for the next phase. In this manner, any mistake on the previous phase would be checked and corrected before moving on to the next phase.
• As said earlier, documentations are emphasized in this model and with that, when the previous workers handed out the system to the new set of workers, it would be easier for them to deal with the system because the documented developmental process is present and they could traced up what part of the system they would follow.
• The Waterfall model is said to be the most well known methods to the software developers therefore it must be considered as easy to use method.

Disadvantages of the Waterfall Model

Having advantages on the method would make it different to other methods but there are also disadvantages that the Waterfall model deals with:
• The Waterfall model is known for its step by step process in developing a system but it is difficult for the systems analyst and other team members when clients start to change their requirement in the system. An alteration in the specified plan would greatly affect the whole phase of the system. The waterfall model is not suitable for any alterations after the plan has been identified.
• One of the important aspects that need to consider is time. The waterfall model could waste a huge amount of time in developing a system because as mentioned above, it is a step by step process and one could not go on to the next phase until the previous phase have been settled. It is on the part of the workers that this matter would waste time, by looking at the phases, when the work is still on the analysis phase, systems analyst would work but other workers like the designer, software developers, and other team members would just waste their time waiting for the previous phase to finish.
• The testing phase of the Waterfall model is said to be late on the process of implementing the system. Other methods would test the system as soon as they arrive with the system. This would waste time, effort and would take extra cost on reevaluating the said system.

Now that I have defined already the Waterfall model, enumerated the different phases of it, and even cited some of the advantages and disadvantages of the said method, let us now deal with another model, the Spiral Model developed by Boehm.

SPIRAL MODEL

Spiral model is sad to be an adaptation on the evolutionary approach towards the development of the world of Information Technology. It is more on the procedure, rather than a lifecycle because it deals mainly on the concern of process rather than the concern of the product. The method, spiral model, would literally mean a spiral shape. The spiral model consists of four quadrants based on the spiral shape created. Quadrant 1 is where determining of objectives, alternatives, and constraints take place, Quadrant 2 comprises evaluating alternatives, identify and solve risks, Quadrant 3 develops and verifies the next-level product, and the Quadrant 4 which deals with planning the next phase. In order for us to understand the scopes of each quadrant, let us tackle it one by one.

Quadrant 1: Determine Objectives, Alternatives, and Constraints
The activities executed in this quadrant are: understanding the system of the system objective – the functionalities of the system, the performance and can easily adopt change whenever possible changes are done, alternatives for implementing the system should also consider – that is, investigating the design, whether it needs to undergo modification, and investigating constraints required on the alternatives – cost of the development of system, the schedule for each working phase, and the risk should be considered in this quadrant. After quadrant 1 has been identified and understood, we may now proceed to the next quadrant which is the quadrant 2.

Quadrant 2: Evaluate Alternatives, Identify, Resolve Risks
The primary focus on this quadrant would be the risk improvement because risks in developing a system are inevitable. That is why evaluating alternatives are investigated to reduce risk as we go along with the development process. According to Boehm, this quadrant would include prototyping, reference checking, conduct simulations, create user questionnaires for further guidelines on the system, analytic modeling, and other risk resolution technique would make up the quadrant 2. Prototyping is a risk reduction mechanism and developers can produce prototypes in each cycle in the spiral model to define a framework on user-developer communication.

After determining the alternatives and resolving risks, next step would be processed next. When performance and operability, for instance, the performance externally and internally, risks remains, it is necessary to undergo thorough prototyping before heading to the next step.

Quadrant 3: Develop, Verify, Next-Level Product
After the process of quadrant 2 where risks are probably resolved, activities to develop, verify, next-level product will be performed. Same in the waterfall model that the verification phase follows as development phase has done. After these following phases would derive the next-level product that serves as the answer to the problem of the client.

Quadrant 4: Plan Next Phases
One of the characteristics of the spiral model that is also present in some models is the repetitive rounds of technical planning and reviews in order to obtain the expected outcome of the system. It is necessary to conclude the system with a technical review that assesses the status, progress, risks, and review plans and identify technical issues to be resolved in the next cycle of the spiral.

Advantages of the Spiral Model

• Based on the mentioned procedures of the Spiral Model, it could be concluded that it estimates the time needed, the budget, and schedule to develop the system. By this manner, it becomes more realistic as the work progresses, because important issues like the constraints and the risks are determined earlier.
• Unlike with the waterfall model that other worker cannot proceed to their part because the first phases must be finished first before touching to the next phase but in Spiral model, all works can be done simultaneously because of the spiral process of the model.
Two models are already discussed in my paper and the last one would be the Agile Model. According to the reporters in the previous topic, Agile Modeling is one of the current trends in development and it is under the adoptive approaches of the traditional methodologies.

AGILE MODEL

Agile Model is known to the method that “moves quickly” because of the word agile. This model is actually based on iterative and incremental model of the software development. The most important principle that Agile Model must attain is the customer satisfaction, basically the main reason why software is developed. The system must satisfy the customer with its useful software in a small span of time developing it. It is the collection of innovative, user-centered approach to the system development.

Four Basic Activities of Agile Development

The Agile Model deals with the four basic activities namely; the coding, testing, listening, and designing, in order to identify the amount of effort that is needed to complete the system.

Coding. There would be no system developed if coding would not be present in the system. Coding is the process of expressing what is in your mind and communicates it to the computer, and let the computer interpret what you have in mind. Coding is one of the essential parts in developing a system.
Testing. The second activity that is needed in the development of the system is the testing. It is essential to test what system may be deployed to determine any flaws of it and to solve problems as early as possible. The Agile approach views this activity as critical. It badly needs to undergo checking and testing to eliminate fallbacks on the system.
Listening. The third one is listening. The primary concern in this model is the customer satisfaction and one of attaining it is though interpreting their needs and wants correctly. Listening is an essential part in communication because it is where the developers and the client exchange their thoughts and ideas and most likely the important detail of the conversation, the product or the software they want in their company.
Designing. The last activity in the Agile Model is designing. It is where the organization of all logical structure in the system is created. The designs should be flexible enough to handle changes when the client wants other output from the derived design. Design should be useful to those who needs it as the process of development goes, including the clients and as well as the other members of the development team.

Agile Model Advantages and Disadvantages

Agile model comes in a unique method on dealing with system development lifecycle but let us define the edge of the Agile Model over other structured methodologies and also the fallback of Agile Model that could have negative feedback upon embracing it.

Advantages of the Agile Model

One of the advantages of the Agile Model is the flexibility of the model because it has an ability to respond to the changing requirements of the project quickly. This would result to immediate changes which solve trouble in the future approach. This would also ensure that the effort of the team is not wasted because problems are resolved earlier before it gets worse. In this manner, the produced software can be delivered to the client in the shortest period of time that leads to customer satisfaction.

Disadvantages of the Agile Model

Agile Model can be profitable if the developed system is small because it would take less effort on the part of the developers but in dealing with large systems, Agile Model cannot handle this matter. It is difficult to predict the necessary things needed like the time and effort of the developers because certain changes may arise as they develop the system. Large systems comprise complex modules and parts that is why Agile Model cannot be used here. When pushing through with Agile Model on large systems, the developers must watch and determine carefully the bugs and problem that may come along in order for them to eliminate it resolve right away.

The mentioned systems development models are indeed useful in order to develop a system, whether it is small or large system you are dealing with. Each model have their edges and fallbacks over the other and in order to achieve the desired output, it is up to the developers to mix the phases and procedures of the different models to perform a high quality service to the clients, that is to produce an efficient and working system that would last long until certain updates are needed.


Sources:

http://searchsoftwarequality.techtarget.com/definition/systems-development-life-cycle
http://csrc.nist.gov/publications/nistbul/april2009_system-development-life-cycle.pdf
http://www.buzzle.com/articles/waterfall-model-life-cycle.html
http://www.waterfall-model.com/
http://www.freetutes.com/systemanalysis/sa2-spiral-model.html
http://www.instructionaldesign.org/models/spiral_model.html
http://www.buzzle.com/articles/agile-model.html
http://www.prenhall.com/behindthebook/0132240858/pdf/Kendall_Feature4_Agile_Modeling_And_Prototyping.pdf

Back to top Go down
View user profile
Joseph Jorge Repaso



Posts : 15
Points : 15
Join date : 2011-11-24

PostSubject: Re: Assignment 4 (Due: December 19, 2011, before 01:00pm)   Mon Dec 19, 2011 1:39 pm

There a lot of system development models in which I chose only three, the waterfall model, the spiral model, and the prototyping model. But let us first define system development. It is a process designing, planning and implementing a new system or software. There can be database involved. In the system development, there is a life cycle that explains deeper the roles and responsibilities. It has life cycle to have a pattern to follow in order to have a uniform structure to follow. There are system development models that are existed now. It helps to organize the process of system development. There are different kinds of different models in system developments in which they have different approach in organizing each processes.

In this discussion, it will tackle the 3 different kinds of system development models. As I have I read different models in system development, I chose the waterfall model, the spiral model, and the prototyping model.

• The Waterfall Model

The waterfall lifecycle is the traditional approach to system development. It is used by most system analysts and project managers. It is the earliest method of structured system development. The waterfall model is widely used today because it is the generic model for system development. The waterfall model has different phases. Each phase must be completed before you can proceed to the next phase.

The different phases of Waterfall model:

• Requirement Analysis

In this phase and as I understand, it is the phase where the gathering of data or information occurs. It is said to be the most crucial stage. It is because in this phase, you will meet the client and ask them some questions relating to the system. There is a possibility that miscommunication occurs and maybe you will misinterpret what the clients said to you. In this phase also, includes the visit of the company that you want to analyze. It is important to make sure the requirements are detailed and accurate because it can easily determine the problem of the system and the needed things to improve. In this phase also, you need to analyze the problem of a certain system of the company based on the data that you gathered. The requirement analysis phase is more on the gathering of data and analyzing part. It is important that in this stage is completed before can proceed to the next one.

• Design

The design phase is related to requirement analysis. The design that made is based upon the data that you collected on the first phase. You cannot proceed in this phase without completing the collection of data phase or the requirement analysis. It is very important that the data you gather is be specific and be precise because the more specific the design for the given problem. In this phase, it will be a back and forth a lot of times with the requirement analysis and the collection of data. The design should of course be based on the analysis, and for the project to be the project will be complete. The data that are gathered in the requirement analysis phase are broken down into logical units, so that the software process becomes easy for implementation. To have an effective design for the project, you need to gather all the data needed by the system to improve the system and solve the problem of the system. In design phase also, you need to select the language to use to implement the system, the hardware needed in the system. Also, third parties software is chose in this phase. Every type of data which will be required for the designing of the software is done here in this phase. What type of database will be required, what type of data should be supported are some of the important aspects that are decided in this phase. The algorithm of the process in which the software needs to be designed is made in this phase. This algorithm is used for the actual coding part in the next phase. To sum it up, this is the phase, where the fundamental work for actual programming and implementation is done.

• Implementation

In the implementation phase, this is where the project starts to build. In this phase, the actual development of the software takes place. This phase is also known as coding and verification phase. Like other phases, you cannot proceed to implementation phase without completing the design phase. The algorithms will be use is based upon the product made on the design phase. In implementing the system takes place and very difficult to implement, there is a chance that you will go back to the design phase and have another design to be simple and yet the client will satisfied his or her standards.

• Test

In this phase, the system will be test before it will be given to the clients. This is where the bugs and all the error will occur. The system testing is done. They are normally a series of tests, which are run to check the performance of the software, the user-friendly of the system, how to use it and also to find if any new bugs were introduced into the system, after the previous bugs were fixed. The waterfall model in testing is start all over again, to make the software bug free, as far as possible. In this phase also, the codes designed by programmers are integrated and it is tested if the software works as the specifications provided, according also to the data gathered and according to the specifications of the clients. The setup of the final software which needs to be installed at the clients system is also designed and tested so that the client does not face any problem during the installation of the software. After the test phase and all the bugs are fixed and will meet the client’s specifications and needs, the system is then handed over to the client.

• Maintenance
This is the last phase of the Waterfall model in which the system is given to the client after checking all the bugs of the system. After the deployment of the system, maintenance of it is needed. The system needs to be maintained because to fix the errors when it was turnover to the clients. This is also the phase where change occurs. If the clients want to change something or add something this is the updates happens. Some system needs to improve due to the fact that it is old and needed to be updated. Some system also, those errors will occur during on the client’s time to use. This time, maintenance is needed. During the maintenance phase, support and debugging is provided for all such problems.

We all know now the phases of the Waterfall model, each phases were discussed. Waterfall model has its advantage and disadvantage. Mainly, the advantage of waterfall model is it is used widely by most people around the world and it is easy to use. Also, waterfall model is linear kind of model and we all know those linear models are the simplest model to be implemented. Based on what I have read, one advantage of waterfall model is that the amount of resources required to implement this model is minimal. One great advantage of the waterfall model is that documentation is produced at every stage of the waterfall model development. This makes the understanding of the product designing procedure simpler. Also, after every major stage of software coding, testing is done to check the correct running of the code. Another advantage of this model is that the phase in this model is done one at a time in which you can focus on one phase.

If we have advantage on waterfall model, we also have disadvantage on it. We can say that it is the most perfect model I read but unfortunately there are some disadvantage on it, one of them is that we cannot go back, if the design phase has gone wrong, things can get very complicated in the implementation phase. In this case, we must start all over again and again to come up with a good system design. Another factor is that it happens when the client is not very clear of what he exactly wants from his or her software. Any changes that he mentions in between may cause a lot of confusion and a lot of time to do it. It is a waste of time. Also, small changes or errors that arise in the completed software or system may cause a lot of problem. It may be the cause of malfunctioning of the system. The greatest disadvantage of the waterfall model is that until the final stage of the system development cycle is complete, a working model of the software does not lie in the hands of the client. Thus, he or she is hardly in a position to mention if what has been designed is exactly what he or she had asked for.

In waterfall model, this is most widely used because of its simplicity and easy to understand. Each phase is done one at a time in order for the system analyst or the project manager can focus one phase at a time. Despite the disadvantage of the waterfall model, its advantages is the reason why it is consider the most widely used by most people
• The Spiral Model
Another model on system development is what we called the Spiral Model. Spiral model was defined by Barry Boehm in his 1988 article on A Spiral Model of Software Development and Enhancement. This model was not the first model to discuss iterative development, but it was the first model to explain why the iteration matters. The Spiral Model is also known as the Spiral lifecycle model. The Spiral Model was designed to include the best features from the Waterfall and Prototyping Models, and introduces a new component, the risk-assessment. It combines two system development models to have a better performance in system development. The term spiral is used to describe the process that is followed as the development of the system. Like to the Prototyping Model, an initial version of the system is developed, and then modified based on input received from the client evaluation and recommendation. Unlike the Prototyping Model, the development of each version of the system is designed using the steps involved in the Waterfall Model, the requirement analysis, design, implementation, test and maintenance phase.
The spiral model consists of four quadrants. In quadrant one, it consists of Determining the objectives, alternatives and constraints in which it establish an understanding of the system or product objectives. It also investigates implementation alternatives. In quadrant two, it is more on evaluating Alternatives, Identify and resolve risks. The reason in this quadrant is that to reduce the risk associated with the development decisions. In quadrant three, or Develop, Verify, Next-Level Product. In this quadrant, developing the system occurs. The basic waterfall approach may be employed in which concept of operations, design, development, integration, and test of the next system or product iteration. If appropriate, incremental development approaches may also be applicable. And in the quadrant four, or also known as planning the next phase. In this phase, because it is spiral, the next phase will be plan. The spiral model also consists of four steps, the project objectives, Risk Assessment, Engineering and Production, and Planning and Management.

• Project objectives

In this steps, designing and analyzing is needed. Objective is determined in this step. Planning is also needed. Like the waterfall model, there is a phase whose job is to determine the problem, analyze it and formulate a solution in it. It is just the same in the project objectives. Identifying the possible obstacles are on this steps and alternative approaches are evaluated.

• Risk Assessment
Risk is related to the amount and quality of available information. The less of collection of data, the higher the risk. This is where it examines the risk based upon the data we collected. It is also evaluating each version of the system to determine whether or not development should continue. Example of this after collecting the data it will come up to the solution to increase a cost in money in a project completion and also the span of time to complete the project. In this case, the risk was identified. The client or the developer may decide that it does not make sense to continue with the project.

• Engineering & Production
In this steps, hardware needed is determined, the database used, and also what language to be used. In this phase also is where the implementation takes part. This is where the developers’ time to work. This is also where coding takes place. Software piece is developed.

• Planning and Management
The client is given an opportunity to analyze the results of the version created in the Engineering and Production step. The client can decide if there is something needed to add in the system.

The spiral model has also its advantages and disadvantages. Its advantage is that it can easily estimates the budget needed in the project, the time consume to finish the project. In this way, work will be more progressive because important issues are discovered earlier. Another advantage is that it is more able to cope with the changes that software development. It can easily cope up what will be the change needed. Developers can get their hands in and start working on a project earlier is one of its advantages. There are also disadvantages of spiral model. One disadvantage is that the risk of not meeting budget or schedule on completing the project. Also highly customized limiting re-usability is one of the disadvantages of spiral model.

• Prototyping Model

Another system development model is the prototyping. It is often difficult to know all of your requirements at the beginning of a project. That is why Prototyping model was developed. The development of the program is not based on strict planning, but it is based on the response of the users. The prototyping system development model is based by creating a prototype of a system and continues to create a prototype after a prototype until a perfect system or software is created. The Prototype Model builds from a simple concept of what a program is. From a little concept, the software is updated and tested in a real time environment. The clients will be able to test the system or software and improve the system as it was created. It is different from other system development models.

There are four types of Prototype Models based on their development planning: the Patch-Up Prototype, Nonoperational Prototype, First of a Series Prototype and Selected Features Prototype.

• Patch Up Prototype

This prototype is having more developers. Each developer will work on a specific part of the program. It is subdivided into its developers. After the developers completed the task and finish their work on part of the program, the program will be integrated with each other resulting in a whole new program. It will be combined all the programs. Since every developer is working on different part of the program, Patch up Prototype is a fast development model. If each developer is highly skilled, there is no need to overlap in a specific function of work. This type of prototype needs a strong project manager who can monitor the development of the program.


• Non-Operational Prototype

A non-operational prototype model is used when only a certain part of the program should be updated. Not the whole program will used but a certain part of it. In order the specific part of the program, the other is used using dummy program. Each developer who is assigned with different stages will have to work with the dummy prototype. This kind of prototype is used when there is a certain problems will occur on a certain part of the program.

• First of a Series Prototype

This type of prototype is also known as beta version. This Prototype Model could be very efficient if properly launched. The beta version of the program is deployed and introduced to the clients for testing not the fully completed program. In this case the objective of this kind of prototype is to have feedbacks, suggestions of the system or software. It is a big help for the developers to know in what area of the program they need to focus or may be improve the system or change something.

• Selected Features Prototype

This kind of prototype is more likely on First of a Series Prototype, in which a beta version of the system or software is deployed or launched. Their difference is that instead of giving the public the full version of the software in beta, only selected features or limited access to some important tools in the program is introduced. This is usually done to test the independent feature of the software.

There are advantages of using Prototyping model. One of it is the client does not need to wait long as in the Linear Model. Another advantage is that it can easily receive feedbacks and suggestion from the clients to improve the system. Another factor is that error and bugs of the programs can be detected ahead of time. There is also disadvantage of using prototyping model. One of it is that the client could believe the prototype as the working version. For most developers create a prototype and stick to it even though it has errors. Since the prototype changes from time to time, it’s very difficult to create a document for this software. There are many things that are removed, changed and added in a single update of the prototype and documenting each of them has been proven difficult. The documentation should be updated if something is changed in the system.

There are many system development models out there; they have different approach in implementing a certain system. It depends on the system analyst or the project manager what to use because it depends on the flexibility of system analyst.

References:
http://www.learn.geekinterview.com/it/sdlc/prototype-model.html
http://www.buzzle.com/articles/waterfall-model-advantages-and-disadvantages.html
http://www.pctechguide.com/development-life-cycle/waterfall-software-life-cycle-model
http://www.buzzle.com/articles/waterfall-model-life-cycle.html
http://www.freetutes.com/systemanalysis/sa2-spiral-model.html
Back to top Go down
View user profile
Nelly C. Ancajas

avatar

Posts : 15
Points : 15
Join date : 2011-11-23
Age : 27
Location : Tibungco Davao City

PostSubject: Identify and discuss at least 3 systems development models .. discuss each phases ...    Mon Dec 19, 2011 1:54 pm

Identify and discuss at least 3 systems development models .. discuss each phases ... (at least 3000 words.)


It’s been a while that software development is all about writing codes to solve a problem or computerize a procedure. At the present time, systems are so big and complex that different teams of architects, analysts, programmers, testers and users must work together to create the millions of lines of codes in order for them to develop the system.

First we define what system development model is, According to the slide of Bulbul Sharma it “Specify how the activities of development process are organized in the total system development effort.” From this phrase system development model is to identify the different development process in an organization to the total system development or where there process could go so far. Also, it is used to guide the analysis, design, development, and maintenance of information systems; a step by step process to in a system development model.

To solve this problem they have developed different development life cycle models, they have created several of system development. With this when I research through the internet there are 3 have top the list the Waterfall Model, Spiral Model and the Agile Model. Each process model follows a particular life cycle in order to ensure success in the process of software development.

Waterfall Model


The waterfall model is a sequential design process it is often used in software development processes, in which progress is seen as flowing steadily downwards. It means the process of is like a waterfall from top to bottom that falls from one phase to another phase.
According to Wikipedia the waterfall development model originates in the manufacturing and construction industries: highly structured physical environments in which after-the-fact changes are prohibitively costly, if not impossible. Since no formal software development methodologies existed at the time, this hardware-oriented model was simply adapted for software development. Waterfall was first a 'Process Model' to be introduced and followed widely in software engineering to ensure success of the project. And in the Waterfall Model it is divided into different separate phase. These phases in waterfall model are requirement specifications phase, software design, implementation and testing and maintenance.

In this Model these are the stages that come in the process

Requirement analysis and definition
In this stage all the possible requirements are required in this phase. A requirement means all the set of function and restriction that can be needed by the user. All the requirements will be gathered from the start of the system development phase. All the requirements will be analyzed and studied and also its development. This stage is created for the purpose of guideline for the next phase of the model.
System and Software Design
before starting the actual coding phase, it is highly important to understand the requirements of the end user and also have an idea of how should the end product looks like. The requirement specifications from the first phase are studied in this phase and a system design is prepared. System design helps in specifying hardware and system requirements and also helps in defining the overall system architecture. The system design specifications serve as an input for the next phase of the model.

Implementation and Unit Testing
On receiving system design documents, the work is divided in modules/units and actual coding is started. The system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality; this is referred to as unit testing. Unit testing mainly verifies if the modules/units meet their specifications.

Integration and System Testing
As specified above, the system is first divided into units which are developed and tested for their functions. These units are integrated into a complete system during integration phase and tested to check if all modules/units coordinate with each other and the system as a whole behaves as per the specifications. After successfully testing the software, it is delivered to the customer.

Operations & Maintenance
This phase of the waterfall model is virtually a never-ending phase. Generally, problems with the system developed (which are not found during the development life cycle) come up after its practical use starts, so the issues related to the system are solved after deployment of the system. Not all the problems come into picture directly but they arise from time to time and need to be solved; hence this process is referred to as maintenance.

With all the stages that the Waterfall process presented above there are also advantages and disadvantages of the waterfall model.

ADVANTAGES
Simple and easy to use.
It is easier to set schedule for the tasks to be completed within a specified time period and it is easy to use with its process from one phase to another phase.

Easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process.
The other advantage of this model is that only after the work for a particular phase is over, does the other phase start, due to which there is no overlap of phases or the product does not have to go through different iterative steps.

Phases are processed and completed one at a time.
This model is the easiest to implement in the eyes of most of the managers, due to its process. Since the processes of this model are carried out in linear manner, the cost of resources is reduced to a large extent, which in turn helps in reducing the cost of the project considerably.

Works well for smaller projects where requirements are very well understood.
With this the documentation and testing happens at the end of each phase, which helps in maintaining the quality of the project.

DISADVANTAGES
Adjusting scope during the life cycle can kill a project.
If the project is well plan and suddenly the client will change its planb, then ot wikk start again from the top that’s why it could kill the time, the effort and many many factors that has been planned then it is resulting in killing the projects.

No working software is produced until late during the life cycle.
The problems with one phase are never solved completely during that phase and in fact many problems regarding a particular phase arise after the phase is signed off, this results in badly structured system as not all the problems (related to a phase) are solved during the same phase.

High amounts of risk and uncertainty.
As it is very important to gather all possible requirements during the requirement gathering and analysis phase in order to properly design the system, not all requirements are received at once, the requirements from customer goes on getting added to the list even after the end of "requirement gathering and analysis" phase, this affects the system development process and its success in negative aspects.

Poor model for complex and object-oriented projects.
As the requirements of the customer go on getting added to the list, not all the requirements are fulfilled, this results in development of almost unusable system. These requirements are then met in the newer version of the system; this increases the cost of system development.

As a summary even though there are a few disadvantages of the waterfall model, it continues to be one of the widely-used software development approach in the industry. Cause its advantages overlaps the disadvantages in some certain projects it nice to use this model if the team that makes the projects will not an expert and has no many experience it is a good model to its purpose.

Spiral Model

According Paquet the spiral model was defined by Barry Boehm in his article A Spiral Model of Software Development and Enhancement from 1986. This model was not the first model to be introduced, but it was the first model to explain why the iteration matters. The spiral model (Boehm, 1988) aims at risk reduction by any means in any phase. The spiral model is often referred to as a risk-driven model.

In this they introduce prototyping in a Software Process aims at risk reduction at the requirements level. There is always an element of risk involved in the other phases of development. A spiral phase begins in the top left quadrant color green portion—by determining objectives of that phase, alternatives and constraints. This is a way to define a strategy for achieving the goals of this iteration. The next side in the right the color gray portion, this portion explains the strategy is analyzed form the viewpoint of risk, and solutions to minimize these risks are investigated, often using prototyping. Then next to the right side the color pink portion, in light of the investigations made in quadrant 2, a solution is put into practice to produce the artifacts necessary to reach the goals identified in quadrant 1. This quadrant (3) corresponds to where the traditional waterfall model phases are put into practice. Finally (quadrant4), the results of the risk-reduction strategies are assessed, and if all risks are resolved, the next phase is planned and started. If some risks are left unsolved, iteration can be made to continue to work on the uneliminated risks. If certain risks cannot be resolved, the project might be terminated immediately (under some circumstances project might be continued but in a smaller scale).

These are the steps in the spiral model can be generalized as follows:
1. The new system requirements are defined in as much detail as possible. This usually involves interviewing a number of users representing all the external or internal users and other aspects of the existing system.
2. A preliminary design is created for the new system.
3. A first prototype of the new system is constructed from the preliminary design. This is usually a scaled-down system, and represents an approximation of the characteristics of the final product.
4. A second prototype is evolved by a fourfold procedure: (1) evaluating the first prototype in terms of its strengths, weaknesses, and risks; (2) defining the requirements of the second prototype; (3) planning and designing the second prototype; (4) constructing and testing the second prototype.
5. At the customer's option, the entire project can be aborted if the risk is deemed too great. Risk factors might involve development cost overruns, operating-cost miscalculation, or any other factor that could, in the customer's judgment, result in a less-than-satisfactory final product.
6. The existing prototype is evaluated in the same manner as was the previous prototype, and, if necessary, another prototype is developed from it according to the fourfold procedure outlined above.
7. The preceding steps are iterated until the customer is satisfied that the refined prototype represents the final product desired. The final system is constructed, based on the refined prototype.
8. The final system is thoroughly evaluated and tested. Routine maintenance is carried out on a continuing basis to prevent large-scale failures and to minimize downtime.

Advantages
-Emphasis on alternatives and constraints supports the reuse of existing solutions.
-Targets testing by treating it as a risk, which has to be addressed.
-Maintenance is just another phase of the spiral model. It is treated in the same way as development. ----Estimates (budget and schedule) get more realistic as work progresses, because important issues are discovered earlier.
-It is more able to cope with thechanges that software development generally entails. Software engineers, who can get restless with protracted design processes, can get their hands in and start working on a project earlier.

Disadvantages
-Only intended for internal projects (inside a company), because risk is assessed as the project is developed.
-Hardly suitable for contractual software development.
-In case of contractual software development, all risk analysis must be performed by both client and developers before the contract is signed and not as in the spiral model.
-Spiral model is risk driven. Therefore it requires knowledgeable staff.
-Suitable for only large scale software development. Does not make sense if the cost of risk analysis is a major part of the overall project cost.

Agile Model

Agile methods are a collection of innovative, user-centered approaches to systems development. You will learn the values and principles, activities, resources, practices, processes, and tools associated with agile methodologies in the upcoming section. Agile practices are becoming accepted, increasing in popularity, and reportedly working. Agile methods can be credited with many successful systems development projects and in numerous cases even credited with rescuing companies from a failing system that was designed using a structured methodology.

The agile model approach tries to define an overall system plan quickly, develop and release software quickly, and then continuously revise the software to add additional features. Ordinary programmers, analysts, and designers who work independently and then integrate their work achieve solid results; agile programmers who work in pairs can be outstanding. But agile the approach is not based just on results. It is based on values, principles, and practices.We will now examine how the values and principles of agile modeling, including extreme programming (XP), shape the development of agile systems.


VALUES OF AGILE MODELING

This is important in agile programming are stated values that create the context for the teamwork among programmers and customers. In order to be responsive analysts, you must hold on to the following values as developed by Beck (2000) in his work on agile modeling that he called “extreme programming.”

There are four values that create an environment in which both developers and businesses can be effectively served. Because there is often tension between what developers do in the short term and what is commercially desirable in the long term, it is important that you knowingly espouse values that will form a basis for acting together on a software project. The four values are communication, simplicity, feedback, and courage, as shown in the picture above. The first value is communication. Every human is prone with possibilities for miscommunication. Systems projects that require constant updating and technical design are especially prone to such errors. Kung mas makakasundo kayo ng team nyo para gawin ang isang mas madali ninyu itong matatapos. A second value of the agile approach is that of simplicity. It must not be complex, the system development must be simple in order to be easily understood of the end user, designers and programmers in order for them to develop it easily and easily change some mistakes. The agile value of simplicity asks us to do the simplest thing today, with the understanding that it might have to be changed a little tomorrow. This requires a clear focus on the goals of the project and really is a basic value. The third one is the feedback, this value for me is very important also cause in the feedback you can know what they have think with this model cause you can learn to the feedbacks of the other and learn from it, in order to improve what has been done. Even it is a bad feedback you must accept it in order to improve. According to Kendall the system. Concrete feedback that is useful to the programmer, analyst, and customer can occur within seconds, minutes, days, weeks, or months, depending on what is needed, who is communicating, and what will be done with the feedback. A fellow programmer may hand you a test case that breaks the code you wrote only hours before, but that feedback is almost priceless in terms of being able to change what is not working before it is accepted and further embedded in the system. Courage is the fourth value say in agile programming. The value of courage has to do with a level of trust and comfort that must exist in the development team. It means not being afraid to throw out an afternoon or a day of programming and begin again if all is not right. It means being able to stay in touch with one’s instincts (and test results) concerning what is working and what is not.
Courage also means responding to concrete feedback, acting on a teammate’s feeling when they believe that they have a simpler, better way to accomplish your goal.


Four Basic Activities of Agile Development
There are four basic activities of development that agile methods use. They are coding, testing, listening, and designing. The agile analyst needs to identify the amount of effort that will go into each activity and balance that with the resources needed to complete the project. Coding is designated as the one activity that it is not possible to do without. One author states that the most valuable thing that we receive from code is “learning.” The process is basically this: have a thought, code it, test it, and see whether the thought was a logical one. Code can also be used to communicate ideas that would otherwise remain fuzzy or unshaped. When I see your code, I may get a new thought. Source code is the basis for a living system. It is essential for development. Testing is the second basic activity of development. The agile approach views automated tests as critical. Extreme programming advocates writing tests to check the coding, functionality, performance, and conformance. Agile modeling relies on automated tests, and large libraries of tests exist for most programming languages. These tests need to be updated as necessary during the progress of the project. There are both long-term and short-term reasons for testing. Testing in the short term provides you with extreme confidence in what you are building. If tests run perfectly you can continue on with renewed confidence. In the long term, testing keeps a system alive and allows you to make changes longer than would be possible if no tests were written or run.
The third basic activity of development is listening. The developer also uses active listening with the customer. Developers assume that they know nothing about the business they are helping, and so they must listen carefully to businesspeople to get the answers to their questions. The developer needs to come to an understanding of what effective listening is. If you don’t listen, you will not know what you should code or what you should test.
The fourth basic activity in development is designing, which is a way of creating a structure to organize all of the logic in the system. Designing is evolutionary, and so systems that are designed using the agile approach are conceptualized as evolving, always being designed.

With all the system development models are introduced it’s up to the system analyst or the team that handles the project if what will they use in order they can satisfy the need of the client and develop the system as it runs.

References:

http://www.ctg.albany.edu/publications/reports/survey_of_sysdev/survey_of_sysdev.pdf

http://en.wikipedia.org/wiki/Waterfall_model

http://scitec.uwichill.edu.bb/cmp/online/cs22l/waterfall_model.htm

http://en.wikipedia.org/wiki/Spiral_model

http://scitec.uwichill.edu.bb/cmp/online/cs22l/spiralmodel.htm

http://en.wikipedia.org/wiki/Agile_Modeling

http://en.wikipedia.org/wiki/Agile_software_development
Back to top Go down
View user profile
Robert Alan Gemong



Posts : 24
Points : 24
Join date : 2010-07-25
Age : 26

PostSubject: Re: Assignment 4 (Due: December 19, 2011, before 01:00pm)   Mon Dec 19, 2011 1:56 pm

Last December 07, 2011, the class of System Analysis and Design students for school year 2011-2012 is having its discussion with the first two topics of this course under our subject facilitator Dr. Randy Gamboa. As early as 8 am, we started immediately our class after a short prayer. We have discussed about the The World of the Information Systems Analyst and Approaches to Systems Development. Under the topic Approaches to Systems Development, we tackled about the different models of system development. From the Module number 2, Approaches to Systems Development, we learned about the purpose and various phases of the systems development life cycle. We also learned about the differences between predictive SDLC and adaptive SDLC. We are also able to learn about the differences between a model, a tool, a technique, and a methodology. We also have learned about the two overall approaches used to develop information systems: the traditional method and the object-oriented method. Now I want to share at least 3 system development models.
The systems development life cycle (SDLC) is a process of creating or altering information systems, and the models and methodologies that people use to develop these systems. The SDLC is a process used by a systems analyst to develop an information system, including requirements, validation, training, and user ownership. Any SDLC should result in a high quality system that meets or exceeds customer expectations, reaches completion within time and cost estimates, works effectively and efficiently in the current and planned Information Technology infrastructure, and is inexpensive to maintain and cost-effective to enhance. Computer systems are complex and often link multiple traditional systems potentially supplied by different software vendors. The whole process is very crucial that the development of a system is divided into different stages and can take a very long time.
A Systems Development Life Cycle (SDLC) adheres to important phases that are essential for developers, such as planning, analysis,design, and implementation, and are explained in the section below. A number of system development life cycle (SDLC) models have been created: waterfall, fountain, spiral, build and fix, rapid prototyping, incremental, and synchronize and stabilize. The oldest of these, and the best known, is the waterfall model: a sequence of stages in which the output of each stage becomes the input for the next. These stages can be characterized and divided up in different ways, including the following:
 Project planning, feasibility study: Establishes a high-level view of the intended project and determines its goals.
 Systems analysis, requirements definition: Defines project goals into defined functions and operation of the intended application. Analyzes end-user information needs.
 Systems design: Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudocode and other documentation.
 Implementation: The real code is written here.
 Integration and testing: Brings all the pieces together into a special testing environment, then checks for errors, bugs and interoperability.
 Acceptance, installation, deployment: The final stage of initial development, where the software is put into production and runs actual business.
 Maintenance: What happens during the rest of the software's life: changes, correction, additions, moves to a different computing platform and more. This, the least glamorous and perhaps most important step of all, goes on seemingly forever.

There are a lot of different models and approaches to implement systems development life cycle. The choice of the SDLC varies depending on the project. When the requirements of the system are well understood and well defined and there is low technical risk then that could be predictive approach to the SDLC. When the requirements and needs of the system are uncertain and there is a high technical risk then that could be adaptive approach to the SDLC.
The following are different kinds of system development models for the system and an extensive overview about every single topic.

 Waterfall model
 Spiral model
 Iterative Enhancement Model

The waterfall model is a sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation and Maintenance. The waterfall development model originates in the manufacturing and construction industries: highly structured physical environments in which after-the-fact changes are prohibitively costly, if not impossible. Since no formal software development methodologies existed at the time, this hardware-oriented model was simply adapted for software development. The first known presentation describing use of similar phases in software engineering was held by Herbert D. Benington at Symposium on advanced programming methods for digital computers on 29 June 1956. This presentation was about the development of software for SAGE. In 1983 the paper was republished with a foreword by Benington pointing out that the process was not in fact performed in strict top-down, but depended on a prototype.
The first formal description of the waterfall model is often cited as a 1970 article by Winston W. Royce, though Royce did not use the term "waterfall" in this article. Royce presented this model as an example of a flawed, non-working model (Royce 1970). This, in fact, is how the term is generally used in writing about software development—to describe a critical view of a commonly used software practice.
A further argument for the waterfall model is that it places emphasis on documentation (such as requirements documents and design documents) as well as source code. In less designed and documented methodologies, should team members leave, much knowledge is lost and may be difficult for a project to recover from. Should a fully working design document be present (as is the intent of Big Design Up Front and the waterfall model) new team members or even entirely new teams should be able to familiarize themselves by reading the documents.
As well as the above, some prefer the waterfall model for its simple approach and argue that it is more disciplined. Rather than what the waterfall adherent sees as chaos, the waterfall model provides a structured approach; the model itself progresses linearly through discrete, easily understandable and explainable phases and thus is easy to understand; it also provides easily markable milestones in the development process. It is perhaps for this reason that the waterfall model is used as a beginning example of a development model in many software engineering texts and courses.
It is argued that the waterfall model and Big Design up Front in general can be suited to software projects that are stable (especially those projects with unchanging requirements, such as with shrink wrap software) and where it is possible and likely that designers will be able to fully predict problem areas of the system and produce a correct design before implementation is started. The waterfall model also requires that implementers follow the well-made, complete design accurately, ensuring that the integration of the system proceeds smoothly.
Many argue the waterfall model is a bad idea in practice—believing it impossible for any non-trivial project to finish a phase of a software product's lifecycle perfectly before moving to the next phases and learning from them. For example, clients may not know exactly what requirements they need before reviewing a working prototype and commenting on it. They may change their requirements constantly. Designers and programmers may have little control over this. If clients change their requirements after the design is finalized, the design must be modified to accommodate the new requirements.
Some observations on the Test First sequence. In your description above, you say Analysis is potentially very short. I wonder if this correlates to the backtracking and need for double Proof. I think the process you have traced incorporates a silent bit of prototyping, based on uncertainty of requirements, that affects the rest of the process as follows. When you Specify (I think that means to write the tests that will be run in the Prove step), you are stating how to verify what you think the requirements may be, having underinvested in their discovery (possibly for a valid reason). When you Build it without a Design, you are saying that because the requirements are suspect, let's not make too big a commitment to this code just yet. That's prototyping. When you Prove it (first time), you're getting requirements feedback. Why couldn't the requirements be verified in a tighter loop that didn't involve coding? I can guess one answer -- this may be the only way your users can work, making decisions in front of an operative example. (But I'm analyzing too much -- the thing is that sometimes we prefer to use a prototype to help with requirements work.) The Design step that follows assumes the requirements were right, although if that were a safe assumption, the Waterfall would likely have been a better choice of model. So an explicit decision point just before Design would clarify the Test First model, because you're half expecting to abort there for another prototyping round. The final proof is a regression test, since requirements satisfaction has already been demonstrated.
The similarity of Test First to Waterfall is so obvious that I'm led to believe they are the same model with a prototyping Waterfall inserted (appropriately) right after the initial analysis. Not visible are the analysis (requirements) and specification for the prototype itself, and that's because they are so similar to those of the end product that the two sets just blur together. Also not visible is the Design for the prototype. For sure, there's no document, but it's less certain that there is no design effort at all, as its hard for a competent designer to write code without some eye to even its temporary structure.
Requirement Analysis and Definition
All possible requirements of the system to be developed are captured in this phase. Requirements are a set of functions and constraints that the end user (who will be using the system) expects from the system. The requirements are gathered from the end user at the start of the software development phase. These requirements are analyzed for their validity, and the possibility of incorporating the requirements in the system to be developed is also studied. Finally, a requirement specification document is created which serves the purpose of guideline for the next phase of the model.

System and Software Design
Before starting the actual coding phase, it is highly important to understand the requirements of the end user and also have an idea of how should the end product looks like. The requirement specifications from the first phase are studied in this phase and a system design is prepared. System design helps in specifying hardware and system requirements and also helps in defining the overall system architecture. The system design specifications serve as an input for the next phase of the model.

Implementation and Unit Testing
On receiving system design documents, the work is divided in modules/units and actual coding is started. The system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality; this is referred to as unit testing. Unit testing mainly verifies if the modules/units meet their specifications.

Integration and System Testing
As specified above, the system is first divided into units which are developed and tested for their functions. These units are integrated into a complete system during integration phase and tested to check if all modules/units coordinate with each other, and the system as a whole behaves as per the specifications. After successfully testing the software, it is delivered to the customer.

Operations & Maintenance
This phase of the waterfall model is virtually a never-ending phase. Generally, problems with the system developed (which are not found during the development life cycle) come up after its practical use starts, so the issues related to the system are solved after deployment of the system. Not all the problems come into picture directly but they arise from time to time and need to be solved; hence this process is referred to as maintenance.
The spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages oftop-down and bottom-up concepts. Also known as the spiral lifecycle model (or spiral development), it is a systems development method (SDM) used ininformation technology (IT). This model of development combines the features of the prototyping and the waterfall model. The spiral model is intended for large, expensive and complicated projects.
The spiral model was defined by Barry Boehm in his article A Spiral Model of Software Development and Enhancement from 1985. This model was not the first model to discuss iterative development, but it was the first model to explain why the iteration matters. As originally envisioned, the iterations were typically 6 months to 2 years long.
Each phase starts with a design goal and ends with the client (who may be internal) reviewing the progress thus far. Analysis and engineering efforts are applied at each phase of the project, with an eye toward the end goal of the project.

This should not be confused with the Helical model of modern systems architecture that uses a dynamic programming approach in order to optimise the system's architecture before design decisions are made by coders that would cause problems.
The spiral model combines the idea of iterative development (prototyping) with the systematic, controlled aspects of the waterfall model. It allows for incremental releases of the product, or incremental refinement through each time around the spiral. The spiral model also explicitly includes risk management within software development. Identifying major risks, both technical and managerial, and determining how to lessen the risk helps keep the software development process under control.
The spiral model is based on continuous refinement of key products for requirements definition and analysis, system and software design, and implementation (the code). At each iteration around the cycle, the products are extensions of an earlier product. This model uses many of the same phases as the waterfall model, in essentially the same order, separated by planning, risk assessment, and the building of prototypes and simulations.
Documents are produced when they are required, and the content reflects the information necessary at that point in the process. All documents will not be created at the beginning of the process, nor all at the end (hopefully). Like the product they define, the documents are works in progress. The idea is to have a continuous stream of products produced and available for user review.
The spiral lifecycle model allows for elements of the product to be added in when they become available or known. This assures that there is no conflict with previous requirements and design. This method is consistent with approaches that have multiple software builds and releases and allows for making an orderly transition to a maintenance activity. Another positive aspect is that the spiral model forces early user involvement in the system development effort. For projects with heavy user interfacing, such as user application programs or instrument interface applications, such involvement is helpful.
For a typical shrink-wrap application, the spiral model might mean that you have a rough-cut of user elements (without the polished / pretty graphics) as an operable application, add features in phases, and, at some point, add the final graphics.
The Spiral model is used most often in large projects and needs constant review to stay on target. For smaller projects, the concept of agile software development is becoming a viable alternative.
Advantages
• Estimates (i.e. budget, schedule, etc.) become more realistic as work progresses, because important issues are discovered earlier.
• The model is designed to cope with the inevitable changes to the learning experience that will happen over the course of design and delivery.
• Multimedia producers can get their hands in and start working on a project earlier, and therefore shape the design process as well.

The iterative enhancement life cycle model removes the limitations of the waterfall model and tries to combine the benefits of both prototyping and the waterfall model. The basic idea is that the software should be developed in increments, where each increment adds some functional capability to the system until the full system is implemented. At each step extensions and design modifications can be made. An advantage of this approach is that it can result in better testing, since testing each increment is likely to be easier than testing entire system like in the waterfall model. Furthermore, as in prototyping, the increment provides feedback to the client, which is useful for determining the final requirements of the system.
In the first step of iterative enhancement model, a simple initial implementation is done for a subset of the overall problem. This subset is the one that contains some of the key aspects of the problem which are easy to understand and implement, and which form a useful and usable system. A project control list is created which contains, in an order, all the tasks that must be performed to obtain the final implementation. This project control list gives an idea of how far the project is at any given step from the final system.
Each step consists of removing the next step from the list. Designing the implementation for the selected task, coding and testing the implementation, and performing an analysis of the partial system obtained after this step and updating the list as a result of the analysis. These three phases are called the design phase, implementation phase and analysis phase. The process is iterated until the project control list is empty, at the time the final implementation of the system will be available. The process involved in iterative enhancement model is shown in the figure below.
The project control list guides the iteration steps and keeps track of all tasks that must be done. The tasks in the list can include redesign of defective components found during analysis. Each entry in that list is a task that should be performed in one step of the iterative enhancement process, and should be simple enough to be completely understood. Selecting tasks in this manner will minimize the chances of errors and reduce the redesign work.
In the first step of iterative enhancement model, a simple initial implementation is done for a subset of the overall problem. This subset is the one that contains some of the key aspects of the problem which are easy to understand and implement, and which forms a useful and usable system. A project control list is created which contains, in an order, all the tasks that must be performed to obtain the final implementation. This project control list gives an idea of how far the project is at any given step from the final system.
Each step consists of removing the next step from the list. Designing the implementation for the selected task, coding and testing the implementation, and performing an analysis of the partial system obtained after this step and updating the list as a result of the analysis. These three phases are called the design phase, implementation phase and analysis phase. The process is iterated until the project control list is empty, at the time the final implementation of the system will be available. The process involved in iterative enhancement model is shown in the figure below.
The project control list guides the iteration steps and keeps track of all tasks that must be done. The tasks in the list can be include redesign of defective components found during analysis. Each entry in that list is a task that should be performed in one step of the iterative enhancement process, and should be simple enough to be completely understood. Selecting tasks in this manner will minimize the chances of errors and reduce the redesign work.

Blog Link:
http://snailbob.wordpress.com/2011/12/19/3-systems-development-models/

Resources:
http://c2.com/
http://en.wikipedia.org
http://www.buzzle.com
http://www.universityparadise.com
http://www.freetutes.com


Last edited by Robert Alan Gemong on Wed Mar 28, 2012 8:46 pm; edited 2 times in total
Back to top Go down
View user profile http://snailbob.co.cc/
Ailene_Madato

avatar

Posts : 15
Points : 15
Join date : 2011-11-24
Age : 27
Location : Davao City

PostSubject: Different System Development Life Cycle Models   Mon Dec 19, 2011 1:58 pm

On our fourth assignment, we were told to identify and discussed three different types of systems development models. But before anything else, I would like to discuss first what is Systems Development Life Cycle (SLDC) and how it is related with System Development Models.

On the whole, Systems Development Life Cycle, or SDLC is very important in project management. It is a conceptual model which is used as a guide for preparing to planning until maintaining a project. The Systems Development Life Cycle (SDLC) illustrates the different stages that are involved to make an effective information system development project, starting from the preliminary feasibility through the safeguarding of the completed project.

Usually, an SDLC methodology goes after the following steps:

1. Evaluating the existing or accessible system. Flaws and imperfections are identified. All of these are done by interrogating the users of the system as well as seeking advice from the support personnel.

2. Defining the new and latest system requirements. Particularly, the insufficiency in the existing system should be dealt with precise proposals for progress and enhancement.

3. Designing what the newly proposed system. The different plans are put down with reference to the physical construction, hardware, operating systems, programming, communications, and security issues.

4. Developing the new system. Since it is said to be “new system”, the new components and programs must be attained and installed, or if some components and programs from the previous system can still be used, enhancing is very appropriate in order to make the new system function well. Users of the system must undergo trainings in its use, and all phase of routine must be tested to avoid unnecessary delays of work and malfunctioning of the system. If it is essential, at this stage, modification and correction must be made.

5. The system is put into use. There are many different ways to put the system into use. One of those is phasing in the new system, considering the application or location until the old system is slowly but surely interchanged. But to be more practical and maybe cost effective, in some cases, shutting down the old system and executing the new system at the same time is necessary.

6. Comprehensively evaluation should be done by the time the new system is up and operating for a moment. In order to avoid unnecessary malfunctioning or break down of the system, maintenance must be kept up thoroughly all the time. Furthermore, users of the system should be kept up-to-date pertaining to the most recent adjustments and processes.

What were discussed above are the phases or stages of the Systems Development Life Cycle. Basically, different authors have different approach in identifying the SDLC methodology. But bottom line is, they still have the same perceptions on how the SDLC methodology works.

The next thing I will discuss is about the System Development Models and how these models are related in Systems Development Life Cycle.

The Purpose of Systems Development Models

Primarily, Systems development models are used to illustrate the different phases in Systems Development Life Cycle (SDLC) such as planning, analysis, design, development, implementation and maintenance of information systems. Every phase is intended for a detailed function and motivation. Some have the same aims and allocate various common responsibilities. Essentially, developers make use of some kind of system development model to direct the project’s life cycle to be able to guarantee excellent and quality systems are build up concerning to the needs and wants of the business organization.

Different Types of System Development Models

• SYNCHRONIZE-AND-STABILIZE (SYNC-AND-STABILIZE)

One of the models in the Systems Development Life Cycle is the Synchronize-and-stabilize (sometimes just called sync-and-stabilize). It is an SDLC model in which teams work in parallel on individual application modules, repeatedly coordinating their code with that of other teams, and debugging (stabilizing) code on a regular basis all the way through the development procedure. It is said that the sync-and-stabilize model is more advantageous over the older waterfall, which is rigorously chronological in nature. Because sync-and-stabilize development allows parallelism, changes can be done at any point in the process and for that, it can be flexible, and responding to the market requirement changes is easier.

HISTORY

David Yoffie of Harvard University and Michael Cusumano of MIT were the people who created the Synchronize and Stabilize, also known as sync-and-stabilize approach. Cusumano and Yoffie both studied commonalities between processes Microsoft used in developing Internet Explorer and those Netscape Communications Corp. used in developing Netscape Communicator. As the researchers continue their study, among other similarities, they found out both corporation put together all the project code nightly. They both also brought together all the components and tried to stabilize code before it was released. Their findings gave Cusumano and Yoffie the idea to incorporate the successful common strategies of the two projects into the sync-and-stabilize model.
According to Michael Cusumano and Richard Selby, Microsoft Corporation is using the sync-and-stabilize approach in their project development. It is also said that without Synchronize and Stabilize structured approach in Microsoft’s system development, Microsoft would almost certainly never been able to propose, design, construct, produce and ship the products it offers now and plans to offer in the future.

Synchronize and Stabilize Model versus Sequential Model (Waterfall Model)

In Synchronize and Stabilize Model:
 Product development and testing is done in parallel
 Vision statement and evolving specification
 Features prioritized and built in 3 or 4 milestone subprojects
 Frequent synchronization (daily builds) and intermediate stabilizations (milestone)
 “Fixed” release and ship dates and multiple release cycles
 Customer feedback continuous in the development process
 Product and process design so large teams work like small teams
In Sequential Model:
 Separate done in sequence
 Complete “frozen” specification and detailed design before building the product
 Trying to build all pieces of a product simultaneously
 One late and large integration and system test phase at the projects end
 Aiming for feature and product “perfection” in each project cycle
 Feedback primarily after development as inputs for future projects
 Working primarily as a large group of individuals in a separate functional department

Base on the things mentioned above about the synch-and-stabilize model and sequential model, it is somehow clear that the Synchronize and Stabilize Model is more flexible compared to Sequential Model in System Development Life Cycle. Since synch-and-stabilize approach uses parallelism, more works can be done and it is also a cost-effective scheme compared to sequential approach which uses a chronological method.
The Synchronize and Stabilize team process can be summarized as follows:
 Feature Oriented
 Synchronize (daily build) and Stabilize (fix errors at end of each milestone, such that the required set of features is completely functional)
 Product Managers develop a vision statement and feature list based on customer input
 Program Managers develop an initial functional specification based on the vision statement
 Program Managers create schedules and parallel feature teams of 3-8 developers and testers based on the functional specification
 Team members can work autonomously, thus maintaining some creative freedom on the project, provided their work can be combined successfully into the daily builds
 Teams develop their own playful penalties for breaking the daily build, which forces a certain amount of discipline amongst a team, while at the same time remaining democratic
According to the book “How Microsoft Builds” b y Cusumano and Selby, there are phases which is need to under go in synch-and-stabilize approach.
PLANNING PHASE (3-12 months, depending on size of project)
 Vision Statement – Product and program management use extensive customer input to identify and priority-order product features.

 Specification - Based on vision statement, program management and development group defines feature functionality, architectural issues and components interdependencies.
 Schedule And Feature Team Formation ¬- Based on specification document, program management coordinates schedule and arranges feature teams that each contain approximately 1 program manager, 3 to 8 developers, and 3 to 8 testers(who work in parallel 1:1 with developers.)

DEVELOPMENT PHASE (6-12 months)
Project managers coordinate evolution of specification. Developers design, code, and debug. Testers pair with developers for continuous testing.
 Subproject I: most crucial 1/3 features, milestone release I
 Subproject II: second 1/3 features, milestone release II
 Subproject III: final (least critical) 1/3 features, milestone release III --- code complete

STABILIZATION PHASE (3-8 MONTHS)
Program managers coordinate OEMs and ISVs and monitor customer feedback. Developers perform final debugging and code stabilization.
 Internal Testing - Testers recreate and isolate errors.
 External Testing - Thorough testing of complete product within the company.
 Release Preparation - Thorough testing of complete product outside the company by “beta” sites such as OEMs, ISVs, and end users. Prepare final release of “golden master” disk and documentation for manufacturing.

 THE SPIRAL LIFE CYCLE MODEL

Another Systems Development Life Cycle Model is the Spiral Life Cycle Mode. The spiral model, also known as the spiral lifecycle model, is one the systems development lifecycle (SDLC) model used in the field information technology (IT). It is that the spiral model is a combination of prototyping model and waterfall model. In making of a large, expensive and complicated project, spiral model is usually used.
Generally, the process in the spiral life cycle model can be illustrated as follows:
1. The new system requirements are defined in as much detail as possible. Primarily, this phase requires interrogating a number of users in behalf of all the internal and external users as well as the other features of the existing system.
2. Creating an initial drawing or design for the newly proposed system.
3. A first example of the newly proposed system is built from the initial design. This is generally a scaled-down system, and symbolizes an estimation of the distinctiveness and characteristics of the final product.
4. A second sample is developed by a fourfold procedure:
(1) Evaluate - assessing the first example in terms of its potencies, drawbacks, and threats;
(2) Define - classifying the constraints of the second sample;
(3) Plan and Design - setting up and designing the second sample;
(4) Construct and Test - creating and examining the second example.
5. Fundamentally, the customer has the choice or the option to abort the whole project if it will cause an immense risk. For instance, the development cost is beyond the budget of the customer, miscalculation of the operating cost, or any other factor that could result into dissatisfaction in the final product or output, considering the customer’s judgment. For that, it will lead to some bad and negative feedbacks against the company if it happens that the developers did not meet the customer’s wants and needs that force them to back out.
6. The existing prototype is evaluated in the same manner as was the previous prototype, and, if necessary, another prototype is developed from it according to the fourfold procedure outlined above.
7. Since it is called as the spiral model, the procedures are iterated, from the beginning through the end, until the customer will get satisfied, that the developed sample illustrated the final product desired by the customer.
8. After the processes that the prototype undergone, the final system can now be assembled
9. Thorough evaluation and examination is necessary to the final system. Primarily, regular maintenance should be carried out to prevent comprehensive fiasco as well as to minimize delays and downtime.
• Objectives: functionality, performance, hardware/software interface, serious achievement issue, etc.
• Alternatives: construct, recycle, acquire, delegate, etc.
• Constraints: expenditure, timetable, interface, etc.
• Study alternatives which is relative to objectives and constraints
• Identify risks – it defines the lack of experience, new technology, tight schedules, poor process, etc.
• Resolve risks – it describes the evaluation if money could be lost by continuing system development
The following strengths and weaknesses as well as when do we use spiral model is according to Yogi Berra.
Spiral Model Strengths
• Provides early indication of undefeatable risks, without much cost
• Users see the system early because of rapid prototyping tools
• Critical high-risk functions are developed first
• The design does not have to be perfect
• Users can be closely tied to all lifecycle steps
• Early and frequent feedback from users
• Cumulative costs assessed frequently
Spiral Model Weaknesses
• Time spent for evaluating risks too large for small or low-risk projects. This means that spiral model is very time consuming. For that, delays could probably occur.
• Time spent planning, resetting objectives, doing risk analysis and prototyping may be excessive. This may lead to downtime risk. Also, it will cause to outbound the budget and time given.
• The model is complex. Spiral model is complicated because you cannot go into the next phase unless you perfectly done the previous stage.
• Risk assessment expertise is required. Every now and then, it is very important that the process underlying the Spiral model must always be evaluated in order to avoid malfunctioning of the system.
• Spiral may continue for an indefinite period
• Developers must be reassigned during non-development phase activities
• May be hard to define objective, verifiable milestones that indicate readiness to proceed through the next iteration. Basically, the iteration process of the spiral model may lead to some risks that could cause difficulty in doing the system as required in the objective.
When to use Spiral Model
• When creation of a prototype is appropriate
• When costs and risk evaluation is important
• For medium to high-risk projects
• Long-term project commitment unwise because of potential changes to economic priorities
• Users are unsure of their needs
• Requirements are complex
• New product line
• Significant changes are expected (research and exploration)

The following strengths and weaknesses as well as when do we use Rapid Application Development Model is according to Yogi Berra.

• RAPID APPLICATION DEVELOPMENT MODEL (RAD)
Some of us are familiar with the RAD or the Rapid Application Development, which is an idea that the product can be developed and produced more rapidly and of great and higher quality through
• Gathering requirements using workshops or focus groups. It means that method of gathering information is via joining workshops or any scheme where there is so-called “groups” of people.
• Prototyping and early, reiterative user testing of designs
• The re-use of software components. Recycling or reusing the old components of the previous software or system is part of the RAD model activity.
• A rigidly paced schedule that defers design improvements to the next product version
• Less formality in reviews and other team communication
Further Discussion on Rapid Application Development
• Requirements planning phase (a workshop utilizing structured discussion of business problems)
• User description phase – automated tools capture information from users
• Construction phase – productivity tools, such as code generators, screen generators, etc. inside a time-box. (“Do until done”)
• Cutover phase -- installation of the system, user acceptance testing and user training
Rapid Application Development Model Strengths
• Reduced cycle time and improved productivity with fewer people means lower costs
• Time-box approach mitigates cost and schedule risk
• Customer involved throughout the complete cycle minimizes risk of not achieving customer satisfaction and business needs
• Focus moves from documentation to code (WYSIWYG).
• Uses modeling concepts to capture information about business, data, and processes.
Rapid Application Development Model Weaknesses
• Accelerated development process must give quick responses to the user
• Risk of never achieving closure
• Hard to use with legacy systems
• Requires a system that can be modularized
• Developers and customers must be committed to rapid-fire activities in an abbreviated time frame.
When to use Rapid Application Development Model

Experienced programmers are members of the team
RAD is a fast paced SDLC. Developers will be using different tools in order to achieve the goal of building software fast. Although it does not need much coding because of the given set of tools, only experienced programmers could work on these tools. If anything happens to the software, only experienced developers could dig deep into the problem even though they did not encode the program.
Expediting application development
For whatever reasons, developers are hard pressed to build applications fast. Using sets of tools, different software could be created in no time. The participation of the users will be greater since they will work in double time to check if the software is up with the standards.
Quick solution for a business problem
The tools used in developing software have steps or processes that could cater to any business need. If a business needs an answer to their nagging question of productivity and better reporting, RAD could create the software based on the business need. There are lots of software which already have the functions needed by any businesses.
Objective Oriented and Highly Critical Users
Everything starts and ends with the objective. Users have to use the software to achieve the intended goal faster or easier. Different user interface and workflows are based on the realization of the objective. RAD makes the developers focus more on answering the need before creating something on their own. The set of tools could be used to answer the problem. Even the design of the user interface could be influenced by users.
Rapid Application Development Model Phases
Like most SDLCs, RAD also has a step by step process. But unlike other SDLCs, the process of developing a program under RAD is faster. Relying on sets of tools for software development, RAD will no longer have to force us to dig deeper in our coding techniques where we burn an hour or two just to complete a single command.
There are only three phases in Rapid Application Development:
• Planning of Requirements
• Design Workshop
• Implementation.

1. Planning of Requirements

In this stage, developers meet with the project director or manager to generate definite objectives from the preferred program. Primarily, different strategies for development as well as the tools that will be used for development are also put up in a specific project. For business organizations, this stage is very necessary since the projected answer to business concerns will be laid out for the first time. Everything in this stage is hypothetical but it will be working together with the clients or businesses that need a software to answer their business need.

2. Design Workshop
When the plans have been laid out; it is time to start building on the plans. Using the agreed tools and interfaces, developers will start to create different programs based on the business need wants. RAD needs a lot of reaction as it also requires a lot of software iteration. Since RAD already has the set of tools to produce the program, developers will only need to refine the user interface. As tools make it easier to create the real prototypes, users will be able to work on a sample. Comment and implications are appreciated as this will be the bases on of the supplementary software procedures and instructions. Slowly developers and users can come up with one prototype that is almost ready for public use.

3. Implementation Phase
After further refinement, the software will finally be introduced to the business or to their intended users. Even though it has gone through hundreds or even thousands of testing and critique, the stage wherein the software is implemented in a larger scale is different hence new suggestions and bugs should be expected from different users. Developers have to remember these inputs and use it for the next software update. Developers have to be sure that the software update will be correct so that users will abandon the older version. This will prevent the system from malfunctioning since only one version is used.
The difference of Design Workshop to the Implementation Phase is not only in bugs but in software implementation. In Design Workshop, developers have to start from the bottom to impress the users. In the latter phase, developers will only have to work in software updates to ensure wider user acceptance.

Rapid Application Development or RAD takes the Prototype Model of SDLC further. Instead of using codes, developers use different tools and software development kits and bring them all together to create a software. Developers who are time challenged could use this application development. Businesses will also appreciate this software as it’s aimed to answer specific problems. Users’ feedbacks are important in this development cycle since they will suggest whether the program will fit to their specifications and needs.  




References:
http://searchsoftwarequality.techtarget.com/definition/systems-development-life-cycle
http://searchsoa.techtarget.com/definition/synchronize-and-stabilize
https://docs.google.com/viewer?a=v&q=cache:_lGbnm2X9QIJ:citeseerx.ist.psu.edu/viewdoc/download%3Fdoi%3D10.1.1.92.1577%26rep%3Drep1%26type%3Dpdf+synchronize-and-stabilize+%28sync-and-stabilize%29+model+phase&hl=en&gl=ph&pid=bl&srcid=ADGEESh6i-Vo0G04PnDvWEQ_sUOjv4VrcbUV3-EBfKB66HuNWJmeL0YLIIRA8OHv--fhjlaOvVtE-ZqDxgrAGfxSEmXReQWYwH_B-jhH_IAjVlo_SV1macB9kWLmya3QFALg2abHgXjT&sig=AHIEtbSUqX4s3QLilblAlp1E50s9sDShhg
https://docs.google.com/viewer?a=v&q=cache:siLjXXYW-5gJ:condor.depaul.edu/jpetlick/extra/394/Session2.ppt+the+fountain+model+of+SDLC&hl=en&gl=ph&pid=bl&srcid=ADGEEShCfW0_MLC4wRbczfUxrndHTkbwguF9fZuaUCe0RDyOCWyO2PTmaPhHnZ4jRhZZ75maVO_7gVAD2ex5-QIhrj1683hMefBNkak7FkQJCAwd-i0-_aQfEVEEKP177h4mmkvMMWJ7&sig=AHIEtbR77wACNjJYd3McDO_KsR7LIELc9w
http://www.learn.geekinterview.com/it/sdlc/rapid-application-development.html

Back to top Go down
View user profile
kenneth jan malubay



Posts : 15
Points : 16
Join date : 2011-11-23

PostSubject: 3 models in SDLC   Mon Dec 19, 2011 2:01 pm

In everything we have to make there is a life cycle to me follow or the sequence in making the things to be done. To organize our work we must have to steps to follow. In the world of developing a technology there is a certain technology to be follow. In different aspects of the technology there is a different phases to be done.
In developing a system there is a life cycle to be follow. This is called the System Development Life Cycle or the SDLC. So, what is a SLDC? Base on TechTarget, System Development Life Cycle is a conceptual model that is used in project management. There are methodologies in SDLC that must be followed. So, what are the methodologies involved in SDLC? In general the phases in SDLC are first, investigating or evaluating an existing system, secondly, defining the requirements to improve the system, then proposing a plan in developing the improvement, then developing the system until the system is finish, then deploying the system and replace the old one and lastly is doing maintenance work or evaluating the system.
There are different models in SDLC but let us focus only on three models. These are the Waterfall model the original SDLC method, Spiral model and the Agile Model. They have different cycles in different models. First we will discuss the Waterfall Model then the Spiral lastly the Agile Model.
First, what is a Waterfall Model? Base on the article of Nilesh Parekh in Buzzle. The Waterfall method is a traditional approach in developing a system. The first approach of the waterfall was ‘Process Model’ it is introduced and followed widely by software engineering to guarantee the success of the project. Waterfall has different phases to undergo with. These phases are requirement specification, software design, implementation and testing and maintenance.
Let us know the different phases of the waterfall model to further understand each phases. This is also base on the article of Nilesh Parekh in Buzzle. The first phase is the Requirement Specification. The requirement specification or requirement analysis this phase is all about the requirements in developing a system all the needs on the developing process is in this phase. All the functions and components that the end user want to have in a system will be stated here. This phase is the first thing to do by a developer. He/she will undergo an investigation or analyze the entire possible requirement that the end user want to have in a system. Lastly, the developer will document all his/her findings in this phase to serve as guideline in the next phase in the model.
The next phase is system and software design. Before arriving in the coding phase it should analyze first the guidelines of the requirements to plan the flow in developing it. In this phase the guideline of all the requirements are been studied to make a system design. Designing the flow makes the coding part easier because the desire outcome of the system is been seen or the designing team have an idea on the outcome of the system. System design will tell all the system requirements and hardware that is use for running the system. Specifying the system design serve as the input for the next phase of the model.
The next phase on the model is implementation and unit testing. Upon receiving the documentation in system design the work is been divided in modules or units and the coding of the system is started. The first one to develop in small programs is called units, the units will be integrated I the next phase. After the unit is finish it will undergo in testing this time it is referred as the unit testing. It will test the functionalities in each module or units that are done. The result in the test will tell if the specifications in each unit or module have been met.
The next phase on the model is integration and system testing. As the last phase is done in developing each module or units and test the functionalities of it this phase will be up. In integration phase, the units will be integrated into a complete system. After the integration phase, the system is checked all the modules or units if they coordinate in each other and the system behavior in per specification of it. After the checking the system it is delivers to the end user for deployment.
The last phase on the model is operations and maintenance. This is the never-ending phase in the waterfall model. The problems or error in the system that is not founded in the testing method is needed to be fixed. There are problems that are occurred in time in time usage of the system. Maintaining the system makes the problem to be fixed. If the end user wants to add more features in the system it is not anymore under in this last phase it will become the new project of the developer.
These phases are base also in the article that Nilesh Parekh wrote. By following this phases will help the system developer to manage the requirements in developing a system and it will organize the flow in developing the system. It is important to follow each phases in this model if you intended to use this model because you can’t proceed to the next phase if the current phase is not yet done.
Now the advantages and disadvantages in Waterfall Model. This is base also in the article that Nilesh Parekh wrote. First, let us know the advantages in waterfall model. The advantages on the Waterfall Model are the following:
• It is easy to implement. It is easy to implement because in the eyes of the manager it is easy to understand and it reduce the cost of the project. The flow of the project makes it easy to understand.
• It has a clear compartmentalization. By having a clear compartmentalization it is easy to set a schedule in every task in the duration of the project.
• It has step by step flow. Having a step by step flow of the phases makes the work easier because you can’t proceed to the next phase if you can’t finish the current phase. All the work is well organized. There is no overlapping of task in the whole duration of the project.
• It has documentation and testing. Lastly, every end of the phase it has documentation and testing to undergo with to know if the phases have error. Documentation each phase helps to know the other team what are the findings in the last phase so that their work will have a better direction. By testing the system helps to minimize the error that the end user will noticed in the long run.
Now, we know the advantages of a Waterfall Model. Let us know the weakness or the disadvantage of a Waterfall Model. The disadvantages on the Waterfall Model are the following:
• Not all requirements gather as one. There would be circumstances that the demands and the requirements given by the clients are inadequate and they would later demand those needs as you go along with the system. Sometimes the clients will add some requirements in the middle of the development process. This will cause the success of the project in a negatively aspects.
• Problems in each phase are not solved. Not all the problems in phase will be solve in the entire duration of the phase. Not all the problems will be seen in the current phase because there are sometimes cases that the problem will be seen when the other units or modules is develop. It will give a system badly structure.
• The system becomes useless. Lastly, some customers will tell their needs in the progress of the system having a list of their wants makes the system become more useless because of their new demands. The new demands will be meet in the newer version of the system it will cost more to the customer.
Having some of the disadvantages mentioned above the waterfall is one of the widely use model of software engineers. This is the best and easy way to use in developing a system throughout the duration of the project.

This is an example of a Waterfall Model. It shows the flow of the project throughout the entire time of developing it.
There is some models that some developers using it. The next model that will be discussed is the Spiral Model. So let us answer this question, what is a Spiral Model? Base on a PDF file of accaglobal. Having a problem in forward momentum of a Waterfall Model, Boehm developed a model to overcome this problem. Spiral Model is more like a procedure than a life cycle. Spiral Model introduces the activities that are concerned in the process rather than the product. There are two features in Spiral Model the risk analysis and the evolutionary nature of process. The evolutionary development is prioritizing the requirements of the project. After an initial analysis it will identify the features with the highest priority for the initial iteration. After completing each iterations, the user would give feedback on the modified part of the system and that would become the priority in the next feature of the system. This will help the development team to make modification and add more detail to the iteration. In feedback and modification makes the spiral model apart from a purely incremental approach.
The Spiral Model is composed of four quadrants. These quadrants serve as the phases that will be undergo in the project. So, what are these four quadrants stands for? The first quadrant is all about determining the objectives, alternatives and constraints. The second quadrant is all about evaluating the alternatives, identifying and resolving the risk. The third quadrant is all about developing, verifying the next-level product. And the last quadrant or the forth quadrant is all about planning the next phase? Now, let us understand what are the functions in each quadrant that spiral model will come across.
Let me discussed first the fist quadrant of the spiral model. In the first quadrant of the model have three activities to be done after moving to the next quadrant. The activities include in the first quadrant are the following:
• Establishing an understanding of the system or product objectives. In this activity the developer will understand the performance of the system and to know the functionality as well. Setting the objectives of the product makes the team more lighten about the goal of the product.
• Investigate implementation alternatives. Having an alternatives solution in every move you will come across makes the procedure more effectively when facing a problem that is suddenly arise. Having an extra plan on taking the product makes it a better outcome. In this activity you will be designing a plan or modifying it.
• Investigate constraints imposed on the alternatives. In this activity it will make the schedule in every task that was imposed in the last activity and this will know the risk that will be arise in undergoing each alternatives made. After this state it will go to the next quadrant.
The next quadrant is all about evaluating the alternatives, identifying and resolving the risk. So, what are the functions of this second quadrant in Spiral Model? In the second quadrant the activities performed is to select an alternative approach that best satisfies the technical, cost, schedule, support and risk constraints. The focus on this quadrant is ob the risk mitigation. Every alternative is investigated and prototyped to reduce the risk associated in the development decision of the project. This quadrant may involve prototyping, simulating, benchmarking, reference checking and more other risk resolution techniques that will satisfy the risk. If the there is critical operation or technical issues or both of them there will be more detailed prototyping to be added before progressing to the next quadrant. After evaluation all of it and it suites the risk with the best satisfactory solution then it will bring us to the next quadrant.
The next quadrant is all about develop, verify and next-level product. In this quadrant it basically use the waterfall model phases the system design, developing, integration and testing. If the critical operation or technical issues is solved in the last activity it is safe to continue in this activity. It is basically the developing process in this quadrant.
The last quadrant or the forth quadrant is all about planning the next phases. This quadrant is one of the characteristic that is common to all the models. This is the need for advanced technical planning and reviews at the critical staging of the project development. Every cycle of the model culminates with a technical review that assess the status, progress and it reviews the plans and identifies the critical operation and technical issues that will be resolved for the next iteration of the spiral.
By explaining the Spiral Model it makes me realize that it is so hard to understand the cycles of the Spiral Model. But it is the best way to use if you want to avoid risk in the project development period because of the alternatives that you can plot on the cycle on it. It is a mix of Waterfall Method in the Spiral Model.

This is the example of the Spiral Model. It has four quadrants and the activities are in a cycle path.
The last model that I will discuss is the Agile Model. What is an Agile Model? Agile Model is developed by the Agile Alliance in the year 2000 base on the PDF of the accaglobal. It is also called Scrum. Agile Model is an adaptive method rather than predictive because you can change the plan if the clients want to change the features. There are six phases in the Agile Model and these are Pre-Project Planning, Project Initiation, Construction Iteration, Release Iterations, Production and Retirement.
Let me discuss one by one the phases of the Agile Model. First the Pre-Project Planning, in this phase you will define the business opportunity. By defining the business opportunity you can able to know the concern of the client and to know what are the needs to fulfill their satisfaction. The other activity in this phase is to identify the viable of the project. By identifying the viable of the project you can able make a plan on how to execute the phases of the project. The last one is assess the feasibility in assessing the feasibility makes you know the possibility outcome in doing the project.
The next phase is Project Inception. In Project Initiation it is the process in building your development team, assessing the project needs, making designs and what type of environment you will use in the project. In this phase it is more like getting ready your team in facing the project. It is packing your team with all the needs in developing the project.
The next phase is Construction Iteration. In this phase the team will develop the project until the project is done. After assessing the design of the project it will undergo in the development phase and testing phase to know the error of the system and to solve it in this phase.
The next phase is the Release Iteration. In this phase this is the last phase in developing the system. It is more in finalizing the system. Making the test for whole the system after that it is ready to deployment. The system will be deployed after all the test runs have made.
The next phase is the Production. In production phase the system is been watch by the developer even though it is already been deploy to the user community. It is more likely maintaining the system. The production stop when the retirement phase is come.
The last phase in the Agile Model is the Retirement. In retirement phase the system is no longer handled by the developer team. It is because the system is been replaced or the system is no longer been used by the user community. And that is the last phase of the Agile Model.
This is based on the article of Scott Ambler in Ambysoft. Agile Model is more likely a Waterfall Model but in my own understanding the system will be cared of by the developer until the system is retired and there is a lot of time in preparing the team and the project. It covers two phases of the model until it started to develop it.
All the Models that I have discussed are more likely common they have the planning stage of the project. The gathering information phase of the project where is the developer gathered all the possible requirements in the project. There is also the developing phase that will develop the system to its completion and testing phase where the system is been test for the error or risk to be encounter in the running of the program. There is also the deployment of the system also where the developer deploy the system to user community and to test it in the user environment. And the last phase that they were common is the maintenance phase where they will maintain the system until the client will no longer have complains in the system.
If I have to decide what is the best model to be followed or to be use when I will make a system. I will prefer the simplest and the easiest way to follow, the Waterfall Model because it is easy to understand and I think all the models stated above is based on the Waterfall Model. It is the most basic models that anyone should follow. Even though it has disadvantages it always safe to use it, it is also nice to have a foundation in simple model before we went to the complex ones.

Source:
http://www.buzzle.com/editorials/1-5-2005-63768.asp
http://www.freetutes.com/systemanalysis/sa2-spiral-model.html
http://searchsoftwarequality.techtarget.com/definition/systems-development-life-cycle
http://www2.accaglobal.com/pdfs/studentaccountant/bakehouse0506.pdf
http://www.ambysoft.com/essays/agileLifecycle.html
http://searchsoftwarequality.techtarget.com/definition/systems-development-life-cycle



Back to top Go down
View user profile
Sponsored content




PostSubject: Re: Assignment 4 (Due: December 19, 2011, before 01:00pm)   

Back to top Go down
 
Assignment 4 (Due: December 19, 2011, before 01:00pm)
View previous topic View next topic Back to top 
Page 1 of 1
 Similar topics
-
» Iraq after US pullout – not a doomsday scenario December 12, 2011
» Iraq oil exports to Turkey at 400,000 bpd FRIDAY, 30 DECEMBER 2011 12:57
» December 12, 2011 1:09 PM PRINT TEXT Obama: We leave Iraq with "heads held high"
» Projects at a cost of 3 trillion dinars for electric power in the region On: Sat 12/17/2011 6:24
» Washington granted the responsibility to protect Iraq's (CIA) On: Friday 30/12/2011 6:59

Permissions in this forum:You cannot reply to topics in this forum
USEP-IC  :: SAD 1 (AY 2011-2012)-
Jump to: