Thursday, December 22, 2011

System Analysis and Design: Assignment 6



          Many professionals who are working in the field of information system have different point of views regarding in creating and developing a software project in any companies and organizations in the world. Because different professionals in information system have different experiences in developing a projects, each of them have different strategies or techniques they want to implement in finishing the given project. Kayak nga kahit na ipagsasama pa ang iba't-ibang klaseng propesyunal sa isang malaking proyekto ng system development, hindi talaga maiiwasan na mayroong taliwas na pinaniniwalaan kung anong sistema o istratehiya ang ipapatupad o gagawin para maging matagumpay sa ginagawang proyekto ng grupo. Software engineering must not always deal with software development, but also developing good software by using such available knowledge with the help of different and various methods and effective use of tools. There are so many various existing software development approaches, that are defined and designed that are employed during the development process of software. There is particular life cycle in each process models that they are following in order to ensure success in the process of software development.

          It is very obvious that the two professionals in information system, Juan and Pedro, have different point of view regarding their projects on what they must do to create a new system or only modify the existing system they are using. It is very difficult to give the two different professionals a project that they must work on, who have different principles in creating a system development, because they may always argue in what method they must use to finish the creation and development of the project. In my own understanding, these differences of the two professionals can result to argument that can lead to misconception or missing the objectives of the project. It is very important that there will be teamwork to be able to work in harmonious way every individual in the team for the project to have a clear objective of the project.  Between the two professionals who have different point of view on what methods they must prefer to use to come up a new and more effective system they must use, I most see the effectiveness of the method that Juan want to implement in the project because, as what process of the method he want to implement, I saw the resemblance of the Waterfall Model method process he was talking about in the conversation because he wants to review the existing documents of the old system to see any defects or any improvements and modifications he want to apply in the old system. In that way, the old system can improve itself to the fullest because these modifications can enhance more the capabilities of the system that is why the Waterfall Model method of the system development life cycle is the most common method, and the first method that a man had created and the predecessor of the later software development method. Most of the existing system development models that had created were all derived from the Waterfall Model method because it has an all well planned process and methods to improve more the system. That is why the Waterfall Model is very common in all of the professionals in the information system industry because of its linear method. Maybe that is the reason that Juan prefer to use the method of Waterfall Model because it is all well planned process and it can detect the mistakes and any flaws in the program because of the complexity of the working program, and it is not in any circumstances that there is always a chance that the program cannot be effective anymore because of the always changing times and the fast pace technology in our age. So I discuss everything about the Waterfall Model to validate the proof that Juan really uses the Waterfall Model to have some improvements and modifications in the system they are using in the present. The Waterfall Model is using the development in a sequential software development model, and seen as flowing steadily downwards through several phases. These are the following phases in the Waterfall Model that followed perfectly in sequential order: Requirements specification, System Design, Implementation, Integration, Testing, Installation, and Maintenance. In Juan's approach in their conversation with Pedro, he is always specifying in the project that in the analysis is to first examine the old system and to have a review in the documents of the existing system. It has some common factors or definitions of the first phase of the Waterfall Model, the Requirements specification or System Analysis, from the statement of Juan during the conversation. The Requirements specification or System Analysis is the gathering of all the possible requirements of the system to be developed. The requirements also gathered from the end users because they are the one who is active in the usage of the system and the finished product of the software development. All of the requirements gathered are analyzed for their validity and the possibility of studying the requirements in the system to be developed. In these phase only, there are so many modifications that can be point out in the problems specifications. Just like the examination of the old system by Juan, he is reviewing the documents of the existing system sa kadahilanang kailangan makita muna ang lahat ng mga problema kailangan resolbahin sa old system para makapagbigay solusyon and modification of the existing system for it to properly function in the objectives of the modified system and to catch up the fast pace technology. Mas gusto ko ang proseso gagawin ni Juan kasi mas mapadaling baguhin at ayusin kung anong problema ang makikita sa old system kasi mas mapabuti pa ang modified system sa kadahilanang mas madali itong gawin dahil mayroon ng foundation kung anong gagawin para mapa-improve ang lahat ng kailangan baguhin at iimprove sa isang software system kaya mas napabilib ako sa istratehiya giganawa ni Juan. Pwede rin ginagamit ni Juan ang Reuse model of the system development model method kasi kagayang kagaya ang sinasabi ni Juan sa mga salita niya sa proseso ginagamit sa Reuse Model. Because the basic foundation of the Reuse Model is that the system should be built using the existing components, as opposed to custom-building new components. The Reuse Model is obviously suitable to Object-Oriented computing environments, which have become one of the premieres technologies in the present system development industry. The use of Reuse Model is that the libraries of software modules are maintained that can be reuse for the future modification of the system. These components of the Reuse Model are of two types: the Procedural Modules and the Database Modules. Every time they are building a new system, the developer or the creator will borrow a duplicate of a module from the system library and then plug it into a function or procedure. If the needed module is not accessible, the developer will build it a new one, and store a duplicate in the system library for the future use of it. If the modules are well constructed, the developer with minimum changes can implement them. These are the following steps that the Spiral Model can verify that Juan really uses this kind of method in his modification of their existing system. The first is the Definition of Requirements, then the Definition of Objects, Collection of Objects, Creation of Customized Objects, Prototype Assembly, Prototype Evaluation, Requirements Refinements, and the Object Refinement. The Definition of the Requirements is the initial step in system requirements that are collected. These requirements are usually a subset of the complete system requirements. This first process of the Spiral Model is very similar to the first process of the Waterfall Model, the Requirements specifications and gathering. This process may have resemblance of the two methods, the Waterfall Model and the Prototype Model; because it is very important to the development or modification of the existing system to really discuss and identify the potential upgrades or development of the old system, or maybe some problems exist in the usage of that system software. The next process is the Definition of Objects, this process is using the objects which can support the necessary system components, and it can be identified. Next is the Collection of Objects, this process allows the scanning of the system libraries so that it can determine whether or not the required objects are obtainable. The duplicate of the needed objects are downloaded from the system. Then the Creation of Customized Objects is the identification of the objects which of them are needed, and if the needed function or procedure in the existing library is not available, then the needed library is created. Then the Prototype Assembly is the creation of the prototype version of the system or the modification of that system using the important objects that can be used in the system. Next is the Prototype Evaluation, the prototype is evaluated to determine if it sufficiently deal with the customer’s needs and requirements. Then the next process is the Requirements Refinement, the requirements are additionally refined as a more detailed version of the prototype is created. Then the last is the Objects Refinement, the objects are refined to reflect the changes made in the requirements.

While Pedro is using the Prototype Model of the system development model method, based on my understanding about their conversation with Juan because he wants to develop and implement a new system in their departments. And because some of the detailed facts he discussed about the creation of the new system is that he wants to create and develop a new system in the short span of time. That is why I thought that Pedro wants to use the Prototype Model in the development of a new software system in his department.  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 improve the software as what they are created. There are different types of the Prototype Model of system development life cycle. Each of the different types has their own advantages and disadvantages but the prototype model has its purpose in constantly changing until it reaches their intended end 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 cooperation in different developers. Every developer 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 programs will combine resulting in a whole new program. Patch Up Prototype is a fast development model because everyone is working on a different field, and if every developer is 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 experienced project manager who can monitor the development of the program. The project manager only controls the work flow of the developers and ensures there is no overlapping of functions happened 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 it could be tested as planned, even though it is not a fully operational program. The prototype or the main software 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 maintenance of specific parts is very important. Then the third type is the First of 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 software but in another form. This selected features prototype is only introduced in the public the only selected features or limited access to some important tools in the program. These are the steps a Prototype Model is using in the process of system development: the Requirements Definition or Collection, the System Design, Prototype Creation or Modification, the Assessment, Prototype Refinement, and the System Implementation. The Requirements Definition or Collection is similar to the System Conceptualization phase of the Waterfall Model but not as complete as that process. The data or information collected is typically limited to a subset of the complete system requirements. In the System Design, once the preliminary layer of requirements data or information is collected, or new data or information gathered, it is quickly integrated into a new or existing design so that it may be doubled into the prototype. The Prototype Creation or Modification is that the data or information from the system design is quickly turned over in to a prototype. This may indicate that the creation or modifications of documents information, new coding process, or modifications to existing coding. Then the Assessment is that the prototype is presented to the end user or customers for the review. Comments and suggestions are collected from the end users or customers. This Assessment is very important in the creation of new system software because the developer must know the important details they can get from the reviews of the end users or customers in the software system they are using in order to relate those suggestions in the modifications of the working software system. Next is the Prototype Refinement, the data or information collected from the end users or customers is absorb and the prototype is improve. The developer must modify the prototype to make it more effective and efficient. Then the last phase is the System Implementation. In most cases, the software system is revising once requirements are understand. Sometimes, the iterative process eventually creates a working system that can be the foundation for the fully functional system. Each of those processes is very important to develop a new system in a shirt span time because it can easily develop a new system using those processes in this method. 

          So I conclude that despite of their differences in what method they must in the software project they working with, I preferably suggest that they might use the Spiral Model of system development method because the Spiral Model method was designed to include the best features from the Waterfall Model and the Prototyping Model, and they also introduce a new process in this latest method, the risk assessment. This risk assessment is new to this Spiral Model because it assesses the potential risk of the process they are taking in the development of the project. The term spiral is describing the process that is followed as the development of the system take place. This Spiral Model is very similar to the Prototyping Model because the initial version of the system is developed, and then repetitively modified the based input of the receiving part from the customer evaluation. But the Spiral Model is not that similar in all aspects of the Prototyping Model because the development of each version of the system is with awareness of the designed using the steps involved in the Waterfall Model. With each repetitive step around the spiral is more complete versions of the system are built. I can also suggest that they can also use the new software development method of Creating and Combining Model because this type of system development model has all the foundation of the previous model that had been created in the previous times and it can also be useful if the some individuals or teammates who are arguing of some aspects regarding the methods they must use in the development of the system software. In many cases, some parts and processes from various system development models are integrated to support systems development. This happens for the reason that most models were designed to provide a framework for achieving success only under a certain set of conditions. When the conditions change away from the limits of the certain model on what is using, the outcome from using it are no longer predictable. When this circumstance occurs, it is sometimes important to change the existing model to contain the change in conditions, or implement or combine the different system development models to accommodate the new conditions. The choice of a suitable system development model’s turning point mainly on two factors, the organizational environment and the nature of the application. Frank land, from the London School of Economics, recommends that the suitable approach to system design, system analysis, system development, and system implementation could be based on the connection between the information systems and its organizational environment. That is why some of the arguments on the conversation between Juan and Pedro can be pointed out in the combining of their ideas on what system development method they must use to have some peaceful and workable team they can work on. The later development of some software development model method can be very useful in some point on a certain project because in the industry of information system, the technologies are in fast pace changing in organizational environment and the needs of the customers of a faster finished product of new system software that the developers are creating or developing in their industry.

References:

http://it.toolbox.com/wiki/index.php/Prototyping_Model 

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

Tuesday, December 20, 2011

System Analysis and Design: Assignment 5


In assessment number 5, we need to consider our school which is University of Southeastern Philippines of how do we know that the life cycle was developed there, and  also how do we know if it meets our needs? Well, in answering this question I refer it from my previous assessment for the system development model’s framework which is the Waterfall Model for the cycle that out university has. Yet, waterfall model is the basis of other system to have a progress for model’s framework. Upang matukoy nang maigi ang Waterfall Model, ay mariing ibibigay ko muna ang kaangkop angkop na definition nito, ito ay isang chronogical software development on which it can be seen tulad nang isang pinong tubig na umaagos pababa na hinahalintulad sa isang water falls. And because it so sequential and flowing in an organized manner, so this model passes in different kind of phases. There is a process on which the Waterfall Model has, on which one should move sa kasunod na phase only if the preceding phase or process ay kompleto na at perpekto. The consequence of discrete, and walang pag-iskip sa kung saan man parte ito o ang pag-exceed between them are the developments of every phase in the waterfall model. Nowadays, many professionals that see this approach as rigid in particular. Ang modify and edit or develop sa waterfall model has been created all throughout the years. Moreover, new variants of the model have been emerged. However, how many years had passed, ang waterfall model ay nagawa sa kapanahonang iyon ni Royce. Royce did propose as the popular named “The Waterfall Model” na pangunahing konsepto. According to Royce, he said that the model he had created was flawed. However, time passed and then his documentation and supported facts about these matter ware explored by others kung papaano madevelop ng maayos ang waterfall model to an Iterative Model. Kung naguguluhan ka kung ano ito, ito ang modelo na may ibang method of effective structured system development model. Maraming mga feedbacks, reviews and comments sa kanyang mga ginawang mga theorya tungkol sa waterfall model. Lalung-lalo na sa kanyang mga nagawang dokumentasyon kaukol nito. And one of the feedbacks is that it comes from each phase that influences the previous phases, which is the same and comparable to other system development models. Yet, this models is used widely and highly regarded by many in the current days. Even if the intention of Royce of his waterfall model idea is good to have a better and improve changing model which is Iterative model, the Waterfall Model is still widely use in the present because of its purely sequential and effective chronological process. And the structure of Waterfall Model in software development ay palaging ini-rerefer to any other approaches to software creation which is seen as inflexible and non-iterative. Despite those obstacles and problems th waterfall model engaged by always been attacking of how many years for being too unrealistic when it comes in meeting the needs of the clients quickly and easily. Moreover, having the theoretical basis for other prosesong modelo o process models because it is for the closest resemble of generic model for improving and developing software. May mga phases ang water model, these are the following phases, and it is sequential order, first is Requirements Specifications, System Design, Implementation, Integration, Testing, Installation, and Maintenance. The Requirement specification phase, it captures all possible requirements of the system to be developed and improved. Ang lahat nang requirements na ito on which it must be gathered from the end user (who will be using the system) at the start of the software development phase, peru ang mga requirements must have some set of functions and constraints that the end user expects from the system. Pagkatapos mangalap ng mga information o mag-gather ng datum, ang mga requirements are analyzed for their validity whether it is valid or not or available or unavailable. And also studied for the possibility and probability of incorporating the requirements in the system to be developed and improved. At ang panghuli, ito ay ang creation of a document of requirement specification which serves the purpose of guideline para sa nasabing kasunod na phase nito.
          Peru ang ibang sources had a statement that a  System Conceptualization ang pinakaunang step para sa prosesong ito because it refers to the consideration of all aspects of the targeted business or companies’ function or process, with the aims 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 or client and the developer is essential or very important. Nang dahil dito, the first step is mainly the job of a system analyst na napakahalaga sa ganitong aspeto. The purpose of his profession in a team project of collecting and gathering ng mga facts and detailed information and datum. In addition to that, ang pagkakaroon ng matinding analysis on the gathered data with the aims and goal of determining and defining how these requirements  and issues will be accommodated in the system. At ang pinaka-unang proseso nang waterfall model is very crucial in the hands of the system analyst and project manager because ito ay ang foundation of the software development, and for some instances that the system requirements they have gathered are incorrect or didn’t meet the needs of the customers or client. And next is,  they proceed in the next phase kahit na hindi kompleto o perpekto for gathering and analysis of the system requirement, there is a case on which in the earlier part of the doings that there is no sure for having the proper output of making the software development and then it leads to project failure para sa grupo. In this case, waterfall model is very important of having a perfect na pagsisimula sa isang phase bago simulan ang susunod na process para walang aberya mangyayari sa project at tuloy tuloy na ito sa tamang proseso o daan sa pagtatapos nang software development. Napakahalaga sa aspetong ito, na lahat ng kalahok sa grupong sotware development ay mapag-matyag at mapag-obserba para matukoy o malaman kaagad ang problema sa simula pa lamang. Kung may ganitong karakteristiks ang mga tao sa isang grupo sa pagdevelop ng software development, malamang ay successful sila at the last and final phase of the project. In the System and Software Design, it is really essential in understanding the requirements well of the end user and having an idea on how should the end product looks like before starting the actual coding phase. Knowing it first is very important, and maintindihan mabuti anf problem and sample output’s client. Ang pinaka unang phase of requirements specifications are studied in the second phase and a system design is prepared. System Design ay nakakatulong to define the overall system architecture, and specifying hardware and system requirements. The specifications of system design must serve as an input for the next phase. Kinakailangang mabuti na maidentify ang mga detalye on how the system will be constructed to perform necessary tasks after the requirements have been collected and analyzed. Thus,  the System Design phase is focused on the data requirements, and software and interface construction. Ang basehan ng 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 kung gaano katama, akma o accurate, and also how 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. Ang kasunod ay ang Implementation phase, the actual coding is started here. Dito nagsisimula ang lahat,  and the work is divided in modules or units after receiving the system design documents. The system is the first to be developed of one small programs called units. Units, which are integrated in the next phase. Every unit is developed or improve 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 or not. Ang implementasyong ito ay ang phase na kung saan it can also be called programming because this process is mainly worked by coding all those design presented using any programming languages like java or c++  and etc. It  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 coding phase or implementation phase, one of the important phases in the software development. Yet,  there are lots of individuals must be grouped in this process because of the complexity and kalakihan ng project 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 kung gaaano ba sila kagaling o madiskarte. Well, and also 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. Kung hindi nila makipagcommunicate ng maayos sa isa’t isa ay maaring magkakaroon sila nang communication breakdown. At kung magkakaroon ng communication breakdown ay napakatinding abala ito para sa ibang kagrupo sa trabaho na team project kung tatawagin. Kelangan din ang matinding team spirit sa parting ito nang sa ganuon ay magkaroon ng epektibong output para sa mga kliyente. 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. Try and try until it works successfully, and test and test over and over again to have the correct output. Testing and also detecting some bugs and errors in the programmed system are also important 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. Pagkatapos ng napaka successful na testing and error checking, at ito ay wala nang mali pa sa pag- test sa mga softwares, then it is finally delivered to the client or customer. Testing has generally focused on two areas. These two areas are include the following:  internal efficiency and external effectiveness. The external effectiveness goal 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 internal efficiency goal testing is to make sure that the program codes is standardized, efficient, and well documented.  Nang dahil sa  iterative nature, internal efficiency testing can be a labor intensive process. Then, ang pinakahuling step ay ang  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. All in all, ang lahat ng mga problema na maaring makita sa paggawa at pagdevelop ng system, ngunit hindi ito nakikita sa panahong 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. Ang pagmamaintain ng software ay mahalaga din sa bawat phase na ito. Maintanance is also modifying over and over again to have a better and improved software systems. Sa lahat ng 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. Technology is changing every moment, therefore maintenance is very important. May mga  advantages sa paggamit nang 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. Ang isa pang advantage nito is that the waterfall model if the work of the particular phase has over after it was done working, it is the time para makapagsimula sa kasunod na 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 time  managers are prefer to use the waterfall model in their software project because it is the easiest model to use and to implement due to its linear model. Thus, 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 ay nakakatulong nga malaki in reducing the cost of the project considerably. Ang pinakahuli-hulihan 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. Kung mayroong advantage in  using a waterfall model in a particular system development, then mayroong ding some disadvantages with the usage of that model. Isa sa mga disadvantages is the time consuming of gathering in all the important requirement specifications and the analysis of all the data, because it is very essential to collect and gather all the possible requirements in the process of requirement gathering and analysis phase in order to properly design the system, peru hindi lahat nang panahon is  that the requirements are received at once due to some lack of cooperation of some end users or customers. Kadalasan , ang  requirements na kelangan para gather o collect galling sa mga customer ay pwedeng mailagay sa listahan  kahit pagkatapos ng end of the process of requirement gathering and analysis phase na makakaapekto sa system development process and the success and development of solving the sa negatibong aspeto. And also, kadalasan sa mga programmers na nakaka-experience na gumawa o lumikha ng database design ay nakakaexperience din with this  kind of problem arising from not well planned project and one of it is the problem in the early phase are never been solved completely during the timeline of working that phase. Lastly, it is a fact na maraming mga difficulties at problema sa particular phase na hindi nasosolve and move to the next phase of the process because ang nakikita lang nila ay ang mga problema and errors of the previous phase when there are some mismatch and flaws of the two phases. At ang resulta nito ay halatang-halata na not good ang structured system design inside and outside nang dahil sa hindi lahat nang problems are related to that phase are solved during the same phase. Yet, the other reason is that the project is not partitioned in every phases in a flexible way because of its linear manner. Kaya nga ang pinili kong sulosyon para maresolba ang mga problema tungkol sa mga problema sa unibersidad, kayaga ng kabagalan ng enrollment system, ay ang paggamit ng waterfall model kasi ang mga process nito ay angkop para sa unibersidad.  Kasi ginagawa ng waterfall model ang striktong pagpaplano sa mga problema at masolusyunan kaagad ang mga nakikitang depekto sa sistema.

Sunday, December 18, 2011

System Analysis and Design: Assignment 4


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

Sunday, December 11, 2011

System Analysis and Design: Assignment 1


Based on my learning on the report about The World of The Information System Analyst, it is really hard to have skills of a system analyst. But those required skills of the system analyst can be learned through studies and experiences, and the best solution in requiring those skills is through experience because experience is the best teacher above all else. As some others have defined the system analyst in this way, the system analyst must know how to use computers to get the job done. Ang system analyst ang nagsasabi sa kanilang mga cliyente sa negosyo o organization kung anong klaseng computer at software ang kanilang bibilhin, and the system analyst choose on how those devices work together. Computer system analysts do their job first in having a question by the people on what they need their computers to do. And they plan a computer system on all those things that can work all those tasks well. Ang system na kanilang ginagawa ay kinakailangan ng maraming computers working together at iba’t-ibang klaseng software. After the system analyst understands what they must need to do in the system, hinahati-hati nila ang lahat ng tasks sa mga ibang myembro ng team para mapadali ang proseso. They create a diagram and charts to show how the information they gathered works, how that information will be processed, and how it will use by the people who need it. Ang system analyst din ay nag-eexperimento ng iba’t-bang computer system plans para sa kanilang simulation. At gumagamit sila ng iba’t-ibang tools at steps hanggang sa mahanap ng system analyst ang pinakamabilis, pinakamadali, at mas mura ang halaga, kagaya ng pagsasaliksik at pagformulate ng isang computer algorithm. Pagkatapos ay gagawa ang system analyst ng desisyon kung anong klaseng computer at software ang bibilhin at gagamitin. The system analyst also tells an instruction to the computer programmers on how to create any new software they must need. They give the programmers a step by step process. The main job for some system analyst is doing the computers work together. The system analysts make a decision on how to get information from the network, probably getting data from the Internet. After the system was planned, the system analysts try to test the system to make sure that it works. Sinusuri nila ang flow of process para makasigurado na ang impormasyon ay mabilis ang proseso at walang pagkakamali. They also look the system if it is easy to use by the user. But sometimes, they have to change their plans to improve the systems better.
Many computer system analysts are graduated in computer science, information science, management information system. An analysts must have an advance skills and understanding in computer, math, and planning. Logical thinking skills are also important. A system analyst must need to have a good, or preferably an excellent communication and writing skills, so that they can explain well and convince their clients that their systems is well-engineered, and give good instructions to the team.

According to Chapter 1, “An information system is a collection of interrelated components that collect, process, store, and provide as output the information needed to complete a business task.” And the job of the system analyst is to work on that information system to provide a desired result in Business Company. Information system is very important in business company because it “supports business functions in modern business organization, make business more competitive, enhance productivity and profits.” In that aspect, system analyst is very important in decision-making process because he/she is the one who deals with the problem. According to Job Responsibilities.com, the system analyst has its main responsibility in designing an IT solutions na kung saan ay makapagbibigay ng maraming produksyon sa negosyo. At itong trabaho ay maaring magawa para sa internal clients at sa external clients. Their responsibilities must include a constant communication with the clients, and checking the current model of business along with the data flows. After that, the system analyst must communicate with the client and make a more improved and appropriate IT solution for the client. The responsibilities of the system analysts can be more complex for the reason that they must fulfill their roles in the team; this includes their responsibilities of a constant long communication with internal as well as external clients. Next is the analysis of the current system of client. Then having a conversion of the requirements of a client to the strongly specified project description. The system analyst must identify immediately the proper solutions and receiving them for the purpose of both the business and technical stability. The system analyst must have a presentation of the proposals to the clients, and the production of the feasibility reports for the projects.
All those criteria are very important to the business company to have those responsibilities by the system analyst because of the competitive issues, especially the communication between the internal and external clients for them to update each other in every detail they want to succeed. As Chapter 1 discussed, the role of the system analyst is to “Investigate, analyze, design, develop, installs, evaluate, and maintains a company’s information systems; a business problem solver, the solution to the problem is generally a new information system, and help translates business requirements into Information Technology projects.” Investigation and analyzing is important in planning phase because it is the first step in system development life cycle and careful planning is the key to success. Collecting data, defining and understanding the problem can be hustle because of some limited resources you can gather or the complexity of the problem but good definition of the important problem can be succeed by the good system analyst. A good system analyst can be an asset for the company’s success because a system analyst is a business problem solver, and an experienced and a good background of a system analyst can create a best solution of the very hard and complex problem it encounters in the company. And also if the solutions were created after the analysis phase, a good design and development of the system can be achieved. But some flaws in the solutions they implemented can be seen after the system was deployed in the establishment. After the project had done, the system analyst must write or make a documentation of the system for a user manual for the clients.
A system analyst is the one who is “responsible for researching, planning, coordinating and recommending software and system choices” to be able to meet the organization’s business requirements, according to SystemAnalyst.com. A system analyst has a very important role in the system development process. A successful system analyst must have an analytical skill “to understand the organization and its functions”, which can be helpful in identifying the opportunities, and to analyze and solve problems. It is common that if you have a technical skill, you can understand the potential and the limitations of information technology. The system analyst must have an expertise in various programming languages to be able to work in different operating systems and computer hardware platforms. Having an advance management skills help the system analysts manage projects, resources, risk, and change. System analyst can be worked well with the end users with the help of their interpersonal skills, as well as they can also communicate with other analysts, programmers, and other system professionals. The system analyst must be responsible for developing cost analysis, design considerations, and implementation and they may also be responsible in making a feasibility study of a computer system before making recommendation to senior management. According to SystemAnalysis.com, there are six tasks that a system analyst must perform. First is the interaction with the customers to know their desired requirements. Second is the interaction with the designers to convey the possible interface of the software. Third is to interact or guide the programmers and system developers to keep track of system development. Fourth is that they must perform some testing in the system with sample or live data with the help of testers. After running some testing and if the results are enough for approval, then it must implement the new system. Then the last is to prepare high quality documentation. But many system analysts nowadays have shifted into business analyst “and the Bureau of Labor Statistics reports that “Increasingly, employers are seeking individuals who have a master’s degree in business administration (MBA) with a concentration in information technology.””
So that definition is very accurate and detailed as what is really a system analyst. A system analyst must have a good background of a researcher and a business planner because that is the first step in defining the problem of the business establishment. A correct data gathering can be crucial in defining a correct solution to the problem because of the possibility of misunderstanding the data collected. A system analyst is also a planner in implementing the desired solution or output of the information. Coordination to others is also important for them to really understand the scope and complexity of the problem, and how he act to it as fast as possible. A successful system analyst must have an advance experience in analyzing a company’s problems and situations for them to think a better and competitive solution they want to implement for the future purpose. In technical aspect, a system analyst must have an expertise in information technologies just like programming skills and database management system for them to fully develop any possible solutions or any improvements they want to implement in the company or organizations systems to have their works makes easier. In managerial skills, a system analyst must have a better sense of time management because of the deadlines of the projects or limitations of resources they can encounter with, and having a better time management the system analyst can think any possible options that is better than the previous solutions he want to implement and he can solve right away any flaws he can encounter. And interpersonal skill is very important for the system analyst to fully understand what the clients or the customers want to improve more in the system they consult with. Interacting with other people, especially with other analysts and programmer, he can think any better solutions rather than his own idea because there is any possibility that the person he interacts has a better experience in his own profession. And other system analysts are becoming a business analyst because of their skills that can improve and develop their competitiveness in the global aspect and because most of the system analyst work there profession in business establishments. So that is why most of the system analyst is now called a business analyst because they most work their professions in business establishments.

          There are so many definitions and interpretation as what is really a system analyst in the world of business companies and organizations but their roles in their professions as a member in the project is the important thing that every individual must understand. Ang role ng isang system analyst ay magbigay ng tulong sa isang organisasyon na maintindihan nila ang mga pagsubok na kanilang mararanasan kapag gagawa sila ng iba-ibang hakbang sa proyekto at sinisigurado rin nila ang mga kakailanganin at maabot rin ang lahat ng expectation ng kliyente sa tamang ibibigay na representasyon sa lahat ng mga solusyon. Next is the company must need to define the specific roles and responsibilities that a system analyst must do his job in the organization, but the system analyst must be very responsible for ensuring that the requirements set forth by the business are captured and documented correctly before the solution is developed and implemented. A system analyst can be called by some companies as a Business Analyst, Business System Analyst or a Requirement Analyst. Ang lahat ng mga ibat-ibang titulo na inuugnay sa system analyst ay mayroong kani-kanilang gawain, pero ang lahat ng mga iyon ay mayroong magkakatulad na responsibilidad na kanilang ginagawa, iyon ay gumagawa ng mga dokumentasyon sa lahat ng mga requirements na kakailanganin sa pagpapatupad ng solusyon para maabot at makuha ang gusto ng isang kliyente sa kanyang negosyo. In working in any elements or an organization, the system analyst is accountable if there are requirements that are not captured and documented and if the solution meets the documented requirements, but the solution still does not adequately represent the requirements of the client, the analyst is accountable. Ang ikapampito ay ang process responsibilities, kung nasimulan na ang paunang phase which is the analysis phase, ang analyst plays a key role in making sure that the overall project successfully meets the client needs. Katuwang na ditto, ang analyzing and understanding the current state processes to ensure that the context and implications of change are understood by the clients and the project team. Ang ikalawa ay ang pagdevelop for understanding of how present and future business needs will impact the solution. Ang ikatlo ay, ang pag-identify sa mga sources and references ng lahat ng mga requirements and understanding how roles help determine the relative validity of requirements. Then, developing a requirements management plan and isawalat ang plano sa lahat ng mga stakeholders. Pagkatapos nito ay ang pag-identify nang dokumento sa lahat ng mga negosyo, technical, product and process requirements. Ang pag-wowork sa mga kliyente para mauna and rationalize ang mga requirements. Ang pagtutulungan ay napakahalaga todefine acceptance criteria for completion of the solution. Again, hindi ibig sabihin na ang analyst sa piskikal na term ay siya lahat ang magtatrabaho. Maraming mga tao ang pwede pang mag-contribute ng gawain sa grupo, including the project manager. However, kung ang finished product ay mawawalang ng ibang features, or if the solution does not resolve the business need, then the analyst is the person held accountable. Kailangan din nito ang pagiging magaling sa analyst skills, generally, analysts must have a good set of people skills, business skills, technical skills and soft skills to be successful. Katuwang nito ang pagkakaroon ng good verbal and written communication skills, including active listening skills. Ang pagiging well-organized and knowing good processes to complete the work needed for the project. Ang pagkakaron nang effective relationships with clients to develop joint vision for the project. Ang pag-aasist sa project manager by managing client expectations through careful and proactive communications regarding requirements and changes. At pakikipag-usap o negotiate to build a final consensus on a common set of requirements from all clients and stakeholders. Para ma ensure that stakeholders know the implications of their decisions, and providing options and alternatives when necessary.
            The system analyst is an expert in business role that is why his voice is very important in making a best solutions in any problems they want to eliminate or have better system, and the system analyst is the one who gives any advices and making the clients understand the situation of the problem if the solution presented have some setbacks in the company’s financial aspect. But the clients are the one who gives instructions to the system analyst or business analyst as to what to work within the establishment and they must communicate and interact regularly if the problem presented by the system analyst is very complex. And being a system analyst is very hard in terms of being a professional because he is the one who is accountable if the presented solution to the client does not meet the requirements.
            Based on my own understanding as what is really a system analyst is all about. I may have some characteristics to become a system analyst but my skills is not enough because I’m still learning the way the system analyst must possess and work. But communicating to other people is my very challenging task because I don’t have any skills in that matter but maybe in that aspect I may improve myself in some time.

Reference:
http://www.jobresponsibilities.org/system-analyst%E2%80%99s.html
http://www.systemsanalyst.com/what-does-a-systems-analyst-do/
http://www.modernanalyst.com/TheProfession/Roles/SystemsAnalyst/tabid/184/Default.aspx
http://www.slideshare.net/infinityrulz/roles-responsibilities-of-system-analyst-3043450
http://www.bls.gov/k12/computers06.htm