1 Software engineering development process: the meiotic model

Download Report

Transcript 1 Software engineering development process: the meiotic model

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 eco biological 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

 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

Coat-color genes Eye-color genes 1 Tetrad (homologous pair of chromosomes in synapsis) Breakage of homologous chromatids 2 3 Joining of homologous chromatids Chiasma Separation of homologous chromosomes at anaphase I Separation of chromatids at anaphase II and completion of meiosis 4 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 biology derived 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

Our system to be designed Customers Other systems [Information] environment The world, society, etc etc Deliveries Payments Orders Products Staff

A typical information management system...

Information chunks

17

[System] environment Customers Create Data Delete Retrieve 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  Chunks exchange data

Sounds like Biology?!

 Information system grows...

A new approach to software engineering?

19

20

Thank you

21