Software Best Practices

Slides:



Advertisements
Similar presentations
Requirements for a UI Test Framework Stanislaw Wozniak Bernie Miles.
Advertisements

MIT Lincoln Laboratory A Service-Oriented Approach to Application Development Robert Darneille & Gary Schorer WPI MQP Presentations ICS Group 10 October.
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
By SAG Objectives Cross platform QA Automation for web applications Scheduling the automation Automatically build the test scripts Generate the.
Ruby on Rails Tutorial Peter Mosca April, Ruby on Rails Tutorial Ruby History Invented 12 years ago in Japan by Yukihiro Matsumoto Spent first 5.
Enterprise development reference architecture (EDRA) -Deepti Seelamsetti.
Introduction to Software Architecture. What is Software Architecture?  It is the body of methods and techniques that help us to manage the complexities.
J2ME Prepared by: - Gaery- Ronny - Alan- Andy. Why Technology for Mobile Devices? The nature of wireless devices is changing Old devices: All the software.
Ruby on Rails a popular web application framework, aimed to increase the speed and ease of web development Ruby on Rails, Tim Zappe.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Chapter 13 Web Application Infrastructure. Objectives Explain the components and purpose of a web application platform Describe several common webapp.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Data Structures and Programming.  John Edgar2.
A little engineering on Rails Robert W. Hasker. Goals Intro to the Rails framework ▫Basic concepts: MVC, Active Record ▫A bit of Ruby Using Rails to build.
Ruby on Rails CSCI 6314 David Gaspar Jennifer Garcia Avila.
M. Gallas IT-API LCG SPI project: testing1 Software Testing Infrastructure status LCG Software Process & Infrastructure (CERN, 10/23/02)
Singleton Christopher Chiaverini Software Design & Documentation September 18, 2003.
AUTOBUILD Build and Deployment Automation Solution.
Framework for Automated Builds Natalia Ratnikova CHEP’03.
Background The Encyclopedio of Life (EOL) is an ROR open source project to create a free, online reference source and database for every one of the 1.8.
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Design patterns. What is a design pattern? Christopher Alexander: «The pattern describes a problem which again and again occurs in the work, as well as.
CSCA48 Course Summary.
ENHANCED MONITORING TOOL PROJECT Project Presentation By: David Nasi & Amitay Svetlit Supervisor: Oved Itzhak Software Systems Lab Department of Electrical.
Distributed Java Programming Distributed Java Programming Setting up a Java Development Environment.
MVC Design Pattern Web Developer at Crimshield, Inc Application Developer at IBM Present - Delta Developer at Tides.
18 April 2005CSci 210 Spring Design Patterns 1 CSci 210.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Ganymede Simultaneous Release | © 2008 by Springsite B.V., The Netherlands made available under the EPL v1.0 Teneo Ganymede Simultaneous Release.
Introduction to Design Patterns. Questions What is a design pattern? Who needs design patterns? How different are classes and objects in APL compared.
Creational Patterns
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
Design of an Integrated Robot Simulator for Learning Applications Brendon Wilson April 15th, 1999.
1 Chapter 5:Design Patterns. 2 What are design pattern?  Schematic description of design solution to recurring problems in software design and,  Reusable.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 31. Review Creational Design Patterns – Singleton Pattern – Builder Pattern.
May08-21 Model-Based Software Development Kevin Korslund Daniel De Graaf Cory Kleinheksel Benjamin Miller Client – Rockwell Collins Faculty Advisor – Dr.
Java Programming: Advanced Topics1 Introduction to Advanced Java Programming Chapter 1.
L10: Model-View-Controller General application structure. User Interface: Role, Requirements, Problems Design patterns: Model – View – Controller, Observer/Observable.
FlowLevel Client, server & elements monitoring and controlling system Message Include End Dial Start.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Chapter 7 Lecture 1 Design and Implementation. Design and implementation Software design and implementation is the stage in the software engineering process.
By: Chad Gallati, Melissa Plakyda, Jenny Wilkes References: /a-z_programming_languages_groovy/
Chapter 13 Web Application Infrastructure
Design Patterns: MORE Examples
The Object-Oriented Thought Process Chapter 15
Chapter 5:Design Patterns
Introduction to Advanced Java Programming
Design Patterns Lecture part 2.
Play Framework: Introduction
Introduction to Design Patterns
APPLICATION OF DESIGN PATTERNS FOR HARDWARE DESIGN

A Complete Software Development Process Using Open Source Software
Ruby, Rails, GUIs, and More
Chapter 6: Using Design Patterns
Model-View-Controller Design Pattern
Web Programming Language
Automated Testing and Integration with CI Tool
ARCH-5: From Design to Implementation in OpenEdge® using UML and MDA
Design Tips.
Chapter 1 Introduction(1.1)
Chapter 7 –Implementation Issues
Teneo Ganymede Simultaneous Release Graduation Review
SE2811 Software Component Design Dr. Rob Hasker
Chapter 8, Design Patterns Introduction
FRAMEWORKS AND REUSE What is “Framework”?
Chapter 8, DesignPatterns Facade
#01# ASP.NET Core Overview Design by: TEDU Trainer: Bach Ngoc Toan
Presentation transcript:

Software Best Practices Peter Mosca April, 2007

What are Best Practices? Repeatable processes and techniques that have been shown to be effective ways to solve common problems. Reduce risk. Software Best Practices

Design Patterns Standard solutions to common problems in software design. Have been proven time and again. Software Best Practices

Design Patterns Singleton – there can only be one Factory – abstracts object creation MVC – Model View Controller Advanced Features: Full Object Orientation Extensible into Domain-Specific Languages Software Best Practices

Model View Controller Software Best Practices

Version Control Allows you to move backward in time Allows multiple developers simultaneous access to source code Branching avoids code freezes All documents – not just source code – should be placed under version control Subversion and CVS Ruby on Rails is the “killer app” for Ruby Software Best Practices

Unit Tests Tests a small portion of code An application will have LOTS of unit tests Also serves as a level of documentation Test-first development becoming more embraced in the field JUnit for Java David Heinemeier Hansson worked for 37 Signals in Denmark Software Best Practices

Continuous Builds The entire application automatically compiled on a regular bases Unit Tests are automatically run Should be automatically run whenever anyone changes source code Cruise Control Full-Stack: the components are integrated so that bridges between them do not need to be set up manually Software Best Practices

Summary Best Practices help mitigate risk Best Practices enable you to embrace change describe the rebellion against the fallacy of objective software. That software should be as configurable as possible from the outset to allow every user to bend it exactly to their needs. Flexibility is overrated. Software Best Practices