BURGEOIS
Chapter 1:
Components of information systems: hardware, software, data, people, and process.
Chapter 3:
Software: the set of instructions that tell the hardware what to do.
● Operating systems manage the hardware and create the interface between the
hardware and the user.
● Application software is the category of programs that do something useful for the
user
ERP system: is a software application utilizing a central database that is implemented
throughout the entire organization.
→ By consolidating information systems across the enterprise and using the software to
enforce best practices, most organizations see an overall improvement after implementing an
ERP.
SOFTWARE DEVELOPMENT METHODOLOGIES
Waterfall
Sequential design process. Progress is seen as flowing steadily downwards (like a waterfall)
through SDLC.
+ Detailed early analysis cause huge advantages at later phases
+ If a bug found earlier, it is much cheaper (and more effective) to fix than bugs found
in a later phase
+ Requirement should be set before design starts
+ Points to importance of documentation (minimized “broken leg” issue)
+ Disciplined and well-structured approach
+ Effective for stable software projects
+ Easy to plan from project management point of view
- Changes are expensive
- Client does not explicitly know what he or she wants
- Client does not explicitly know what is possible to have
- Need to finish every phase fully
- Long projects, difficult to keep the plan
- Designers may not know in advance how complex a feature’s implementation
- “Measure twice, cut once”
Prototyping
Creating prototypes of software applications i.e. 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.
,Incremental Build Model
The model is designed, implemented and tested incrementally (a little more is added each
time). Finished when satisfies all the requirements. 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.
Incremental vs iterative:
Incremental → thinking of the exact outcome
Iterative → thinking of what the outcome should represent
Spiral model
Combining elements of design and prototyping-in-stages. Combines the features of the
prototyping and the waterfall model. The spiral model is intended for large, expensive and
complicated projects.
RAD
Minimal planning and fast prototyping. Developing instead of planning. The lack of
pre-planning generally allows software to be written much faster, and makes it easier to
change requirements.
Agile
Group of software development methods. Based on iterative and incremental development.
Most important phrases
● self-organizing, cross-functional teams
● adaptive planning
● evolutionary development and delivery
● a time-boxed iterative approach
● rapid and flexible response to change
→ more successful than waterfall
Scrum (agile)
Scrum is an iterative and incremental agile software development framework. A flexible,
holistic product development strategy. Development team works as an atomic unit. Opposing
to sequential approach.
, Lean (agile)
A translation of lean manufacturing principles and practices. Toyota Production System,.
Today part of Agile community.
Lean Principles
1. Eliminate waste
2. Amplify learning
3. Decide as late as possible
4. Deliver as fast as possible
5. Empower the team
6. Build integrity in
7. See the whole
Extreme Programming (XP) (agile)
Improve software quality and responsiveness to changing customer requirements. A type of
agile software development. Frequent "releases" in short development cycles. Introduce
checkpoints where new customer requirements can be adopted.
XP Concepts: Pair programming, Planning game, Test-driven development, Continuous
integration
Test-driven development (TDD) (agile)
Relies on the repetition of a very short development cycle: first the developer writes an
(initially failing) automated test case that defines a desired improvement or new function,
then produces the minimum amount of code to pass that test, and finally refactors the new
code to acceptable standards. Test-first programming concept of extreme programming in the
beginning. Today standalone methodology
Feature-driven development (FDD) (agile)
Iterative and incremental development process. An Agile method. Driven from a
client-valued functionality (feature) perspective. Mostly part of other methodologies.
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.
Chapter 1:
Components of information systems: hardware, software, data, people, and process.
Chapter 3:
Software: the set of instructions that tell the hardware what to do.
● Operating systems manage the hardware and create the interface between the
hardware and the user.
● Application software is the category of programs that do something useful for the
user
ERP system: is a software application utilizing a central database that is implemented
throughout the entire organization.
→ By consolidating information systems across the enterprise and using the software to
enforce best practices, most organizations see an overall improvement after implementing an
ERP.
SOFTWARE DEVELOPMENT METHODOLOGIES
Waterfall
Sequential design process. Progress is seen as flowing steadily downwards (like a waterfall)
through SDLC.
+ Detailed early analysis cause huge advantages at later phases
+ If a bug found earlier, it is much cheaper (and more effective) to fix than bugs found
in a later phase
+ Requirement should be set before design starts
+ Points to importance of documentation (minimized “broken leg” issue)
+ Disciplined and well-structured approach
+ Effective for stable software projects
+ Easy to plan from project management point of view
- Changes are expensive
- Client does not explicitly know what he or she wants
- Client does not explicitly know what is possible to have
- Need to finish every phase fully
- Long projects, difficult to keep the plan
- Designers may not know in advance how complex a feature’s implementation
- “Measure twice, cut once”
Prototyping
Creating prototypes of software applications i.e. 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.
,Incremental Build Model
The model is designed, implemented and tested incrementally (a little more is added each
time). Finished when satisfies all the requirements. 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.
Incremental vs iterative:
Incremental → thinking of the exact outcome
Iterative → thinking of what the outcome should represent
Spiral model
Combining elements of design and prototyping-in-stages. Combines the features of the
prototyping and the waterfall model. The spiral model is intended for large, expensive and
complicated projects.
RAD
Minimal planning and fast prototyping. Developing instead of planning. The lack of
pre-planning generally allows software to be written much faster, and makes it easier to
change requirements.
Agile
Group of software development methods. Based on iterative and incremental development.
Most important phrases
● self-organizing, cross-functional teams
● adaptive planning
● evolutionary development and delivery
● a time-boxed iterative approach
● rapid and flexible response to change
→ more successful than waterfall
Scrum (agile)
Scrum is an iterative and incremental agile software development framework. A flexible,
holistic product development strategy. Development team works as an atomic unit. Opposing
to sequential approach.
, Lean (agile)
A translation of lean manufacturing principles and practices. Toyota Production System,.
Today part of Agile community.
Lean Principles
1. Eliminate waste
2. Amplify learning
3. Decide as late as possible
4. Deliver as fast as possible
5. Empower the team
6. Build integrity in
7. See the whole
Extreme Programming (XP) (agile)
Improve software quality and responsiveness to changing customer requirements. A type of
agile software development. Frequent "releases" in short development cycles. Introduce
checkpoints where new customer requirements can be adopted.
XP Concepts: Pair programming, Planning game, Test-driven development, Continuous
integration
Test-driven development (TDD) (agile)
Relies on the repetition of a very short development cycle: first the developer writes an
(initially failing) automated test case that defines a desired improvement or new function,
then produces the minimum amount of code to pass that test, and finally refactors the new
code to acceptable standards. Test-first programming concept of extreme programming in the
beginning. Today standalone methodology
Feature-driven development (FDD) (agile)
Iterative and incremental development process. An Agile method. Driven from a
client-valued functionality (feature) perspective. Mostly part of other methodologies.
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.