R E A D C L E A N C O D E : A H A N D B O O K O F S O F T W A R E C R A F T S M A N S H I P. C H A P T E R S 2 A N D 4.
|
|
- Christiana Jordan
- 5 years ago
- Views:
Transcription
1 R E A D C L E A N C O D E : A H A N D B O O K O F S O F T W A R E C R A F T S M A N S H I P. C H A P T E R S 2 A N D 4. H T T P S : / / R E F A C T O R I N G. G U R U / R E F A C T O R I N G / C A T A L O G
2 WHAT IS CLEAN CODE? 2
3 WHAT IS CLEAN CODE? 3
4 WHAT IS CLEAN CODE? 4
5 HOW TO WRITE CLEAN CODE Read clean code. Read your own code. Coding is an iterative process Write Make it work Make it work right Refactoring 5
6 CODE REFACTORING the process of restructuring existing computer code without changing its external behavior. Excessively long methods Split temporary variables Remove assignments to parameters double temp = 2 * (height + width); System.out.println(temp); temp = height * width; System.out.println(temp); final double perimeter = 2 * (height + width); System.out.println(perimeter); final double area = height * width; System.out.println(area); 6
7 CLASS REFACTORING Moving methods Hide delegate Extracting classes Remove middleman 7
8 GENERALIZATION REFACTORING Pull up a field / method/ constructor body Push down a field/ method / constructor body Extract subclasses / superclass / interface 8
9 METHOD REFACTORING void printowing() { printbanner(); printdetails(getoutstanding()); } void printdetails(double outstanding) { System.out.println("name: " + name); System.out.println("amount: " + outstanding); } void printowing() { printbanner(); //print details System.out.println("name: " + name); System.out.println("amount: " + getoutstanding()); } double temp = 2 * (height + width); System.out.println(temp); temp = height * width; System.out.println(temp); final double perimeter = 2 * (height + width); System.out.println(perimeter); final double area = height * width; System.out.println(area); 9
10 METHOD REFACTORING int discount(int inputval, int quantity) { if (inputval > 50) { inputval -= 2; } //... } int discount(int inputval, int quantity) { int result = inputval; if (inputval > 50) { result -= 2; } //... } 10
11 METHOD REFACTORING Replace methods with method objects. 11
12 WHAT IS IN A NAME? The name of a variable, function, or class, should answer all the big questions. It should tell you why it exists, what it does, and how it is used. If a name requires a comment, then the name does not reveal its intent. 12
13 NAMING Use intention-revealing names Avoid disinformation Make meaningful distinctions Use pronounceable names Use searchable names 13
14 NAMING CONVENTIONS CamelOrUnder_score? itdependsonwhich_you_find_easier_to_readorwrite! nomatterwhichyouprefer_don t_mix! Variation of camelcase is PascalCase 14
15 NAMING Encodings A prefix or a postfix for a variable name that indicates its type What happens when an object changes types (downcasting)? How many changes you have to make when you change a varriable s data type? Hungarian: Common encodings Not Okay to do: Class members are prefixed with m_ Okay to do : Interfaces are preceded with IShapeFactory, realized by class ShapeFactory Okay: Capitalize the first letter in a constructor name in Javascript. 15
16 COMMENTS The best comment : Is a comment that you did not have to write! Using the programming language constructs to express program logic Under all other circumstances, comment your code! 16
17 COMMENTS Legal comments: copyright and authorship statements Informative comments Explanation of intent 17
18 INLINE COMMENTS Clarification TODO comments 18
19 BLOCK COMMENTS 19
20 JAVA DOC DOCUMENTATION 20
21 COMMENTS NOT TO DO 21
22 SOFTWARE LICENSE MODELS Free Software Foundation Grant users the freedom to use, study, distribute and modify code freely. Richard Stallman (RMS) founded the free software foundation in 1983/5. Initially concerned with the development and evolution of free software (such as GNU), it now focuses on issues of intellectual property for free content. 22
23 SOFTWARE LICENSE MODELS- COPY LEFT Copyleft vs. Copyrights Use existing copyright laws to ensure a creative work (software- art ) remains freely available. Derivative work can only be distributed under the same license terms. Essential motivation for the contributors of open software. Reciprocity share-alike requirements ( give everyone the same rights you were granted). GPL ( GNU General Public License) The first copyleft licence Linux kernel, GNU Compiler Collection (GCC) LGPL (Lesser General Public License) LGPL software (for example libraries) can be linked to proprietary software without releasing its source. 23
24 SOFTWARE LICENSE MODELS PERMISSIVE FREE SOFTWARE LICENSES Berkeley Software Distribution (BSD)-like licenses Code can be turned to proprietary software Retain the copyright notice Author names of original software are not endorsement. 24
25 RECENT DEVELOPMENT SaaS: Software as a service License model via subscription PaaS: Platform as a service Minimum configuration Provides platform services such.net, Java runtime etc, database, for example Mongo IaaS: Infrastructure as a service 25
Refactoring. Thierry Sans. with slides from Anya Tafliovich
Refactoring Thierry Sans with slides from Anya Tafliovich Composing Methods Extract Method void printowing() { printbanner(); //print details System.out.println("name: " + name); System.out.println("amount:
More informationBadge#8: Geek Refactoring
Badge#8: Geek Refactoring Nuno Pombo, Qualidade de Software, 2018/19 1 When To Refactor? Rule of Three When adding a feature When fixing a bug During a code review 2 How To Refactor? The code should become
More informationSmall changes to code to improve it
Small changes to code to improve it 1 Refactoring Defined A change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior
More informationRefactoring. Section (JIA s) OTHER SOURCES
Refactoring Section 7.2.1 (JIA s) OTHER SOURCES Code Evolution Programs evolve and code is NOT STATIC Code duplication Outdated knowledge (now you know more) Rethink earlier decisions and rework portions
More informationF. Tip and M. Weintraub REFACTORING. Thanks go to Andreas Zeller for allowing incorporation of his materials
F. Tip and M. Weintraub REFACTORING Thanks go to Andreas Zeller for allowing incorporation of his materials TODAY S LECTURE anti-patterns common response to a recurring problem that is usually ineffective
More informationComposing Methods. Extract Method - Code that can be grouped - Meaningful name for method
Composing Methods Extract Method - Code that can be grouped - Meaningful name for method Inline Method - inverse of Extract Method - Method body is more obvious Extract Variable - Expression: hard to understand
More informationFree as in Freedom A step towards Software freedom. Salahaddin University By: Amanj Sherwany
Free as in Freedom A step towards Software freedom Salahaddin University By: Amanj Sherwany http://www.amanj.me 2011 Who am I? 27 years old. M.Sc. in Computer Science, Uppsala University 2011. B.Sc. in
More informationSoftware LEIC. Lecture 23
Software Engineering @ LEIC Lecture 23 Last Lecture Software Architecture Architectural Patterns Application Architectures Software Architecture in the ES+SD Project Today Software Architecture Dependable
More informationEthics. Ethics. Ethics. Ethics. The issue of software ownership. The issue of software ownership. Programmers and the Hacker mentality.
Programmers and the Hacker mentality. hacker n. [originally, someone who makes furniture with an axe] A person who enjoys exploring the details of programmable systems and how to stretch their capabilities,
More informationCOURSE 11 DESIGN PATTERNS
COURSE 11 DESIGN PATTERNS PREVIOUS COURSE J2EE Design Patterns CURRENT COURSE Refactoring Way refactoring Some refactoring examples SOFTWARE EVOLUTION Problem: You need to modify existing code extend/adapt/correct/
More informationvoid printowing(double amount) { printbanner(); printdetails(); void printdetails(double amount) {
Refactoring References: Martin Fowler, Refactoring: Improving the Design of Existing Code; ; Bruce Wampler, The Essence of Object-Oriented Oriented Programming with Java and UML A recent OO technique that
More informationSoftware Engineering Chap.7 - Design and Implementation
Software Engineering Chap.7 - Design and Implementation Simão Melo de Sousa RELEASE (UBI), LIACC (Porto), CCTC (Minho) Computer Science Department University of Beira Interior, Portugal Eng.Info./TSI,
More informationOpen Source Licensing: An Overview
Open Source Licensing: An Overview Alexander Champoux Trinity College alexander.champoux@trincoll.edu April 28, 2008 Introduction My paper for HFOSS is on Open Source Licensing Without some of the flexibilities
More informationLinux Applications and Software Licensing. Linux System Administration COMP2018 Summer 2017
Linux Applications and Software Licensing Linux System Administration COMP2018 Summer 2017 Server vs. Desktop Roles Computers perform tasks for us The types of tasks they perform are determined by their
More informationRefactoring. So#ware Quality Quality Audit and Cer4fica4on. Master in Computer Engineering. Roberto García
Refactoring So#ware Quality Quality Audit and Cer4fica4on Master in Computer Engineering Roberto García (rgarcia@diei.udl.cat) Introduc4on When considering soaware evolu4on, the key dis4nc4on is: Program's
More informationgpp Bash-based preprocessor for anything by Mattias Andrée (maandree)
gpp Bash-based preprocessor for anything by Mattias Andrée (maandree) Copyright c 2013, 2015 Mattias Andrée Permission is granted to copy, distribute and/or modify this document under the terms of the
More informationRationale for the Evolution of the EUPL v1.1 (towards the EUPL v 1.2)
Rationale for the Evolution of the EUPL v1.1 (towards the EUPL v 1.2) Updated: 15 March 2013 Working paper Rationale EUPLv1.2 v 0.5 Page 1 Contents 1. Background... 3 2. What is changed in the EUPL v1.2?...
More informationEINDHOVEN UNIVERSITY OF TECHNOLOGY
EINDHOVEN UNIVERSITY OF TECHNOLOGY Department of Mathematics & Computer Science Exam Programming Methods, 2IP15, Wednesday 17 April 2013, 09:00 12:00 TU/e THIS IS THE EXAMINER S COPY WITH (POSSIBLY INCOMPLETE)
More informationFoundations of Software Engineering. Lecture 24: Open Source Claire Le Goues
Foundations of Software Engineering Lecture 24: Open Source Claire Le Goues 1 Learning goals Understand the terminology free software and explain open source culture and principles. Express an educated
More informationIoT & Open Source. Martin von Haller Groenbaek Partner, Copenhagen LES SCANDINAVIA: INTERNET OF THINGS & IP SEMINAR 25 November 2015
IoT & Open Source Martin von Haller Groenbaek Partner, Copenhagen LES SCANDINAVIA: INTERNET OF THINGS & IP SEMINAR 25 November 2015 Agenda What is open source? IoT open source projects Business Challenges
More informationOpen source licensing notices in Web applications
Open source licensing notices in Web applications 81 Open source licensing notices in Web applications Arnoud Engelfriet a (a) Associate, ICTRecht Legal Services. DOI: 10.5033/ifosslr.v3i1.47 Abstract
More informationImplementing evolution: Refactoring
2IS55 Software Evolution Implementing evolution: Refactoring Alexander Serebrenik Sources / SET / W&I 5-6-2012 PAGE 1 Last week How to implement evolution Last week: evolution strategies and decision making
More informationDoing a Dissertation. Vern Sheridan Poythress Westminster Theological Seminary
Doing a Dissertation Vern Sheridan Poythress Westminster Theological Seminary Copyright Specifications Copyright (c) 2006 Vern S. Poythress. Permission is granted to copy, distribute and/or modify this
More informationTopic 1- The Basic Knowledge of Open Source and Free Software
1 Topic 1- The Basic Knowledge of Open Source and Free Software, Reidar Conradi September 1, 2011 Introduction 2 What is OSS? Open Source Software: software compliant with one of the licences of Free Software
More informationImplementing evolution: Refactoring
2IS55 Software Evolution Sources Implementing evolution: Refactoring Alexander Serebrenik / SET / W&I 17-5-2010 PAGE 1 Last week Problem: changing code is difficult Assignment 6 Deadline: Today Assignment
More informationGNU Free Documentation License Version 1.2, November 2002
GNU Free Documentation License Version 1.2, November 2002 Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy
More informationThis slide is relevant to providing either a single three hour training session or explaining how a series of shorter sessions focused on per chapter
Welcome to the OpenChain Curriculum Slides. These slides can be used to help train internal teams about FOSS compliance issues and to conform with the OpenChain Specification. You can deliver these slides
More informationApéndice:GNU Free Documentation License
Apéndice:GNU Free Documentation License FUOC 3 Apéndice: GNU Free Documentation License GNU Free Documentation License GNU Free Documentation License Version 1.2, November 2002 Copyright (C) 2000,2001,2002
More informationHow We Refactor, and How We Know It
Emerson Murphy-Hill, Chris Parnin, Andrew P. Black How We Refactor, and How We Know It Urs Fässler 30.03.2010 Urs Fässler () How We Refactor, and How We Know It 30.03.2010 1 / 14 Refactoring Definition
More informationAuthor(s): August E. Evrard, PhD. 2010
Author(s): August E. Evrard, PhD. 2010 License: Unless otherwise noted, this material is made available under the terms of the Creative Commons Attribution-Non-commercial-Share Alike 3.0 License: http://creativecommons.org/licenses/by-nc-sa/3.0/
More informationUnderstading Refactorings
Understading Refactorings Ricardo Terra terra@dcc.ufmg.br Marco Túlio Valente mtov@dcc.ufmg.br UFMG, 2010 UFMG, 2010 Understanding Refactorings 1 / 36 Agenda 1 Overview 2 Refactoring 3 Final Considerations
More informationPROGRAMMING LANGUAGE 2
31/10/2013 Ebtsam Abd elhakam 1 PROGRAMMING LANGUAGE 2 Java lecture (7) Inheritance 31/10/2013 Ebtsam Abd elhakam 2 Inheritance Inheritance is one of the cornerstones of object-oriented programming. It
More informationIndependent implementations of an interface
Software property topics interfaces data formats standards and standardization protection mechanisms trade secrets licenses patents copyrights open source / free software real software systems Independent
More informationOpen Source Software Licence at CERN Recommendations from the OSL Task Force François Fluckiger, Editor 20 April; 2012
OSL-2012-01-Short version Open Source Licence - Task force Open Source Software Licence at CERN Recommendations from the OSL Task Force François Fluckiger, Editor 20 April; 2012 Main Volume-Short version
More informationLecture #1 4 th Year M.Sc. Dina Rafaa Ahmed
Lecture #1 4 th Year M.Sc. Dina Rafaa Ahmed 1 Source Code: It is a specialized language that allows software developers to create and modify computer programs. If you do not have legal access to the source
More informationMSO Refactoring. Hans Philippi. October 2, Refactoring 1 / 49
MSO Refactoring Hans Philippi October 2, 2018 Refactoring 1 / 49 This lecture What is refactoring?... or how to deal with the horrible code your colleagues have created... or how to deal with the horrible
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 informationChapter 7 Design and Implementation
Chapter 7 Design and Implementation Chapter 7 Design and Implementation Slide 1 Topics covered Object-oriented design using the UML Design patterns Implementation issues Reuse Configuration management
More informationChapter 4. Fundamental Concepts and Models
Chapter 4. Fundamental Concepts and Models 4.1 Roles and Boundaries 4.2 Cloud Characteristics 4.3 Cloud Delivery Models 4.4 Cloud Deployment Models The upcoming sections cover introductory topic areas
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 informationDesign and Implementa3on
Software Engineering Design and Implementa3on 1 Design and implementation Software design and implementation is the stage in the software engineering process at which an executable software system is developed.
More informationEWRG-CES. Bharath Setturu EWRG, CES, IISc
Bharath Setturu EWRG, CES, IISc What is Free and Open Source? Free and Open source describes a broad general type of free software license that makes source code available to the general public with no
More informationRefactorings. Refactoring. Refactoring Strategy. Demonstration: Refactoring and Reverse Engineering. Conclusion
Refactorings Refactoring What is it? Why is it necessary? Examples Tool support Refactoring Strategy Code Smells Examples of Cure Demonstration: Refactoring and Reverse Engineering Refactor to Understand
More informationTutorial 02: Writing Source Code
Tutorial 02: Writing Source Code Contents: 1. Generating a constructor. 2. Generating getters and setters. 3. Renaming a method. 4. Extracting a superclass. 5. Using other refactor menu items. 6. Using
More informationGNU WebSocket4J Reference Manual
GNU WebSocket4J Reference Manual version 1.3 Marek Aaron Sapota This file is part of GNU WebSocket4J Reference Manual (version 1.3). Copyright c 2010 Marek Aaron Sapota Permission is granted to copy, distribute
More informationAntiPatterns. EEC 421/521: Software Engineering. AntiPatterns: Structure. AntiPatterns: Motivation
AntiPatterns EEC 421/521: Software Engineering Definition: An AntiPattern describes a commonly occurring solution to a problem that generates decidedly negative consequences Refactoring Reference: Refactoring
More informationEnums. In this article from my free Java 8 course, I will talk about the enum. Enums are constant values that can never be changed.
Enums Introduction In this article from my free Java 8 course, I will talk about the enum. Enums are constant values that can never be changed. The Final Tag To display why this is useful, I m going to
More informationAn Introduction To GCC: For The GNU Compilers GCC And G++ By Richard M. Stallman, Brian J. Gough
An Introduction To GCC: For The GNU Compilers GCC And G++ By Richard M. Stallman, Brian J. Gough If searched for the ebook by Richard M. Stallman, Brian J. Gough An Introduction to GCC: For the GNU Compilers
More informationChapter 1 Introduction to java
Chapter 1 Introduction to java History of java Java was created by by Sun Microsystems team led by James Gosling (1991) It was mainly used for home appliance, it later became a general purpose programming
More informationCS260 Intro to Java & Android 03.Java Language Basics
03.Java Language Basics http://www.tutorialspoint.com/java/index.htm CS260 - Intro to Java & Android 1 What is the distinction between fields and variables? Java has the following kinds of variables: Instance
More informationOPEN SOURCE SOFTWARE
Introduction to Open Source Software Development Spring semester, 2017 School of Computer Science and Engineering, Pusan National University Joon-Seok Kim OPEN SOURCE SOFTWARE Outline Open source software
More informationGNU OrgaDoc Manual. Adam Bilbrough
GNU OrgaDoc Manual Adam Bilbrough i Table of Contents 1 Introducing OrgaDoc........................... 1 2 OrgaDoc Examples.............................. 2 3 Invoking the program...........................
More informationSir Muhammad Naveed. Arslan Ahmed Shaad ( ) Muhammad Bilal ( )
Sir Muhammad Naveed Arslan Ahmed Shaad (1163135 ) Muhammad Bilal ( 1163122 ) www.techo786.wordpress.com CHAPTER: 2 NOTES:- VARIABLES AND OPERATORS The given Questions can also be attempted as Long Questions.
More informationChapter 1: Object-Oriented Programming Using C++
Chapter 1: Object-Oriented Programming Using C++ Objectives Looking ahead in this chapter, we ll consider: Abstract Data Types Encapsulation Inheritance Pointers Polymorphism Data Structures and Algorithms
More informationRed Hat Cloud Suite 1.1
Red Hat Cloud Suite 1.1 Product Guide Overview of the Red Hat Cloud Suite Last Updated: 2018-12-14 Red Hat Cloud Suite 1.1 Product Guide Overview of the Red Hat Cloud Suite Red Hat Cloud Suite Documentation
More informationcerberus-logging Logging extension for cerberus by Mattias Andrée (maandree)
cerberus-logging Logging extension for cerberus by Mattias Andrée (maandree) Copyright c 2014, 2015 Mattias Andrée Permission is granted to copy, distribute and/or modify this document under the terms
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 informationLeveraging Open Source Software
03 444359 Ch01.qxd 8/14/03 9:30 AM Page 3 CHAPTER 1 Leveraging Open Source Software Everything that is really great and inspiring is created by the individual who can labor in freedom. Albert Einstein
More informationDesign Patterns. CSC207 Fall 2017
Design Patterns CSC207 Fall 2017 Design Patterns A design pattern is a general description of the solution to a well-established problem using an arrangement of classes and objects. Patterns describe the
More informationFOSS Training Reference Slides for the OpenChain Specification 1.1
CURRICULUM FOSS Training Reference Slides for the OpenChain Specification 1.1 Released under CC0-1.0. You may use, modify, and share these slides without restriction. They also come with no warranty. These
More informationWeiss Chapter 1 terminology (parenthesized numbers are page numbers)
Weiss Chapter 1 terminology (parenthesized numbers are page numbers) assignment operators In Java, used to alter the value of a variable. These operators include =, +=, -=, *=, and /=. (9) autoincrement
More informationHistory of Unix, Linux and the Open Source
History of Unix, Linux and the Open Source 12.2.2012 George Ajam College of Science /Computer Science Dept. DEC PDP 7 History of UNIX 1969: First version of "Unics" by Ken Thompson and Dennis Richie Multi
More informationSUSE Studio Onsite Quick Start
SUSE Studio Onsite Quick Start SUSE Studio Onsite Quick Start NOVELL QUICK START CARD SUSE Studio Onsite is a Web-based user interface to build software appliances. A software appliance is a preconfigured
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 informationDesign Pattern and Software Architecture: IV. Design Pattern
Design Pattern and Software Architecture: IV. Design Pattern AG Softwaretechnik Raum E 3.165 Tele.. 60-3321 hg@upb.de IV. Design Pattern IV.1 Introduction IV.2 Example: WYSIWYG Editor Lexi IV.3 Creational
More informationCURRICULUM. Core FOSS Compliance Version 1 Designed for Version 1 of the OpenChain Specification
CURRICULUM Core FOSS Compliance Version 1 Designed for Version 1 of the OpenChain Specification Released under the Creative Commons CC0 1.0 Universallicense. This is not legal advice Contents 1. What is
More informationIntroduction to Linux Overview and Some History
Introduction to Linux Overview and Some History Computational Science and Engineering North Carolina A&T State University Instructor: Dr. K. M. Flurchick Email: kmflurch@ncat.edu Operating Systems and
More informationIn this Lecture you will Learn: Design Patterns. Patterns vs. Frameworks. Patterns vs. Frameworks
In this Lecture you will Learn: Design Patterns Chapter 15 What types of patterns have been identified in software development How to apply design patterns during software development The benefits and
More informationPeer Participation and Software
Peer Participation and Software Booth, David R. Published by The MIT Press Booth, R.. Peer Participation and Software: What Mozilla Has to Teach Government. Cambridge: The MIT Press, 2010. Project MUSE.,
More information1. Every program must have at least one class declaration. (*) 2. Every class declared in a program must have a distinct identifier.
The J- Language (Static) Semantics Version 1.3 (4/5/07) We define here the syntactic restrictions and static semantics of the simple language J- used in 2006 for 3516ICT assignments. Most of these restrictions
More informationCURRICULUM. FOSS Training Reference Deck, Version 2 FINAL DRAFT Designed for the OpenChain Specification 1.0
CURRICULUM FOSS Training Reference Deck, Version 2 FINAL DRAFT Designed for the OpenChain Specification 1.0 Released under the Creative Commons CC0 1.0 Universal license. These slides follow US law. Different
More informationAbstraction in Software Development
Abstract Data Types Programmer-created data types that specify values that can be stored (type of data) operations that can be done on the values The user of an abstract data type (ADT) does not need to
More informationConstants are named in ALL_CAPS, using upper case letters and underscores in their names.
Naming conventions in Java The method signature Invoking methods All class names are capitalized Variable names and method names start with a lower case letter, but every word in the name after the first
More informationThe Effects of Open Source License Choice on Software Reuse
The Effects of Open Source License Choice on Software Reuse John Brewer VIII Thesis submitted to the Faculty of the Virginia Polytechnic Institute and State University in partial fulfillment of the requirements
More informationUser Interface Programming OOP/Java Primer. Step 3 - documentation
User Interface Programming OOP/Java Primer Step 3 - documentation Department of Information Technology Uppsala University What is the documentation? Documentation about program in the program Clearly written
More informationStakeholder value, usage, needs and obligations from differnet types of F/LOSS licenses
Stakeholder value, usage, needs and obligations from differnet types of F/LOSS licenses Monash University, Melbourne Australia. darren.skidmore@infotech.monash.edu.au Abstract. This paper discusses different
More informationArrays Classes & Methods, Inheritance
Course Name: Advanced Java Lecture 4 Topics to be covered Arrays Classes & Methods, Inheritance INTRODUCTION TO ARRAYS The following variable declarations each allocate enough storage to hold one value
More informationLecture Topics. Announcements. Today: Operating System Overview (Stallings, chapter , ) Next: Processes (Stallings, chapter
Lecture Topics Today: Operating System Overview (Stallings, chapter 2.1-2.4, 2.8-2.10) Next: Processes (Stallings, chapter 3.1-3.6) 1 Announcements Consulting hours posted Self-Study Exercise #3 posted
More informationEnd User License Agreement
End User License Agreement Kyocera International, Inc. ( Kyocera ) End User License Agreement. CAREFULLY READ THE FOLLOWING TERMS AND CONDITIONS ( AGREEMENT ) BEFORE USING OR OTHERWISE ACCESSING THE SOFTWARE
More informationDesign Patterns. CSC207 Fall 2017
Design Patterns CSC207 Fall 2017 Design Patterns A design pattern is a general description of the solution to a well-established problem using an arrangement of classes and objects. Patterns describe the
More informationpasscheck Passphrase strength evaluator by Mattias Andrée (maandree)
passcheck Passphrase strength evaluator by Mattias Andrée (maandree) Copyright c 2013, 2015 Mattias Andrée Permission is granted to copy, distribute and/or modify this document under the terms of the GNU
More informationSOFTWARE ENGINEERING SOFTWARE EVOLUTION. Saulius Ragaišis.
SOFTWARE ENGINEERING SOFTWARE EVOLUTION Saulius Ragaišis saulius.ragaisis@mif.vu.lt CSC2008 SE Software Evolution Learning Objectives: Identify the principal issues associated with software evolution and
More informationDesign Patterns. CSC207 Winter 2017
Design Patterns CSC207 Winter 2017 Design Patterns A design pattern is a general description of the solution to a well-established problem using an arrangement of classes and objects. Patterns describe
More informationAutomating Big Refactorings for Componentization and the Move to SOA
Automating Big Refactorings for Componentization and the Move to SOA IBM Programming Languages and Development Environments Seminar 2008 Aharon Abadi, Ran Ettinger and Yishai Feldman Software Asset Management
More informationProgrammer s Style Guide
Programmer s Style Guide A guide to writing usable and maintainable programs Edition 0.0.0, 5 October 2002 Reinhard Müller Copyright c 2001 Reinhard Müller Permission is granted to copy, distribute and/or
More informationShareware Redistribution of FOSS Software
1995 Broadway, 17th Floor New York, NY 10023 5882 tel +1 212 580 0800 fax +1 212 580 0898 www.softwarefreedom.org Shareware Redistribution of FOSS Software James Vasile 27 March 2008 1 Introduction The
More informationRefactoring. Chen Tang March 3, 2004
Refactoring Chen Tang March 3, 2004 What Is Refactoring (Definition) Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet
More informationInfrastructure Middleware (Part 1): Hardware Abstraction Layer (HAL)
Infrastructure Middleware (Part 1): Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA
More informationOperating System Labs. Yuanbin Wu
Operating System Labs Yuanbin Wu cs@ecnu Operating System Labs Introduction to Unix (*nix) Course Overview Operating System Labs Introduction to Unix (*nix) Course Overview Unix / *nix What A family of
More informationIST311. Advanced Issues in OOP: Inheritance and Polymorphism
IST311 Advanced Issues in OOP: Inheritance and Polymorphism IST311/602 Cleveland State University Prof. Victor Matos Adapted from: Introduction to Java Programming: Comprehensive Version, Eighth Edition
More informationDesign Engineering. Overview
Design Engineering Overview What is software design? How to do it? Principles, concepts, and practices High-level design Low-level design N. Meng, B. Ryder 2 1 Design Engineering The process of making
More informationProgramming by Delegation
Chapter 2 a Programming by Delegation I. Scott MacKenzie a These slides are mostly based on the course text: Java by abstraction: A client-view approach (4 th edition), H. Roumani (2015). 1 Topics What
More informationIronclad C++ A Library-Augmented Type-Safe Subset of C++
Ironclad C++ A Library-Augmented Type-Safe Subset of C++ Christian DeLozier, Richard Eisenberg, Peter-Michael Osera, Santosh Nagarakatte*, Milo M. K. Martin, and Steve Zdancewic October 30, 2013 University
More informationVisual C# Program: Temperature Conversion Program
C h a p t e r 4B Addendum Visual C# Program: Temperature Conversion Program In this chapter, you will learn how to use the following Visual C# Application functions to World Class standards: Writing a
More informationCSE 431S Type Checking. Washington University Spring 2013
CSE 431S Type Checking Washington University Spring 2013 Type Checking When are types checked? Statically at compile time Compiler does type checking during compilation Ideally eliminate runtime checks
More informationIntroduction to C++ Introduction to C++ 1
1 What Is C++? (Mostly) an extension of C to include: Classes Templates Inheritance and Multiple Inheritance Function and Operator Overloading New (and better) Standard Library References and Reference
More informationLearning Objectives. C++ For Artists 2003 Rick Miller All Rights Reserved xli
Identify and overcome the difficulties encountered by students when learning how to program List and explain the software development roles played by students List and explain the phases of the tight spiral
More informationPatterns in Software Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 10 Refactoring Patterns Part 1 1 Refactoring: Definition Refactoring: A change made to the internal structure of software to make it easier
More informationMSO Analysis & UML. Hans Philippi (based on the course slides of Wouter Swierstra) August 24, Analysis & UML 1 / 56
MSO Analysis & UML Hans Philippi (based on the course slides of Wouter Swierstra) August 24, 2018 Analysis & UML 1 / 56 Recap: Last lectures How can I manage the process of constructing complex software?
More informationOpen Source Used In Cisco jabber for Mac 12.1
Open Source Used In Cisco jabber for Mac 12.1 Cisco Systems, Inc. www.cisco.com Cisco has more than 200 offices worldwide. Addresses, phone numbers, and fax numbers are listed on the Cisco website at www.cisco.com/go/offices.
More information