bourgeois chapter 10 Flashcards
programming
the process of creating a set of logical instructions for a digital device to follow using a programming language, also called coding because not everyone can understand it.
Systems-Development Life Cycle (SDLC)
a very structured and risk-averse methodology designed to manage large projects that include multiple programmers and systems that would have a large impact on the organisation. it is criticised for being inflexible. it is built on the waterfall methodology.
waterfall methodology
only when one step is completed can another step begin and changes to the requirements are not allowed once the process has begun.
preliminary analysis (SDLC)
create a review of the request. a key part is a feasibility analysis (technical, economic, legal) to decide if the project should start at all.
system analysis (SDLC)
analysts and stakeholders work together to determine the specific requirements for the system. it creates an overview of what the system is supposed to do, but does not include programming. the result is a system-requirements document.
system design (SDLC)
a designer takes the system-requirements document and develops the specific technical details required for the system to create designs for the user interface, database, data inputs/outputs and reporting. the result is a system-design document.
programming (SDLC)
the code gets written. the result is an initial working program.
testing (SDLC)
the developed software is put through a series of structured tests, eg. unit test, system test, user-acceptance test. any errors get addressed.
implementation (SDLC)
the system gets implemented in the organisation. this phase includes training users, providing documentation, and conversion from the old to the new system.
maintenance (SDLC)
reported bugs are fixed and requests for new features are evaluated and implemented; system updates and backups are performed on a regular basis.
Rapid Application Development (RAD)
a software development methodology that focuses on quickly building a working model of the software, getting feedback from users, and then using that feedback to update the working model. the focus is on user participation and iteration.
requirements planning (RAD)
overall requirements for the system are defined, a team is identified, and feasibility is determined.
user design (RAD)
representatives of the users work with the system analysts, designers, and programmers to interactively create the design of the system.
joint application development (JAD) session
gets all of the stakeholders together to have a structured discussion about the design of the system.
construction (RAD)
application developers, working with the users, build the next version of the system. it is executed in parallel with User Design in an iterative fashion, until an acceptable version of the product is developed.
cutover
the system goes live.
agile methodologies
a group of methodologies that utilise incremental changes with a focus on quality and attention to detail. each increment is released in a specified period of time (time box), creating a regular release schedule with very specific objectives.
lean methodology
focuses on taking an initial idea and developing a MVP.
minimum viable product (MVP)
a working software application with just enough functionality to demonstrate the idea behind the project.
pivot
a change in strategy by rethinking the core idea behind the project and create a new MVP.
quality triangle
when developing software there is tension between developers and different stakeholder groups relating to time (how quickly can it be built), cost (how much money will be spent), and quality (how well it will be built). the triangle states that you can only address two. it helps with understanding tradeoffs when developing products and services.
machine code
first-generation programming language (low-level). it is done by directly setting actual ones and zeroes (the bits) in the program using binary code.
assembly language
second-generation programming language, which gives English-like phrases to the machine-code instructions.
third-generation language
more like a spoken language. most must be compiled, which is a process that converts them into machine code. eg. BASIC, C, Pascal, Java.
fourth-generation language
a class of programming tools that use intuitive interfaces and environment. they are higher-level languages and require more work. however, you get finer control over hardware and more efficiency. eg. Clipper, FOCUS, FoxPro, SQL, and SPSS.
compiled language
programming language in which the program code is translated into a machine-readable form called an executable that can be run on the hardware. eg. C, C++, and COBOL.
interpreted language
programming language that requires a runtime program to be installed in order to execute that interprets the program code line by line and runs it. it is easier to work with but also slower and requires more system resources. eg. BASIC, PHP, PERL, and Phyton.
Java
hybrid of compiled and interpreted language. a program written in Java is partially compiled to a program that can be understood by Java Virtual Machine (JVM).
procedural programming language
designed to allow a programmer to define a specific starting point for the program and then execute sequentially.
object-oriented programming language
programming language that is set up so that the programmer defines objects that can take certain actions based on input from the user. every object has properties, which are descriptive field associated with it, and methods, which can take actions related to the object.
COBOL
a procedural, compiled language that at one time was the primary programming language for business applications. it is rarely used today.
Integrated Development Environment (IDE)
additional tool to be more efficient at programming. it includes an editor, help system, compiler/interpreter, debugging tool, and check-in/check-out mechanism.
computer-aided software-engineering (CASE)
tools that allow a designer to develop software with little or no programming. the CASE tool writes the code for the designer. the goal is to generate quality code, based on the input created by the designer.
end-user computing
when other departments than the IT-department develop their own specific applications. these people are often not trained in programming.
web services
a company can build a software application themselves but purchase functionality from vendors to supplement their system. they can license functions from other companies instead of writing the code themselves.
direct cutover
the organisation selects a date that the old system is not going to be used anymore. the users begin using the new system on that date and the old system is unavailable.
pilot implementation
a subset of the organisation starts using the new system before the rest of the organisation. this has a smaller impact on the company and the support team can focus on a smaller group.
parallel operation
the old and new systems are used simultaneously for a limited period of time. it is the least risky because the old system is still used as the new system is tested. it is the most expensive because work is duplicated and support is needed for both systems.
phased implementation
different functions of the new application are used as functions from the old system are turned off. this approach allows an organisation to slowly move from one system to another.
change management
a critical component of IT oversight. it is important to manage the way change is implanted in the organisation. impact of change after implementation must be minimised.