Understanding Concerns in Software: Insights Gained from Two Case Studies Meghan Revelle, Tiffany Broadbent, and David Coppit
|
|
- Buddy Martin
- 5 years ago
- Views:
Transcription
1 Understanding Concerns in Software: Insights Gained from Two Case Studies Meghan Revelle, Tiffany Broadbent, and David Coppit Department of Computer Science The College of William and Mary
2 Separation of Concerns in Software Encapsulation, separation, and abstraction of concerns key ways to fight complexity [Dijkstra76, Parnas72] Programming language support: subroutines, abstract data types, classes, aspects Reduce scattering of concerns across modules, and tangling of concerns within a module Reduced complexity yields less faults, lower maintenance costs, higher productivity 2
3 No Consensus on Concerns Definitions vary: General: "any consideration about the implementation of a program" [Robillard] Specific: features [Lai & Murphy] IEEE: "concerns are those interests which pertain to the system s development, its operation or any other aspects that are critical or otherwise important to one or more stakeholders" 3
4 Research Questions What is a concern? What types of concerns are there? How subjective are concerns to programmers? Do programmers think at similar levels of abstraction? How are concerns manifested in code? At what granularity? Are there factors that impact identification of concerns in code? 4
5 Approach Two case studies, where two programmers identified concerns in an existing system GNU sort: C, imperative, batch, feature-oriented Minesweeper: Java, object-oriented, interactive Compared the set of concerns found by each Compared the code for the concerns Classified concerns into types Studied factors for agreement 5
6 6
7 Metrics Overlap: Concern code programmer agreement Tried character and line accuracies Spread: The distribution of a concern in code 7
8 Concern Abstraction Mapping related concepts between programmers Shapes Shapes Triangles Squares Triangles Circles Squares Circles 8
9 Case Study #1: GNU sort Sorts lines from STDIN or files, merges sorted files, checks sortedness 2145 lines of C Batch Feature-oriented Revelle identified 50 concerns Previous data for 83 concerns [Carver & Griswold 1999] 9
10 Case Study #1: Concern Comparison 23 concerns in common, with >80% average character overlap Differences due to: Different levels of abstraction (more detail) System-specific concerns Sort Mode Modes Check Mode Merge Mode After abstraction mapping: Ours C&G's - 7 system-oriented concerns 10
11 11
12 Case Study #2: Minesweeper Game to find mines without exploding them 2776 lines of Java in six classes Interactive GUI-oriented Revelle identified 30 concerns Broadbent identified 26 concerns 12
13 Case Study #2: Concern Comparison 13 concerns in common, with about 50% character overlap Differences due to: Different levels of abstraction Not as feature-oriented as sort After abstraction mapping: Revelle's - 1 Broadbent's
14 14
15 15
16 Abstraction and Concern Code Overlap Level of Abstraction GUI 15.00% Game State 34.86% Game Difficulty 30.00% Debug 40.12% Graphics 35.98% Minefield 47.65% LED 45.80% Images 52.93% Cell State 79.32% Flag Cell 57.38% Error Handling 81.25% Menu 88.87% Timer 78.87% 0.00% 20.00% 40.00% 60.00% 80.00% % Character Concern Overlap 16
17 Spread and Concern Code Overlap Number of Classes GUI 15.00% Game Difficulty Game State 34.86% Graphics 35.98% Debug 40.12% Images 52.93% LED: 45.80% Minefield 47.65% Flag Cell 57.38% Error Handling 81.25% Timer 78.87% Cell State 79.32% Menu 88.87% % 20.00% 40.00% 60.00% 80.00% % Character Concern Overlap 17
18 Observations Measuring overlap accurately is tricky Character-level only within constant strings Tokens elsewhere Can be helped with tagging guidelines Context matters if(currentcell.getstate()!= Cell.STATE_FLAGGED) The meaning of a concern is important Programmers identify similar concerns, but work at different levels of abstraction 18
19 Types of Concerns Feature GUI, sorting, merging Domain-Independent Unit of Functionality Debugging, error handling Input/Output Internal Program Characteristic Caching, buffers Language Characteristic Exception handling, constructors 19
20 Concern Identification Guidelines 1. Review the file and look up any unfamiliar constructs of the language. 2. Identify the main pieces of the program (features); they are concerns. 3. Constants, user-defined types, class attributes and imported classes are good indicators of concerns. 4. Entire functions usually relate to a concern or support a concern (except for main). 5. When you create a concern, decide what it encompasses. 6. Look for domain independent concerns such as debugging and error handling. 20
21 Concern Tagging Guidelines 7. Different levels of concerns can be tagged in the same code fragment. 8. Even though a code fragment is tagged with one concern, it can be tagged with another concern. 9. Use the search feature to find code that is possibly related to the current concern of interest, but take the time to figure out the context of the code before tagging it. 10. If a function is tagged with a concern, the calls to it should also be tagged. 11. If the whole body of an if or switch statement is tagged, tag the if or switch as well as the beginning and ending braces. 12. If the whole body of a loop is tagged, tag the loop conditionals as well as the beginning and ending braces. 13. Make sure to tag both the declaration and use of variables associated with a concern. 14. When a variable is an argument or parameter to a function, tag only the argument or parameter and associated type. 15. Tag the whole expression when it affects a concern variable. When a concern variable is used on the right side of an assignment statement, tag only the use of that variable. 16. White space, new lines and comments should be included when tagging concerns. 17. Most to all of the code in a file should be tagged. 21
22 Evaluation Only two data points for small systems Need more study of contributing factors Studied scatter (average distance between instances of a concern in the file) Taxonomy only a start Patterns Hard to control all factors Example: Spread vs. size 22
23 Conclusion Two case studies investigate how programmers think about concerns, and identify concern code Identified 5 types of concerns Developed (but did not evaluate) guidelines Spread and abstraction are key factors that affect concern identification Programmers do identify same concepts But at different levels of abstraction Concerns manifested at character level 23
Software Plans for Separation of Concerns
Software Plans for Separation of Concerns David Coppit and Benjamin Cox The College of William and Mary 9/11/13 1 Elevation 9/11/13 2 Floor Plan 9/11/13 3 Foundation Plan 9/11/13 4 Software 9/11/13 5 Example:
More informationA Model for Software Plans
A Model for Software Plans Robert R. Painter and David Coppit Department of Computer Science The College of William and Mary private static Vector readdata() { BufferedReader stdin = new BufferedReader(
More informationGRAPHICS & INTERACTIVE PROGRAMMING. Lecture 1 Introduction to Processing
BRIDGES TO COMPUTING General Information: This document was created for use in the "Bridges to Computing" project of Brooklyn College. This work is licensed under the Creative Commons Attribution-ShareAlike
More informationAssignment #4 Minesweeper
Assignment #4 Minesweeper Date assigned: Friday, January 9, 2015 Date due: Java Minesweeper, Tuesday, January 13, 2015 Android Minesweeper, Friday, January 17, 2015 Points: 100 Java Minesweeper The game
More informationArray Basics: Outline. Creating and Accessing Arrays. Creating and Accessing Arrays. Arrays (Savitch, Chapter 7)
Array Basics: Outline Arrays (Savitch, Chapter 7) TOPICS Array Basics Arrays in Classes and Methods Programming with Arrays Searching and Sorting Arrays Multi-Dimensional Arrays Static Variables and Constants
More informationProgramming Languages and Techniques (CIS120)
Programming Languages and Techniques () Lecture 13 February 12, 2018 Mutable State & Abstract Stack Machine Chapters 14 &15 Homework 4 Announcements due on February 20. Out this morning Midterm results
More informationSoftware Plans. A Multidimensional Approach for Fine-Grained Tangling of Concerns in Code. David Coppit Robert R. Painter Meghan Revelle
Software Plans A Multidimensional Approach for Fine-Grained Tangling of Concerns in Code David Coppit Robert R. Painter Meghan Revelle Department of Computer Science The College of William and Mary Williamsburg,
More information3D Graphics Programming Mira Costa High School - Class Syllabus,
3D Graphics Programming Mira Costa High School - Class Syllabus, 2009-2010 INSTRUCTOR: Mr. M. Williams COURSE GOALS and OBJECTIVES: 1 Learn the fundamentals of the Java language including data types and
More informationChapter 21 Aspect-Oriented Software Engineering (AOSE)
Chapter 21 Aspect-Oriented Software Engineering (AOSE) Chapter 21 Aspect-Oriented Software Engineering Slide 1 Topics covered Introduction and motivation The separation of concerns Core vs. cross-cutting
More informationMARS AREA SCHOOL DISTRICT Curriculum TECHNOLOGY EDUCATION
Course Title: Java Technologies Grades: 10-12 Prepared by: Rob Case Course Unit: What is Java? Learn about the history of Java. Learn about compilation & Syntax. Discuss the principles of Java. Discuss
More informationLecturer: William W.Y. Hsu. Programming Languages
Lecturer: William W.Y. Hsu Programming Languages Chapter 9 Data Abstraction and Object Orientation 3 Object-Oriented Programming Control or PROCESS abstraction is a very old idea (subroutines!), though
More informationJAVA CONCEPTS Early Objects
INTERNATIONAL STUDENT VERSION JAVA CONCEPTS Early Objects Seventh Edition CAY HORSTMANN San Jose State University Wiley CONTENTS PREFACE v chapter i INTRODUCTION 1 1.1 Computer Programs 2 1.2 The Anatomy
More informationBig Java Late Objects
Big Java Late Objects Horstmann, Cay S. ISBN-13: 9781118087886 Table of Contents 1. Introduction 1.1 Computer Programs 1.2 The Anatomy of a Computer 1.3 The Java Programming Language 1.4 Becoming Familiar
More informationAPCS Semester #1 Final Exam Practice Problems
Name: Date: Per: AP Computer Science, Mr. Ferraro APCS Semester #1 Final Exam Practice Problems The problems here are to get you thinking about topics we ve visited thus far in preparation for the semester
More informationCMPSCI 187: Programming With Data Structures. Lecture 6: The StringLog ADT David Mix Barrington 17 September 2012
CMPSCI 187: Programming With Data Structures Lecture 6: The StringLog ADT David Mix Barrington 17 September 2012 The StringLog ADT Data Abstraction Three Views of Data Java Interfaces Defining the StringLog
More informationIndex. Animation. factors, 186. Abstract Window Toolkit (AWT), 111. frame rate, 185. Access modifiers. multiple objects. package-private, 27
Index A Abstract Window Toolkit (AWT), 111 Access modifiers package-private, 27 private, 27 protected, 27 public, 27 Additive operators, 57 58 Animal classes animals speak, 106 Carnivore interface, 105
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 informationParallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload)
Lecture 2: Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload) Visual Computing Systems Today Finishing up from last time Brief discussion of graphics workload metrics
More informationSoftware Design Models, Tools & Processes. Lecture 6: Transition Phase Cecilia Mascolo
Software Design Models, Tools & Processes Lecture 6: Transition Phase Cecilia Mascolo UML Component diagram Component documentation Your own classes should be documented the same way library classes are.
More informationArchitectural Styles. Reid Holmes
Material and some slide content from: - Emerson Murphy-Hill - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture Architectural Styles Reid Holmes Lecture 5 - Tuesday,
More informationA Survey of Concern-Oriented Development Approaches Nicolas Lopez
A Survey of Concern-Oriented Development Approaches Nicolas Lopez Advisor: André van der Hoek Abstract Concern-oriented development has been of significant interest to the software engineering community
More informationIMPROVING FEATURE LOCATION BY COMBINING DYNAMIC ANALYSIS AND STATIC INFERENCES
IMPROVING FEATURE LOCATION BY COMBINING DYNAMIC ANALYSIS AND STATIC INFERENCES Meghan Revelle Advisor: David Coppit Department of Computer Science The College of William and Mary Williamsburg, Virginia
More informationPerformance analysis basics
Performance analysis basics Christian Iwainsky Iwainsky@rz.rwth-aachen.de 25.3.2010 1 Overview 1. Motivation 2. Performance analysis basics 3. Measurement Techniques 2 Why bother with performance analysis
More informationGovt. of Karnataka, Department of Technical Education Diploma in Information Science & Engineering. Fifth Semester
Govt. of Karnataka, Department of Technical Education Diploma in Information Science & Engineering Fifth Semester Subject: Programming With Java Contact Hrs / week: 4 Total hrs: 64 Table of Contents SN
More informationThe Object Oriented Paradigm
The Object Oriented Paradigm Joseph Spring 7COM1023 Programming Paradigms 1 Discussion The OO Paradigm Procedural Abstraction Abstract Data Types Constructors, Methods, Accessors and Mutators Coupling
More informationOptimal Algorithm. Replace page that will not be used for longest period of time Used for measuring how well your algorithm performs
Optimal Algorithm Replace page that will not be used for longest period of time Used for measuring how well your algorithm performs page 1 Least Recently Used (LRU) Algorithm Reference string: 1, 2, 3,
More informationClearSpeed Visual Profiler
ClearSpeed Visual Profiler Copyright 2007 ClearSpeed Technology plc. All rights reserved. 12 November 2007 www.clearspeed.com 1 Profiling Application Code Why use a profiler? Program analysis tools are
More informationMatlab Advanced Programming. Matt Wyant University of Washington
Matlab Advanced Programming Matt Wyant University of Washington Matlab as a programming Language Strengths (as compared to C/C++/Fortran) Fast to write -no type declarations needed Memory allocation/deallocation
More informationGB Programming Challenges
GB21802 - Programming Challenges Week 1 - Ad-hoc problems Claus Aranha caranha@cs.tsukuba.ac.jp College of Information Science April 18, 2014 Some Notes Before the Class Don t forget to send me your username
More informationBackground. Virtual Memory (2/2) Demand Paging Example. First-In-First-Out (FIFO) Algorithm. Page Replacement Algorithms. Performance of Demand Paging
Virtual Memory (/) Background Page Replacement Allocation of Frames Thrashing Background Virtual memory separation of user logical memory from physical memory. Only part of the program needs to be in memory
More informationSeparation of Concerns. AspectJ. What if the concerns are Cross-Cutting? SoC: Programming Paradigms. Key theme: Modularity and Encapsulation
Separation of Concerns and AspectJ EEC 625 Lecture #16 April 3, 2006 EEC 625: Software Design & Architecture Separation of Concerns Breaking a program into pieces that overlap in functionality as little
More informationVisualising Solid Shapes
VISUALISING SOLID SHAPES 2 7 7 Visualising Solid Shapes Chapter 15 15.1 INTRODUCTION: PLANE FIGURES AND SOLID SHAPES In this chapter, you will classify figures you have seen in terms of what is known as
More informationSupport Services Document. Dynamic Map Points. Version 1.0.0
Support Services Document Dynamic Map Points Version 1.0.0 Overview Dynamic Map Points is a feature that gives the user the ability to create new or additional data points to any of the geographic map
More informationChapter 9 :: Data Abstraction and Object Orientation
Chapter 9 :: Data Abstraction and Object Orientation Programming Language Pragmatics Michael L. Scott Control or PROCESS abstraction is a very old idea (subroutines!), though few languages provide it in
More informationObjectives. Order (sort) the elements of an array Search an array for a particular item Define, use multidimensional array
Arrays Chapter 7 Objectives Nature and purpose of an array Using arrays in Java programs Methods with array parameter Methods that return an array Array as an instance variable Use an array not filled
More informationAddition and Subtraction
PART Looking Back At: Grade Number and Operations 89 Geometry 9 Fractions 94 Measurement 9 Data 9 Number and Operations 96 Geometry 00 Fractions 0 Measurement 02 Data 0 Looking Forward To: Grade Number
More informationSoftware Architecture
Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment
More informationRaster Classification with ArcGIS Desktop. Rebecca Richman Andy Shoemaker
Raster Classification with ArcGIS Desktop Rebecca Richman Andy Shoemaker Raster Classification What is it? - Classifying imagery into different land use/ land cover classes based on the pixel values of
More informationPart I: Preliminaries 24
Contents Preface......................................... 15 Acknowledgements................................... 22 Part I: Preliminaries 24 1. Basics of Software Testing 25 1.1. Humans, errors, and testing.............................
More informationNARROW CORRIDOR. Teacher s Guide Getting Started. Lay Chin Tan Singapore
Teacher s Guide Getting Started Lay Chin Tan Singapore Purpose In this two-day lesson, students are asked to determine whether large, long, and bulky objects fit around the corner of a narrow corridor.
More informationCSE351 Winter 2016, Final Examination March 16, 2016
CSE351 Winter 2016, Final Examination March 16, 2016 Please do not turn the page until 2:30. Rules: The exam is closed-book, closed-note, etc. Please stop promptly at 4:20. There are 125 (not 100) points,
More informationObjective: Analyze and classify triangles based on side length, angle measure or both.
NYS COMMON CORE MATHEMATICS CURRICULUM Lesson 13 4 4 Lesson 13 Objective: Analyze and classify triangles based on side length, angle measure or Suggested Lesson Structure Fluency Practice Application Problem
More informationThis page intentionally left blank
This page intentionally left blank arting Out with Java: From Control Structures through Objects International Edition - PDF - PDF - PDF Cover Contents Preface Chapter 1 Introduction to Computers and Java
More informationProject MineSweeper Collaboration: Solo Complete this Project by yourself or with help from Section Leaders and Rick You are asked to write the non-graphical user interface aspects of the popular game
More information3 Welcome Application 41 Introduction to Visual Programming
CO N T E N T S Preface xvii 1 Graphing Application 1 Introducing Computers, the Internet and Visual Basic.NET 1.1 What Is a Computer? 1 1.2 Computer Organization 2 1.3 Machine Languages, Assembly Languages
More informationInvestigations in Number, Data, and Space for the Common Core 2012
A Correlation of Investigations in Number, Data, and Space for the Common Core 2012 to the Common Core State s with California Additions s Map Kindergarten Mathematics Common Core State s with California
More informationDescribe Plane Shapes
Lesson 12.1 Describe Plane Shapes You can use math words to describe plane shapes. point an exact position or location line endpoints line segment ray a straight path that goes in two directions without
More informationIntroduction to Parallel Performance Engineering
Introduction to Parallel Performance Engineering Markus Geimer, Brian Wylie Jülich Supercomputing Centre (with content used with permission from tutorials by Bernd Mohr/JSC and Luiz DeRose/Cray) Performance:
More informationChapter 10 :: Data Abstraction and Object Orientation
Chapter 10 :: Data Abstraction and Object Orientation Programming Language Pragmatics, Fourth Edition Michael L. Scott Copyright 2016 Elsevier Chapter10_Data_Abstraction_and_Object_Orientation_4e 1 Object-Oriented
More informationAP Computer Science A Mira Costa High School - Class Syllabus,
AP Computer Science A Mira Costa High School - Class Syllabus, 2011-2012 INSTRUCTOR: Mr. M. Williams COURSE GOALS and OBJECTIVES: 1 Learn the fundamentals of the Java language including data types and
More informationTIMSS 2011 Fourth Grade Mathematics Item Descriptions developed during the TIMSS 2011 Benchmarking
TIMSS 2011 Fourth Grade Mathematics Item Descriptions developed during the TIMSS 2011 Benchmarking Items at Low International Benchmark (400) M01_05 M05_01 M07_04 M08_01 M09_01 M13_01 Solves a word problem
More informationCourse Outline. Introduction to java
Course Outline 1. Introduction to OO programming 2. Language Basics Syntax and Semantics 3. Algorithms, stepwise refinements. 4. Quiz/Assignment ( 5. Repetitions (for loops) 6. Writing simple classes 7.
More informationUsing the Shaping Tools to Modify Objects
Using the Shaping Tools to Modify Objects In CorelDRAW, shaping commands give users a powerful means to create new shapes or manipulate current shapes by adding, subtracting, or dividing them. Shaping
More informationNaCIN An Eclipse Plug-In for Program Navigation-based Concern Inference
NaCIN An Eclipse Plug-In for Program Navigation-based Concern Inference Imran Majid and Martin P. Robillard School of Computer Science McGill University Montreal, QC, Canada {imajid, martin} @cs.mcgill.ca
More informationIn this task, students will investigate the attributes of quadrilaterals.
PRACTICE TASK: Investigating Quadrilaterals In this task, students will investigate the attributes of quadrilaterals. STANDARDS FOR MATHEMATICAL CONTENT MCC5.G.3 Understanding that attributes belonging
More informationGeometry. Professor Harms Minnesota State University Moorhead Feb. 24 th, 2014
Geometry Professor Harms Minnesota State University Moorhead Feb. 24 th, 2014 Engaging those Calvins in your class The van Hiele model of thinking in Geometry The student recognizes, names, compares and
More informationStandards/ Strands Essential Questions Skills Assessment. What are the strengths and weaknesses of Processing as a programming language?
WDHS Curriculum Map Course: Introduction to Computer Science 2 Time Interval/ Content Standards/ Strands Essential Questions Skills Assessment Unit 1: Introduction to 2 weeks Learning Lesson 1 (Chapters
More informationSix Marks Questions: ( ) 3) Find the value of the derivative of f (z) = at z = i. r r r r. ( ) where C: z-a = r. (p). f ( z)
Bapatla Engineering College:: Bapatla (Autonomous) Department of Information Technology Assignment-I Question Paper - IV Sem Class: 2/4 B.Tech 2017-18 Section: B Sub: EM-IV (14MA401) Section: A & B Date:
More informationChapter 1: Introduction Operating Systems MSc. Ivan A. Escobar
Chapter 1: Introduction Operating Systems MSc. Ivan A. Escobar What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. Operating system
More informationFile Management By : Kaushik Vaghani
File Management By : Kaushik Vaghani File Concept Access Methods File Types File Operations Directory Structure File-System Structure File Management Directory Implementation (Linear List, Hash Table)
More informationK.CC.3 Write numbers from 1 to 20. Represent a number of objects with a written numeral (1-20). Write numbers to 20.
COUNTING & CARDINALITY NAME: K.CC.1 Count to 100 by ones and by tens. See individual assessment. K.CC.2 Count forward beginning from a given number within the known sequence. See individual assessment.
More informationSoftware Engineering (CSC 4350/6350) Rao Casturi
Software Engineering (CSC 4350/6350) Rao Casturi Testing Software Engineering -CSC4350/6350 - Rao Casturi 2 Testing What is testing? Process of finding the divergence between the expected behavior of the
More informationBefore You Begin 1 Graphing Application 1 Introducing Computers, the Internet and Visual Basic.NET
CO N T E N T S Preface Before You Begin xviii xxviii 1 Graphing Application 1 Introducing Computers, the Internet and Visual Basic.NET 1.1 What Is a Computer? 1 1.2 Computer Organization 2 1.3 Machine
More informationinstruction is 6 bytes, might span 2 pages 2 pages to handle from 2 pages to handle to Two major allocation schemes
Allocation of Frames How should the OS distribute the frames among the various processes? Each process needs minimum number of pages - at least the minimum number of pages required for a single assembly
More informationPrograms as Models. Procedural Paradigm. Class Methods. CS256 Computer Science I Kevin Sahr, PhD. Lecture 11: Objects
CS256 Computer Science I Kevin Sahr, PhD Lecture 11: Objects 1 Programs as Models remember: we write programs to solve realworld problems programs act as models of the real-world problem to be solved one
More informationHanukkah. Star of David Tessellation. Name:... Date:...
Name:... Date:... Star of David Tessellation The Star of David is known as a hexagram shape. This means it s made from two equilateral triangles one placed on top of the other. An equilateral triangle
More informationThe Dynamic Typing Interlude
CHAPTER 6 The Dynamic Typing Interlude In the prior chapter, we began exploring Python s core object types in depth with a look at Python numbers. We ll resume our object type tour in the next chapter,
More information1 Getting used to Python
1 Getting used to Python We assume you know how to program in some language, but are new to Python. We'll use Java as an informal running comparative example. Here are what we think are the most important
More informationCreate an Adorable Hedgehog with Basic Tools in Inkscape Aaron Nieze on Sep 23rd 2013 with 5 Comments
Create an Adorable Hedgehog with Basic Tools in Inkscape Aaron Nieze on Sep 23rd 2013 with 5 Comments Tutorial Details Software: Inkscape Difficulty: Beginner Completion Time: 2 hours View post on Tuts+
More informationSoftware Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/10/2015
Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm Rao Casturi 11/10/2015 http://cs.gsu.edu/~ncasturi1 Class announcements Final Exam date - Dec 1 st. Final Presentations Dec 3 rd. And
More informationOutline. Computer programming. Debugging. What is it. Debugging. Hints. Debugging
Outline Computer programming Debugging Hints Gathering evidence Common C errors "Education is a progressive discovery of our own ignorance." Will Durant T.U. Cluj-Napoca - Computer Programming - lecture
More informationSubject to Change Drawing Application 1 Introducing Computers, the Internet and C#
CO N T E N T S Subject to Change 08-01-2003 Preface Before You Begin Brief Table of Contents i iv vii 1 Drawing Application 1 Introducing Computers, the Internet and C# 1.1 What Is a Computer? 1 1.2 Computer
More informationCISC 1600 Lecture 3.1 Introduction to Processing
CISC 1600 Lecture 3.1 Introduction to Processing Topics: Example sketches Drawing functions in Processing Colors in Processing General Processing syntax Processing is for sketching Designed to allow artists
More information3.1 Using Exponents to Describe Numbers
.1 Using to Describe Numbers Represent repeated multiplication with exponents Describe how powers represent repeated multiplication Demonstrate the difference between the exponent and the base by building
More informationDB2 is a complex system, with a major impact upon your processing environment. There are substantial performance and instrumentation changes in
DB2 is a complex system, with a major impact upon your processing environment. There are substantial performance and instrumentation changes in versions 8 and 9. that must be used to measure, evaluate,
More informationChapter 5 Memory Hierarchy Design. In-Cheol Park Dept. of EE, KAIST
Chapter 5 Memory Hierarchy Design In-Cheol Park Dept. of EE, KAIST Why cache? Microprocessor performance increment: 55% per year Memory performance increment: 7% per year Principles of locality Spatial
More informationPage Replacement. 3/9/07 CSE 30341: Operating Systems Principles
Page Replacement page 1 Page Replacement Algorithms Want lowest page-fault rate Evaluate algorithm by running it on a particular string of memory references (reference string) and computing the number
More informationMain Idea: classify polygons and determine which polygons can form a tessellation.
10 8: Polygons and Tesselations Main Idea: classify polygons and determine which polygons can form a tessellation. Vocabulary: polygon A simple closed figure in a plane formed by three or more line segments
More informationSpecification-Based Testing 1
Specification-Based Testing 1 Stuart Anderson Overview 1 Basic terminology A view of faults through failure Systematic versus randomised testing A systematic approach to specification-based testing A simple
More informationSyllabus- Java + Android. Java Fundamentals
Introducing the Java Technology Syllabus- Java + Android Java Fundamentals Key features of the technology and the advantages of using Java Using an Integrated Development Environment (IDE) Introducing
More informationDiocese of Erie Mathematics Curriculum First Grade August 2012
Operations and Algebraic Thinking 1.OA Represent and solve problems involving addition and subtraction 1 1. Use addition within 20 to solve word x+4=10; 4+3=x; 7+x=12 problems involving situations of adding
More informationSoftware Engineering Fall 2014
Software Engineering Fall 2014 (CSC 4350/6350) Mon.- Wed. 5:30 pm 7:15 pm ALC : 107 Rao Casturi 11/10/2014 Final Exam date - Dec 10 th? Class announcements Final Presentations Dec 3 rd. And Dec 8 th. Ability
More informationBuilding Java Programs
Building Java Programs A Back to Basics Approach Stuart Reges I Marty Stepp University ofwashington Preface 3 Chapter 1 Introduction to Java Programming 25 1.1 Basic Computing Concepts 26 Why Programming?
More informationLab 3 : Sort program
Lab : Sort program Introduction Your pointy haired Dilbert manager decided to write a Sort program which you have now inherited. The Sort program intends to emulate the main functionality of the GNU sort
More informationUMBC CMSC 331 Final Exam
UMBC CMSC 331 Final Exam Name: UMBC Username: You have two hours to complete this closed book exam. We reserve the right to assign partial credit, and to deduct points for answers that are needlessly wordy
More informationNorth Carolina Standard Course of Study Kindergarten Mathematics
North Carolina Standard Course of Study Kindergarten Mathematics Standards for Mathematical Practice 1. Make sense of problems and persevere in solving them. 2. Reason abstractly and quantitatively. 3.
More informationDR. JIVRAJ MEHTA INSTITUTE OF TECHNOLOGY
DR. JIVRAJ MEHTA INSTITUTE OF TECHNOLOGY Subject Name: - DISTRIBUTED SYSTEMS Semester :- 8 th Subject Code: -180701 Branch :- Computer Science & Engineering Department :- Computer Science & Engineering
More informationMethods. Contents Anatomy of a Method How to design a Method Static methods Additional Reading. Anatomy of a Method
Methods Objectives: 1. create a method with arguments 2. create a method with return value 3. use method arguments 4. use the return keyword 5. use the static keyword 6. write and invoke static methods
More informationDeveloping Geometric Reasoning Part 2. Focus on Quadrilaterals
Developing Geometric Reasoning Part 2 Focus on Quadrilaterals Math Teacher Leader Seminar January 8 & 11, 2007 Henry Kepner Kevin McLeod DeAnn Huinker Connie Laughlin Karen Corlyn Lee Ann Pruske Paige
More informationCourse: Honors AP Computer Science Instructor: Mr. Jason A. Townsend
Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend Email: jtownsend@pkwy.k12.mo.us Course Description: The material for this course is the equivalent of one to two semesters of an entry
More informationCounting Objects and Sets CC Part 1 (Counting and Cardinality Standards: K.CC.4 K.CC.5)
1 Count with One to One Correspondence 2 Count with One to One Correspondence K.CC.4a: When counting objects say the number names in the standard 3 Count with One to One Correspondence order pairing each
More information12/22/11. } Rolling a Six-Sided Die. } Fig 6.7: Rolling a Six-Sided Die 6,000,000 Times
} Rolling a Six-Sided Die face = 1 + randomnumbers.nextint( 6 ); The argument 6 called the scaling factor represents the number of unique values that nextint should produce (0 5) This is called scaling
More informationGrade 6 Math Circles Fall 2010 Tessellations I
1 University of Waterloo Faculty of Mathematics entre for Education in Mathematics and omputing Grade 6 Math ircles Fall 2010 Tessellations I tessellation is a collection of shapes that fit together with
More informationMemory Hierarchy Basics
Computer Architecture A Quantitative Approach, Fifth Edition Chapter 2 Memory Hierarchy Design 1 Memory Hierarchy Basics Six basic cache optimizations: Larger block size Reduces compulsory misses Increases
More informationWhat s different about Factor?
Harshal Lehri What s different about Factor? Factor is a concatenative programming language - A program can be viewed as a series of functions applied on data Factor is a stack oriented program - Data
More informationA MATLAB Exercise Book. Ludmila I. Kuncheva and Cameron C. Gray
A MATLAB Exercise Book Ludmila I. Kuncheva and Cameron C. Gray Contents 1 Getting Started 1 1.1 MATLAB................................................. 1 1.2 Programming Environment......................................
More informationAP Computer Science AB
AP Computer Science AB Dr. Tyler Krebs Voice Mail: 431-8938 Classroom: B128 Office: TV Studio Characteristics We Value in This Classroom: 1. Respect. (Show respect for everyone and everything.) 2. Integrity.
More informationLaboratory Activity 5: First Look at Classes
Laboratory Activity 5: First Look at Classes 1 Introduction The software company that you have been working for has asked you to developing a program that will be used by a Car Dealer. As the first stage
More information(the bubble footer is automatically inserted in this space)
Page 1 of 12 Name: Email ID: CS 2150 Final Exam You MUST write your name and e-mail ID on EACH page and bubble in your userid at the bottom of EACH page including this page. If you are still writing when
More informationChapter 13. Object Oriented Programming
Chapter 13. Object Oriented Programming Byoung-Tak Zhang TA: Hanock Kwak Biointelligence Laboratory School of Computer Science and Engineering Seoul National University http://bi.snu.ac.kr Computer Programming
More information