7. Software Development
|
|
- Alfred Sanders
- 5 years ago
- Views:
Transcription
1 7. Software Development Prof. Dr. Dirk Riehle, M.B.A. Friedrich Alexander-University Erlangen-Nürnberg Version of Agile Methods by Dirk Riehle is licensed under a Creative Commons Attribution- ShareAlike 3.0 Unported License. Based on a work at dirkriehle.com.
2 Focus of Software Development Chapter 1 / 2 Who? How? When? 2012 Dirk Riehle - All Rights Reserved 2
3 Focus of Software Development Chapter 2 / 2 Scope Time Quality Cost 2012 Dirk Riehle - All Rights Reserved 3
4 Content of Software Development Chapter 1. General Software development 2. Principles General principles Coding guidelines Collective code ownership Pair programming 3. Programming Refactoring Test-first programming Test-driven Development 4. Team Collaboration Configuration management Build management Continuous integration 2012 Dirk Riehle - All Rights Reserved 4
5 Traditional vs. Agile Software Development Traditional SD Upfront design Module-oriented Separated from QA Agile Methods SD Emergent design Feature-oriented Joined with QA 2012 Dirk Riehle - All Rights Reserved 5
6 Traditional to Scrum Role Mapping Traditional Scrum Product Manager Product Owner Engineering Manager Software Developer QA Engineer Team Member Scrum Master 2012 Dirk Riehle - All Rights Reserved 6
7 Agile Development Principles 1. General Principles 2. Coding Guidelines 3. Collective Code Ownership 4. Pair Programming 2012 Dirk Riehle - All Rights Reserved 7
8 Agile Programming Advice 1 / 2 1. Make it run! 2. Make it right! 3. Make it fast! KISS Keep It Simple, Silly 2012 Dirk Riehle - All Rights Reserved 8
9 Agile Programming Advice 2 / 2 YAGNI You Ain't Gonna Need It DRY Don't Repeat Yourself 2012 Dirk Riehle - All Rights Reserved 9
10 Coding Guidelines (Practice) Definition Coding guidelines (or rules) are a set of conventions that determine desired naming, formating and structuring of source code and related artifacts. Properties Eases reading source code Eases navigating project Are typically mandatory Java Guidelines [S1] File Names File Organization Indentation Comments Declarations Statements White Space Naming Conventions Programming Practices 2012 Dirk Riehle - All Rights Reserved 10
11 Example Coding Guidelines Beginning Comments All source files should begin with a c-style comment that lists the class name, version information, date, and copyright notice: /* * Classname * * Version information * * Date * * Copyright notice */ 4.2 Wrapping Lines When an expression will not fit on a single line, break it according to these general principles: Break after a comma. Break before an operator. Prefer higher-level breaks to lower-level breaks Placement Put declarations only at the beginning of blocks. (A block is any code surrounded by curly braces "{" and "".) Don't wait to declare variables until their first use; it can confuse the unwary programmer and hamper code portability within the scope. void mymethod() { int int1 = 0; // beginning of method block if (condition) { int int2 = 0; // beginning of "if" block Simple Statements Each line should contain at most one statement. Example: argv++; // Correct argc--; // Correct argv++; argc--; // AVOID! 2012 Dirk Riehle - All Rights Reserved 11
12 Naming Conventions package org.wahlzeit.model; import java.sql.*; import org.wahlzeit.services.*; public class PhotoFactory {... public Photo createphoto() { return new Photo(); public Photo createphoto(photoid id) { return new Photo(id); public Photo createphoto(resultset rs) throws SQLException { return new Photo(rs); public PhotoFilter createphotofilter() { return new PhotoFilter(); public PhotoTagCollector createphototagcollector() { return new PhotoTagCollector(); 2012 Dirk Riehle - All Rights Reserved 12
13 Query Method Types [R1] Definition A query method (a.k.a. accessing method) is a method that returns some information about the object being queried. It does not change the object's state. Example A comparison method is a query method that compares two objects and returns a value that tells you which object is "greater" or "lesser" than the other one according to an ordering criterion. Query Method Types Get method (getter) Default value method Boolean query method Comparison method Conversion method Dirk Riehle - All Rights Reserved 13
14 Mutation Method Types Definition A mutation method (a.k.a. command method) is a method that changes the state of the object in a single well-defined way. Example An initialization method is a mutation method that sets some or all fields of an object to an initial value. Mutation Method Types Set method (setter) Command method Initialization method Finalization method Configuration method Constructor Dirk Riehle - All Rights Reserved 14
15 Helper Method Types Definition A helper method (a.k.a. utility method) is a method that performs a support task for the calling object. A helper method does not change the object's state, but only performs operations on the method arguments. Example An assertion method is a helper method that checks whether a certain condition holds. If the condition holds, it returns silently. If it does not hold, an appropriate exception is thrown. Helper Method Types Creation method Factory method Cloning method Trading method Conversion method Assertion method Logging method Dirk Riehle - All Rights Reserved 15
16 Design Pattern Conventions public class PhotoFactory { private static PhotoFactory instance = null; public static synchronized PhotoFactory getinstance() { if (instance == null) { SysLog.logInfo("Setting generic PhotoFactory"); setinstance(new PhotoFactory()); return instance; protected static synchronized void setinstance(photofactory photofactory) { if (instance!= null) { throw new IllegalStateException("Attempting to initalize again"); instance = photofactory; public static void initialize() { getinstance(); // drops result due to getinstance() side-effects protected PhotoFactory() { // do nothing Dirk Riehle - All Rights Reserved 16
17 Design Patterns [G1] Definition A design pattern is proven solution to a recurring design problem in a defined context. A solution becomes a pattern after three known examples. Example GoF Design Patterns Creational Patterns: Abstract Factory, Builder, Factory Method, Prototype, Singleton Structural Patterns: Adapter, Composite, Bridge, Decorator, Facade, Flyweight, Proxy Behavioral Patterns: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor More Design Patterns Null Object, Type Object, Role Object, Serializer, Product Trader, Dirk Riehle - All Rights Reserved 17
18 Collective Code Ownership (Practice) Definition Source code (and other artifacts) is collectively owned (collective code ownership) if every member of the collective has full read and write access to the code. The opposite of collective code ownership is individual code ownership. Properties Every member of the collective Cares about the architecture Cares about clean code Ensuring high quality Every single author can Implement a feature end-to-end Finish a refactoring Fix a bug 2012 Dirk Riehle - All Rights Reserved 18
19 Agile Programming 1. Refactoring 2. Test-First Programming 3. Test-Driven Development 2012 Dirk Riehle - All Rights Reserved 19
20 Refactoring (Practice) Definition A refactoring is a behavior-preserving transformation of existing source code. It is a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior. History Defined by Opdyke [O1] Popularized by Fowler [F1] Properties Change structure of code Without changing behavior Focus on non-functional features Within range of specification Are defined techniques Are typically language specific Are ideally supported by IDEs UIUC Refactoring Browser Eclipse JDT 2012 Dirk Riehle - All Rights Reserved 20
21 Benefits of Well-Factored Code [1] 1. Maintainability (Easier to understand) 2. Extensibility (Easier to adapt and evolve) 3. Predictability (Improves planning ability) [1] Well-factored code is code where no more refactoring is possible or reasonable Dirk Riehle - All Rights Reserved 21
22 Extract-Method Refactoring (Example) 1 / 2 public class PhotoManager extends ObjectManager { protected Map<PhotoId, Photo> allphotos = new HashMap<PhotoId, Photo>(); public void addphoto(photo photo) { PhotoId id = photo.getid(); assertisnewphoto(id); allphotos.put(id, photo);... public Photo getphotofromid(photoid id) { Photo result = dogetphotofromid(id); if (result == null) {... if (result!= null) { allphotos.put(id, result) return result; public Set<Photo> findphotosbyowner(string ownername) { Set<Photo> r = new HashSet<Photo>();... for (Iterator<Photo> i=r.iterator(); i.hasnext();) { Photo photo = i.next(); allphotos.put(photo.getid(), photo); return r; 2012 Dirk Riehle - All Rights Reserved 22
23 Extract-Method Refactoring (Example) 2 / 2 public class PhotoManager extends ObjectManager { public void addphoto(photo photo) {... doaddphoto(photo); public Photo getphotofromid(photoid id) {... doaddphoto(photo); public Set<Photo> findphotosbyowner(string ownername) {... for (Iterator<Photo> i=r.iterator(); i.hasnext(); ) { doaddphoto(i.next()); protected void doaddphoto(photo myphoto) { allphotos.put(myphoto.getid(), myphoto); Dirk Riehle - All Rights Reserved 23
24 Tool Support Demo for Refactoring 2012 Dirk Riehle - All Rights Reserved 24
25 Why Refactor? 1. Improves the design of code 2. Makes code easier to understand 3. Helps developers find bugs 4. Helps developers program faster 2012 Dirk Riehle - All Rights Reserved 25
26 When to Refactor? 1 / 3 1. When adding functions 2. When fixing a bug 3. When reviewing code 2012 Dirk Riehle - All Rights Reserved 26
27 When to Refactor? (Code Smells) 2 / 3 Duplicated Code Extract Method Pull Up Field Form Template Method Substitute Algorithm Extract Class Long Method Extract Method Decompose Conditional Large Class Extract Class Extract Subclass Extract Interface More Smells Long Parameter List Divergent Change Data Clumps Dirk Riehle - All Rights Reserved 27
28 When to Refactor? (Three Strikes) 3 / 3 1st time: Just do it 2nd time: Wince at duplication 3rd time: Refactor 2012 Dirk Riehle - All Rights Reserved 28
29 Refactoring Process (Two Hats) 1 / 2 Add Function code smells code does not smell anymore Refactor 2012 Dirk Riehle - All Rights Reserved 29
30 Refactoring Process 2 / 2 Refactoring Process Can get complex May be series of refactorings Switch Statement 1. Extract Method 2. Move Method 3. Replace Type Code with Subclass or with State / Strategy 4. Replace Conditional... with Polymorphism 2012 Dirk Riehle - All Rights Reserved 30
31 Video on Technical Debt Technical Debt (Ward Cunningham on Technical Debt) 2012 Dirk Riehle - All Rights Reserved 31
32 Video Lessons Explanation Technical Debt is a Metaphor Taking on debt can speed up Use of Metaphor Speaks well to manager Certainly in financial services May be justified to learn faster But you have to pay up later If you don't you'll slow down Paying up means refactoring For this, still don't write poor code 2012 Dirk Riehle - All Rights Reserved 32
33 Agile Team Collaboration 1. Configuration Management 2. Build Management 3. Continuous Integration 2012 Dirk Riehle - All Rights Reserved 33
34 Configuration Management (Practice) Definition Configuration management is the process of managing all relevant artifacts that make up a software product and tracking all relevant changes to them. A configuration management system (CMS) is a software product that serves as the record keeper for all artifacts tracked by configuration management. A configuration management system embodies a specific collaboration model and thus needs to be compatible with your desired development process. Properties Used to define specific states Used to track configurations Example Systems CVS, Subversion (svn) git, Mercurial (hg) Clearcase, Perforce 2012 Dirk Riehle - All Rights Reserved 34
35 Traditional Configuration Management Definition Has central repository Commits effect team directly TM Tracks small changes centrally Example Tools CVS, svn Commit Code Repo 2012 Dirk Riehle - All Rights Reserved 35
36 Distributed Configuration Management Definition Has local and team repository Commits effect local repo first TM Team sees semantic progress Example Tools git, hg Commit Local Repo Push Pull Team Repo 2012 Dirk Riehle - All Rights Reserved 36
37 Versions and Releases Version Identifies configuration Is codified as number x.y.z Release Is version provided to customer Numbering System Major = new functionality Minor = small new functionality Micro = small change, bug fix Label = typically internal only Typically has major increment major minor micro label RC x/m x alpha x/beta x build id (date) 2012 Dirk Riehle - All Rights Reserved 37
38 Branches and the Main-Line Branch A branch is a copy of the code being developed further independently of the main-line A branch is used to stabilize the main-line for public release and develops slowly only A branch ultimately dies Main-Line The main-line is the branch where on-going new-feature development takes place There is only one main-line and it never dies as long as the product lives on A.k.a. trunk, head, x 1.7.x 2.1.x main-line (or: trunk) 2012 Dirk Riehle - All Rights Reserved 38
39 backport backport backport backport Configuration Management (Linux Example) new features bug fix commercial features new feat. bug fix new feat. bug fix new feat. bug fix EOL commercial features EOL 2012 Dirk Riehle - All Rights Reserved 39
40 Build Process and Management Build Process The build process is the defined and (ideally automated) process of deriving an installable product from its source artifacts. Every project needs a defined build process; these days, it is well supported by tools, for example, ant, maven, etc. Build Manager Builds product from repository Ideally regularly, automated Identifies build problems Tracks down causes of failure Defines standard environment Supports developers with setup Defines commit rules For example, no executables Manages test-first data 2012 Dirk Riehle - All Rights Reserved 40
41 Developer Responsibilities Only work in defined standardized environment This ensures no subtle differences to central build process Only commit / push code that compiles and works Breaking the build through non-compiling code hurts team Only commit / push code that passes all the tests Failing tests quickly degenerate system (hard to catch-up) 2012 Dirk Riehle - All Rights Reserved 41
42 Quiz: Agile Software Development 1. You need a method to create a new photo. Which name is best? PhotoFactory.make() PhotoFactory.newPhoto() PhotoFactory.createPhoto() PhotoFactory.createNewPhoto() 2. A file may have many authors. Should the names of these authors be listed in the file's header? Yes No 3. It is the last workday of the week and you want to go home. Should you always commit to the team repository? Yes No 2012 Dirk Riehle - All Rights Reserved 42
43 Thank you! Questions? DR 2012 Dirk Riehle - All Rights Reserved 43
44 Contributions and Credits None yet Dirk Riehle - All Rights Reserved 44
8. Quality Assurance
8. Quality Assurance Prof. Dr. Dirk Riehle, M.B.A. Friedrich Alexander-University Erlangen-Nürnberg Version of 22.03.2012 Agile Methods by Dirk Riehle is licensed under a Creative Commons Attribution-
More informationSoftware Development Project. Kazi Masudul Alam
Software Development Project Kazi Masudul Alam Course Objective Study Programming Best Practices Apply the knowledge to build a Small Software in Groups 7/10/2017 2 Programming Best Practices Code Formatting
More informationC++ for System Developers with Design Pattern
C++ for System Developers with Design Pattern Introduction: This course introduces the C++ language for use on real time and embedded applications. The first part of the course focuses on the language
More informationTopics. Software Process. Agile. Requirements. Basic Design. Modular Design. Design Patterns. Testing. Quality. Refactoring.
CS310 - REVIEW Topics Process Agile Requirements Basic Design Modular Design Design Patterns Testing Quality Refactoring UI Design How these things relate Process describe benefits of using a software
More information1 Software Architecture
Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to
More informationIngegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1
Ingegneria del Software Corso di Laurea in Informatica per il Management Design Patterns part 1 Davide Rossi Dipartimento di Informatica Università di Bologna Pattern Each pattern describes a problem which
More informationCSCI 253. Overview. The Elements of a Design Pattern. George Blankenship 1. Object Oriented Design: Template Method Pattern. George Blankenship
CSCI 253 Object Oriented Design: George Blankenship George Blankenship 1 Creational Patterns Singleton Abstract factory Factory Method Prototype Builder Overview Structural Patterns Composite Façade Proxy
More informationApplication Architectures, Design Patterns
Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term
More informationCSE 70 Final Exam Fall 2009
Signature cs70f Name Student ID CSE 70 Final Exam Fall 2009 Page 1 (10 points) Page 2 (16 points) Page 3 (22 points) Page 4 (13 points) Page 5 (15 points) Page 6 (20 points) Page 7 (9 points) Page 8 (15
More information5. Product Management
5. Product Management Prof. Dr. Dirk Riehle, M.B.A. Friedrich Alexander-University Erlangen-Nürnberg Version of 22.03.2012 Agile Methods by Dirk Riehle is licensed under a Creative Commons Attribution-
More informationSoftware Design COSC 4353/6353 D R. R A J S I N G H
Software Design COSC 4353/6353 D R. R A J S I N G H Design Patterns What are design patterns? Why design patterns? Example DP Types Toolkit, Framework, and Design Pattern A toolkit is a library of reusable
More informationCSCI 253. Overview. The Elements of a Design Pattern. George Blankenship 1. Object Oriented Design: Iterator Pattern George Blankenship
CSCI 253 Object Oriented Design: Iterator Pattern George Blankenship George Blankenship 1 Creational Patterns Singleton Abstract factory Factory Method Prototype Builder Overview Structural Patterns Composite
More informationModellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico
Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 9 OO modeling Design Patterns Structural Patterns Behavioural Patterns
More informationSoftware Engineering I (02161)
Software Engineering I (02161) Week 10 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Last Time Project Planning Non-agile Agile Refactoring Contents Basic Principles
More informationIntroduction: Manual Testing :
: What is Automation Testing? Use of Automation. Where do we use. Tools that Do Automation. Web Applications vs Standalone Applications. What is selenium? How selenium works. Manual Testing : HTML: Detailed
More informationPatterns. Erich Gamma Richard Helm Ralph Johnson John Vlissides
Patterns Patterns Pattern-based engineering: in the field of (building) architecting and other disciplines from 1960 s Some software engineers also started to use the concepts Become widely known in SE
More informationSDC Design patterns GoF
SDC Design patterns GoF Design Patterns The design pattern concept can be viewed as an abstraction of imitating useful parts of other software products. The design pattern is a description of communicating
More informationDesign Patterns. An introduction
Design Patterns An introduction Introduction Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. Your design should be specific to the problem at
More informationDesign Patterns. Hausi A. Müller University of Victoria. Software Architecture Course Spring 2000
Design Patterns Hausi A. Müller University of Victoria Software Architecture Course Spring 2000 1 Motivation Vehicle for reasoning about design or architecture at a higher level of abstraction (design
More informationSoftware Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.
Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice
More informationObject-oriented Software Design Patterns
Object-oriented Software Design Patterns Concepts and Examples Marcelo Vinícius Cysneiros Aragão marcelovca90@inatel.br Topics What are design patterns? Benefits of using design patterns Categories and
More informationSYLLABUS CHAPTER - 1 [SOFTWARE REUSE SUCCESS FACTORS] Reuse Driven Software Engineering is a Business
Contents i UNIT - I UNIT - II UNIT - III CHAPTER - 1 [SOFTWARE REUSE SUCCESS FACTORS] Software Reuse Success Factors. CHAPTER - 2 [REUSE-DRIVEN SOFTWARE ENGINEERING IS A BUSINESS] Reuse Driven Software
More informationDesign Patterns. Manuel Mastrofini. Systems Engineering and Web Services. University of Rome Tor Vergata June 2011
Design Patterns Lecture 1 Manuel Mastrofini Systems Engineering and Web Services University of Rome Tor Vergata June 2011 Definition A pattern is a reusable solution to a commonly occurring problem within
More informationDesign Pattern. CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.)
Design Pattern CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.) A. Design Pattern Design patterns represent the best practices used by experienced
More informationCS251 Software Engineering Lectures 18: Intro to DP
و ابتغ فيما آتاك هللا الدار اآلخرة و ال تنس نصيبك من الدنيا CS251 Software Engineering Lectures 18: Intro to DP Slides by Rick Mercer, Christian Ratliff, Oscar Nierstrasz and others 1 Outline Introduction
More informationObject Oriented Methods with UML. Introduction to Design Patterns- Lecture 8
Object Oriented Methods with UML Introduction to Design Patterns- Lecture 8 Topics(03/05/16) Design Patterns Design Pattern In software engineering, a design pattern is a general repeatable solution to
More informationCS/CE 2336 Computer Science II
CS/CE 2336 Computer Science II UT D Session 20 Design Patterns An Overview 2 History Architect Christopher Alexander coined the term "pattern" circa 1977-1979 Kent Beck and Ward Cunningham, OOPSLA'87 used
More informationOverview of Patterns: Introduction
: Introduction d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA Introduction
More informationEvolving Software. CMSC 433 Programming Language Technologies and Paradigms Spring Example. Some Motivations for This Refactoring
CMSC 433 Programming Language Technologies and Paradigms Spring 2007 Refactoring April 24, 2007 Lots of material taken from Fowler, Refactoring: Improving the Design of Existing Code 1 Evolving Software
More informationKerievsky_book.fm Page 355 Thursday, July 8, :12 PM. Index
Kerievsky_book.fm Page 355 Thursday, July 8, 2004 12:12 PM Index A Absorbing class, 117 Abstract Factory, 70 71 Accept methods, 327 Accumulation methods, 315, 325 330 Accumulation refactorings Collecting
More informationAdministrivia. Programming Language Fall Example. Evolving Software. Project 3 coming out Midterm October 28. Refactoring October 14, 2004
CMSC 433 Programming Language Fall 2004 Project 3 coming out Midterm October 28 Administrivia Refactoring October 14, 2004 Lots of material taken from Fowler, Refactoring: Improving the Design of Existing
More informationWhat is Design Patterns?
Paweł Zajączkowski What is Design Patterns? 1. Design patterns may be said as a set of probable solutions for a particular problem which is tested to work best in certain situations. 2. In other words,
More informationTrusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout
1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 5: Design patterns Agenda for today 3 Overview Benefits of patterns
More informationProduced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar
Design Patterns MSc in Communications Software Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie
More informationThe Strategy Pattern Design Principle: Design Principle: Design Principle:
Strategy Pattern The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it. Design
More informationVersion control CSE 403
Version control CSE 403 Goals of a version control system Keep a history of your work Explain the purpose of each change Checkpoint specific versions (known good state) Recover specific state (fix bugs,
More informationApplying Design Patterns to SCA Implementations
Applying Design Patterns to SCA Implementations Adem ZUMBUL (TUBITAK-UEKAE, ademz@uekae.tubitak.gov.tr) Tuna TUGCU (Bogazici University, tugcu@boun.edu.tr) SDR Forum Technical Conference, 26-30 October
More informationTuesday, October 4. Announcements
Tuesday, October 4 Announcements www.singularsource.net Donate to my short story contest UCI Delta Sigma Pi Accepts business and ICS students See Facebook page for details Slide 2 1 Design Patterns Design
More informationTechnology Background Development environment, Skeleton and Libraries
Technology Background Development environment, Skeleton and Libraries Slides by Prof. Dr. Matthias Hölzl (based on material from Dr. Andreas Schröder) Outline Lecture 1 I. Eclipse II. Git Lecture 2 IV.
More informationLectures 24 and 25 Introduction to Architectural Styles and Design Patterns
Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte
More informationDESIGN PATTERN - INTERVIEW QUESTIONS
DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions
More informationUNIT I Introduction to Design Patterns
SIDDHARTH GROUP OF INSTITUTIONS :: PUTTUR Siddharth Nagar, Narayanavanam Road 517583 QUESTION BANK (DESCRIPTIVE) Subject with Code : Design Patterns (16MC842) Year & Sem: III-MCA I-Sem Course : MCA Regulation:
More informationLecture 4: Observer Pattern, Event Library and Componentization
Software Architecture Bertrand Meyer & Till Bay ETH Zurich, February-May 2008 Lecture 4: Observer Pattern, Event Library and Componentization Program overview Date Topic Who? last week Introduction; A
More informationCS 320 Introduction to Software Engineering Spring February 06, 2017
CS 320 Introduction to Software Engineering Spring 2017 February 06, 2017 Recap: Software development process models Traditional models Waterfall model Iterative and incremental Prototyping Spiral model
More informationCredit where Credit is Due. Lecture 25: Refactoring. Goals for this lecture. Last Lecture
Credit where Credit is Due Lecture 25: Refactoring Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2002 Some of the material for this lecture and lecture 26 is taken
More informationIndex. Symbols. /**, symbol, 73 >> symbol, 21
17_Carlson_Index_Ads.qxd 1/12/05 1:14 PM Page 281 Index Symbols /**, 73 @ symbol, 73 >> symbol, 21 A Add JARs option, 89 additem() method, 65 agile development, 14 team ownership, 225-226 Agile Manifesto,
More informationCSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich
CSCD01 Engineering Large Software Systems Design Patterns Joe Bettridge Winter 2018 With thanks to Anya Tafliovich Design Patterns Design patterns take the problems consistently found in software, and
More informationSocket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.
Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise
More informationadministrivia today UML start design patterns Tuesday, September 28, 2010
administrivia Assignment 2? promise to get past assignment 1 back soon exam on monday review slides are posted your responsibility to review covers through last week today UML start design patterns 1 Unified
More informationDesign Patterns. SE3A04 Tutorial. Jason Jaskolka
SE3A04 Tutorial Jason Jaskolka Department of Computing and Software Faculty of Engineering McMaster University Hamilton, Ontario, Canada jaskolj@mcmaster.ca November 18/19, 2014 Jason Jaskolka 1 / 35 1
More informationTDDC88 Lab 4 Software Configuration Management
TDDC88 Lab 4 Software Configuration Management Introduction "Version control is to programmers what the safety net is to a trapeze artist. Knowing the net is there to catch them if they fall, aerialists
More informationCSSE 374: More Object Design with Gang of Four Design Patterns
CSSE 374: More Object Design with Gang of Four Design Patterns Shawn Bohner Office: Moench Room F212 Phone: (812) 877-8685 Email: bohner@rose-hulman.edu Q1 Learning Outcomes: Patterns, Tradeoffs Identify
More informationC++ (Non for C Programmer) (BT307) 40 Hours
C++ (Non for C Programmer) (BT307) 40 Hours Overview C++ is undoubtedly one of the most widely used programming language for implementing object-oriented systems. The C++ language is based on the popular
More informationVersion Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018
Version Control Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level January 17, 2018 1 But first, Screen Readers The software you
More informationThe GoF Design Patterns Reference
The GoF Design Patterns Reference Version.0 / 0.0.07 / Printed.0.07 Copyright 0-07 wsdesign. All rights reserved. The GoF Design Patterns Reference ii Table of Contents Preface... viii I. Introduction....
More informationModellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico
Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 8 OO modeling Design Patterns Introduction Creational Patterns Software
More informationJUnit 3.8.1, 64. keep it simple stupid (KISS), 48
Index A accessor methods, 11, 152 add parameter technique, 189 190 add() method, 286 287, 291 algorithm, substituting, 104 105 AND logical operator, 172 architectural design patterns, 277 278 architecture,
More informationDesign Patterns. Dr. Rania Khairy. Software Engineering and Development Tool
Design Patterns What are Design Patterns? What are Design Patterns? Why Patterns? Canonical Cataloging Other Design Patterns Books: Freeman, Eric and Elisabeth Freeman with Kathy Sierra and Bert Bates.
More informationCPSC 310 Software Engineering. Lecture 11. Design Patterns
CPSC 310 Software Engineering Lecture 11 Design Patterns Learning Goals Understand what are design patterns, their benefits and their drawbacks For at least the following design patterns: Singleton, Observer,
More informationA Reconnaissance on Design Patterns
A Reconnaissance on Design Patterns M.Chaithanya Varma Student of computer science engineering, Sree Vidhyanikethan Engineering college, Tirupati, India ABSTRACT: In past decade, design patterns have been
More informationApplying Some Gang of Four Design Patterns CSSE 574: Session 5, Part 3
Applying Some Gang of Four Design Patterns CSSE 574: Session 5, Part 3 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu Gang of Four (GoF) http://www.research.ibm.com/designpatterns/pubs/ddj-eip-award.htm
More informationXP: Planning, coding and testing. Practice Planning game. Release Planning. User stories. Annika Silvervarg
XP: Planning, coding and testing Annika Silvervarg Practice Planning game Goal: schedule the most important tasks Which features to implement in what order Supports: simple design, acceptance testing,
More informationOwnership in Design Patterns. Master's Thesis Final Presentation Stefan Nägeli
Ownership in Design Patterns Master's Thesis Final Presentation Stefan Nägeli 07.02.06 Overview Status Quo Pattern Overview Encountered Problems applying UTS Pros and Cons compared to other systems UTS
More information(a) Write the signature (visibility, name, parameters, types) of the method(s) required
1. (6 pts) Is the final comprehensive? 1 2. (6 pts) Java has interfaces Comparable and Comparator. As discussed in class, what is the main advantage of Comparator? 3. (6 pts) We can use a comparator in
More informationExtreme programming XP 6
Extreme programming XP 6 Planning Game 3 Planning Game Independent: Stories should be as independent as possible. When thinking of independence it is often easier to think of order independent. In other
More informationUNIT I Introduction to Design Patterns
SIDDHARTH GROUP OF INSTITUTIONS :: PUTTUR Siddharth Nagar, Narayanavanam Road 517583 QUESTION BANK (DESCRIPTIVE) Subject with Code : Design Patterns(9F00505c) Year & Sem: III-MCA I-Sem Course : MCA Regulation:
More informationIngegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1
Ingegneria del Software Corso di Laurea in Informatica per il Management Design Patterns part 1 Davide Rossi Dipartimento di Informatica Università di Bologna Pattern Each pattern describes a problem which
More informationM E R C U R I A L (The Source Control Management)
M E R C U R I A L (The Source Control Management) Jamshaid Iqbal Janjua, Shahid Awan jamshaid.janjua@kics.edu.pk shahidawan@kics.edu.pk Al-Khawarizmi Institute of Computer Science University of Engineering
More informationIngegneria del Software Corso di Laurea in Informatica per il Management (D)VCS. Davide Rossi Dipartimento di Informatica Università di Bologna
Ingegneria del Software Corso di Laurea in Informatica per il Management (D)VCS Davide Rossi Dipartimento di Informatica Università di Bologna Rationale for version control Control the revisions of artifacts
More informationSoftware Engineering I (02161)
Software Engineering I (02161) Week 11 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Recap I Software Development Processes (cont.) I Project Planning I Design
More informationProduced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar
Design Patterns MSc in Communications Software Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie
More informationIndex. BigBadGuiTools (BBGT), 186 Business logic and data layer, 32 Business requirements
Index A ADO.NET, SQL driver documentation, 171 dr.read() method, 173 ExecuteNonQuery method, 173 IDbDataParameter interface, 174 Interface variables, 173 MySqlDataReader, 173 MySql reference, 170 placeholders,
More informationCreational Design Patterns
Creational Design Patterns Creational Design Patterns Structural Design Patterns Behavioral Design Patterns GoF Design Pattern Categories Purpose Creational Structural Behavioral Scope Class Factory Method
More informationEPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 6: Design Patterns
EPL 603 TOPICS IN SOFTWARE ENGINEERING Lab 6: Design Patterns Links to Design Pattern Material 1 http://www.oodesign.com/ http://www.vincehuston.org/dp/patterns_quiz.html Types of Design Patterns 2 Creational
More informationUP Requirements. Software Design - Dr Eitan Hadar (c) Activities of greater emphasis in this book. UP Workflows. Business Modeling.
UP Requirements UP Workflows Business Modeling Requirements Analysis and Design Implementation Test Deployment Configuration & Change Management Project Management Environment Iterations Activities of
More informationCSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1
CSCI 6234 Object Oriented Design: Frameworks and Design Patterns George Blankenship Frameworks and Design George Blankenship 1 Background A class is a mechanisms for encapsulation, it embodies a certain
More informationCOSC 3351 Software Design. Design Patterns Behavioral Patterns (I)
COSC 3351 Software Design Design Patterns Behavioral Patterns (I) Spring 2008 Purpose Creational Structural Behavioral Scope Class Factory Method Adapter(class) Interpreter Template Method Object Abstract
More informationAn Introduction to Patterns
An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? - 1 Work on software development patterns stemmed from work on patterns from building architecture
More informationDesign Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1
What is a Design Pattern? Each pattern Describes a problem which occurs over and over again in our environment,and then describes the core of the problem Novelists, playwrights and other writers rarely
More information3 Product Management Anti-Patterns by Thomas Schranz
3 Product Management Anti-Patterns by Thomas Schranz News Read above article, it s good and short! October 30, 2014 2 / 3 News Read above article, it s good and short! Grading: Added explanation about
More informationXP: Planning, coding and testing. Planning. Release planning. Release Planning. User stories. Release planning Step 1.
XP: Planning, coding and testing Annika Silvervarg Planning XP planning addresses two key questions in software development: predicting what will be accomplished by the due date determining what to do
More informationC++ DATA TYPES BASIC CONTROL FLOW
C++ DATA TYPES BASIC CONTROL FLOW Problem Solving with Computers-I Chapter 1 and Chapter 2 CLICKERS OUT FREQUENCY AB Review: Program compilation What does it mean to compile a C++ program? A. Write the
More informationTrusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout
1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 7: Pattern Wizard, project presentation Agenda for today 3 Pattern Wizard
More informationAgile Architecture. The Why, the What and the How
Agile Architecture The Why, the What and the How Copyright Net Objectives, Inc. All Rights Reserved 2 Product Portfolio Management Product Management Lean for Executives SAFe for Executives Scaled Agile
More informationFPLLL. Contributing. Martin R. Albrecht 2017/07/06
FPLLL Contributing Martin R. Albrecht 2017/07/06 Outline Communication Setup Reporting Bugs Topic Branches and Pull Requests How to Get your Pull Request Accepted Documentation Overview All contributions
More information12/7/09. How is a programming language processed? Picasso Design. Collaborating with Subversion Discussion of Preparation Analyses.
Picasso Design Finish parsing commands Collaborating with Subversion Discussion of Preparation Analyses How is a programming language processed? What are the different phases? Start up Eclipse User s Input
More informationMaintainability and Readability. What makes code readable? Understandable code. General Routine Structure. General Module Structure
Maintainability and Readability elements of maintainability program readability module structure commenting coding standards code ownership 11/23/2012 Maintainability, Readability, Style & Standards 2
More informationLab Objective. Lab Assignment. Downloads and Installation
How I Start Working with Git: Git Lab 01 Adapted from: (1) https://github.com/quantstack/xeus-cling (2) https://code.visualstudio.com/docs/languages/cpp Lab Objective 1. Installing and using VS Code 2.
More information1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.
1 Copyright 2011, Oracle and/or its affiliates. All rights The forthcoming is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated
More informationSoftware Reengineering Refactoring To Patterns. Martin Pinzger Delft University of Technology
Software Reengineering Refactoring To Patterns Martin Pinzger Delft University of Technology Outline Introduction Design Patterns Refactoring to Patterns Conclusions 2 The Reengineering Life-Cycle (1)
More informationR07. IV B.Tech. II Semester Supplementary Examinations, July, 2011
www..com www..com Set No. 1 DIGITAL DESIGN THROUGH VERILOG (Common to Electronics & Communication Engineering, Bio-Medical Engineering and Electronics & Computer Engineering) 1. a) What is Verilog HDL?
More informationCSE wi Final Exam 3/12/18 Sample Solution
Question 1. (8 points, 2 each) Equality. Recall that there are several different notions of object equality that we ve encountered this quarter. In particular, we have the following three: Reference equality:
More informationA Primer on Design Patterns
A Primer on Design Patterns First Edition Rahul Batra This book is for sale at http://leanpub.com/aprimerondesignpatterns This version was published on 2016-03-23 This is a Leanpub book. Leanpub empowers
More informationWelcome! Virtual tutorial will start at 15:00 GMT. Please leave feedback afterwards at:
Welcome! Virtual tutorial will start at 15:00 GMT Please leave feedback afterwards at: www.archer.ac.uk/training/feedback/online-course-feedback.php Introduction to Version Control (Part 2) ARCHER Virtual
More informationA few important patterns and their connections
A few important patterns and their connections Perdita Stevens School of Informatics University of Edinburgh Plan Singleton Factory method Facade and how they are connected. You should understand how to
More informationPlan. A few important patterns and their connections. Singleton. Singleton: class diagram. Singleton Factory method Facade
Plan A few important patterns and their connections Perdita Stevens School of Informatics University of Edinburgh Singleton Factory method Facade and how they are connected. You should understand how to
More informationTCSS 360: SOFTWARE DEVELOPMENT AND QUALITY ASSURANCE
TCSS 360: SOFTWARE DEVELOPMENT AND QUALITY ASSURANCE Scrum Software Process, Version Control, Git/Github Github, Postman Wes J. Lloyd Institute of Technology University of Washington - Tacoma OBJECTIVES
More informationINSTITUTE OF AERONAUTICAL ENGINEERING
INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad -500 0 COMPUTER SCIENCE AND ENGINEERING TUTORIAL QUESTION BANK Course Name : DESIGN PATTERNS Course Code : A7050 Class : IV B. Tech
More informationAdvanced C++ Programming Workshop (With C++11, C++14, C++17) & Design Patterns
Advanced C++ Programming Workshop (With C++11, C++14, C++17) & Design Patterns This Advanced C++ Programming training course is a comprehensive course consists of three modules. A preliminary module reviews
More informationSoftware Engineering I (02161)
Software Engineering I (02161) Week 5 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2018 Contents User Stories Class Diagrams I Version control User stories Requirements
More information