Supported by: Joint MSc curriculum in software engineering European Union TEMPUS Project CD_JEP-18035-2003 Developing New Material for the Software Evolution.

Slides:



Advertisements
Similar presentations
1 CIS 461 Compiler Design and Construction Fall 2014 Instructor: Hugh McGuire slides derived from Tevfik Bultan, Keith Cooper, and Linda Torczon Lecture-Module.
Advertisements

Info1409 De Montfort University Lecture 3 The Systems Development Life Cycle Systems Analysis & Design Academic Year 2008/9.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Experience with the Course in Novi Sad Zoran Budimac.
Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Niš, University.
Supported by: Joint MSc curriculum in software engineering European Union TEMPUS Project CD_JEP Module SE-C-01 Requirements Engineering Experiences.
Revised principles of Master thesis at Department of Mathematics and Informatics, University of Novi Sad B. Šešelja, Z. Budimac.
On the concept of the course on software project management Mirjana Ivanović (Zoran Budimac) Faculty of Science, Department of Mathematics and Informatics.
Supported by: Joint MSc curriculum in software engineering European Union TEMPUS Project CD_JEP New Topics for Software Evolution Miloš Radovanović.
New curricula at Department of Mathematics and Informatics (3+2+3) (Novi Sad) passed the accreditation Durres, September 9, 2008.
This year's experience in System integration master course Ivan Pribela, Zoran Budimac.
Detailed Design Kenneth M. Anderson Lecture 21
1 ) Definition 2) Note on structured and modular programming, and information hiding 3) Example imperative languages 4) Features of imperative languages.
Software Evolution Managing the processes of software system change
CS 330 Programming Languages 09 / 18 / 2007 Instructor: Michael Eckmann.
Programming Language Semantics Mooly SagivEran Yahav Schrirber 317Open space html://
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 18 Program Correctness To treat programming.
Joint M.Sc. studies in Skopje (history and future) Katerina Zdravkova
Computing Fundamentals 2 Overview Lecturer: Patrick Browne Room [KA] , Lab [KA] Based on Chapter 19. A Logical approach to Discrete Math.
Semantics with Applications Mooly Sagiv Schrirber html:// Textbooks:Winskel The.
A short report on Tempus project Zoran Budimac. Reminder “Joint MSc Curriculum in Software Engineering”. On September 1, started the last year of the.
Advanced Topics in Software Engineering ATSE 2009 Topics, participants and results Gordana Rakic, Zoran Budimac.
Dissertation proposal Coursework 2 Due 8 May % of final grade 2,000 words.
CS 415: Programming Languages Course Introduction Aaron Bloomfield Fall 2005.
New experiences with teaching Java as a second programming language Ioan Jurca “Politehnica” University of Timisoara/Romania
Introduction to High-Level Language Programming
Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013.
LEARNING WITH CERN KICK-OFF MEETING ‘Design of Missions’
Programming Languages – Coding schemes used to write both systems and application software A programming language is an abstraction mechanism. It enables.
CSI315 Web Applications and Technology Overview of Systems Development (342)
Introduction to CS-215 Computer Organization & Assembly Language: Module 0.
Course: Software Engineering © Alessandra RussoUnit 1 - Introduction, slide Number 1 Unit 1: Introduction Course: C525 Software Engineering Lecturer: Alessandra.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
CSC535 – Object Oriented Software Development Introduction.
An Introduction to Programming with C++ Sixth Edition
What does a computer program look like: a general overview.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering Foundations.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Deriving Operational Software Specification from System Goals Xin Bai EEL 5881 Course Fall, 2003.
CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 3, Lecture 1.
Programming and Languages
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Semantics In Text: Chapter 3.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Engineering Lecture 2 Vladimir Safonov, Professor, head of laboratory St. Petersburg University WWW:
90-723: Data Structures and Algorithms for Information Processing Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 1: Introduction Data.
SEM510 Autumn 1996 Software Engineering u What is “Software Engineering” ? u It involves: Software, People, Applications, Methods, Tools and Practices.
Chapter 14 Programming and Languages McGraw-Hill/Irwin Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved.
EPSII Lecture Section AAA 1505 SC Professor Terry A. Braun Biomedical Engineering, Ophthalmology and Visual Sciences.
Duminda WijesekeraSWSE 623: Introduction1 Introduction to Formal and Semi- formal Methods Based on A Specifier's Introduction to Formal Methods (J. Wing)
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
CSC3315 (Spring 2009)1 CSC 3315 Languages & Compilers Hamid Harroud School of Science and Engineering, Akhawayn University
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
CMSC 104, L041 Algorithms, Part 1 of 3 Topics Definition of an Algorithm Example: The Euclidean Algorithm Syntax versus Semantics Reading Sections 3.1.
Algorithms, Part 1 of 3 The First step in the programming process
Algorithms, Part 1 of 3 Topics Definition of an Algorithm
Algorithms I: An Introduction to Algorithms
Compiler Lecture 1 CS510.
B (The language of B-Method )
Programming Languages 2nd edition Tucker and Noonan
Data Structures and Algorithms for Information Processing
Algorithms, Part 1 of 3 Topics Definition of an Algorithm
Principles of Computing – UFCFA Week 1
Compilers Principles, Techniques, & Tools Taught by Jing Zhang
Programming Languages and Compilers (CS 421)
Programming Languages 2nd edition Tucker and Noonan
Algorithms, Part 1 of 3 Topics Definition of an Algorithm
Presentation transcript:

Supported by: Joint MSc curriculum in software engineering European Union TEMPUS Project CD_JEP Developing New Material for the Software Evolution Module Miloš Radovanović and Zoran Budimac

SE-O-01 – Software Evolution 2 Software evolution  Attractive course (sexy name for software maintenance)  Theoretical foundation (temporal logic, transformation systems)  Supported by tools  Easily understandable goals (i.e., convert an assembler program to a higher-level equivalent)

SE-O-01 – Software Evolution 3 Old Structure of the Course  Topic 1: Rationales and taxonomies for Software Evolution  Topic 2: Evolution within development life cycles  Topic 3: Lehman's laws of evolution software aging D.L. Parnas Lehman's laws of software evolution  Topic 4: Program comprehension  Topic 5: Managerial aspects of software evolution  Topic 6: Refactoring object-oriented software  Topic 7: Aspect Oriented Software Evolution  Topic 8: Formal Transformations

SE-O-01 – Software Evolution 4 New Course Structure: Main Idea  Make the course more focused on Techniques for program comprehension and reverse engineering The approach using formal transformations, FermaT and FME tools  Practically, expand Topic 8: Formal Transformations

SE-O-01 – Software Evolution 5 New Course Structure  Topic 1: Software Evolution  Topic 2: Program Comprehension  Topic 3: Transformation Theory  Topic 4: Abstraction  Topic 5: Slicing  Topic 6: Wrapping  Topic 7: Assembler Migration

SE-O-01 – Software Evolution 6 A More Detailed Look  Topic 1: Software Evolution (Introductiory) Motivation Definitions, taxonomy Lehman's laws of evolution, Parnas briefly Lifecycles (software process)  Topic 2: Program Comprehension (Introductiory) Several simple illustrative examples Short introduction to techniques: abstraction, slicing Introduction to tools: FermaT, FME Motivatory introduction to software metrics Flowcharts  Topic 3: Transformation Theory Motivation: retargetting, porting, migration WSL language, semantics Weakest preconditions Denotational semantics Proving the correctness of program transformations

SE-O-01 – Software Evolution 7 A More Detailed Look  Topic 4: Abstraction Type 1: Abstraction as the opposite of refinement Type 2: Replacing program parts with higher level operations Type 3: Translation of data The use of software metrics Examples  Topic 5: Slicing Motivation: program comprehension, abstraction FermaT slicers: simple, syntactic, semantic Examples  Topic 6: Wrapping Java application project: wrapping compilers for SvetoVid  Topic 7: Assembler Migration Application project: a translator from a subset of x86 assembler to WSL

SE-O-01 – Software Evolution 8 Spring 2008, Novi Sad  Course was held in “supervised” mode Primary supervisor: Miloš Radovanović Secondary supervisor: Zoran Budimac  Chronology of activities: Reading assignments of introductory material (selected slides, book chapters) Homework programming and transformation tasks (Fermat & FME basics) Test Projects in one of the 7 topics. Two students could jointly do one project. Activities:  Creating slides  FermaT & FME examples  Programming case studies Final grade based on the test and quality of project

SE-O-01 – Software Evolution 9 Spring 2008, Novi Sad  Generally, students had three types of attitudes towards the course: Try to do just enough to pass Do the job correctly, but not much more Do more than asked  This was reflected in the final grade distribution (6=worst, 10=best): 10 – five students (three projects) 9 – two students (one project) 7 – two students (one project) Two students dropped out

SE-O-01 – Software Evolution 10 Results  Topic 1: Software Evolution Slides (not usable)  Topic 2: Program Comprehension Slides with examples (usable)  Topic 3: Transformation Theory Slides (usable)  Topic 4: Abstraction -  Topic 5: Slicing Slides with examples (usable)  Topic 6: Wrapping -  Topic 7: Assembler Migration Application project with seminar paper

SE-O-01 – Software Evolution 11 Assembler Migration Project  Translator from a subset of x86 assembler into WSL (action system)  Transformations applied on WSL programs to make them more structured  Example assembler programs: Greatest commond divisor (GCD) Array sum Factoriel

SE-O-01 – Software Evolution 12 GCD: Assembler Version.model small.code movax,12 movbx,8 compare: cmpax,bx jetheend jagreater subbx,ax jmpcompare greater: subax,bx jmpcompare theend: nop end

SE-O-01 – Software Evolution 13 GCD: Translated to WSL ACTIONS A_S_start: A_S_start == ax := 12; bx := 8; CALL compare END compare == IF ax = bx THEN flag_z := 1 ELSE flag_z := 0 FI; IF ax < bx THEN flag_c := 1 ELSE flag_c := 0 FI; IF flag_z = 1 THEN CALL theend FI; IF flag_z = 0 AND flag_c = 0 THEN CALL greater FI; IF bx = ax THEN flag_z := 1 ELSE flag_z := 0 FI; IF bx < ax THEN flag_c := 1 ELSE flag_c := 0 FI; bx := bx - ax; CALL compare; CALL greater END greater == IF ax = bx THEN flag_z := 1 ELSE flag_z := 0 FI; IF ax < bx THEN flag_c := 1 ELSE flag_c := 0 FI; ax := ax - bx; CALL compare; CALL theend END kraj == SKIP; END ENDACTIONS

SE-O-01 – Software Evolution 14 GCD: After FermaT Transformations ax := 12; bx := 8; fl_flag1 := 0; WHILE fl_flag1 = 0 DO IF ax > bx THEN ELSIF ax >= bx THEN {ax = bx}; fl_flag1 := 1 ELSE FI OD

SE-O-01 – Software Evolution 15 Examples Before and After Transformations GCDArray sumFactoriel MetricBeforeAfterDiff (%)BeforeAfterDiff (%)BeforeAfterDiff (%) McCabe Statements CFDF Nodes Structure

SE-O-01 – Software Evolution 16 To Do  Make slides Topic 4: Abstraction Topic 6: Wrapping  Fix slides Topic 1: Software Evolution  Enhance assembler migration project (make it usable for teaching)  More coursework  Exchange material with De Montfort University: Martin Ward, Hongji Yang, Hussein Zedan