DOC PREVIEW
Toronto ECE 450 - Lecture 2 - Software Re-engineering

This preview shows page 1-2-3 out of 9 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 9 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 9 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 9 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 9 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Spring 2005 ECE450H1S Software Engineering IILecture 2 Software Re-engineeringSome material is based on the CSER projects at U of TCovers almost all concepts of the courseDetail explanations to come …Copyright © Yijun Yu, 2005Spring 2005 ECE450H1S Software Engineering IILast lecture …General Information• Instructor: Yijun Yu [email protected]• Office: BA7200 (Bahen Center, 7thfloor), 946-8530• Office hours: Wed 5pm – 6pm, Fri 2pm-3pm• TA: Alexia Giannoula [email protected] Merchant [email protected] Almaoui [email protected]• Class homepage: http://www.cs.toronto.edu/~yijun/ece450hSpring 2005 ECE450H1S Software Engineering IIMarking Scheme adjusted• No midterm• Final Exam 50% (Exam week)• Course Project 50%– Assignment 1 (15%): Feb 11– Assignment 2 (15%): Feb 25– Assignment 3 (20%): April 8Spring 2005 ECE450H1S Software Engineering IIOur Course Project• This is a “brand-new” software reengineering project, emphasizing on reusing, restructuring, refactoring large-scale software systems, and team work ! – A1: Understanding the architecture of a legacy system (OpenOME, OmniEditor) (15%)– A2: Design OmniGraphEditor web service (15%)– A3: Reengineering OpenOME to use OmniGraphEditor web service of other teams (20%)• Tutorials will cover detailed approaches and tools to help you with the projectSpring 2005 ECE450H1S Software Engineering IIToday …1. Review SE process2. Discuss Reengineering Concepts3. Go over some case studies, a road map to our lectures and tutorials:VIM: componentization, reveal architecturesosCommerce: aspect elicitation, reveal requirementsSquirrelMail: goal elicitation from refactored code4. Your exercise is to use the learnt knowledge to study two other legacy software systems:OpenOME and OmniEditor5. SummarySpring 2005 ECE450H1S Software Engineering II1. Software Engineering ProcessThe Waterfall process modelSpring 2005 ECE450H1S Software Engineering II1. Software Engineering ProcessRapid Prototyping processSpring 2005 ECE450H1S Software Engineering II1. Software Engineering ProcessSpiral (incremental) processSpring 2005 ECE450H1S Software Engineering II2. Reengineering concepts• Why Software Reengineering?– Legacy software are increasing (Software vs. Hardware)– New technology appearing (Moore’s law)– Successful ratio of projects increasing (IBM internal history)– Companies are more competing (now we have the “open-source” movement and free-software foundation)– Quality attributes are demanding (That’s the selling point)– People are changing (developers joining and leaving, customers are changing)– Software maintenance are pressing(Largest cost in software development lifecycle >60%)Spring 2005 ECE450H1S Software Engineering II2. Reengineering conceptsWhat is software reengineering?To a large extent, it involves maintenance activities:– Understanding (predictive)– Repairing (corrective)– Improving (perfective)– Evolving (adaptive)• Related topics– Quality-driven software engineering (-ilities, quality attributes)– Requirements engineering (goals, non-functional requirements)– Software architectures (architectural views: components, statecharts, features, …)– Model-driven development (MOF, UML, EMF)– Design patterns (structural, behavioural)– Software refactoring (the code smells)– Performance tuning (trade-offs, multi-criteria optimizations)– Paradigms: Object-oriented, Goal-oriented, Agent-oriented, Aspect-oriented…Spring 2005 ECE450H1S Software Engineering II2. Reengineering conceptsThe Horseshoe modelSpring 2005 ECE450H1S Software Engineering IIThe Reengineering HorseshoeREQUIREMENTSIntentionsArchitecturesFunctionsSource Code……LEGACY CODESTATECHARTSGOAL MODELReverse engineeringGOAL MODELSOAWeb servicescustomizablearchitecturecomponentsForward engineeringSpring 2005 ECE450H1S Software Engineering IIReading assignments on software architectures• Previous lecture note for ECE450H1S: “What is software architecture?”“How to represent it?”– D. Penny. “Introduction to software architecture”: http://www.cs.toronto.edu/~chechik/courses00/ece450/lectures/penny.2up.pdf– M. Chechnik. “ADL and Darwin”. http://www.cs.toronto.edu/~chechik/courses00/ece450/lectures/Marsha-Darwin.pdfSpring 2005 ECE450H1S Software Engineering IIFurther readings• Martin Fowler. “The Refactoringhomepage”: http://www.refactoring.com/• CMU SEI: “Software architecture”. http://www.sei.cmu.edu/ata/ata_init.html• KMLab. “On goal oriented software engineering”. http://www.cs.utoronto.ca/km/goal_orientedSpring 2005 ECE450H1S Software Engineering IICase Study I. VIM• VIM stands for Vi-IMprovedhttp://www.vim.org• Are you a VIMer?• Current version 6.3• Bram Moolenaar• Developed in C• 172 KLOCSpring 2005 ECE450H1S Software Engineering IIUnderstanding the architecture of VIM• Lee’s initial VIM architectureSpring 2005 ECE450H1S Software Engineering II• Vim 5.3John Tran et al. “Architectural Repair of Open Source Software”, IWPC 2000.Spring 2005 ECE450H1S Software Engineering IIG. Murphy, et al. “Software Reflexion Models: Bridging the gap between design and implementation”, IEEE Trans. On Software Engineering 27(4):364-380, 2001.• Reflexion model (jRMTool)• High-level model (HLM) multi-graph• Source model (SM) multi-graph (source code or trace)• Mapping from SM to HLM is defined by regular expressions• Identify three kinds of edges:– Convergence– Divergence– AbsenceSpring 2005 ECE450H1S Software Engineering IIH. Dayani-Fard, Y. Yu, J. Mylopoulos, P. Andritsos. “Improving the build architecture of legacy C/C++ software systems”, Fundamental Approaches to Software Engineering, April 2005. to appear• http://www.cs.toronto.edu/~yijun/literature/paper/dayani-fard05fase.pdf • VIM 6.2Spring 2005 ECE450H1S Software Engineering IIRestructuring headers• Components provides and uses interfaces• In C/C++, such as VIM, interfaces are written in Headers• “Abstraction and information hiding” is a good principle in SE, thus we should do the componentization …• “Large-cohesion and Low coupling” is the modularity principle of SE• The inclusion of the headers may violate this principle– Too much entities included leads to redundancies, and also– False dependencies• It is an advanced topic to show how to restructure the program to remove all false dependencies• And also


View Full Document
Download Lecture 2 - Software Re-engineering
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture 2 - Software Re-engineering and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture 2 - Software Re-engineering 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?