Download as pdf or txt
Download as pdf or txt
You are on page 1of 27

Modern Technologies of

System Development
GKNM_INTA064
Varjasi, Norbert
norbert.varjasi@sze.hu
Topics

Project management and system architecture

Software as a product. The development process

Software crisis – retrospection

From waterfall to agile. Methods and criticism

Kanban, Scrum, eXtreme Programming

Test Driven Development

Distributed and collaborating software,

Team working and team control software

Distributed and multilayer application engeneering

Countimous Integration / Continous Delivery / DevOps
Introduction

Project management aspects


or
why we need modern technologies?
Methods for sw development
Big-Bang Model

Doesn't follow any process...

Simple

Fast

Flexible

Future needs doesn't matter

But it is impossible to test…
Code and Fix model

One step ahead of big-bang model

Testing team find bugs,
then they send back for fixing

Repeat until acceptance level
(or bugs are found)

For tiny projects, or demos

Results comes immediateley

Difficult accomodation of changes
Waterflow model (1970, Royce)

The most used model

Every phase ends on milestones,

No overlap, every phase are independent,

Simple and easy,

For small projects,

For high quality projects where costs are secondary,

Testing phase based on requirements

Changes are not permitted

But fundamental problems are hidden until release approach

Rapid application development
(RAD, 1991, James Martin)

For fast development and delivery,

Risk reduction: finding problems early

Users are better at using and reacting
(vs. specifications)

Prototypes can be usable and
can evolve into the completed product

Ready to time and on budget

Cons:
– Less quality
– Poor design
– Miss scalability
V model (late 1980s)

Extension of waterfall model

Every requirement coupled with
testing

Introduce test levels and test
types (unit-, integration-, system-,
acceptance or end-to end tests)

Importance of early test planning
Iterative and incremental model (1985)

Waterfall model divided into
portions (increment)

For large projects

Every iteration produces a
working software (or a part)

Easier to manage the
development process

But it consumes more resources
Spiral model (1986, Barry Boehm)

Steps for each iteration:
– Determine objectives
– Identify risk
– Evaluate alternatives
– Develop and test
– Plan next level
– Decice for the next level

Stability

Find problems early (lower cost)
The software crisis
Aim for sw development

New “value” creation (blue ocean project)

Customer need

To finish a project (eg. thesis)

Hobby
The software crisis

70‘s – Disjkstra:
– an inability to apply the techniques used to build
small software systems to the development of
larger and more complex systems.

Causes
– The cost of owning and maintaining software
was as expensive as developing the software
– At that time Projects was running over-time
– At that time Software was very inefficient
– The quality of software was low quality
– Software often did not meet requirements
– The average software project overshoots its
schedule by half
– At that time Software was never delivered
DotCom bubble in 2000

Companies on stock in the 90‘-s

the Nasdaq Composite stock market index rose
400%,

fall 78% from its peak by October 2002
DotCom Bubble 2000

AltaVista.com

Boo.com

CDNow.com

GeoCities.com

Who knows these companies?

InfoSeek.com
survive / terminate / acquisition

Lycos.com

Net2Phone.com

Pets.com

Razorfish.com

Amazon.com
Software crisis nowdays

Project runs over time slot

Project runs over cost limit

Poor quality

Uneffective sw (doesn’t work
as we planned)

Maintainibility

Reliability
The permanent sw crisis period

The fact that the same software problems have existed since the
1960’s and

the success rate of software has had almost no improvement over
the years

Makes turbulences periodically
Waterfall vs. Agile
Project management:
”The Iron Triangle”
From waterfall...
...to agile
...to agile
… to agile

To reach better solutions you need new paradigm

→ Agile manifesto in 2001
– Individuals and interactions over processes and tools
– Working software over comprehensive documentation
– Customer collaboration over contract negotiation
– Responding to change over following a plan
Q/A?

You might also like