====== Resources ====== Slides and additional references will be posted here. Some of the references are papers from the ACM/IEEE portal. You can access them without charge either within the campus network or via proxy (e.g., EZProxy) if you are outside. ====== Course Slides and Readings ====== * 1 [[http://www.cse.yorku.ca/~zmjiang/teaching/eecs4314/slides/EECS4314_01_IntroductionAdmin.pdf|Introduction and Admin]] * 2 [[http://www.cse.yorku.ca/~zmjiang/teaching/eecs4314/slides/EECS4314_02_IntroductionOverview.pdf|Course Overview]] * Additional reading: [[http://www.nytimes.com/2016/09/09/automobiles/your-cars-new-software-is-ready-update-now.html|Your Car’s New Software Is Ready. Update Now?]] * 3 [[http://www.cse.yorku.ca/~zmjiang/teaching/eecs4314/slides/EECS4314_03_UMLOverview.pdf|UML Overview]] * 4 [[http://www.cse.yorku.ca/~zmjiang/teaching/eecs4314/slides/EECS4314_04_SoftwareArchIntoAndStyles.pdf|Software Architecture and Styles]] * Readings: * [[http://www.cs.cmu.edu/afs/cs/project/able/ftp/intro_softarch/intro_softarch.pdf|An Introduction to Software Architecture]] * [[http://www.aosabook.org/en/|The Architecture of Open Source Applications]] * 5 [[http://www.cse.yorku.ca/~zmjiang/teaching/eecs4314/slides/EECS4314_05_DesignPatternReview.pdf|Design Pattern Review]] * 6 [[http://www.cse.yorku.ca/~zmjiang/teaching/eecs4314/slides/EECS4314_06_ReverseEngineering.pdf|Architecture Recovery and Analysis]] * Readings: * [[http://dl.acm.org/citation.cfm?id=302691|Linux as a case study: its extracted software architecture]] * [[http://dl.acm.org/citation.cfm?id=782007|Forward and reverse repair of software architecture]] * Lab ([[http://www.cse.yorku.ca/~zmjiang/teaching/eecs4314/slides/EECS4314ArchRecoveryLabNotes.pdf|Notes]], [[http://www.cse.yorku.ca/~zmjiang/teaching/eecs4314/lab/eecs4314LabDemo.zip|Lab Materials]], [[http://www.cse.yorku.ca/~zmjiang/teaching/eecs4314/lab/eecs4314LabDemo.zip|c488 Source Code]]) * 7 [[http://www.cse.yorku.ca/~zmjiang/teaching/eecs4314/slides/EECS4314_07_ReflexionModels.pdf|Reflexion Models]] * Readings: * [[http://dl.acm.org/citation.cfm?id=222136|Software reflexion models: bridging the gap between source and high-level models]] * [[http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1311060|Using development history sticky notes to understand software architecture]] * 8 [[http://www.cse.yorku.ca/~zmjiang/teaching/eecs4314/slides/EECS4314_08_ReferenceArchitecture.pdf|Reference Architecture]] * Readings: * [[http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=891462|A reference architecture for Web servers]] * 9 [[http://www.cse.yorku.ca/~zmjiang/teaching/eecs4314/slides/EECS4314_09_FourPlusOneViews.pdf|4 + 1 Views]] * Readings: * [[http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=469759|The 4+1 View Model of architecture]] * 10 [[http://www.cse.yorku.ca/~zmjiang/teaching/eecs4314/slides/EECS4314_10_Refactoring.pdf|Software Refactoring]] * Readings: * [[http://blog.ieeesoftware.org/2016/11/when-and-why-your-code-starts-to-smell.html|When and Why Your Code Starts to Smell Bad]] * [[http://blog.ieeesoftware.org/2016/11/why-we-refactor-here-are-44-different.html|Why we refactor? Here are 44 different reasons, according to GitHub contributors]] * Additional Readings: * [[http://ieeexplore.ieee.org/document/7274256/|The Birth of Refactoring: A Retrospective on the Nature of High-Impact Software Engineering Research by Griswold and Opdyke]] * 11 [[http://www.cse.yorku.ca/~zmjiang/teaching/eecs4314/slides/EECS4314_11_ProjectScheduling.pdf|Project Scheduling]] * 12 [[http://www.cse.yorku.ca/~zmjiang/teaching/eecs4314/slides/EECS4314_12_CostEstimation.pdf|Cost Estimation]] * (Optional Reading) [[http://www.readcube.com/articles/10.1007/s10664-016-9472-2?author_access_token=TANo4aZjvusauw3yJx-kCve4RwlQNchNByi7wbcMAY7-tTjQpR020gdzHWxrpaNofanxZqj7JlX70UImC_OqNemujgtNBIdbfTtkHav6hjGeo2f4VhsnlDOY_DP4AD1yFDkFpV4XWPIaKZkRHVkC1w%3D%3D|Negative results for software effort estimation]] * 13 [[http://www.cse.yorku.ca/~zmjiang/teaching/eecs4314/slides/EECS4314_13_SoftwarePerformanceEngineering.pdf|Software Performance Engineering]] * [[http://www.cse.yorku.ca/~zmjiang/teaching/eecs4314/slides/EECS4314_FinalReview.pdf|Final Exam]] ====== Additional References ====== * 1 [[http://www.aosabook.org/en/|The Architecture of Open Source Applications]] * 2 [[http://www.cs.cmu.edu/afs/cs/project/able/ftp/intro_softarch/intro_softarch.pdf|An Introduction to Software Architecture]] * 3 [[http://plg.uwaterloo.ca/~holt/cs/746/08/biblio.html|Software Architecture: An Annotated Bibliography]] * 4 [[http://www.hillside.net/patterns/|Design Pattern Library]] * 5 [[http://handbookofsoftwarearchitecture.com/|Handbook of Software Architecture]] * 6 [[http://www.inf.usi.ch/phd/wettel/codecity-wof.html|Code City]] * 7 [[http://www.safetyresearch.net/blog/articles/toyota-unintended-acceleration-and-big-bowl-%E2%80%9Cspaghetti%E2%80%9D-code|Toyota Unintended Acceleration and the Big Bowl of “Spaghetti” Code]] * 8 [[http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7725213|The Changing Role of the Software Architect]] * 9 [[http://www.readcube.com/articles/10.1007/s10664-016-9472-2?author_access_token=TANo4aZjvusauw3yJx-kCve4RwlQNchNByi7wbcMAY7-tTjQpR020gdzHWxrpaNofanxZqj7JlX70UImC_OqNemujgtNBIdbfTtkHav6hjGeo2f4VhsnlDOY_DP4AD1yFDkFpV4XWPIaKZkRHVkC1w%3D%3D|Negative results for software effort estimation]] ====== York University ====== * [[http://www.cse.yorku.ca|Department of CSE Home Page]] * [[https://w2prod.sis.yorku.ca/Apps/WebObjects/cdm.woa/wa/curexam|York Exam Schedule]]