# Information Systems/Systems Development

Systems development is a process used in systems engineering, information systems, and software engineering for planning, creating, testing, and deploying an information system.

## Objectives and Skills

Objectives and skills for the systems development portion of CLEP Information Systems include:
* Software development (prototyping, SDLC, RAD, CASE, JAD, Agile)
* Systems development (feasibility, process, systems analysis, systems design, end-user development, project management)
* System implementation (testing, training, data conversion, system conversion, system maintenance, post-implementation activities, post-implementation review, documentation)
* Information processing methods (batch, real-time, transaction)
* User interface design (GUI, multimedia)
* Standards (development, purpose, proprietary, open source)

## Readings

* Wikibooks: Introduction to Computer Information Systems/Program Development
* Wikipedia: Systems development life cycle
* Wikipedia: Software development process
* Wikipedia: User interface design
* Wikipedia: Rapid application development
* Wikipedia: Computer-aided software engineering
* Wikipedia: Transaction processing system
* Wikipedia: Agile software development

## Multimedia

* Youtube: CIS 121 - System Development Life Cycle
* Youtube: Simplified Software Development
* YouTube: Introduction To Agile
* YouTube: Business Analysis and System Development
* YouTube: System Implementation
* YouTube: Transaction Processing System
* YouTube: Understanding Agile
* Youtube: Rapid Application and Agile Development Methodologies
* Project Roles in System Development

## Activities

* Review Wikipedia: Systems development life cycle and Wikipedia: Waterfall model. Compare and contrast the two methodologies. For historical reference, see University of North Florida: Software Development Life Cycle as an example of assignments from this perspective.
* Review Wikipedia: Systems development life cycle and Wikipedia: Agile software development. Compare and contrast the two methodologies.
* Review Wikipedia: Processing modes and the different types of computer processing. Consider your bank or credit card account. Is your current balance immediately available, suggesting real-time processing, or is it updated daily, suggesting batch processing?
* Read the article ConceptDraw: Graphic User Interface. Then identify different features of a GUI, including windows, title bars, buttons, menus, icons, content areas, scroll bars, status bars, etc.
* Review Wikipedia: Diagramming software. Select a diagramming program and create a diagram, flowchart, or mind map for systems development.
* Complete the TutorialsPoint: System Analysis and Design Tutorial

## Research and Discussion

* A company you are working for is implementing a new system at your work location. Select a phase in the system development life cycle that interests you. Discuss the activities that may occur during this step of the SDLC and include how it has impacted you at your place of work.
* What are the benefits derived from using a systems development methodology? Support your answer.
* Describe the purpose of systems analysis and design when developing information systems and how it can apply to you. What are potential advantages and disadvantages to systems analysis?
* What do you do first when implementing a new system? Explain your experience. Does it support the SDLC?
* Compare and contrast SDLC and Agile development? What are the pros and cons of each development?

## Lesson Summary

Software Development
* Software development is the process of computer programming, documenting, testing, and bug fixing involved in creating and maintaining applications and frameworks involved in a software release life cycle and resulting in a software product.
* Software prototyping is the activity of creating prototypes of software applications, i.e., incomplete versions of the software program being developed.
* The systems development life cycle (SDLC), also referred to as the application development life cycle, is a term used in systems engineering, information systems, and software engineering to describe a process for planning, creating, testing, deploying and maintaining an information system.
* Rapid application development (RAD) is an alternative to the conventional waterfall model of software development which puts less emphasis on planning tasks and more emphasis on development through the use of prototypes addition to or even sometimes in place of design specifications.
* Computer-aided software engineering (CASE) is the domain of software tools used to design and implement software that is high-quality, defect-free, and maintainable.
* Joint application design (JAD) is a process used to collect business requirements while developing new information systems for a company which includes approaches for enhancing user participation, expediting development, and improving the quality of specifications.
* Agile software development is a group of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change.
* The Waterfall model is a breakdown of sequential project activities. Each phase depends on the completion of the prior step and corresponds to a specialization of tasks. this model does not allow for much flexibility and can be time consuming since you can't progress until the previous step is complete.
System Development
* Before any system planning is done, a feasibility study should be conducted to determine if creating a new or improved system is a viable solution. This will help to determine the costs, benefits, resource requirements, and specific user needs to be required for completion.
* The goal of system analysis is to determine where the problem is, in an attempt to fix the system. This step involves breaking down the system in different pieces to analyze the situation, analyzing project goals, breaking down what needs to be created and attempting to engage users so that definite requirements can be defined.
* In systems design, the design functions and operations are described in detail, including screen layouts, business rules, process diagrams and other documentation. The design stage takes as its initial input the requirements identified in the approved requirements document. For each requirement, a set of one or more design elements will be produced as a result of interviews, workshops, and/or prototype efforts. Design elements describe the desired system features in detail and generally include functional hierarchy diagrams, screen layout diagrams, tables of business rules, business process diagrams, pseudo-code, and a complete entity-relationship diagram with a full data dictionary. These design elements are intended to describe the system in sufficient detail, such that skilled developers and engineers may develop and deliver the system with minimal additional input design.
* Project management is the discipline of carefully projecting or planning, organizing, motivating and controlling resources to achieve specific goals and meet specific success criteria. Project management processes include initiating, planning, executing, monitoring and controlling, and closing.
System Implementation
* New systems are tested in a variety of ways and at various levels to provide information on the functionality and performance of the product or service that is to be utilized.
* After the system is tested, operational and production training is provided to users who will be maintaining the system and those using the system for production.
* Data conversion and system conversion translates data and systems from one format to another, which can be completed in increments or all at once, allows users to access and process information and data all under the implemented system.
* After a system is fully implemented, system maintenance and post-implementation activity are required for upkeep and enhancements, post-implementation review to analyze and evaluate the system's performance and assess any potential changes and enhancements to improve functionality.
* Documentation is taken throughout the whole implementation process-- pre-implementation, during implementation, and post-implementation-- to record, measure, and audit the system's effectiveness and functionality.
Information Processing
* Transaction processing is a style of computing that divides work into individual, indivisible operations, called transactions.
* Batch processing is the execution of a series of programs (jobs) on a computer without manual intervention. Several transactions, called a batch are collected and processed at the same time. The results of each transaction are not immediately available when the transaction is being entered; there is a time delay.
* Real-time systems attempt to guarantee an appropriate response to a stimulus or request quickly enough to affect the conditions that caused the stimulus. Each transaction in real-time processing is unique; it is not part of a group of transactions.
Graphical user interface
* The goal of user interface design is to make the user's interaction as simple and efficient as possible.

## Key Terms
### agile software development

    A group of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams which promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change.

### alpha testing

    Simulated or actual operational testing by potential users/customers or an independent test team at the developers' site.

### batch processing

    Batch processing is the execution of a series of programs (jobs) on a computer without manual intervention. Several transactions, called a batch are collected and processed at the same time. The results of each transaction are not immediately available when the transaction is being entered;[1] there is a time delay.

### beta testing

    Comes after alpha testing and can be considered a form of external user acceptance testing.

### compiler

    A language translator that converts an entire program into machine language before executing it.

### computer aided design (CAD)

    The use of computer systems to assist in the creation, modification, analysis, or optimization of a design.

### computer-aided software engineering (CASE)

    The domain of software tools used to design and implement software applications.

### data dictionary

    A centralized repository of information about data such as meaning, relationships to other data, origin, usage, and format.

### data flow diagram

    A graphical representation of the "flow" of data through an information system, modeling its process aspects.

### decision table

    A precise yet compact way to model complex rule sets and their corresponding actions which associates conditions with actions to perform.

### end-user development

    Activities and tools that allow end-users – people who are not professional software developers – to program computers.

### Feasibility Study

    Flowchart an assessment of the practicality of a proposed project or system which helps to determine the costs, benefits, resource requirements, and specific user needs required for completion.

### flowchart

    A program design tool that graphically shows step-by-step the actions a computer program will take.

### graphical user interface (GUI)

    is a type of user interface that allows users to interact with electronic devices through graphical icons and visual indicators such as secondary notation, instead of text-based user interfaces, typed command labels or text navigation.

### implementation phase

    The SDLC phase that includes testing, training, equipment replacement, and file conversion.

### information architecture

    Development of the process and/or information flow of the system.

### integrated development environment (IDE)

    An IDE is a software development application that consists of tools for debugging, source code editing, and automation.

### investigation phase

    The SDLC phase where existing business problems and/or opportunities are studied.

### joint application design (JAD)

    A process used to collect business requirements while developing new information systems for a company which includes approaches for enhancing user participation, expediting development, and improving the quality of specifications.

### maintenance phase

    The system is assessed to ensure it does not become obsolete and changes are made to initial software.

### parallel systems

    A process used in testing systems where the old system and the new system are operated simultaneously to verify the new system is working properly.

### program design

    The phase of the program development life cycle in which the program specifications are expanded into a complete design of the new program.

### program coding

    The phase of the program development life cycle in which the program code is written using a programming language.

### project management

    The process and activity of planning, organizing, motivating, and controlling resources, procedures and protocols to achieve specific goals in scientific or daily problems.

### rapid application development (RAD)

    A design approach that emphasizes the necessity of adjusting requirements in reaction to knowledge gained as the project progresses, and based on the use of prototypes in addition to or even sometimes in place of design specifications.

### real time processing

    Attempt to guarantee an appropriate response to a stimulus or request quickly enough to affect the conditions that caused the stimulus.

### scrum (Software Development)

    Scrum is a software development framework that is designed to work with small teams focusing on two weeks development cycles called "sprints".

### source code

    A computer program before it is compiled.

### systems development life cycle (SDLC)

    A process used by systems engineers and systems developers to plan for, design, build, test, deliver and maintain information systems.

### stepwise refinement

    A process used to break problems down into smaller problems.

### software maintenance

    After the deployment of a new interface, occasional maintenance may be required to fix software bugs, change features, or completely upgrade the system.

### software prototyping

    The activity of creating incomplete test versions of a software program being developed.

### systems design

    The process of defining the architecture, components, modules, interfaces, and data for a system to satisfy specified requirements.

### unified modeling language (UML)

    A set of standard notations for creating business models; widely used for modeling object-oriented programs.

### usability inspection

    A set of methods where a tester evaluates a user interface.

### user interface design (UI)

    is the design of user interface for machine and software, such as computer, home appliances, mobile devices and other electronic devices, with the focus on maximizing usability and the user experience. Wikipedia: User interface design

### transaction processing (TPS)

    A Transaction Processing System (TPS) is a type of information system that collects, stores, modifies and retrieves the data transactions of an enterprise. Transaction processing systems also attempt to provide predictable response times to requests, although this is not as critical as for real-time systems. Rather than allowing the user to run arbitrary programs as time-sharing, transaction processing allows only predefined, structured transactions. Each transaction is usually short duration and the processing activity for each transaction is programmed in advance.

## Review Questions

* The activity of creating prototypes of software applications, i.e., incomplete versions of the software program being developed is ____________. Software prototyping
* What is the term used in systems engineering, information systems, and software engineering to describe a process for planning, creating, testing, deploying and maintaining an information system? The systems development life cycle (SDLC), also referred to as the application development life cycle.
* An alternative to the conventional waterfall model of software development which puts less emphasis on planning tasks and more emphasis on development through the use of prototypes addition to or even sometimes in place of design specifications is ___________. Rapid application development (RAD)
* What is the domain of software tools used to design and implement software that is high-quality, defect-free, and maintainable? Computer-aided software engineering (CASE)
* What is the process used to collect business requirements while developing new information systems for a company which includes approaches for enhancing user participation, expediting development, and improving the quality of specifications? Joint application design (JAD)
* A group of software development methods in which requirements and solutions evolve through collaboration between self-organizing and cross-functional teams is called _______________. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change. Agile software development
* What should be conducted to determine if creating a new or improved system is a viable solution? This will help to determine the costs, benefits, resource requirements, and specific user needs required for completion. A feasibility study
* The goal of system analysis is _____. The goal of system analysis is to determine where the problem is, in an attempt to fix the system. This step involves breaking down the system in different pieces to analyze the situation, analyzing project goals, breaking down what needs to be created and attempting to engage users so that definite requirements can be defined.
* In systems design, _____. In systems design, the design functions and operations are described in detail, including screen layouts, business rules, process diagrams and other documentation. The design stage takes as its initial input the requirements identified in the approved requirements document. For each requirement, a set of one or more design elements will be produced as a result of interviews, workshops, and/or prototype efforts. Design elements describe the desired system features in detail and generally include functional hierarchy diagrams, screen layout diagrams, tables of business rules, business process diagrams, pseudo-code, and a complete entity-relationship diagram with a full data dictionary. These design elements are intended to describe the system in sufficient detail, such that skilled developers and engineers may develop and deliver the system with minimal additional input design.
* What is the discipline of carefully projecting or planning, organizing, motivating and controlling resources to achieve specific goals and meet specific success criteria which contain the following processes: initiating, planning, executing, monitoring and controlling, and closing? Project management
* New systems are tested _____.  New systems are tested in a variety of ways and at various levels to provide information on the functionality and performance of the product or service that is to be utilized.
* After the system is tested, _____ is provided to users who will be maintaining the system and those using the system for production. After the system is tested, operational and production training is provided to users who will be maintaining the system and those using the system for production.
* Data conversion and system conversion _____. Data conversion and system conversion translates data and systems from one format to another, which can be completed in increments or all at once, allows users to access and process information and data all under the implemented system.
* After a system is fully implemented, system maintenance and post-implementation activity are required for _____.  Upkeep and enhancements, post-implementation review to analyze and evaluate the system's performance and assess any potential changes and enhancements to improve functionality.
* What is created throughout the whole implementation process-- pre-implementation, during implementation, and post-implementation-- to record, measure, and audit the system's effectiveness and functionality? Documentation
* The style of computing that divides work into individual, indivisible operations, is called ________________. Transaction processing
* An execution of a series of programs (jobs) on a computer without manual intervention. Several transactions are collected and processed at the same time. The results of each transaction are not immediately available when the transaction is being entered; there is a time delay. This is known as ___________________. Batch processing
* What type of systems attempt to guarantee an appropriate response to a stimulus or request quickly enough to affect the conditions that caused the stimulus. Each transaction is unique and it is not part of a group of transactions. Real time systems
* The goal of _________________________ is to make the user's interaction as simple and efficient as possible. user interface design

## Assessments

* Flashcards: Quizlet: Information Systems - Systems Development
* Quiz: Quizlet: Information Systems - Systems Development

## See Also

* System development
* Wikibooks: Introduction to Computer Information Systems