1 Software engineering development process: the meiotic model

advertisement
Software engineering
development process:
the meiotic model
Vito Veneziano
1

A critical review of Software Engineering
approaches

A hypothesis to re-organise software
engineers’ job

A new biology-based view of how to model
and develop software systems
What this talk is about
(a disclaimer!)
2
Software Engineering:

Definition phase – what?

Development phase – how?

Support and change phase –
 Error correction
 Adaptions
 Enhancements
Sounds like
BIOLOGY?!
Software processes: 3 phases
3

The waterfall model
◦ Activities represented as separate process
phases

Incremental development
◦ Systems developed as a series of versions

Reuse-oriented software engineering
 Based
on identification and integration of
reusable components

Agile methods
A list of process models
4
What all software engineering
process models share is
5
CONTROL
6

Software engineering is about designing
information systems that meet users’
viewpoints

There is no such a thing like an “absolute”
system: it’s all about decisions to be made

Inherently constructionist approach
But... What’s software
engineering about, really?
7

Problem analysis and solving is more than
decomposing problems into sub-problems

Software engineers are expected to
actively identify and decide about...
◦ Contexts and context-sensitive meanings
◦ General features and recurrent patterns
◦ Relevant factors from the surroundings (ethics,
cultural issues, economics, etc...)
◦ Whose perspective that problem is “a problem”
Engineering processes as
problem analysis 1
8

... In one word: software engineers have
an active role to play in “finding” new,
hidden information from within existing
information


Sometimes “finding” means... “creating”
And... problems evolve
Sounds like
BIOLOGY?!
Engineering processes as
problem analysis 2
9

Nature solves “problems” (or should we
call them challenges) without “obsessions”

It lets “solutions” evolve out of problems
by encouraging diversity, independent
assortment, genetic recombination

It makes problem solving “self-rewarding”

It obtains big solutions (complex ecobiological systems) from small processes
(cells reproduction)
Nature VS Engineering
10
Identify relevant “chunks” of
information (set of chromosomes)
Mix them and further recombine
into new “chunks” (crossing over)
Split them into “bricks of
information” (chromosome
segregation), leading to the
production of gametes
Building new “chunks” by joining
different “bricks” (zygotes from
gametes)
Problem analysis as cell
reproduction processes?
11
Coat-color
genes



How crossing over
leads to genetic
recombination
Nonsister chromatids
break in two at the
same spot
The 2 broken
chromatids join
together in a new way
Eye-color
genes
Tetrad
(homologous pair of
chromosomes in synapsis)
1
2
Breakage of
homologous chromatids
Joining of
homologous chromatids
Chiasma
3
4
Separation of homologous
chromosomes at anaphase I
Separation of chromatids at
anaphase II and completion
of meiosis
Parental type of chromosome
Recombinant chromosome
Recombinant chromosome
Parental type of chromosome
Gametes of four genetic types
12
Software engineering and
computer science...
… know something about cells and
genetics, as they tend to apply biologyderived models to almost everything

Genetic Algorithms

Neural networks

Computational simulations of complex
systems
And what if they try...
13

Could S/W Engineers tasks and individual
skills be seen as the informational chunks
that can be randomically “recombined” by
an organisational crossing over process?

Would we end up with less control, but
more diversity and variability? How?

How could testing evolve as well (and
become more “demanding” and selective)?
Applying the meiotic model to
S/W Eng own “core” activities
14

S/W Engineering main task is to develop
(i.e., “decide”) what information structure
would make our systems best

Obviously, most of designing techniques
have been derived by “engineering”
approaches (class diagrams, use case
diagrams, sequence diagrams, data flow
diagrams), as if building information
systems is the same as building “things”
(which is less obvious, though!)
Within the core process of
engineering software...
15

Every biological organism is an information
system, exchanging information with[in]
the environment and with other systems

Advanced biological
systems have adopted
the meiotic process to
reproduce themselves
AND IMPROVE the
species they belong to
Sounds like
S/W Eng?!
Biology is mainly about
information systems
16
[Information] environment
The world,
society, etc etc
Our system to
be designed
Customers
Other
systems
Deliveries
Payments
Orders
Products
Staff
Information
chunks
A typical information
management system...
17
[System] environment
Customers
Retrieve
Create
Data
Delete
Update
A zoom on a typical
information chunk (CRUD)
18

Every information(al) chunk could be
recombined whilst creating the whole
system (new chunks expected!)

Customer-Orders

Staff-Deliveries

Deliveries-Products
Sounds like
Biology?!

Chunks exchange data

Information system grows...
A new approach to software
engineering?
19
20
Thank you
21
Download