Note: Assignment 4 of System Analysis and Design
Systems Development
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 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:
No comments:
Post a Comment