Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.

Slides:



Advertisements
Similar presentations
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Why Software.
Advertisements

Testing Relational Database
Configuration Management
Configuration Management
HP Quality Center Overview.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Introduction.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Connecting with Computer Science, 2e
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Why Software.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Configuration Management Managing Change. Points to Ponder Which is more important?  stability  progress Why is change potentially dangerous?
The Software Development Life Cycle: An Overview
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management greene.com 1 Applied Software.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Chapter 1: Introduction.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Introduction to Version Control
1 Lecture 19 Configuration Management Software Engineering.
Configuration Management (managing change). Starter Questions... Which is more important?  stability  progress Why is change potentially dangerous?
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
By Touseef Tahir Software Testing Basics. Today's Agenda Software Quality assurance Software Testing Software Test cases Software Test Plans Software.
T-unit: Tcl Unit Test Package Automated Unit Test Package For Tcl Procedures Final Presentation Joseph Boyle Loyola Marymount University.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
Testing Workflow In the Unified Process and Agile/Scrum processes.
Testing and Debugging Version 1.0. All kinds of things can go wrong when you are developing a program. The compiler discovers syntax errors in your code.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at and slides written.
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
Applied Software Project Management
CASE Tools Union Palenshus. In the early days… ► Software engineering tools consisted solely of translators, compilers, assemblers, linkers, loaders,
Managing Change 1. Why Do Requirements Change?  External Factors – those change agents over which the project team has little or no control.  Internal.
Version Control with SVN Images from TortoiseSVN documentation
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
WinCvs. WinCVS WinCvs is a window based version control system. Use WinCvs when  You want to save every version of your file you have ever created. CVS.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Unit 17: SDLC. Systems Development Life Cycle Five Major Phases Plus Documentation throughout Plus Evaluation…
Oman College of Management and Technology Course – MM Topic 7 Production and Distribution of Multimedia Titles CS/MIS Department.
Dynamic Testing.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
Applied Software Testing
Software Project Configuration Management
Chapter 18 Maintaining Information Systems
Maintaining software solutions
Applied Software Implementation & Testing
Some Important Techniques For Regression Testing That You Must Know.
Design and Programming
CMSC 345 Programming.
Applied Software Project Management
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software Project Management Design and Programming

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Review the Design Once the SRS has been approved, implementation begins. Programming teams have many options:  The programmers can simply start building the code and create the objects and user interface elements.  Designers can build a user interface prototype to demonstrate to the users, stakeholders and the rest of the team. Any code used to develop the prototype is typically thrown away once the design has been finalized.  Pictures, flow charts, data flow diagrams, database design diagrams and other visual tools can be used to determine aspects of the design and architecture.  An object model can be developed on paper, either using code, simple class diagrams or Unified Modeling Language (UML) diagrams.  A written design specification may be created, which includes some or all of the tools above.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Review the Design Design tasks should always include reviews, even when there is no written design specification. Any written documentation should be reviewed and, if possible, inspected.  It is important that the reviews and inspections reach the correct audience.  Many users who have important input for the user interface may be uninterested or confused by object models and UML diagrams.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Version Control A version control system allows programmers to keep track of every revision of all source code files  The main element of the version control system is the repository, a database or directory which contains each of the files contained in the system.  A programmer can pick a point at any time in the history of the project and see exactly what those files looked like at the time.  It is always possible to find the latest version of any file by retrieving it from the repository.  Changing a file will not unexpectedly overwrite any previous changes to that file; any change can be rolled back, so no work will accidentally be overwritten.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Version Control There are two common models for version control systems  In a copy-modify-merge system, multiple people can work on a single file at a time. When a programmer wants to update the repository with his changes, he retrieves all changes which have occurred to the checked out files and reconciles any of them which conflict with changes he made before updating the repository.  In a lock-modify-unlock system, only one person can work on any file at a time. A programmer must check a file out of the repository before it can be modified. The system prevents anyone else from modifying any file until it is checked back in. On large projects, the team can run into delays because one programmer is often stuck waiting for a file to be available.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Refactoring Refactoring is a programming technique in which the design of the software is improved without changing its behavior.  There are many choices that programmers make which do not affect the behavior of the software but which can have an enormous impact on how easy the code is to read and understand.  Refactoring works especially well during code reviews.  Because refactoring is a change to the design, it may impact the design review process. If previously reviewed code is refactored, changes to that should be distributed to the review team.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Unit Testing Before a build is delivered, the person or program building the software should execute unit tests to verify that each unit functions properly.  All code is made up of a set of objects, functions, modules or other non-trivial units. The purpose of unit testing is to create a set of tests for each unit to verify that it performs its function correctly.  Programmers create suites of unit tests, where each test is a small block of code which exercises a specific behavior of one unit.  The most common (and effective) way for programmers to do unit testing is to use a framework, a piece of software that automatically runs the tests and reports the results.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Everyone is responsible for quality There are different kinds of testing that serve different purposes.  Programmers use unit tests is to verify that the software works exactly as the programmer intended.  Software testers are responsible for verifying that the software meets its requirements (in the SRS) and the needs of the users and stakeholders (in the Vision and Scope Document). Many defects arise when a programmer delivers software that worked as he intended, but did not meet the needs of the users. Software testers can catch these problems.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Everyone is responsible for quality Many programmers are confused about exactly what it is that software testers do.  All they know is that they deliver a build to the QA team. The QA people run the program and find bugs, which the programmers fix.  It is often hard for them to figure out where unit testing ends and functional testing begins.  The project manager should watch for this confusion, and help to clarify it by making sure that the programmers understand what kinds of testing are expected of them.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Project Automation Many quality problems happen because the team does not build the software consistently, and loses track of the health of the code. Effective project automation reduces these errors. The team can adopt a tool which:  Retrieves the latest build from the version control system, builds it, copies it to a folder, and reports any build warnings or errors  Runs unit tests, generating a test report and reporting critical failures  Runs automated code review tools, reporting any warnings or rule violations  Lists any changes which have been committed and by whom, including links to code listings for the changes