INFORMATION SYSTEMS
INTRODUCTION
Why use information systems?
- Business and IT-people come from different cultures, have different interests, and talk different languages. Therefore, there
is a need for professionals that understand both worlds and can bridge the gap between these worlds.
- There is a lot of data; it keeps
increasing every day → needs to be
handled in an efficient and effective
way
- Technological change → mobile
internet, cloud technology, big data
- Business models of firms are
changing.
LECTURE 1
Important types of software
- Enterprise resource planning (ERP)
o SAP, IBM software
o Functions: sales and marketing, CRM (customer resource management),
finance, manufacturing, HR, supply chain, purchasing, project management.
o EPR manages all the processes in a company through means of a centralized
database.
o In a company without ERP, the top management has to do all the work and
handle large amounts of information.
o With an ERP software, large amounts of information can be handled in a
cohesive way and top management only deals with important information.
o It is very complex to install ERP software. All the employees and staff need
to become familiar with a completely new system as it changes all the
business processes of a company.
o Failure to correctly implement an ERP system can result in losses.
- Other related software:
o Customer Relationship Management (CRM)
o Supply Chain Management (SCM)
o Cloud ERP
Open Source software
- Open Source software: software with source code that anyone can inspect, modify, and enhance.
o Anyone can use the program for any purpose.
o There are no licensing fees or other restrictions on the software.
o Open to the whole community.
o Cannot be sold as easily as commercial software (closed source) because everyone has access to the code.
- How is it different?
o Change from old style Cathedral construction to a modern Bazaar style.
o Community of Open Source ‘hackers’ have attempted to develop rules and regulations for the process. Not just anyone
can change the code.
- Open Source Licenses:
o Provide the 4F’s:
1. Freedom to run
2. Freedom to study and adapt the program
3. Freedom to redistribute
4. Freedom to improve
o 72 licenses
Give me credit: AL. BSD, MIT
Give me fixes: MPL, EPL, LGPL
Give me everything: GPL
- Examples: Firefox, Linux/Ubuntu, Open.Office, Google Chrome
History of Open Source software
,- 1984: The GNU Project at MIT, Richard Stallman, and the Free Software Foundation
- 1991: Linus Torvalds releases first Unix-like kernel; combines it with GNU software to form first release of Linux operating
system
- 1994: Red Hat is founded to distribute and support Linux commercially
- 1995: A community of developers start to work on the Apache Web Server
- 1997: The Cathedral and the Bazaar is published by Eric Raymond
- 1998: The term "Open Source" is coined, the Open Source Initiative (a non-profit organization) is formed
Software development technologies
Methodologies
- Traditional methodologies of developing software (non-agile):
o Waterfall
o Prototype model
o Incremental
o Iterative
o Spiral
o Rapid application development (RAD)
o Rational Unified Process (RUP)
- New, modern methodologies of developing software (agile):
o Extreme Programming (XP)
o Lean
o Test-driven development (TDD)
o Feature-driven development (FDD)
o Scrum
Non-agile software development
- Traditional
Waterfall model
- In a Waterfall model, each phase must be completed before the next phase can begin and there is no overlapping in the
phases.
- The Waterfall model is the earliest Systems-Development Life Cycle approach that was used for software development.
- Illustrates the software development process in a linear sequential flow that flows steadily downwards.
- Divided into phases.
- Output of one phase becomes the input of the next phase
- Preliminary analysis ⇒ System analysis ⇒ System design ⇒ Programming ⇒ Testing ⇒ Implementation ⇒ Maintenance
- Advantages:
o Detailed early analysis results in huge advantages at later phases
o If a bug is found earlier, it is much cheaper and more effective to fix than bugs found in a later phase
o Requirement should be set before design starts
o Points to the importance of documentation
o Disciplined and well-structured approach
o Effective for stable software projects
o Easy to plan from project management point of view
- Disadvantages:
o Changes are expensive
o Client does not explicitly know what he or she wants
o Client does not explicitly know what is possible to have
o Need to finish every phase fully
o Long projects, difficult to keep the plan
o Designers may not know in advance how complex a feature’s implementation is
Prototyping
- Creating prototypes of software applications: incomplete versions of the software program being developed.
- A prototype typically simulates only a few aspects of, and may be completely different from, the final product. Often drawn
on paper.
- Benefits:
o Prototyping can improve the quality of requirements and specifications provided to developers. Because changes cost
exponentially more to implement as they are detected later in development, the early determination of what the user
really wants can result in faster and less expensive software.
, o Prototyping requires user involvement and allows them to see and interact with a prototype allowing them to provide
better and more complete feedback and specifications
- Disadvantages:
o The focus on a limited prototype can distract developers from properly analyzing the complete project.
o Users can begin to think that a prototype, intended to be thrown away, is actually a final system that merely needs to
be finished or polished.
Incremental build model
- The product is designed, implemented, and tested incrementally until the product is
finished. A little more is added each time.
- Involves both development and maintenance
- Finished when it satisfies all the requirements
- The product is decomposed into a number of components, each of which is
designed and built separately → each component is delivered to the client
when it is complete.
- The series of releases is referred to as increments, with each increment
providing more functionality to the customers.
- Combines the elements of the waterfall model with the iterative philosophy of
prototyping.
Iterative and incremental development
- Iterative and incremental development is any combination of both iterative
design or iterative method and incremental build model for development.
- Develop a system through repeated cycles (iterative) and in smaller portions at a time
(incremental).
Spiral model
- Spiral model = risk-driven software development process model.
- Each loop of the spiral is called a phase of the software development process.
- Combines the features of the prototyping and the Waterfall model.
- Couples the iterative feature of prototyping with the controlled and systematic aspects of
the Waterfall model.
- Intended for large, expensive, and complicated projects.
Rapid Application Development (RAD)
- Minimal planning and fast prototyping.
- Prioritizes rapid prototype releases and iterations.
- The lack of pre-planning generally allows software to be written much faster, and makes it
easier to change requirements.
- Developing instead of planning → the components or functions are developed in parallel as
if they were mini projects.
Rational Unified Process (RUP)
- An iterative software development process framework created by the Rational Software Corporation (IBM).
- Not a concrete prescriptive process, but an adaptable framework, intended to be tailored by the development
organizations.
- Expected to select elements of the process that are appropriate for their needs.
- Its goal is to ensure the production of high-quality software that meets the needs of its end-users, within a predictable
schedule and budget.
Agile software development
- Agile software development: group of software development methods based on iterative and incremental development
- Most important aspects:
o Self-organizing, cross-functional teams
o Adaptive planning
o Evolutionary development and delivery