Software Engineering: The Approach Ayaz Isazadeh Department of Computer Science Tabriz University Tabriz, IRAN WSEAS PLENARY SPEECH - IZMIR, 2004
Introduction... Outline Introduction An Engineering Discipline Engineering vs. Science The Problems Formal Approaches Education and Training Representations Conclusion
Introduction... We are just starting to realize, The vast dimensions of the universe. The huge volume of information out there. The astronomical world of unknowns. We are just starting consider, In our search for knowledge, Where we are. What we do know, and what we don’t
Introduction... We are just starting to conclude that, We know almost nothing compared to the unknowns. Our knowledge will be increasing exponentially. The huge volume of information currently floating around, will be increasing dramatically! The volume of information we will be dealing with, will be beyond our wildest imagination.
Introduction... The search for information is structured as different sciences. Who can deal with all the information in all sciences? The answer is: Software Engineering. Software Engineering is, indeed, taking over all sciences. No science can live without software engineering And...... that is the trend.
An Engineering Discipline Software engineering is the most powerful of all sciences. Software engineering is now, and will be more so in the future, providing the very infrastructures of all sciences. That is, indeed, an extreme power for software engineering. Extreme power, however, requires extreme care. That is why software engineering, today, Is an engineering discipline, with all the associated responsibilities.
Engineering vs. Science A hot debate has started years ago and still going on, Is Software Engineering a science an engineering discipline? The debate in some prestigious universities is still going on, whether Software Engineering belongs to the school of engineering or faculty of science It is, in fact, interdisciplinary; it requires, Mathematics for analysis and proof of correctness, Engineering for costs, risks, and tradeoffs, Management for personnel, facilities, and progress. Overall, I believe, it is an engineering discipline.
Problems Verrazano Narrows Bridge in New York City, the largest suspension bridge ever built, completed within budget, just on target date. IBM OS project, involving over 5000 man-years of work, completed, finally, well beyond the target date. Why software engineering cannot be planned and completed like any other engineering project? Because, Software engineering is more complex, and Software engineers are not as experienced. Using formal methods may have the solution.
Formal Approaches Accurate requirements specification is important. For over 20 years, IBM received failure reports on CICS; it was developed without using a formal method. Formal methods can be helpful. Using formal methods is, indeed, difficult. Visual formalisms can provide the solution.
Visual Formalisms Harel: Statecharts, STATEMATE Leveson: RSML (for TCAS) Hendricksen: ASTD Coleman: Objectcharts Walters: STATEMATE for OO systems Shaw: CRSM's Selic: ROOMcharts Jahanian: Modechart UML and sound mathematical foundation (Glinz, France, Breu, Fernandez, Grosu and more) Isazadeh: Viewcharts
Education and Training Professionals in this field must be trained to Work on a sound foundation. Do mathematical analysis before design. Prove correctness of their work, before the work begins. Understand responsibilities associated with the work. Universities, professional schools, and education centers, are responsible for training software engineers, prepared to face the challenging tasks ahead.
Representations... Definition r is the ( ,t)-representation of e, if there exists a function and a point in time t, such that (e,t)=r. is the representation function, t is the representation time, e is the representandum, and r is the representation.
Representations... Examples On a set of positive integers, (n) = n 2 -1 (n 2 ) = n On a set of graphs, (G) = A M (G) ( n) = “odd”, If n is odd “even”, Otherwise
Representations... Perfect and Imperfect The representation is perfect if -1 is also a function. Otherwise, the representation is imperfect. Most representations are imperfect.
Representations... How do we see the world? Representations are all we see. All around us are nothing but imperfect representations. Information age is, indeed, the representation age.
Representations... Viewcharts Viewcharts is an example of a representationistic approach to software engineering … The Viewcharts formalism works with the representations of a system, the views, and approaches the system by composing the views.
Conclusion Software engineering is involved, deeply, in every science and technology. Software engineering provides the very infrastructure of every science and technology. With all these responsibilities, software engineering cannot afford to go wrong. Software engineering, therefore, has no choice but to go formal, following a representationistic approach. And, that is the Approach...