CS 190 Lecture Notes: Wrapup

Slides:



Advertisements
Similar presentations
Revealing the Secrets of Self-Documenting Code Svetlin Nakov Telerik Corporation For C# Developers.
Advertisements

Software Engineering Routine design. High quality routines Routine: individual method or procedure invocable for a single purpose.
Object-Oriented Metrics. Characteristics of OO ● Localization ● Encapsulation ● Information hiding ● Inheritence ● Object abstraction.
Copyright W. Howden1 Lecture 6: Design Evaluation and Intro to OO Design Patterns.
CS533 Concepts of Operating Systems Class 20 Summary.
Bellevue University CIS 205: Introduction to Programming Using C++ Lecture 13: Pass-by-Value?!?
CSE 111: Object Oriented Design. Design “To program is human but to design is divine” (WEH)
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
Oct. 9, 2003CS WPI1 CS 509 Design of Software Systems Lecture #6 Thursday, Oct. 9, 2003.
How do you simplify? Simple Complicated.
CS (CCN 27241) Software Engineering for Scientific Computing Lecture 5: C++ Key Concepts.
CS212: Object Oriented Analysis and Design Lecture 10: Copy constructor-II.
CS 4310: Software Engineering Lecture 4 System Modeling The Analysis Stage.
CS242.  Reduce Complexity  Introduce an intermediate, understandable abstraction  Avoid code duplication  Support subclassing  Hide sequences  Hide.
Dr.Basem Alkazemi
Software Waterfall Life Cycle
CSCE 315 – Programming Studio Spring Goal: Reuse and Sharing Many times we would like to reuse the same process or data for different purpose Want.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
High-Quality Routines Chapter 5-6. Review Class Quality Checklist 2.
Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
CSci 162 Lecture 8 Martin van Bommel. Large-scale Programming Up to now we have been writing relatively short programs to solve simple problem Want to.
Principles of Programming & Software Engineering
Software Design.
Operating System Structures
Architecture Brief Pepper
Topic: Recursion – Part 2
Software Engineering Lecture 4 System Modeling The Analysis Stage.
More Sophisticated Behavior
Testing More In CS430.
Writing Requirements Lecture # 23.
Design Patterns Lecture part 2.
CS240: Advanced Programming Concepts
Software Design Mr. Manoj Kumar Kar.
CSE 403 Software Engineering
CS 5010 Program Design Paradigms "Bootcamp" Lesson 12.1
Topic: Functions – Part 2
AFP - Lecture 2 Domain Specific Embedded Languages
Programming Problem steps must be able to be fully & unambiguously described Problem types; Can be clearly described Cannot be clearly described (e.g.
DHT11 Temperature and Humidity Measurement
Object oriented system development life cycle
Lecture 2 of Computer Science II
Lecture 2 Domain Specific Embedded Languages
The Object-Oriented Thought Process Chapter 05
Political & Directive Leadership
IMPORTANT NOTICE TO STUDENTS:
CS 190 Lecture Notes: Wrapup
Object Oriented Design Patterns - Structural Patterns
CS240: Advanced Programming Concepts
Software Architecture
Domain Analysis Model A Domain Analysis Model (DAM) is a structured way to describe and docu-ment the information requirements of a particular area of.
Informatics 122 Software Design II
Unit 3: Lesson 6 & 7- Functions and Top-Down Design / APIs and Function Parameters Day 27.
Dr. Bhargavi Dept of CS CHRIST
IMPORTANT NOTICE TO STUDENTS:
CSE373: Data Structures & Algorithms Lecture 16: Software-Design Interlude – Preserving Abstractions Dan Grossman Fall 2013.
Software Design and Architecture
CS 190 Lecture Notes: Wrapup
Middleware, Services, etc.
CS310 Software Engineering Lecturer Dr.Doaa Sami
COP 3330 Object-oriented Programming in C++
Topical Paper Presentation #07
Object Oriented Analysis and Design
CS 112 Programming 2 Lecture 02 Abstract Classes & Interfaces (2)
Object/Class Design.
Rocky K. C. Chang September 11, 2018
ENERGY 211 / CME 211 Lecture 27 November 21, 2008.
Oriented Design and Abstract Data Type
Integrated rate laws Rate laws Mechanisms
Design Principles Thanks to Matt Bishop 2006 CS 395: Computer Security.
Introduction To Software Development Environment
Presentation transcript:

CS 190 Lecture Notes: Wrapup Key Concepts Overall goal: reduce complexity Dependencies Obscurity Good design is an investment Tactical vs. strategic programming Complexity is incremental: zero tolerance Abstraction: find simple ways to think about complicated things Information hiding Interface vs. implementation Classes should be deep General-purpose classes are deeper Different layers should have different abstractions Pull complexity downward Comments should describe things that aren’t obvious from the code Comments are at a different level of precision than code Names matter! Define errors out of existence Code should be obvious CS 190 Lecture Notes: Wrapup

CS 190 Lecture Notes: Wrapup Red Flags Shallow classes Information leakage Dependencies Conjoined methods/classes Temporal decomposition Pass-through methods Code duplication Special cases Inconsistencies Comment duplicates code Implementation contaminates interface documentation Documentation has to be long to be complete Vague names Code is not obvious CS 190 Lecture Notes: Wrapup