Systems Development

Topic Progress:
SYSTEMS DEVELOPMENT
The information systems department is also referred to as the information technology department. It is responsible for running, maintaining, and developing the computers and information systems in an organization. They also make sure for the programs to run smoothly. It includes all the computer and network personnel of that organization. The IT person that is most involved in system development is the system analyst. The system analyst manages the things related to designing and implementing modified systems. A person that is very important to system development is the business analyst. It is one of the biggest growing jobs because of the large increase in the use of technology. It is all about finding the most effective use of electronic communication.
Systems Development Jobs

Some other IT jobs are business analysts, application programmers, operations personnel, and security specialists. A business analyst will analyze the organization and its documents in order to assess and process that information. They help understand the policies and actions that a business has and then helps to achieve their business goals. Business analysts make a strategic plan, look at the business model analysis, process design the organizations work, and then interpret for technical systems.

An application programmer will take the technical and functional parts of a business and review the tech system. They look for ways to increase efficiency, manage things better, and enhance the work system to perform at its best. An application manager will usually create new applications that combine programs together for efficiency.

Operations personnel look at things more from a day to day basis and look at ways to improve upon things. This job is useful because they get to see the progression of things in the business from one day to the next. Security specialists will create a secure system to protect the company’s data and information. They will make sure that not everyone will have access to everything in the company’s database. They additionally monitor and respond to security incidents.

Outsourcing

220px-Globe.svg

In the industry today, many businesses have been outsourcing their work. Outsourcing occurs when businesses hire others outside of their company to perform different tasks, like creating new software or databases for the company. Some examples of outsourcing today include customer service, technical support, payroll accounting, and credit card processing. This is becoming more prevalent through the years because outsourcing has many advantages to the business itself. Offshore outsourcing is another term used, but the work is done in another country. India, for example, is one country that generates much revenue from offshore outsourcing alone.

Although many speculate that American jobs are at risk, outsourcing to other countries benefits the business as a whole. The company saves a lot more money, than if they were to keep technical support, customer service, etc. in the primary country of that company. Another advantage of having offshore outsourcing is that there can always be someone working on a project, gathering information, and helping a client because of the different time zones. A lengthy project can be completed faster than would a normal project worked on in just the United States because 24 hours a day, somebody is always working on the project.

Homesourcing is a new trend that many companies are taking advantage of, and adopting. This is the transfer of service industry employment from offices to home-based employees with appropriate telephone and Internet facilities. One downfall of outsourcing is cultural differences. Language barriers can be detrimental to a company at times. Another aspect that companies have to look into is security with newly outsourced employees when they are first hiring.

SDLC – System Development Life Cycle
The System Development Life Cycle (SDLC) is composed of six steps. These steps are as follows: preliminary investigation, system analysis, system design, system acquisition, system implementation, and system maintenance. Each step is important and builds up on the step(s) that happened previously. While these are generally the steps always used, they do not always occur in the same order. The effects are still the same. Below is an explanation of each of the six steps.

Step 1: Preliminary Investigation
As the first step in the SDLC, preliminary investigation plays a large role in determining whether or not a system or system modification would be worth making. The main point of doing a preliminary investigation is to determine what problems need to be fixed and what is the best way to go about solving those problems, if solutions do in fact exist. A feasibility report is the product of the preliminary investigation in most cases. The feasibility report is essentially a compatibility test between the current business/system and the new system/modifications. The report will tell companies if they can afford the change, if it will work with the other systems and technology already in their company, and if it will be beneficial to the company to make the changes. If all these things come back positively from the systems analyst, then the system will receive the “all clear” to head to the next step of the SDLC.

Step 2: System Analysis
This second step, system analysis, is used to investigate the problem on a larger scale and fine tune all the information a company has on the issue. Data collection and analysis are the two main points of interest inside system analysis. Gathering information about the current system and users allows analysts to develop an idea of what seems to be the real problem and how they should go about fixing it through data analysis. The main outcome from this step is a grouping of organized data about the current system and the new/modified systems improvements to come.

To illustrate systems that are based on the concept of objects, tools like use case diagrams and class diagrams are used. Use case diagrams are used to describe the behavior of the target system from an external point of view, while also illustrating the users who interact with the system. On the other hand, class diagrams provide an overview of the target system by describing the objects and classes, and their relationships, inside the system.

As mentioned above, system analysis is the phase of system development where the problem area is fully studied in depth and the needs of system users are assessed. The tools that will help accomplish this phase of collecting data and data analysis are entity-relationship diagrams (ERDs), data flow diagrams (DFDs), decision tables and decision trees, business process modeling notation (BPMN), and class diagrams and use case diagrams.

To describe the use of these tools in depth you will need to understand that any tools or processes used during this phase will aid in understanding the problems or issues of the current systems and how to improve them. So you will see several visual aids, charts, tables, diagrams, models, etc. All this is to help clarify and make sense to all personnel involved how the current system may be improved. Essentially, the new system requirements are defined and; in particular, the deficiencies in the existing system must be addressed with specific proposals for improvement. Entity-relationship diagrams and data flow diagrams are used to model the entities in a system and the flow of data between the entities. So, these kinds of diagrams will create a visual for the logical interaction between the individual entities that use the system. Business process modeling notation is a graphical, standardized notation used to model a business process. This type of modeling is similar to a flowchart and is meant to be understood by all users of the system.

Step 3: System Design

220px-Blueprint_for_Everglades_canals1921

When you’re designing a system, you are essentially creating a blueprint with your collected data which you build upon in later steps.

After all of the data has been analyzed, it is time to design a blueprint for the system that specifies what it will look like and how it will work. First you have to develop the design by using a few key tools. One important tool is the creation of a data dictionary, which describes the characteristics of all data that is used in a system. Other important creations that the systems analyst will use include different diagrams which help to better describe the proposed system. It has been argued by some that the ever-increasing rate of developing technology has made it impossible for the every day systems analyst to do their job thoroughly. The economics of industry are pushing in a way that doesn’t favor design, only production. Whether this is truly the case, system design leaves little room for error, as time is money.

Are the benefits of the system worth the cost?

In addition to a data dictionary, the systems analyst also has to create input designs to help illustrate the input screens and other user interfaces that will be used to input data into the new system. To ensure that the data is input accurately and secured against data loss, it is essential for the system design to contain some form of a security feature. Also, an output design helps identify the specific outputs required to meet the information requirements, select methods required for presenting that information, and design reports, or other documents that carry the information. Lastly, once the new system has finally been designed, a cost-benefit analysis is performed to determine whether the expected benefits (tangible or intangible benefits) of the new system are worth the expected cost. This analysis will then help determine if the design for the new system is worth implementing.

Step 4: System Acquisition
Once the design blueprint has been approved, it’s off to the proverbial grocery store. The organization needing a system will have a set budget and a list of components needed to make their system work properly. With this budget comes a few courses of action. The first thing to think about is whether the company should create their own software for their system or buy the software from others. It is typically cheaper and less time consuming to buy preexisting software but the customization options are limited. If the preexisting software doesn’t offer the options required of the system blueprint, then the company will likely have to make custom software to meet their needs.

Assuming that it okay for the company to buy preexisting software, the next step is to choose where to buy from. To help them choose, they can prepare an RFP, or request for proposal, which asks vendors what software the company might need to consider buying. If they already know what software they need and just want potential prices, the company can file an RFQ, or request for quotation. After filing for the RFQ, the company must evaluate all of the bids from the vendors offering different software. The company, in order to make the most profit, should evaluate each bid and figure out which one has charged the lowest price while also reaching the necessary criteria for the company’s system.

The Purchasing Department of a company usually decides which vendor deserves to receive the quote. The decision is usually helped by the use of a benchmark test. A benchmark test is a systematic process that evaluates both the hardware and software of a system. Some determinants used for the test include examining for the amount of workload that a system is capable of processing, the capability of solving complex scientific problems using a range of computations, offering legitimate data for the system to process and viewing the performance and scalability of the software, and many more. These benchmark tests can be offered through third-party organizations where there sole purpose is to test the offered systems. These tests allow for the company to immediately discard incapable systems offered by vendors.

Sometimes benchmarks are not capable of being performed due to a company’s location or accessibility, but for the most part they are a great way to assist in evaluating which bid is the best. After all of the required software has been purchased it is time for the next step.

Step 5: Implementation
In this step, users get the old data ready to be moved, called data migration. Once that is complete, they can begin installing new hardware and software. There are four ways of converting data to new a system: direct conversion- the old system is deactivated and the new one is implemented right away; parallel conversion- both systems are operated at the same time until it is known that the new one is working, then the old one gets deactivated; pilot conversion- only one new system is installed within an organization and once it is known that it works then the rest are implemented; and phased conversion- the new system is implemented by modules by using direct or parallel conversion. There are some advantages and disadvantages of using each method. For example, the easiest and fastest method is direct conversion. The final action in this step is training the users with manuals, for example.

Step 6: System Maintenance
Often the system maintenance is the ongoing process throughout the life of the system. Maintenance can include updating software or updating what is already installed. Many of you play an active role in this step already. For example, how many of you keep up with the newest updates for your Apple applications? You are taking part in system maintenance.

Once a software has been fully implemented, it goes through a post-implementation review to evaluate how the new system is running and whether or not it is completing its intended tasks. System maintenance includes modifying existing software or adding completely new features to the existing software, as well as fixing any glitches or bugs and checking security. System updates are usually scheduled for off-peak hours, such as late at night to keep the system running smoothly for users. Updates can be manually downloaded by the user or automatically downloaded through the server. Automatic updates ensure that the user is constantly using the most up-to-date version of the software.

For many organizations, system maintenance costs more than the production of the actual system itself. If the system is well designed it should be able to be easily updated and maintained. Poor design makes it difficult to implement new features, which could end the software’s life cycle early. Once a major change is determined to be the best option for a software, an organization must go through the system development life cycle again to replace the old system from scratch. This next version may be completely different than the old version with completely new features, or just an updated version of the old features.

SYSTEM DEVELOPMENT APPROACHES

Most system development projects include the six basic SDLC phases. However, the exact sequence and tasks performed during each phase, and the names and number of the phases, may vary depending on the organization and the type of system being developed. For example, smaller systems in smaller companies may skip or condense some activities, while other development projects may go back and repeat a previous step to refine the process before moving on. In efforts to improve the system analysis and design process, different methods have been developed. Some of these methods include the waterfall method, the iterative approach, and the end-user method. Each of these methods have different advantages and disadvantages in a way that they could be used to fit and optimize different kind of projects. These methods can be compared to our methods of vacation planning. People don’t design their entire vacation plan as the first step and then execute it, without modification, as the second step. Instead, when the first day of vacation is over, they might use that day’s experience as a basis for modifying the plan for the second day. In this way, system designs are similar.

Traditional Approach
A traditional approach for the system development has five phases which have to be completed in chronological order. First phase is the preliminary investigation. In this process, the team of development investigates the need for possible software automation in the given system. At the end the team creates a document of specific recommendations for the candidate system. It includes the personnel assignments, costs, project schedule, target dates, identifies problems and constraint.

The second phase is systems analysis which is the study of a problem, prior to taking some action. It refers to the study of the business area or application, usually leading to the specification of the new system.

The third phase is systems design which is defined as those tasks that focus on the specification of a detailed computer-based solution. The analyst focuses on three basic elements: the output that must be provided by the system, the source data, or input that the user will provide to the system, the processing needed to produce the output, given the input. The fourth phase is system acquisition financial institutions should ensure that systems are developed, acquired, and maintained with appropriate security controls.

This leads us to the last step which is system implementation, in this phase, the production system is installed, initial user training is completed, user documentation is delivered, and the post implementation review meeting is held. When this phase is completed, the application is in steady-state production. Installation the biggest aspect is that the entire system is planned and built and built before anyone gets to use it or test it, so every aspect to every phase is essential to the traditional approach for system development.

Iterative Approach
Unlike the traditional approach, the iterative (repetitive) approach allows for system testing during development. The emphasis here is on incremental changes through a process known as prototyping. Prototyping is the creation of software application prototypes. Prototypes, generally speaking, are early models of some product that is created for testing purposes.

With software prototyping, developers are able to receive crucial feedback from testers early in the beginning stages of development. For this reason the iterative approach accounts for potential risks that developers face (e.g. accounting for user needs, verifying accuracy of initial project estimates). With that, the iterative approach acts as a response to the traditional development cycle, which is more likely to have “higher software costs and poor estimates of time and cost” due to the expense of changing a finished product. As the product moves closer to release, the cost of implementing changes increases exponentially. It is a difficult task because the whole system has to be modified to incorporate sudden changes, and this can have undesirable results. Prototyping resolves this by knowing what the user really wants, which leads to increased user involvement. Interaction between users and developers is vital because it ensures what tasks need to be accomplished on the end of the developer. Overall the iterative approach addresses some of the problems that might not be possible for the traditional approach to address.

The End-User Development Approach
As opposed to the iterative or traditional approach, which both focus on professional users, the end-user development approach is focused solely on configuring the development of the system and is often done using tools or programs. Instead of having to be highly educated and a professional in the area of software or programming, someone trying to develop a simplistic and easy system can use these programming tools and develop something of their own. A good example of this is sending out an email that someone wanted to be addressed to many people. This is usually used in small businesses, tasks, or daily projects, and is not something that an intricate business would ever use to run their day-to-day software programs. However, it is a nice alternative from having to start all over from the beginning and developing brand new software for simple tasks. The end user development approach is also convenient for a user who wants to make something their own and customize the way the software runs to fit their personal needs. This approach is extremely useful for individuals who don’t have the knowledge, time, or money to put into building new software from the ground up. The software is easy to use, personal, and a great alternative to the other two options.


Earn a Certificate of Completion for completing this course. Pass a 50-question test on this course with a score of 70 or higher and receive a certificate of completion. Visit our Computer Information Systems Certificate of Completion page for more information.


The text for this course is available from WikiBooks under the Creative Commons Attribution-ShareAlike License.