Quiz 3 Flashcards
Operating systems vs application software
Operating systems manage the hardware and create the interface between the hardware and the user. Application software performs specific tasks such as word processing, accounting, database management, video games, or browsing the web.
Operating systems key functions
- managing the hardware resources of the computer;
- providing the user-interface components;
- providing a platform for software developers to write applications.
Why is Microsoft so dominant in the business world?
When businesses migrated to the microcomputer (personal computer) market, they elected to stay with IBM and chose the PC. Companies took the safe route, invested in the Microsoft operating system and in Microsoft software/applications.
Killer application
A “killer” application is one that becomes so essential that large numbers of people will buy a device just to run that application. For the personal computer, the killer application was the spreadsheet.
Main productivity software
Word processing, spreadsheet, presentation, databases, email
Utility software and programming software
Utility software includes programs that allow you to fix or modify your computer in some way. Examples include anti- malware software and programs that totally remove software you no longer want installed. These types of software packages were created to fill shortcomings in operating systems.
Programming software’s purpose is to produce software. Most of these programs provide developers with an environment in which they can write the code, test it, and convert/compile it into the format that can then be run on a computer. This software is typically identified as the Integrated Development Environment (IDE) and is provided free from the corporation that developed the programming language that will be used to write the code.
When you purchase software do you own it?
When you purchase software and install it on your computer, are you the owner of that software? Technically, you are not! When you install software, you are actually just being given a license to use it.
Enterprise Resource Planning
ERP software utilizes a central database that is implemented throughout the entire organization. Here are some key points about ERP.
• A software application. ERP is an application that is used by many of an organization’s employees.
• Utilizes a central database. All users of the ERP edit and save their information from the same data source. For example, this means there is only one customer table in the database, there is only one sales (revenue) table in the database, etc.
• Implemented organization-wide. ERP systems include functionality that covers all of the essential components of a business. An organization can purchase modules for its ERP system that match specific needs such as order entry, manufacturing, or planning.
Customer Relationship Management
A Customer Relationship Management (CRM) system manages an organization’s customers.
used to support customer-related sales and marketing activities
Supply Chain Management
A Supply Chain Management (SCM) system handles the interconnection between these links as well as the inventory of the products in their various stages of development. At its simplest, a supply chain is the linkage between an organization’s suppliers, its manufacturing facilities, and the distributors of its products.
systems that can help a firm manage aspects of its value chain, from the flow of raw materials into the firm through delivery of finished products and services at the point-of-consumption
Cloud Computing
The “cloud” refers to applications, services, and data storage located on the Internet. Cloud service providers rely on giant server farms and massive storage devices that are connected via the Internet. Cloud computing allows users to access software and data storage services on the Internet.
Private Cloud
While there are various models of a private cloud, the basic idea is for the cloud service provider to section off web server space for a specific organization. The organization has full control over that server space while still gaining some of the benefits of cloud computing.
pools of computing resources that reside inside an organization and that can be served up for specific tasks as need arrives.
Virtualization
Virtualization is the process of using software to simulate a computer or some other device. Organizations implement virtual machines in an effort to reduce the number of physical servers needed to provide the necessary services to users. This reduction in the number of physical servers also reduces the demand for electricity to run and cool the physical servers.
Think of virtualization as being a kind of operating system for operating systems. A server running virtualization software can create smaller compartments in memory that each behave as a separate computer with its own operating system and resources. Virtualization software allows one computing device to function as many. The most sophisticated products also make it easy for organizations to scale computing requirements across several servers.
Closed source
. This led to a new business model of restrictive software licensing which required payment for software, a model that is still dominant today. This model is sometimes referred to as closed source, as the source code is not made available to others.
Software
Software gives the instructions that tell the hardware what to do.
Software refers to a computer program or collection of programs—sets of instructions that tell the hardware what to do.
Systems development life cycle
Various definitions of the SDLC methodology exist, but most contain the following phases.
- Preliminary Analysis. A request for a replacement or new system is first reviewed.
- System Analysis. In this phase one or more system analysts work with different stakeholder groups to determine the specific requirements for the new system.
- System Design. In this phase, a designer takes the system requirements document created in the previous phase and develops the specific technical details required for the system.
- Programming. The code finally gets written in the programming phase. Using the system design document as a guide, programmers develop the software.
- Testing. In the testing phase the software program developed in the programming phase is put through a series of structured tests.
- Implementation. Once the new system is developed and tested, it has to be implemented in the organization.
- Maintenance. This final phase takes place once the implementation phase is complete.
Rapid application development (RAD)
- Requirements Planning. In this phase the overall requirements for the system are defined, a team is identified, and feasibility is determined.
- User Design. In the user design phase representatives of the users work with the system analysts, designers, and programmers to interactively create the design of the system.
- Construction. In the construction phase the application developers, working with the users, build the next version of the system through an interactive process. Changes can be made as developers work on the program. This step is executed in parallel with the User Design step in an iterative fashion, making modifications until an acceptable version of the product is developed.
- Cutover. Cutover involves switching from the old system to the new software. Timing of the cutover phase is crucial and is usually done when there is low activity.
Agile Methodologies (Agile and iterative development)
Agile methodologies are a group of methodologies that utilize incremental changes with a focus on quality and attention to detail. Each increment is released in a specified period of time (called a time box), creating a regular release schedule with very specific objectives.
1. Plan 2. Collaborate 3. Deliver
The goal of agile methodologies is to provide the flexibility of an iterative approach while ensuring a quality product.
Lean Methodology (non iterative)
Lean focuses on taking an initial idea and developing a Minimum Viable Product (MVP). The MVP is a working software application with just enough functionality to demonstrate the idea behind the project.
Once the MVP is developed, the development team gives it to potential users for review. Feedback on the MVP is generated in two forms. First, direct observation and discussion with the users and second, usage statistics gathered from the software itself. Using these two forms of feedback, the team determines whether they should continue in the same direction or rethink the core idea behind the project, change the functions, and create a new MVP. This change in strategy is called a pivot. Several iterations of the MVP are developed, with new functions added each time based on the feedback, until a final product is completed.
Iterative vs non iterative methods
The biggest difference between the iterative and non-iterative methodologies is that the full set of requirements for the system are not known when the project is launched. As each iteration of the project is released, the statistics and feedback gathered are used to determine the requirements.
The quality triangle
The quality triangle is a simple concept. It states that for any product or service being developed, you can only address two of the following: time, cost, and quality.
Generations of programming languages
First generation languages were called machine code because programming was done in the format the machine/computer could read. So programming was done by directly setting actual ones and zeroes (the bits) in the program using binary code. (Machine code)
Assembly language is the second-generation language and uses English-like phrases rather than machine-code instructions, making it easier to program. An assembly language program must be run through an assembler, which converts it into machine code. (Assembly language uses assembler)
Third-generation languages (Java, C, Basic, C++) are not specific to the type of hardware on which they run and are similar to spoken languages. Most third-generation languages must be compiled. The developer writes the program in a form known generically as source code, then the compiler converts the source code into machine code, producing an executable file. (Program is written as a source code and compiled using a
compiler)
Fourth-generation languages (SQL) are a class of programming tools that enable fast application development using intuitive interfaces and environments. Many times, a fourth-generation language has a very specific purpose, such as database interaction or report-writing. (Use of interfaces and tools, enables quick application development)
Compiled vs Interpreted
In a compiled language the program code is translated into a machine-readable form called an executable that can be run on the hardware.
Interpreted languages require a runtime program to be installed in order to execute. Each time the user wants to run the software the runtime program must interpret the program code line by line, then run it.
Procedural Programming Language vs Object Oriented Programming
A procedural programming language is designed to allow a programmer to define a specific starting point for the program and then execute sequentially.
An object- oriented programming language is designed so that the programmer defines “objects” that can take certain actions based on input from the user.
In other words, a procedural program focuses on the sequence of activities to be performed while an object- oriented program focuses on the different items being manipulated.