COSC 3351 Software Design. Recap for the first quiz. Edgar Gabriel. Spring 2008. For the 1 st Quiz



Similar documents
Ingegneria del Software Corso di Laurea in Informatica per il Management. Object Oriented Principles

Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business

KWIC Exercise. 6/18/ , Spencer Rugaber 1

Agile Software Development

Karunya University Dept. of Information Technology

A UML Introduction Tutorial

Software Engineering

The Best Software Testing Arie Van Deursen TU Delft, 2011

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

Advanced Analysis and Design

IT3205: Fundamentals of Software Engineering (Compulsory)

What is a life cycle model?

IT2404 Systems Analysis and Design (Compulsory)

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

UML TUTORIALS THE USE CASE MODEL

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Process Models and Metrics

Object-Oriented Systems Analysis and Design

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

General Problem Solving Model. Software Development Methodology. Chapter 2A

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

Use Cases. Massimo Felici. Massimo Felici Use Cases c

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

Object Oriented Design

Assuming the Role of Systems Analyst & Analysis Alternatives

Overview. Software engineering and the design process for interactive systems. Standards and guidelines as design rules

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Chapter 3. Technology review Introduction

Chapter 4 Software Lifecycle and Performance Analysis

Software Development Methodologies in Industry. By: Ahmad Deeb

Product Development Best Practices

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

How To Understand The Software Development Lifecycle

COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4

Software Architecture Action Guide. Why do we care about Software Architecture?

Software Architecture. New wine in old bottles? (i.e., software architecture global design?, architect designer)

Unit 1 Learning Objectives

Software Testing and Software Development Lifecycles

Chap 1. Introduction to Software Architecture

Chapter 3 Methodology

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Service Oriented Architecture

Lecture 03 ( ) Quality of the Software Development Process

The Tropos and MaSE Agent-Oriented Software Engineering Methodologies. Msury Mahunnah, Tallinn University of Technology

Classical Software Life Cycle Models

(Refer Slide Time: 01:52)

Software Life-Cycle. Series of steps through which software product progresses. A life-cycle is selected during requirement Phase

LECTURE 1. SYSTEMS DEVELOPMENT

UML Diagram Types. Use Cases do the Following. Use Case Diagram

Lecture 3 Software Development Processes

Architectural Patterns: From Mud to Structure

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

What CMMI Cannot Give You: Good Software

Syllabus M.C.A. Object Oriented Modeling and Design usung UML

Software Development Process

Software Engineering and Scientific Computing

Unit I Page No. 1 System Development Object Basics Development Life Cycle Methodologies Patterns Frameworks Unified Approach UML

Architecture Design & Sequence Diagram. Week 7

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring

Software Requirements, Third Edition

Software Engineering 1

Chapter 8 Approaches to System Development

Business Process Driven SOA using BPMN and BPEL

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

11 Tips to make the requirements definition process more effective and results more usable

Unit I. Introduction

Communication Diagrams

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI.

A Template for Documenting Software and Firmware Architectures

Phase 2 Systems Analysis. Dr. Feng-Jen Yang

How To Design An Information System

Software Development Processes. Software Life-Cycle Models

2. Analysis, Design and Implementation

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24

ForeverSOA: Towards the Maintenance of Service-Oriented Architecture (SOA) Software

Software Process Models. Xin Feng

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

Requirements engineering and quality attributes

Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2. Component 2.1 Component 2.2.

How To Understand Software Engineering

Title: Topic 3 Software process models (Topic03 Slide 1).

User experience storyboards: Building better UIs with RUP, UML, and use cases

NAME: (Please PRINT) CEN Software Engineering

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

Compliance and Requirement Traceability for SysML v.1.0a

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

How To Develop Software

Data Management Roadmap

A Process Programmer Looks at the Spiral Model

Using Use Cases for requirements capture. Pete McBreen McBreen.Consulting

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Software Engineering Question Bank

2. Analysis, Design and Implementation

Automatic software measurement data collection for students

Lifecycle Models: Waterfall / Spiral / EVO

CONTENTS Preface xv 1 Introduction

Implementing Models and Standards for Software Development Benefits and Risks

Introduction. Introduction. Software Engineering. Software Engineering. Software Process. Department of Computer Science 1

Transcription:

COSC 3351 Software Design Recap for the first quiz Spring 2008 For the 1 st Quiz Three large topic areas: UML syntax and diagrams Software architectural styles Object oriented design principles A couple of filler questions from other lectures Software Engineering Design quality Design methodology 1

Introduction to Software Engineering We talked about various software development models Waterfall model ( with prototyping ) V model Phased Development: increments and iterations Spiral model Agile methods We discussed the individual steps e.g. in the waterfall model Requirements analysis System + Program Design Unit, Integration and System testing System Delivery Introduction to Software Engineering Describe 1 n of the models Describe the individual steps in a model Comparison of 2 n models(?) 2

Design Quality Design Plan: Objectives Description of product Rationales Plan of Production Description of Usage Different views in quality management: Transcendental User Manufacturing Product Value Design Quality Hierarchical software quality models McCall s model ISO 9126 Relational software quality models Perry s model Software design attributes Product oriented attributes Process oriented attributes 3

Design Methodology Design strategies Difference between decompositional and compositional methods Design templates Incremental and evolutionary strategies UML What is UML UML syntax Actors Boxes Cardinality Arrows Constraints stereotypes What types of UML diagrams did we discuss Use case Class Sequence (Package) (Statechart) 4

UML Explain components of a diagram Explain a (simple) UML diagram Draw a (simple) UML diagram Architectural Design Architectural styles Call and return Data centered Independent components Data flow Virtual machine Main program and subroutine Layered system Object oriented Data abstraction Abstract data types Repository Blackboard Client server Communicating processes Peer-to-peer Event based implicit invocation Pipe and filter Batch sequential processing Interpreter Rule based system 5

Architectural Design What are the characteristics of each of these design styles? Comparison of different styles What are strength and weaknesses? Alternative design for a given problem evaluated based on scenarios of interest Object Oriented design principles Odors of bad software Rigidity: every change forces many other changes to other parts of the code Fragility: changes cause the system to break in places that have no conceptual relationship to the part that was changed Immobility: hard to split the system into components that can be reused Viscosity: doing things right is more difficult than doing things wrong Needless complexity: wrongly anticipated changes Needless repetition: excessive use of the mouse Opacity: tendency of code to be difficult to read and understand 6

Object Oriented design principles SRP: Single Responsibility Principle OCP: The Open-Close Principle LSP: The Liskov Substitution Principle DIP: The Dependency Inversion Principle ISP: The Interface Segregation Principle Explain the main ideas behind each principle Given a (simple) code sequence, can you tell which principles are violated and what odors it causes? 7