Topics. Software Process. Agile. Requirements. Basic Design. Modular Design. Design Patterns. Testing. Quality. Refactoring.

Similar documents
UNIT I Introduction to Design Patterns

Design Pattern. CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.)

CSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich

SYLLABUS CHAPTER - 1 [SOFTWARE REUSE SUCCESS FACTORS] Reuse Driven Software Engineering is a Business

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar

Introduction to Software Engineering: Object Design I Reuse & Patterns

SDC Design patterns GoF

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 6: Design Patterns

Ingegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1

UNIT I Introduction to Design Patterns

1 Software Architecture

Design Patterns. Manuel Mastrofini. Systems Engineering and Web Services. University of Rome Tor Vergata June 2011

Lecture 4: Observer Pattern, Event Library and Componentization

Application Architectures, Design Patterns

DESIGN PATTERN - INTERVIEW QUESTIONS

CSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich

Design patterns. Jef De Smedt Beta VZW

Applying Design Patterns to SCA Implementations

INSTITUTE OF AERONAUTICAL ENGINEERING

DESIGN PATTERNS MOCK TEST DESIGN PATTERNS MOCK TEST II

Object Oriented Methods with UML. Introduction to Design Patterns- Lecture 8

CSCI 253. Overview. The Elements of a Design Pattern. George Blankenship 1. Object Oriented Design: Iterator Pattern George Blankenship

The Strategy Pattern Design Principle: Design Principle: Design Principle:

Design Patterns. An introduction

UP Requirements. Software Design - Dr Eitan Hadar (c) Activities of greater emphasis in this book. UP Workflows. Business Modeling.

Design Patterns: Structural and Behavioural

Design Patterns. Observations. Electrical Engineering Patterns. Mechanical Engineering Patterns

Object-oriented Software Design Patterns

Agile Architecture. The Why, the What and the How

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

CS251 Software Engineering Lectures 18: Intro to DP

design patterns FOR B.tech (jntu - hyderabad & kakinada) (IV/I - CSE AND IV/II - IT) CONTENTS 1.1 INTRODUCTION TO DESIGN PATTERNS TTERNS... TTERN?...

Test Driven Development (TDD), and Working with Legacy Code Using C# Workshop ( 4 days)

A Reconnaissance on Design Patterns

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Software Development Project. Kazi Masudul Alam

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar

Tuesday, October 4. Announcements

Using Design Patterns in Java Application Development

Software Design COSC 4353/6353 D R. R A J S I N G H

C++ for System Developers with Design Pattern

Review Software Engineering October, 7, Adrian Iftene

Software Engineering I (02161)

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

MVC. Model-View-Controller. Design Patterns. Certain programs reuse the same basic structure or set of ideas

Ownership in Design Patterns. Master's Thesis Final Presentation Stefan Nägeli

R07. IV B.Tech. II Semester Supplementary Examinations, July, 2011

CPSC 310: Sample Final Exam Study Questions 2014S1 (These are in addition to the Study Questions listed at the end of some lectures)

Object-Oriented Oriented Programming

Information systems modelling UML and service description languages

Applying Design Patterns to accelerate development of reusable, configurable and portable UVCs. Accellera Systems Initiative 1

SWEN425 DESIGN PATTERNS

Design Patterns Reid Holmes

A Case Study of Gang of Four (GoF) Patterns: Part 3

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

Chapter 8, Design Patterns Visitor

CSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1

CSC207H: Software Design Lecture 6

Practice Problems. Review, with SOME solutions

TDDB84. Lecture 2. fredag 6 september 13

Software Engineering with Objects and Components Open Issues and Course Summary

Ingegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1

Lecture 20: Design Patterns II

CSSE 374: More Object Design with Gang of Four Design Patterns

Design Patterns. Hausi A. Müller University of Victoria. Software Architecture Course Spring 2000

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.

Design Patterns. SE3A04 Tutorial. Jason Jaskolka

Applying Some Gang of Four Design Patterns CSSE 574: Session 5, Part 3

I, J. Key-value observing (KVO), Label component, 32 text property, 39

Plan. Design principles: laughing in the face of change. What kind of change? What are we trying to achieve?

Overview CS Kinds of Patterns. Design Pattern. Factory Pattern Rationale. Kinds of Factory Patterns

Requirements and Design Overview

Design Patterns. "Gang of Four"* Design Patterns. "Gang of Four" Design Patterns. Design Pattern. CS 247: Software Engineering Principles

The Design Patterns Matrix From Analysis to Implementation

administrivia today UML start design patterns Tuesday, September 28, 2010

CS 247: Software Engineering Principles. Design Patterns

CSCI 253. Overview. The Elements of a Design Pattern. George Blankenship 1. Object Oriented Design: Template Method Pattern. George Blankenship

Object Oriented Paradigm

CS/CE 2336 Computer Science II

Applying the Observer Design Pattern

Extensibility Design Patterns From The Initial Stage of Application Life-Cycle

WS01/02 - Design Pattern and Software Architecture

A few important patterns and their connections

Plan. A few important patterns and their connections. Singleton. Singleton: class diagram. Singleton Factory method Facade

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar

CS560. Lecture: Design Patterns II Includes slides by E. Gamma et al., 1995

CSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich

6.3 Patterns. Definition: Design Patterns

Software Engineering I (02161)

The GoF Design Patterns Reference

Idioms and Design Patterns. Martin Skogevall IDE, Mälardalen University

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

COSC 3351 Software Design. Design Patterns Behavioral Patterns (I)

Software Reengineering Refactoring To Patterns. Martin Pinzger Delft University of Technology

CSE 70 Final Exam Fall 2009

Exam in TDDB84: Design Patterns,

Advanced C++ Programming Workshop (With C++11, C++14, C++17) & Design Patterns

OODP Session 4. Web Page: Visiting Hours: Tuesday 17:00 to 19:00

Analyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern

A Rapid Overview of UML

Transcription:

CS310 - REVIEW

Topics Process Agile Requirements Basic Design Modular Design Design Patterns Testing Quality Refactoring UI Design

How these things relate

Process describe benefits of using a software process describe waterfall and spiral model including drawbacks describe the importance of agile methods

Agile Test-Driven Development (tests written first) Scrum - sprints, backlogs ceremonies describe the importance of agile methods

Quality Quality concerns span the lifecycle enforce quality constraints specify ilities ascertain scope and acceptability maintain code quality! (do minimal, appropriate design and ongoing testing and maintenance) ensure compliance Design Quality influences Code Quality Quality is hard to measure, but there are many indicators Mechanisms like code review, pair programming, refactoring, improve quality

Requirements Why requirements are needed How to elicit requirements User stories, and how to write good ones (INVEST)

UI Design Nielsen Principles of Design Appropriate components for usage Rapid/Lighweight Prototyping Approach & Usability Testing

Basic Design From CS210 UML Sequence Diagrams & Class Diagrams Naming conventions and syntax

Coding! This was covered in labs, and earlier courses

Refactoring emergent design We went through some code smells, and some prescribed refactorings Now that you have code, it s time to refactor! Why refactor? When to refactor? When not to refactor? Looked at code smells, and how they necessitate refactorings

Modular Design these are all principles that motivate refactorings Pragmatic Programmer: Eliminate Effects Between Unrelated Things design components that are: self-contained, independent, and have a single, well-defined purpose strong cohesion versus loose coupling information hiding; Liskov Substitution Principle; Open/Closed Principle; Law of Demeter ultimately about localisation of reasoning; reduction of scattering and tangling of concerns

Design Patterns Creational Structural Behavioural Singleton a factory might be the result of a refactoring where a class Interpreter has Facade >1 responsibility Chain of Responsibility Factory Abstract Factory Builder Prototype Bridge Adapter Proxy Decorator Flyweight Command we saw that certain code smells Iterator (not quite duplicate code) could Mediator motivate use of a template method Memento pattern Observer State Template Composite Strategy Visitor A typical motivation for the use of design patterns is detection of a code smell

Testing Types of Testing (Unit, Regression, Integration, Acceptance) Testing Tactics (Black Box, White Box) Stopping Criteria (Equivalence classes, Boundary Tests, Coverage) Who should test software? Mock Objects

How to Study Re-read the slides and follow the links for clarification and more context. Try to work on the sample systems to do examples of the things we covered Ask questions on Piazza I will be holding virtual office hours on Sunday, at a time TBA. You can queue up your question (I might even get to it early!)