How to: Design and Develop an Application to Ensure its Quality James Hippolite Senior.NET Developer Telecom New Zealand Limited James Hippolite Senior.NET.

Slides:



Advertisements
Similar presentations
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Advertisements

Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Chapter 4 Quality Assurance in Context
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
Local Touch – Global Reach The New Tester Matthew Eakin, Manager Managed Testing Practice Sogeti, USA.
Software Engineering 1. Software development – the grand view 2. Requirements engineering.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Alternate Software Development Methodologies
1 Independent Verification and Validation Current Status, Challenges, and Research Opportunities Dan McCaugherty IV&V Program Manager Titan Systems Corporation.
System Analysis and Design (SAD )
Chapter Extension 19 Alternative Development Techniques © 2008 Pearson Prentice Hall, Experiencing MIS, David Kroenke.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
Slide 1 Systems Analysis & Design CS183 Spring Semester 2008 Dr. Jonathan Y. Clark Course Website:
OO Development Process. UML and Process UML standardizes notation, not process –Increase likelihood of widespread acceptance There is significant variability.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Slide 1 INTRODUCTION Chapter 1. Slide 2 Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
The Process of Interaction Design. What is Interaction Design? It is a process: — a goal-directed problem solving activity informed by intended use, target.
1 SOFTWARE QUALITY ASSURANCE Basic Principles. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance SW Quality:
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
Software Quality Assurance For Software Engineering && Architecture and Design.
Software Life Cycle Model
Release & Deployment ITIL Version 3
Software Development Life Cycle (SDLC)
Test Driven Development An approach to writing better code Jimmy Zimmerman Intel Corporation.
Ch 2: Software Life-Cycle Models CSCI Ideal Software Development.
Don Von Dollen Senior Program Manager, Data Integration & Communications Grid Interop December 4, 2012 A Utility Standards and Technology Adoption Framework.
Managing Software Quality
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Continuous Integration and Testing
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
1 Process Engineering A Systems Approach to Process Improvement Jeffrey L. Dutton Jacobs Sverdrup Advanced Systems Group Engineering Performance Improvement.
1 Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
Industry SDLCs and Business Climate. Justin Kalicharan Credentials Director and Senior Technology Officer Over 14 years of coding experience in various.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Balancing Agility and Discipline Chapter 4 Sharon Beall EECS 811 April 22, 2004.
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
1/7/2004CSG - Project Delivery at UT Austin1 Making a Model Perform Adopting a methodology to your environment.
Chapter 6: Thinking about requirements and describing them.
1 6 C H A P T E R REQUIREMENTS DISCOVERY. 2 Chapter Six Requirements Discovery Define system requirements and differentiate between functional and nonfunctional.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
Agile Software Development Jeff Sutherland, one of the developers started it In February 2001, 17 Tools: continuous integration, automated or xUnit test,
MNP1163 (Software Construction).  SDLC and Construction Models  Construction Planning  Construction Measurement.
1 - 1 Systems Analysis and Design, Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding.
Software Development Life Cycle (SDLC)
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
Rational Unified Process (RUP)
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
Introduction Requirements and the Software Lifecycle (3)
T Project Review MTS [PP] Iteration
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Advanced Software Engineering Dr. Cheng
Announcements/Assignments
Methodologies and Algorithms
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Lecture 3 Prescriptive Process Models
Chapter - 8 Implementation.
Continuous Integration and Testing
Software Processes (a)
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4th Edition.
Chapter 2 Software Processes
Continuous Delivery good & bad 4/20/2012
Progression of Test Categories
Presentation transcript:

How to: Design and Develop an Application to Ensure its Quality James Hippolite Senior.NET Developer Telecom New Zealand Limited James Hippolite Senior.NET Developer Telecom New Zealand Limited

Agenda Defining Quality Defining Quality Designing Quality Designing Quality Developing Quality Developing Quality Questions? Questions?

Defining Quality Managing Tradeoffs Managing Tradeoffs –Fixed –Chosen –Adjustable Quality is the fourth dimension Quality is the fourth dimension –Should never be compromised ResourcesSchedule Features

Defining Quality (cont) Bad Bad –Amorphous –Ambiguous Examples Examples –Make it fast –Make it cool –Make it work Good Good –Specific –Early –Consistent –Measurable –Evaluate –Feedback

Designing Quality Scalability Scalability Availability Availability Reliability Reliability Performance Performance Interoperability Interoperability Localisation & Globalisation Localisation & Globalisation

Design for Scalability Common Approaches Common Approaches –Scaling Up –Scaling Out Guidelines Guidelines –Asynchronous –Non-competition of resources –Commutability –Interchangeability –Partition resources and activities

Design for Availability Measurements Measurements –Mean Time Between Failures –Mean Time to Recovery Guidelines Guidelines –Reduce planned downtime –Reduce unplanned downtime –Use network load balancing –Use RAID for data stores –Isolate mission-critical applications –Use queuing

Designing for Reliability The ability of the application to provide accurate results The ability of the application to provide accurate results Tasks Tasks –Putting reliability requirements in the specification –Using a good architectural infrastructure –Including management information in the application –Using redundancy –Using quality development tools –Using reliability checks that are provided by the application –Implementing error handling –Reducing the application’s functionality instead of completely failing the application

Designing for Performance Performance goals and metrics Performance goals and metrics –What is the business goal? –What is the critical functionality of the system? –What are the features required by different sets of users? Designing for performance Designing for performance –Identifying constraints –Determining features –Specifying the load

Design for Interoperability Reasons Reasons –Reduces operational cost and complexity –Enables optimal deployments –Uses existing investments Designing for Interoperability Designing for Interoperability –Network interoperability –Data interoperability –Applications interoperability –Management interoperability

Design for Globalisation and Localisation Definitions Definitions –Making the application capable of operating in multiple cultures and locales –Adapting the application to a specific culture and locale Issues Issues –Language –Formatting –String-related –User interface

Developing Quality Testing Testing Reviewing Reviewing Training Training

Testing Test Often Test Often –Unit, Systems, Integration, Load (Stress), User Acceptance, Regression Test Driven Development Test Driven Development –Design test to fail first –Write code to make test pass –Iterate for each function –Refactor to accommodate changes –Voilà! Instant regression tests

Reviewing Code Code –This happens naturally, esp. when the customer wants a new function six months (or six years!) later –Take time to appraise code. Is it understandable to another developer? Peer Peer –Systemic examination of source code intended to find and fix mistakes overlooked in initial development phase –Improves both the overall quality of software and the developer’s skill Post-Implementation Post-Implementation –Project team’s opportunity to discover what went right/wrong

Training Certification Certification –Maintaining currency with latest technologies Best Practices Best Practices –Adhere to coding standards –Source code version control –Design Patterns

Adhere to coding standards Appropriate use of comments Appropriate use of comments Use expressive variables Use expressive variables Maintain scope Maintain scope

Design Patterns Many, small functions = code reuse Many, small functions = code reuse N-tier development N-tier development Agile development Agile development –RAD –Prototyping –Extreme –TDD MVC MVC

Source code version control Accidents happen, get your code backed up Accidents happen, get your code backed up Not just accidents, go back a version if necessary Not just accidents, go back a version if necessary Pair programming Pair programming Only check in code that compiles! Only check in code that compiles!

Q&A