Vragen en opdracht. Complexity. Modularity. Intra-modular complexity measures



Similar documents
Design methods. List of possible design methods. Functional decomposition. Data flow design. Functional decomposition. Data Flow Design (SA/SD)

Object Oriented Design

Percerons: A web-service suite that enhance software development process

Analysis / Design. Traditional Development. Process models. Common Methodologies. Common Approach. Analysis: DFD. Traditional Software Development 1

Chap 4. Using Metrics To Manage Software Risks

Lecture 9: Requirements Modelling

Vragen. Architecture presentations in practice. Some terms (from IEEE standard)

Definitions. Software Metrics. Why Measure Software? Example Metrics. Software Engineering. Determine quality of the current product or process

EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS

Chapter 8 Approaches to System Development

PERANCANGAN SISTEM INFORMASI

Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Karunya University Dept. of Information Technology

TOGAF usage in outsourcing of software development

(BA122) Software Engineer s Workshop (SEW)

Vragen. Software development model. Software development model. Software development model

How To Calculate Class Cohesion

Open Source Software: How Can Design Metrics Facilitate Architecture Recovery?

Object-Oriented Design Guidelines

Software Analysis Visualization

II. TYPES OF LEVEL A.

Masters of Science in Software & Information Systems

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Algorithms, Flowcharts & Program Design. ComPro

Chap 1. Introduction to Software Architecture

Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha

How To Design Software

Quality Analysis with Metrics

Layered Approach to Development of OO War Game Models Using DEVS Framework

Programming Language Constructs as Basis for Software Architectures

Object Oriented Programming. Risk Management

OO Design Quality Metrics

EPL603 Topics in Software Engineering

Object-oriented design methodologies

How To Develop Software

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

A Structured Methodology For Spreadsheet Modelling

Designing Real-Time and Embedded Systems with the COMET/UML method

Flowcharting, pseudocoding, and process design

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

How Designs Differ By: Rebecca J. Wirfs-Brock

Business Architecture with ArchiMate symbols and TOGAF Artefacts

Software Project Management and UML

specifications 15. Approaches to constructing The outline of this part:

How To Draw A Cell Phone Into A Cellphone In Unminimal Diagram (Uml)

Detecting Defects in Object-Oriented Designs: Using Reading Techniques to Increase Software Quality

SOFTWARE ENGINEERING INTERVIEW QUESTIONS

Quality prediction model for object oriented software using UML metrics

Unit Title: Personnel Information Systems Unit Reference Number: F/601/7510 Guided Learning Hours: 160 Level: Level 5 Number of Credits: 18

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Glossary of Object Oriented Terms

A Comparison of SOA Methodologies Analysis & Design Phases

22C:22 (CS:2820) Object-Oriented Software Development

Module 1. Introduction to Software Engineering. Version 2 CSE IIT, Kharagpur

Formal Engineering for Industrial Software Development

IT2404 Systems Analysis and Design (Compulsory)

D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

Research Article Predicting Software Projects Cost Estimation Based on Mining Historical Data

Modeling Web Applications Using Java And XML Related Technologies

Chapter 8 The Enhanced Entity- Relationship (EER) Model

Software Design Document (SDD) Template

Using UML Part One Structural Modeling Diagrams

Chapter 11: Integrationand System Testing

Applying 4+1 View Architecture with UML 2. White Paper

Increasing Development Knowledge with EPFC

Comparison between Traditional Approach and Object-Oriented Approach in Software Engineering Development

MODERN OBJECT-ORIENTED SOFTWARE DEVELOPMENT

Menouer Boubekeur, Gregory Provan

Software Engineering (Set-I)

Assessing Internal Software Quality Attributes of the Object-Oriented and Service-Oriented Software Development Paradigms: A Comparative Study

Java Application Developer Certificate Program Competencies

Using Library Dependencies for Clustering

Using UML Part Two Behavioral Modeling Diagrams

Software Life Cycle. Management of what to do in what order

Functional Decomposition Top-Down Development

Assuming the Role of Systems Analyst & Analysis Alternatives

BIS 3106: Business Process Management. Lecture Two: Modelling the Control-flow Perspective

Classnotes 5: 1. Design and Information Flow A data flow diagram (DFD) is a graphical technique that is used to depict information flow, i.e.

A Methodology for the Development of New Telecommunications Services

High-level Design. What is software architecture?

SOFTWARE TESTING. A Craftsmcm's Approach THIRD EDITION. Paul C. Jorgensen. Auerbach Publications. Taylor &. Francis Croup. Boca Raton New York

Extend the value of your core business systems.

Software Engineering. System Models. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Testing Strategies and Techniques

Process Modelling from Insurance Event Log

Transcription:

Vragen en opdracht Complexity Wat wordt er bedoeld met design g defensively? Wat is het gevolg van hoge complexiteit icm ontwerp? Opdracht: http://www.win.tue.nl/~mvdbrand/courses/se/1011/opgaven.html Analyse van URD Groepsindeling vanmiddag of morgen online; indien je naam niet op de lijst voorkomt, stuur mij een mailtje Deadline: 11 April 2011 Registreren en inleveren via Peach3 Measure certain aspects of the software (lines of code, # of if-statements, depth of nesting, ) Use these numbers as a criterion to assess a design, or to guide the design Interpretation: higher value higher complexity more effort required (= worse design) Two kinds: intra-modular: inside one module inter-modular: between modules / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 0 / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 1 Modularity Intra-modular complexity measures Calculating quality metrics on the source code Fan Out (# modules called) for small programs, the various measures correlate well with programming time however, a simple length measure such as LOC does equally well complexity measures are not very context sensitive complexity measures take into account few aspects it might help to look at the complexity density instead Fan In (called by # modules) / Department of Mathematics and Computer Science 16-3-2011 / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 3

System structure: inter-module complexity The uses relation looks at the complexity of the dependencies between modules draw modules and their dependencies in a graph then the arrows connecting modules may denote several relations, such as: A contains B A precedes B A uses B we are mostly interested in the latter type of relation In a well-structured piece of software, the dependencies show up as procedure calls therefore, this graph is known as the call-graph possible shapes of this graph: chaos (directed graph) hierarchy (acyclic graph) strict hierarchy (layers) tree / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 4 / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 5 In a picture OO Metrics chaos hierarchy WMC: weighted methods per class based on cyclomatic complexity, size, etc. per method DIT: depth of class in inheritance tree distance to top of inheritance tree NOC: number of children counts direct descendants of a class strict hierarchy tree / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 6 / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 7

OO Metrics Design methods CBO: coupling between object class counts the number of class a class is connected to via method or variable afferent coupling: dependence of a package on its environment efferent coupling: dependence of the environment on a package RFC: response for a class LCOM: lack of cohesion of a method Functional decomposition Data Flow Design (SA/SD) Design based on Data Structures (JSD/JSP) OO is good, isn t it / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 8 / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 9 List of possible design methods Interesting web page Decision tables OOD E-R Flowcharts FSM JSD JSP LCP Meta IV NoteCards OBJ PDL Petri Nets SA/SD SA/WM SADT SSADM Statecharts http://www.smartdraw.com/resources/tutorials/ / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 10 / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 11

Functional decomposition Data flow design Extremes: bottom-up and top-down Not used as such; design is not purely rational: clients do not know what they want changes influence earlier decisions people make errors projects do not start from scratch Rather, design has a yo-yo character We can only fake a rational design process Yourdon and Constantine (early 70s) nowadays version: two-step process: Structured Analysis (SA), resulting in a logical design, drawn as a set of data flow diagrams Structured Design (SD) transforming the logical design into a program structure drawn as a set of structure charts / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 12 / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 13 Design based on data structures (JSP & JSD) JSP = Jackson Structured Programming g (for programming-in-the-small) JSD = Jackson Structured t Design (for programmingin-the-large) JSP basic idea: good program reflects structure of its input and output program can be derived almost mechanically from a description of the input and output input and output are depicted in a structure diagram and/or in structured text/schematic logic (a kind of pseudocode) three basic compound forms: sequence, iteration, and selection) / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 14 / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 15

Difference between JSP and other methods Functional decomposition, data flow design: Problem structure functional structure program structure JSP: Problem structure t data structure t program structure JSD: Jackson Structured Design Problem with JSP: how to obtain a mapping from the problem structure to the data structure? JSD tries to fill this gap JSD has three stages: modeling stage: description of real world problem in terms of entities and actions network stage: model system as a network of communicating processes implementation stage: transform network into a sequential design / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 16 / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 17 JSD s modeling stage JSD models the UoD as a set of entities For each entity, a process is created which models the life cycle of that entity This life cycle is depicted d as a process structure t diagram (PSD); these resemble JSP s structure diagrams PSD s are finite state diagrams; only the roles of nodes and edges has been reversed: in a PSD, the nodes denote transitions while the edges denote states DataStreams connect processes and specify what information is passed dbetween them: State Vectors are an alternative way of connecting processes. They specify the characteristic or state of the entity being changed by a process: Network diagram: / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 18 / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 19

OOAD methods (Part of) problem statement Three major steps: 1 identify the objects 2 determine their attributes and services 3 determine the relationships between objects Design the software to support the operation of a public library. The system has a number of stations for customer transactions. These stations are operated by library employees. When a book is borrowed, the identification card of the client is read. Next, the station s bar code reader reads the book s code. When a book is returned, the identification card isnot needed and only the book s code needs to be read. SE, Design, Hans van Vliet, 2008 20 SE, Design, Hans van Vliet, 2008 21 Candidate objects Carefully consider candidate list software library system station customer transaction book library employee identification card client bar code reader book s code eliminate implementation constructs, such as software replace or eliminate vague terms: system computer equate synonymous terms: customer and client client eliminate operation names, if possible (such as transaction ) be careful in what you really mean: can a client be a library employee? Is it book copy rather than book? eliminate individual objects (as opposed to classes). book s code attribute of book copy SE, Design, Hans van Vliet, 2008 22 SE, Design, Hans van Vliet, 2008 23

Relationships Result: initial class diagram From the problem statement: employee operates station station has bar code reader bar code reader reads book copy bar code reader reads identification card Tacit knowledge: library owns computer library owns stations computer communicates with station library employs employee client is member of library client has identification card SE, Design, Hans van Vliet, 2008 24 SE, Design, Hans van Vliet, 2008 25 Usage scenario sequence diagram OO as middle-out design First set of objects becomes middle level To implement these, lower-level objects are required, often from a class library A control/workflow set of objects constitutes the top level SE, Design, Hans van Vliet, 2008 26 SE, Design, Hans van Vliet, 2008 27

OO design methods Booch method Booch: early, new and rich set of notations Fusion: more emphasis on process RUP: full life cycle model associated with UML identify classes and objects identify semantics of classes and objects identify relationships between classes and objects identify interface and implementation of classes and objects SE, Design, Hans van Vliet, 2008 28 SE, Design, Hans van Vliet, 2008 29 Fusion Classification of design methods Analysis Design object model object interaction graphs class descriptions interface model visibility graphs inheritance graphs Simple model with two dimensions: Orientation dimension: Problem-oriented: understand problem and its solution Product-oriented: correct transformation from specification to implementation Product/model dimension: Conceptual: descriptive models Formal: prescriptive models SE, Design, Hans van Vliet, 2008 30 SE, Design, Hans van Vliet, 2008 31

Classification of design methods (cnt d) Characteristics of these classes problem-oriented product-oriented I: understand the problem conceptual I ER modeling Structured analysis II Structured design II: transform to implementation III: represent properties formal III JSD VDM IV Functional decomposition JSP IV: create implementation units SE, Design, Hans van Vliet, 2008 32 SE, Design, Hans van Vliet, 2008 33 Caveats when choosing a particular design method Familiarity with the problem domain Designer s experience Available tools Development philosophy Object-orientation: does it work? do object-oriented methods adequately capture requirements engineering? do object-oriented t methods adequately capture design? do object-oriented methods adequately bridge the gap between analysis and design? are oo-methods really an improvement? SE, Design, Hans van Vliet, 2008 34 SE, Design, Hans van Vliet, 2008 35

Techniques for making good design decisions Using priorities and objectives to decide among alternatives Step 1: List and describe the alternatives for the design decision. Step 2: List the advantages and disadvantages of each alternative with respect to your objectives and priorities. Step 3: Determine whether any of the alternatives prevents you from meeting one or more of the objectives. Step 4: Choose the alternative that helps you to best meet your objectives. Step 5: Adjust priorities for subsequent decision making. / Faculteit Wiskunde en Informatica 16-3-2011 PAGE 36