CSC444F'07Lecture 41 CSC444 Software Engineering Top 10 Practices.

Slides:



Advertisements
Similar presentations
Configuration Management
Advertisements

1.Quality-“a characteristic or attribute of something.” As an attribute of an item, quality refers to measurable characteristics— things we are able to.
Automated Software Testing: Test Execution and Review Amritha Muralidharan (axm16u)
HP Quality Center Overview.
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
© 2005 by Prentice Hall Appendix 2 Automated Tools for Systems Development Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F.
Software Delivery. Software Delivery Management  Managing Requirements and Changes  Managing Resources  Managing Configuration  Managing Defects 
11.1 Lecture 11 CASE tools IMS Systems Design and Implementation.
Software Quality Engineering Roadmap
School of Computing, Dublin Institute of Technology.
RIT Software Engineering
SE 450 Software Processes & Product Metrics 1 Defect Removal.
Software Configuration Management
Software Engineering Institute Capability Maturity Model (CMM)
Capability Maturity Model
CSC444F'05Lecture 11 CSC444 Software Engineering Prof. David A. Penny Lectures Will start at 7:10 pm Please come out now to purchase a book for $40. If.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Appendix 2 Automated Tools for Systems Development © 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 2 Slide 1.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Test Organization and Management
RUP Fundamentals - Instructor Notes
Chapter 2 The process Process, Methods, and Tools
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
N By: Md Rezaul Huda Reza n
Seattle Area Software Quality Assurance Group Release and Configuration Management, The Acceleration of Change and Its Contribution To Software Quality.
Software Testing Life Cycle
Software Quality Assurance Activities
CSC444F'06Lecture 111 Process Control. CSC444F'06Lecture 112 The Process Document A document that concisely describes the steps we go through to produce.
Distributed Agile: Ten Guiding Principles Student: Yu Chang 張鈺 Raja Bavani, Chief Architect, Mindtree 28Dec Department of Computer Science and Information.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Teaching material for a course in Software Project Management & Software Engineering – part II.
CSC444F'06Lecture 11 CSC444 Software Engineering Prof. David A. Penny Lectures Will start at 7:10 pm Break at 8:00 pm, Resume at 8:10 pm End at 9:00 pm.
Software Development Process and Management (or how to be officious and unpopular)
Martin Cryer Software Development. ‹#› Development Processes Traditional e.g. Waterfall Method Agile –Design Build (Quick to Market) –Combines Engineering,
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Georgia Institute of Technology CS 4320 Fall 2003.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
Team Skill 6: Building the Right System Assessing Requirements Quality (29)
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
CSC444F'05Lecture 71 Source Control & Build. CSC444F'05Lecture 72 Source Control THE most important tool for commercial software development. Source –as.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Software Engineering Lecture # 1.
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Test Plan: Introduction o Primary focus: developer testing –Implementation phase –Release testing –Maintenance and enhancement o Secondary focus: formal.
Software Testing Process
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
SG SCM with MKS scmGalaxy Author: Rajesh Kumar
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
Parasoft : Improving Productivity in IT Organizations David McCaw.
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
Capability Maturity Model. What is CMM? n CMM: Capability Maturity Model n Developed by the Software Engineering Institute of the Carnegie Mellon University.
Appendix 2 Automated Tools for Systems Development
Managing the Project Lifecycle
Modern Systems Analysis and Design Third Edition
Software Verification and Validation
Requirements Analysis Scenes
Chapter 18 Maintaining Information Systems
Quality Assurance: Early Work Items
IEEE Std 1074: Standard for Software Lifecycle
Business System Development
Maintaining software solutions
Applied Software Implementation & Testing
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Chapter 11: Software Configuration Management
Capability Maturity Model
Capability Maturity Model
Presentation transcript:

CSC444F'07Lecture 41 CSC444 Software Engineering Top 10 Practices

CSC444F'07Lecture 42 Summary – Top 10 practices Do all these things, and you’re doing well. infrastructure control refinement source code control defect/feature tracking reproducible builds automated regression testing release planning feature specifications architectural control business planning effort tracking process control

CSC444F'07Lecture Source Code Control Central repository –Everybody knows where to find what they are looking for –Secure, backed-up storage Defines module architectural structure –hierarchy Complete change history –Can back up and find where problems are first introduced Multiple maintenance streams –Work on next release while maintaining previous releases Patches –Can go back and patch any release in the field Enables Team development “Interface” to coordinate Dev and QA/Build “Guard” against bad changes

CSC444F'07Lecture Defect / Feature Tracking Keeps track of all defects found or new features desired –Won’t forget any Coordinates a workflow for writing / fixing them –Won’t skip steps Provides management visibility into progress Enables effective prioritization Enables metrics gathering

CSC444F'07Lecture Reproducible Builds Check out of source control and one command to build the product Required for a consistent experience across all developers, QA/Build, customers Dev builds –For coding and testing Production builds –Includes creation of install image –And creation of ISO-Image –Should also be fully automated

CSC444F'07Lecture Automated Regression Testing Scripts that run after every QA/Build dev build to test as much functionality as possible Critical to improving software quality Prevents errors with previously seen symptoms from recurring –A very common thing to happen Enables coders to change tricky bits with confidence Enables finding problems closer to their injection –Earlier you can find an issue the less costly it is to fix. Enables fixing last problems prior to shipping with confidence –Can release with fewer known defects –Can release on time

CSC444F'07Lecture Release Planning After the previous basics are in place this is the most important practice –Will spend 1/3 of the course on this Determining –What goes into the next release –By when will it will be done –Using what resources Tracking that throughout the release Adjusting as necessary Enables business side to do their jobs –Good relationships Enables quality –By maintaining the test/debug period Provides elbow room –To improve productivity

CSC444F'07Lecture Feature Specifications Complicated features require them –Need to make this determination Needed to keep release plan on track –Better estimates if know what we are doing in more detail Enables a better end-user feature Eliminates unanticipated integration problems Best place to introduce reviews

CSC444F'07Lecture Architectural Control Must maintain a clean architecture even in the face of –Many coders working on the code –Frequent feature additions That the software was not designed for initially –Frequent defect corrections By inexperienced coders who do not understand the architecture Architectural documentation Review of designs and code for conformance Chief Architect Automated architectural checking tools

CSC444F'07Lecture Effort Tracking Need to know how much staff time is spent on –Each new feature –Correcting defects –Other Can improve estimation accuracy Can improve estimates of staff time available for next release Can monitor effectiveness of initiatives to free up coder time for more coding

CSC444F'07Lecture Process Control Written process for the release cycle Gets everybody on the same page –Can train new staff Enables systematic definition / collection of metrics Can monitor process for compliance Can consider changes to the process from a stable baseline

CSC444F'07Lecture Business Planning Development occurs within a business context If not understood and managed, will sink the project more surely than technical shortcomings Writing effective proposals Integrating into the budget cycle.

CSC444F'07Lecture 413 Summary – Top 10 practices Do all these things, and you’re doing well. infrastructure control refinement source code control defect/feature tracking reproducible builds automated regression testing release planning feature specifications architectural control business planning effort tracking process control