ON THE CONGRUENCE OF MODULARITY AND CODE COUPLING
|
|
|
- Sarah Fox
- 10 years ago
- Views:
Transcription
1 ON THE CONGRUENCE OF MODULARITY AND CODE COUPLING University of Trier Fabian Beck and Stephan Diehl
2 Modular Sofware Systems For human beings, the only way to manage a complex system or solve a problem is to break it up. (Baldwin and Clark, 2000) Software systems Complex systems Modularized on different levels
3 Modularity Principles Low Coupling and High Cohesion (Stevens, Myers, Constantine, 1974) few dependencies between modules (low coupling), many dependencies in the single modules (high cohesion) Information Hiding (Parnas, 1971/72) hide design decisions into modules Conway s Law (Conway, 1968) the modularization reflects the organization of the development team and others RC Martin s principles of package design, Separation of Concerns, Domain Knowledge, etc.
4 Research Question Modularity principles Theory Reality
5 Research Question Modularity principles? Theory Reality Which principles are really used in practice?
6 Approach Empirical study on software projects 16 open source Java systems modularity = classes contained in packages Analyze different concepts of code coupling Coupling concepts are related to design principles Measure the congruence of coupling and modularity Infer information on the usage of design principles
7 Code Coupling Concepts
8 Example /** fabian */ class A { String name; B b = new B(); /** fabian */ class B { String name; void dosomething() { b.dosomethingelse(); void dosomethingelse() { String tostring() { return name; String tostring() { return name;
9 Example /** fabian */ class A { String name; B b = new B(); void dosomething() { b.dosomethingelse(); Usage /** fabian */ class B { String name; void dosomethingelse() { String tostring() { return name; String tostring() { return name;
10 Example /** fabian */ class A { String name; B b = new B(); Aggregation /** fabian */ class B { String name; void dosomething() { b.dosomethingelse(); void dosomethingelse() { String tostring() { return name; String tostring() { return name;
11 Example /** fabian */ class A { String name; B b = new B(); /** fabian */ class B { String name; void dosomething() { b.dosomethingelse(); Code clone void dosomethingelse() { String tostring() { return name; String tostring() { return name;
12 Example /** fabian */ class A { String name; B b = new B(); Ownership /** fabian */ class B { String name; void dosomething() { b.dosomethingelse(); void dosomethingelse() { String tostring() { return name; String tostring() { return name;
13 Example /** fabian */ class A { String name; B b = new B(); /** fabian */ Code coupling class B { is String name; multi-dimensional. void dosomething() { void dosomethingelse() { b.dosomethingelse(); String tostring() { I. Structural Dependencies II. Evolution & Ownership III. Code Clones & Semantic return name; return name; String tostring() {
14 I. Structural Dependencies Structural static code dependencies Inheritance Aggregation Usage Direct Indirect (fan-out) external internal 9 combinations of structural dependencies
15 II. Evolution & Ownership Evolutionary Coupling (co-change) Two classes are coupled if they were frequently changed together. Code Ownership Two classes are coupled if they have similar owners.
16 III. Code Clones & Semantic Code Clones Two classes are coupled if they share a code clone. Semantic Similarity Two classes are coupled if they use similar vocabulary.
17 Relationships to Modularity Principles Coupling Concept Related Design Principle Direct structural dependencies Low Coupling and High Cohesion Indirect structural dependencies (external) Separation of Concerns Indirect structural dependencies (internal) Information Hiding Evolutionary coupling Information Hiding Code ownership Conway s Law Code clones? Semantic similarity Domain Knowledge based on theoretical considerations
18 Study
19 Coupling-Modularity Congruence Coupling Concept I Coupling Concept II
20 Coupling-Modularity Congruence Coupling Concept I Coupling Concept II a b a b congruent non-congruent
21 Coupling-Modularity Congruence Coupling Concept I Coupling Concept II a b a b congruent non-congruent Congruence Metric (simplified) The percentage of couplings not crossing module borders congruence = + Non-simplified: considering the hierarchical structure of the modularization
22 Coupling-modularity congruence (median) Inheritance Aggregation Usage Inheritance Aggregation Usage Inheritance Aggregation Usage baseline Results 1 0 Direct structural Indirect structural (external) Indirect structural (internal) Evolutionary coupling Code ownership Code clones Semantic similarity
23 Coupling-modularity congruence (median) Inheritance Aggregation Usage Inheritance Aggregation Usage Inheritance Aggregation Usage baseline Results 1 High congruence for structural coupling evolutionary coupling code clones 0 Direct structural Indirect structural (external) Indirect structural (internal) Evolutionary coupling Code ownership Code clones Semantic similarity
24 Coupling-modularity congruence (median) Inheritance Aggregation Usage Inheritance Aggregation Usage Inheritance Aggregation Usage baseline Results Inheritance reaches the highest congruence 1. internal indirect structural coupling 2. direct structural coupling 0 Direct structural Indirect structural (external) Indirect structural (internal) Evolutionary coupling Code ownership Code clones Semantic similarity
25 Coupling-modularity congruence (median) Different Types of Modules Coupling Concepts Package types core data gui io text util Similar congruence pattern for all package types (even for utility packages)
26 Discussion & Summary
27 Modularity Principles None of the principles is dominating Principles are applied to all types of modules alike Stronger principles Low Coupling and High Cohesion Explanation: High congruence of direct structural dependencies Information Hiding Explanation: High congruence of internal fan-out and evolutionary coupling Weaker principles Conway s Law, Separation of Concerns, Domain Knowledge
28 Summary Empirical study on 16 software projects High congruence between coupling and modularity structural dependencies (in particular, inheritance) evolutionary coupling code clones Different module types no type-specific congruence patterns Which modularity principles are really used in practice? Low Coupling and High Cohesion Information Hiding
Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management
Chapter 24 - Quality Management Lecture 1 1 Topics covered Software quality Software standards Reviews and inspections Software measurement and metrics 2 Software quality management Concerned with ensuring
Engineering Process Software Qualities Software Architectural Design
Engineering Process We need to understand the steps that take us from an idea to a product. What do we do? In what order do we do it? How do we know when we re finished each step? Production process Typical
Using Library Dependencies for Clustering
Using Library Dependencies for Clustering Jochen Quante Software Engineering Group, FB03 Informatik, Universität Bremen [email protected] Abstract: Software clustering is an established approach
KITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php [email protected] [email protected] Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
Metrics for Analyzing the Quality of Model Transformations
Metrics for Analyzing the Quality of Model Transformations Marcel van Amstel 1 Christian Lange 2 Mark van den Brand 1 1 Eindhoven University of Technology, The Netherlands 2 Federal Office for Information
Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53
Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software
CSC408H Lecture Notes
CSC408H Lecture Notes These lecture notes are provided for the personal use of students taking Software Engineering course in the Summer term 2005 at the University of Toronto. Copying for purposes other
Web Applications Development and Software Process Improvement in Small Software Firms: a Review
Web Applications Development and Software Process Improvement in Small Software Firms: a Review Haroon Tarawneh Al-balqa Applied University [email protected] Sattam Allahawiah Al-balqa Applied University
Automatic generation of fully-executable code from the Domain tier of UML diagrams
Abstract. Automatic generation of fully-executable code from the Domain tier of UML diagrams Macario Polo, Agustín Mayoral, Juan Ángel Gómez and Mario Piattini Alarcos Group - Department of Computer Science
Solutions to Trust. NEXThink V5 What is New?
Solutions to Trust NEXThink V5 What is New? HIGHLIGHTS What is New? ITSM: IT services analytics in real-time Analytics and product usability Security Analytics for all web & cloud applications Product
II. TYPES OF LEVEL A.
Study and Evaluation for Quality Improvement of Object Oriented System at Various Layers of Object Oriented Matrices N. A. Nemade 1, D. D. Patil 2, N. V. Ingale 3 Assist. Prof. SSGBCOET Bhusawal 1, H.O.D.
Certified PHP Developer VS-1054
Certified PHP Developer VS-1054 Certification Code VS-1054 Certified PHP Developer Vskills certification for PHP Developers assesses the candidate for developing PHP based applications. The certification
CS 111 Classes I 1. Software Organization View to this point:
CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects
Cisco Data Center 3.0 Roadmap for Data Center Infrastructure Transformation
Cisco Data Center 3.0 Roadmap for Data Center Infrastructure Transformation Cisco Nexus Family Provides a Granular, Cost-Effective Path for Data Center Evolution What You Will Learn As businesses move
I. INTRODUCTION NOESIS ONTOLOGIES SEMANTICS AND ANNOTATION
Noesis: A Semantic Search Engine and Resource Aggregator for Atmospheric Science Sunil Movva, Rahul Ramachandran, Xiang Li, Phani Cherukuri, Sara Graves Information Technology and Systems Center University
Service-Oriented Architectures
Architectures Computing & 2009-11-06 Architectures Computing & SERVICE-ORIENTED COMPUTING (SOC) A new computing paradigm revolving around the concept of software as a service Assumes that entire systems
Object Oriented Design
Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and
COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4
COURSE TITLE : SOFTWARE ENGINEERING COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4 TIME SCHEDULE MODULE TOPICS PERIODS 1 Software engineering discipline evolution
Yosemite National Park, California. CSE 114 Computer Science I Inheritance
Yosemite National Park, California CSE 114 Computer Science I Inheritance Containment A class contains another class if it instantiates an object of that class HAS-A also called aggregation PairOfDice
Program Understanding with Code Visualization
Program Understanding with Code Visualization Arif Iftikhar Department of Computer Science National University of Computer and Emerging Sciences 852-B Faisal Town, Lahore, Pakistan [email protected]
Electronic Healthcare Design and Development
Electronic Healthcare Design and Development Background The goal of this project is to design and develop a course on Electronic Healthcare Design and Development using Unified Modeling Language (UML)
CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards
CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards Course Title: TeenCoder: Java Programming Course ISBN: 978 0 9887070 2 3 Course Year: 2015 Note: Citation(s) listed may represent
Quality Management. Objectives
Quality Management Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 27 Slide 1 Objectives To introduce the quality management process and key quality management activities To explain the
Quality Management. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 27 Slide 1
Quality Management Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 27 Slide 1 Objectives To introduce the quality management process and key quality management activities To explain the
Software cost estimation
Software cost estimation Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 26 Slide 1 Objectives To introduce the fundamentals of software costing and pricing To describe three metrics for
IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS
IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS Edwin Hautus Compuware Europe P.O. Box 12933 The Netherlands [email protected] Abstract Packages are an important mechanism to decompose
Code Qualities and Coding Practices
Code Qualities and Coding Practices Practices to Achieve Quality Scott L. Bain and the Net Objectives Agile Practice 13 December 2007 Contents Overview... 3 The Code Quality Practices... 5 Write Tests
Java CPD (I) Frans Coenen Department of Computer Science
Java CPD (I) Frans Coenen Department of Computer Science Content Session 1, 12:45-14:30 (First Java Programme, Inheritance, Arithmetic) Session 2, 14:45-16:45 (Input and Programme Constructs) Materials
Core Issues Affecting Software Architecture in Enterprise Projects
Core Issues Affecting Software Architecture in Enterprise Projects Halûk Gümüşkaya Abstract In this paper we analyze the core issues affecting software architecture in enterprise projects where a large
JMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers
JMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers Technology White Paper JStatCom Engineering, www.jstatcom.com by Markus Krätzig, June 4, 2007 Abstract JStatCom is a software framework
Construction Principles and Design Patterns. Flyweight, Bridge, Builder
Construction Principles and Design Patterns Flyweight, Bridge, Builder 1 The Flyweight Design Pattern: Structure Use: To avoid employing a large number of objects with similar state When objects with intrinsic
Quality Management. Objectives. Topics covered. Process and product quality Quality assurance and standards Quality planning Quality control
Quality Management Sommerville Chapter 27 Objectives To introduce the quality management process and key quality management activities To explain the role of standards in quality management To explain
Software Engineering
Software Engineering Lecture 06: Design an Overview Peter Thiemann University of Freiburg, Germany SS 2013 Peter Thiemann (Univ. Freiburg) Software Engineering SWT 1 / 35 The Design Phase Programming in
Keywords Aspect-Oriented Modeling, Rule-based graph transformations, Aspect, pointcuts, crosscutting concerns.
Volume 4, Issue 5, May 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Functional and Non-Functional
Software Development: The Waterfall Model
Steven Zeil June 7, 2013 Contents 1 Software Development Process Models 2 1.1 Components of the Waterfall Model................................. 2 1.1.1 What is a requirement?. 2 1.1.2 Testing..........
Variable Base Interface
Chapter 6 Variable Base Interface 6.1 Introduction Finite element codes has been changed a lot during the evolution of the Finite Element Method, In its early times, finite element applications were developed
STRUCTURE AND DESIGN OF SOFTWARE-DEFINED NETWORKS TEEMU KOPONEN NICIRA, VMWARE
STRUCTURE AND DESIGN OF SOFTWARE-DEFINED NETWORKS TEEMU KOPONEN NICIRA, VMWARE WARNING: I DON T DESIGN PROTOCOLS. I WRITE C++. TRANSLATION: THIS IS NOT YOUR TYPICAL NETWORK TALK. AGENDA: 5 YEARS OF SDN
Karunya University Dept. of Information Technology
PART A Questions 1. Mention any two software process models. 2. Define risk management. 3. What is a module? 4. What do you mean by requirement process? 5. Define integration testing. 6. State the main
11 November 2015. www.isbe.tue.nl. www.isbe.tue.nl
UML Class Diagrams 11 November 2015 UML Class Diagrams The class diagram provides a static structure of all the classes that exist within the system. Classes are arranged in hierarchies sharing common
International Journal of Advanced Research in Computer Science and Software Engineering
Volume 3, Issue 3, March 2013 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Coupling and Cohesion
Module 1. Introduction to Software Engineering. Version 2 CSE IIT, Kharagpur
Module 1 Introduction to Software Engineering Lesson 2 Structured Programming Specific Instructional Objectives At the end of this lesson the student will be able to: Identify the important features of
Software Engineering & Architecture
Software Engineering & Architecture 11. QUALITY METRICS AND VISUALIZATION Martin Kropp University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems References Some
DESIGN FOR QUALITY: THE CASE OF OPEN SOURCE SOFTWARE DEVELOPMENT
DESIGN FOR QUALITY: THE CASE OF OPEN SOURCE SOFTWARE DEVELOPMENT Caryn A. Conley Leonard N. Stern School of Business, New York University, New York, NY 10012 [email protected] WORK IN PROGRESS DO NOT
The C Programming Language course syllabus associate level
TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming
Enterprise Architecture: Practical Guide to Logical Architecture
Objecteering Practical Guides Enterprise Architecture: Practical Guide to Logical Architecture Author: Version: 1.0 Copyright: Softeam Softeam Consulting Team Supervised by Philippe Desfray Softeam 21
BENEFITS MANAGEMENT AND REALISATION
COSTS BENEFITS BENEFITS MANAGEMENT TOOLKIT BENEFITS MANAGEMENT AND REALISATION This toolkit has been designed to help you to identify, manage and realise your project benefits effectively. Remember In
Supporting in- and off-hospital Patient Management Using a Web-based Integrated Software Platform
Digital Healthcare Empowering Europeans R. Cornet et al. (Eds.) 2015 European Federation for Medical Informatics (EFMI). This article is published online with Open Access by IOS Press and distributed under
Code Obfuscation. Mayur Kamat Nishant Kumar
Code Obfuscation Mayur Kamat Nishant Kumar Agenda Malicious Host Problem Code Obfuscation Watermarking and Tamper Proofing Market solutions Traditional Network Security Problem Hostile Network Malicious
COURSE OUTLINE. Prerequisites: Course Description:
Lab/Recitation Revised Fall 2015 36TITP220 21TJava Programming II COURSE OUTLINE Prerequisites: ITP120 wi ITD130 as a co-requisite or instructor s permission Course Description: Imparts instruction in
Design Metrics for Web Application Maintainability Measurement
WestminsterResearch http://www.wmin.ac.uk/westminsterresearch Design metrics for web application maintainability measurement. Emad Ghosheh 1 Sue Black 2 Jihad Qaddour 3 1 Department of Electrical and Electronic
SourceMeter SonarQube plug-in
2014 14th IEEE International Working Conference on Source Code Analysis and Manipulation SourceMeter SonarQube plug-in Rudolf Ferenc, László Langó, István Siket, Tibor Gyimóthy University of Szeged, Department
Concepts and terminology in the Simula Programming Language
Concepts and terminology in the Simula Programming Language An introduction for new readers of Simula literature Stein Krogdahl Department of Informatics University of Oslo, Norway April 2010 Introduction
Keywords Class level metrics, Complexity, SDLC, Hybrid Model, Testability
Volume 5, Issue 4, April 2015 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com A Review of Static
CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:
CS 487 Week 8 Reading: 1. Ian Sommerville, Chapter 3. Objective: 1. To check the understandibility of the students in life cycle and process model for development of a software product. 2. To check if
Building Applications with Protégé: An Overview. Protégé Conference July 23, 2006
Building Applications with Protégé: An Overview Protégé Conference July 23, 2006 Outline Protégé and Databases Protégé Application Designs API Application Designs Web Application Designs Higher Level Access
Software Metrics. Lord Kelvin, a physicist. George Miller, a psychologist
Software Metrics 1. Lord Kelvin, a physicist 2. George Miller, a psychologist Software Metrics Product vs. process Most metrics are indirect: No way to measure property directly or Final product does not
A terminology model approach for defining and managing statistical metadata
A terminology model approach for defining and managing statistical metadata Comments to : R. Karge (49) 30-6576 2791 mail [email protected] Content 1 Introduction... 4 2 Knowledge presentation...
How To Develop Software
Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which
September 18, 2014. Modular development in Magento 2. Igor Miniailo Magento
September 18, 2014 Modular development in Magento 2 Igor Miniailo Magento Agenda 1 Magento 2 goals 2 Magento 1 modules 3 Decoupling techniques 4 Magento 2 is it getting better? 5 Modularity examples Magento
Chap 4. Using Metrics To Manage Software Risks
Chap 4. Using Metrics To Manage Software Risks. Introduction 2. Software Measurement Concepts 3. Case Study: Measuring Maintainability 4. Metrics and Quality . Introduction Definition Measurement is the
Does the Act of Refactoring Really Make Code Simpler? A Preliminary Study
Does the Act of Refactoring Really Make Code Simpler? A Preliminary Study Francisco Zigmund Sokol 1, Mauricio Finavaro Aniche 1, Marco Aurélio Gerosa 1 1 Department of Computer Science University of São
Agile Testing: The Agile Test Automation Pyramid
Agile Testing: The Agile Test Pyramid In this post, or perhaps truly an article, I want to explore a common approach for implementing an effective strategy for your overall agile automation development.
Chapter 7: Software Engineering
Chapter 7: Software Engineering Computer Science: An Overview Eleventh Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Chapter 7: Software Engineering 7.1 The Software Engineering
The Concern-Oriented Software Architecture Analysis Method
The Concern-Oriented Software Architecture Analysis Method Author: E-mail: Student number: Supervisor: Graduation committee members: Frank Scholten [email protected] s0002550 Dr. ir. Bedir Tekinerdoǧan
core. Volume I - Fundamentals Seventh Edition Sun Microsystems Press A Prentice Hall Title ULB Darmstadt
core. 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Volume I - Fundamentals Seventh Edition CAY S. HORSTMANN GARY
Cisco UCS Central Software
Data Sheet Cisco UCS Central Software Cisco UCS Manager provides a single point of management for an entire Cisco Unified Computing System (Cisco UCS) domain of up to 160 servers and associated infrastructure.
Object-oriented design methodologies
Object-oriented design methodologies An object-oriented methodology is defined as the system of principles and procedures applied to object-oriented software development. Five years ago, there was no standard
10 Best-Selling Modules For Home Information Technology Professionals
Integriertes Risk und Compliance Management als Elemente einer umfassenden IT-Governance Strategie Ing. Martin Pscheidl, MBA, MSc cert. IT Service Manager Manager, Technical Sales CA Software Österreich
Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville
Software Engineering Component-Based Software Engineering Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain that CBSE is concerned with developing standardised components
System Software Product Line
System Software Product Line 2 1 Introduction The concept of Software Product Lines has been developed for more than a decade. Being initially an academic topic, product lines are more and more incorporated
Reusable Knowledge-based Components for Building Software. Applications: A Knowledge Modelling Approach
Reusable Knowledge-based Components for Building Software Applications: A Knowledge Modelling Approach Martin Molina, Jose L. Sierra, Jose Cuena Department of Artificial Intelligence, Technical University
Wireless Sensor Network Performance Monitoring
Wireless Sensor Network Performance Monitoring Yaqoob J. Al-raisi & David J. Parish High Speed Networks Group Loughborough University MSN Coseners 12-13th 13th July 2007 Overview The problem we are trying
3 length + 23 size = 2
This pledged exam is closed textbook, open class web site, and two pieces of paper with notes. You may not access any other code or websites including your own. Write your email id and name on every page
Visualizing and Understanding Code Duplication in Large Software Systems
Visualizing and Understanding Code Duplication in Large Software Systems by Zhen Ming Jiang A thesis presented to the University of Waterloo in fulfillment of the thesis requirement for the degree of Master
Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
Getting Started With UML Class Modeling. An Oracle White Paper May 2007
Getting Started With UML Class Modeling An Oracle White Paper May 2007 Getting Started With UML Class Modeling INTRODUCTION... 3 WHAT IS CLASS MODELING... 3 CLASSES, ATTRIBUTES AND OPERATIONS... 4 GENERALIZATION...
Software Engineering Question Bank
Software Engineering Question Bank 1) What is Software Development Life Cycle? (SDLC) System Development Life Cycle (SDLC) is the overall process of developing information systems through a multi-step
DATA QUERY: ADVANCED DATA MODELLING
Online Intelligence Solutions DATA QUERY: ADVANCED DATA MODELLING Marion JOFFRE, Product marketing manager WHITE PAPER Summary Context 3 Accurate, detailed performance indicator monitoring 4 Data Query:
Making Software. What Really Works, and Why We Believe It. O'REILLY 8 Beijing Cambridge Farnham Koln Sebastopol Tokyo
Making Software What Really Works, and Why We Believe It Edited by Andy Oram and Greg Wilson O'REILLY 8 Beijing Cambridge Farnham Koln Sebastopol Tokyo PREFACE xi Part One GENERAL PRINCIPLES OF SEARCHING
Quality Management. Managing the quality of the software process and products
Quality Management Managing the quality of the software process and products Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 24 Slide 1 Objectives To introduce the quality management process
