The importance of developing a system
System development can be interpreted to arrange a new system to replace the previous system as a whole or repair the existing system. The previous system need to be repaired because of a few things, which is:
a. Mark sense about problem that arises at previous system. The problems such as :
- Wrongness Wrongness in previous system causes system that can't operate according to expected. An amiss can be as a fault that didn't intentional so cause truths of reducing data are secured. - Organizational growth Organization growth caused must be arranged a new system. The organization growth such as information requirement that progressively extends, data processing volume gets to increase, changing accounting principle a new one.
b. Get the opportunities
Information Technology expanding very quickly, then organizational start to feel that this TI require to be used ready to increase information. in emulation of market, speed of time efficiency or information very determining success or failure of plan which have been made arrangements for to reach for existing opportunities.The arrangement of new system can be done because of existence of instructions from the leader or from outside of organization like regulation of government.
Purpose or goal of developing an information system
From the problems above, we can meet the purpose or goal of developing information system such as:
- to solving some problems
- reach for opportunity
- fulfilling given instructionThe organization's expectations after implementing an information system
As developing a new system, then will be happened the improvement in a new system. The improvement related to PIECES (is the acronym for easier), such as:
- Performance, the improvement of performance in a new system make the system will be effective. Performance can be measurement from throughput and response time where throughput is amount of work of which can done certain in a moment and response time is time mean which delay between two transactions.
- Information, the improvement of information quality which presented.
- Economy, the improvement of benefits and advantages or decreasing cost that happened.
- Control, the improvement of control to detection and repairing some faults and insincerity which possible happened.
- Efficiency, the improvement of operating efficiency. Efficiency related with how to use resource without doing extravagance.
- Services, the improvement of services given by system.
The principles of developing an information system
1. System for the management
2. System is big investment
a. Investigation of all alternative ( minimizing missing cost opportunity)
- b. Best investigation have to be valuable : analysis cost-benefit & analysis cost-effectiveness
3. System need educated people
a Not educations have to be formal but can do on-the-job training.Activity steps and the tasks that must have to be done in system development. This activity is shown on System Development life cycle
4. System development processes not have to be successive.
5. Don't fear to cancel the project
6. System documentation for guidance in system development
Systems Development Life Cycle
The Systems Development Life Cycle (SDLC) is a conceptual model used in project management that describes the stages involved in an information system development project from an initial feasibility study through maintenance of the completed application. Various SDLC methodologies have been developed to guide the processes involved including the waterfall model (the original SDLC method), iterative model and the spiral model.
Documentation is crucial regardless of the type of model chosen or devised for any application, and is usually done in parallel with the development process. Some methods work better for specific types of projects, but in the final analysis, the most important factor for the success of a project may be how closely particular plan was followed.
A. Waterfall model
The image below is the classic Waterfall model methodology, which is the first SDLC method and it describes the various phases involved in development.
Requirement Analysis and Design
Analysis gathers the requirements for the system. This stage includes a detailed study of the business needs of the organization. Options for changing the business process may be considered. Design focuses on high level design like, what programs are needed and how are they going to interact, low-level design (how the individual programs are going to work), interface design (what are the interfaces going to look like) and data design (what data will be required). During these phases, the software's overall structure is defined. Analysis and Design are very crucial in the whole development cycle. Any glitch in the design phase could be very expensive to solve in the later stage of the software development. Much care is taken during this phase. The logical system of the product is developed in this phase.
Design
In system design functions and operations are described in detail, including screen layouts, business rules, process diagrams and other documentation. The output of this stage will describe the new system as a collection of modules or subsystems.
Implementation
In this phase the designs are translated into code. Computer programs are written using a conventional programming language or an application generator. Programming tools like Compilers, Interpreters and Debuggers are used to generate the code. Different high level programming languages like C, C++, Pascal and Java are used for coding. With respect to the type of application, the right programming language is chosen.
Testing
In this phase the system is tested. Normally programs are written as a series of individual modules, these subjects to separate and detailed test. The system is then tested as a whole. The separate modules are brought together and tested as a complete system. The system is tested to ensure that interfaces between modules work (integration testing), the system works on the intended platform and with the expected volume of data (volume testing) and that the system does what the user requires (acceptance/beta testing).
Maintenance
Inevitably the system will need maintenance. Software will definitely undergo change once it is delivered to the customer. There are many reasons for the change. Change could happen because of some unexpected input values into the system. In addition, the changes in the system could directly affect the software operations. The software should be developed to accommodate changes that could happen during the post implementation period.
B. Iterative model
In software development, iterative is used to describe a heuristic planning and development process where an application is developed in small sections called iterations. Each iteration is reviewed and critiqued by the software team and potential end-users; insights gained from the critique of iteration are used to determine the next step in development. Data models or sequence diagrams, which are often used to map out iterations, keep track of what has been tried, approved, or discarded, and eventually serve as a kind of blueprint for the final product.
The challenge in iterative development is to make sure all the iterations are compatible. As each new iteration is approved, developers may employ a technique known as backwards engineering, which is a systematic review and check procedure to make sure each new iteration is compatible with previous ones. The advantage of using iterative development is that the end-user is involved in the development process. Instead of waiting until the application is a final product, when it may not be possible to make changes easily, problems are identified and solved at each stage of development. Iterative development is sometimes called circular or evolutionary development.
C. Spiral model
The spiral model, also known as the spiral lifecycle model, is a systems development lifecycle (SDLC) model used in information technology (IT). This model of development combines the features of the prototyping model and the waterfall model. The spiral model is favored for large, expensive, and complicated projects.
The steps in the spiral model can be generalized as follows:
a. 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.
b. A preliminary design is created for the new system.
c. 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.
d. 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.
e. 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.
f. 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.
g. The preceding steps are iterated until the customer is satisfied that the refined prototype represents the final product desired.
h. The final system is constructed, based on the refined prototype.
i. 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.
Approaches of developing a system
There are several approaches to developing a system, that is:
>> Classical approach vs. structured approach
Classical approach is an approach of developing a system that follow steps at system life cycle without supplied with tools and techniques.
Troubleshoots which can arise from this approach, such as:
a. Difficult development.
Classic approach less give tools and techniques insides develop system and finally software development process becoming not directional and difficult to be done by programmer.
b. Treatment cost or system maintenance will be more expensive.
The expensive treatment cost at classic approach caused system documentation that developed less complete and less structured.
c. Possibility of big error.
This approach doesn't prepare to manner systems analysis to do system testing, so that system errors possibility will be bigger.
d. System achievement less well guaranteed.
Because classic approach less involve system user in system development, so system user needs are less matching with the one which desirable and as finally system that applied less success.
e. Applying system internal issue.
User will be startled and unaccustomed with new system suddenly introduced.
Structured approach equipped with tools and techniques that wanted in system development, so that the end result from system which developed be got system the structure will be defined well and clear.
In this approach, consumer involve from early to determine requirement of system and using tools like data of flow diagram
- >> Piecemeal approach vs. system approach
- Piecemeal approach is system approach development that emphasized at one particular activity or certain application. This approaching just notice target of activity or the application.
- System approach is paying attention information system as one integrated unity for each activity or the application. This approach also emphasized in overall goal achievement from organization, not only in that information target.
>> Approach of bottom-up vs. approach of up-down
Bottom-Up Approach is beginning from level under organization, that is from formulation requirements to handle transaction and climb level on with formulate information need based on transaction. If Bottom-up approach is used in systems analysis steps, it also called by data analysis's terminology, because the becoming pressure is data who will be processed beforehand, information that will be yielded catch up to following the data.
Up-Down Approach on the contrary is beginning from level up organization that is from defining the target and organization policy. Step furthermore from this approach analyses requirement of information. After information is determined, then process goes to transaction processing, that is determination output, input, data base, operating procedure and control. When top-down approach used in systems analysis steps it is also called by decision analysis terminology, because the becoming pressure is information that wanted for making decision by management beforehand, then data which need to be processed will be defined to follow required information.
>>Total-system approach vs. modular approach
Total-system approach is the approach which developing a system together according to comprehensive. This approach less synchronized for complex system, because will be difficult be developed. This approach is feature classic approaches.
Modular Approach tries to divide complex system to simple some part, so that system easier will be understood and developed. Furthermore consequence system can be developed of time that planned, easy understood by system user and easy to maintain. This approach is feature structured approaches.
>> Great-loop approach vs. evolutionary approach
Great-loop approach applying change totally at a time use sophisticated technology. This change contains many risks, because computer technology so great-loop. This approach also too expensive, because need investment at the same moment for all technology that used and difficult to developed because it's too complex.
Evolutionary approach applies sophisticated technology just for applications that need that moment and will be developed for next periods based on technology development. This approach causes investment not too expensive and can follow fast technology development.
The meaning of methodology, method and algorithm
As we know there are approaches in developing a system. Now how to do these approaches? To developing a system, it is required by methodologies. Methodology are utilized methods, procedures, professions concept, rules and postulates that used by a science, art or the other. Method is someway systematic to work something. And algorithm is medley procedural to solve problems.
The classifications of development methodology
There are three classifications of developing a system, such as:
- A. Functional decomposition methodologiesFunctional decomposition is emphasizing to divide a system becomes subsystem. There are the include in this group methodologies such as HIPO, Stepwise refinement, iterative stepwise refinement and information hiding.
- B. Data-oriented methodologies
- Data-oriented is emphasizing on processed data characteristic. This approach can be grouped in two:
- a. Data-flow oriented: based on dividing system to modules pursuant to elements data types and logic behavior of these modules in system. There are the include in this group methodologies such as SADT (Structured Analysis and Design Techniques), Composite Design.
- b. Data structure oriented: emphasizing structure of input and output in system. There are the include in this group methodologies such as JAD (Jackson's system development), W/O (Warnier/Orr).
- C. Prescriptive methodology
This methodology usually has been provided by software maker factory. In this methodology including:
- - ISDOS (Information System Design and Optimization System)
- - PLEXSYS
- - PRIDE
- - SDM/70
- - SPECTRUM
- - SRES and SREM, etc.
- - ISDOS (Information System Design and Optimization System)
Tools for developing a system
To do steps according with methodology developing a system, then needed a tools and techniques. The tools there are in the form of diagram and chart, such as : HIPO diagram, Data flow diagram, SADT, structure chart, Jackson's diagrams, etc.
Besides the tools that mention above, there are utilizes that used at all of methodology. The tools as a chart set that grouped by:
a. Activity charting: to figuring activity, example: chart's substituting, flowchart, etc.
b. Layout charting: to figuring layout
c. Personal relationship charting: to figuring person relationship, example: organization chart, working distribution chart
Techniques used in developing a system
Techniques used in developing a system, as follows:
- a. Project management techniques, this techniques used to scheduling project, example: CPM and PERT
- b. Fact finding techniques, techniques to gather and determines data / fact. The techniques that is:
- - Interview
- - Observation
- - Questionnaires
- - Sampling
- - Interview
- c. Cost effectiveness analysis or cost-benefit analysis
- d. Techniques for going meeting
- e. Inspection techniques/walkthrough
The differences of being a system analyst and a programmer
System analyst is different with programmer, the differences are:
- a. System analyst is people that studying problems and determine system user requirements to identify resolving, while programmer is people that writing program code bases engineering that made by analyst.
- b. Responsibility a programmer is limited to computer program makings, but system analyst to system as a whole.
- c. Knowledge a programmer is limited to computer technology, computer system, utilities and program language required. But system analyst must have a wide of knowledge.
The knowledge a system analyst should posses
System analyst must have a wide knowledge and skills. There are some skills which are very needed for a good system analyst.
- 1. Knowledge and skill about data processing technique, computer technology and computer programming
- a. Technical skill that must have is including skill of using tool and technique for application software development.
- b. Technical knowledge that must have knowledge about hardware, data communication technology, computer languages, operating system, utilities, and another.
- 2. Knowledge about business in general
This knowledge is wanted so that system analyst can communicate with system user.
- 3. Knowledge about quantitative method.
System analyst use many quantitative methods in build application models, like dynamic programming, regression, network, decision tree, trend, simulation and other as it. - 4. Trouble-shooting skill.
System analyst must have ability to put complex troubleshoots that is faced by business, divide problem into parts, analyze it and then must can return composed to be a system can overcome troubleshoots. - 5. Communication skill delivers staff.
System analyst must have ability to hold communication either through tongue or article. - 6. Skills to builds relationship among personal
Human is factor critical insides system and human character one with another is different, so that need a skill to build connection or relationship among personal.
References:
Hartono, Jogiyanto.2005.Analisis dan Desain Sistem Informasi: Pendekatan Terstruktur, Teori dan Praktik Aplikasi Bisnis. Yogyakarta: Andi.
http://en.wikipedia.org/wiki/Software_development_methodology
http://searchsoftwarequality.techtarget.com/sDefinition/
0,,sid92_gci519105,00.html
http://searchsoftwarequality.techtarget.com/sDefinition/0,,sid92_gci519580,00.html
http://searchsoftwarequality.techtarget.com/sDefinition/
0,,sid92_gci755347,00.html
No comments:
Post a Comment