Presentation is loading. Please wait.

Presentation is loading. Please wait.

 Randy Ribler – Lynchburg College  PhD from Virginia Tech  Postdoc at University of Illinois (UIUC)  Many years of industry experience building systems.

Similar presentations


Presentation on theme: " Randy Ribler – Lynchburg College  PhD from Virginia Tech  Postdoc at University of Illinois (UIUC)  Many years of industry experience building systems."— Presentation transcript:

1  Randy Ribler – Lynchburg College  PhD from Virginia Tech  Postdoc at University of Illinois (UIUC)  Many years of industry experience building systems  ribler@lynchburg.edu  I was here before in 2006  I’m absolutely delighted to be back in 2013

2  Hobbs Hall

3

4  How do we build big systems?  How do people work together best?  How can we prevent project failure?  Failure rates are debatable, but undeniably too high  How should individual programmers do their jobs?  What are “best practices”

5  Fewer things are provable  Hard/Impossible to repeat anything  Every situation is a different  Projects are different  Staff is different  Tools are different  Customers are different  SE has been wrong before  Conventional wisdom has changed radically in the last several years.

6  Structured Programming  Object-oriented Programming  Design Patterns  Configuration Management  Pair Programming  Test-driven Development  Refactoring  A number of software process models  Coding Standards  Tools

7  Chaos!  No agreement on exactly what the system must do  No comprehensive high-level design  Difficult coordination between team members ▪ How do we know what we should be working on ?  What happens if someone leaves?  How do we bring all the pieces together?

8

9  Requirements  Determine exactly what the system must do. Generally, say nothing about how it does it.  A requirements specification document is produced.  System Design  High-level design breaks the system in to pieces (modules) ▪ Describe how each of the pieces work and communicate.  Low-level design ▪ Write pseudo-code for all the modules  Design documents are produced

10  Implementation (Coding)  Typically cited as expected to take 10-15% of project time.  Testing  Unit testing  Integration Testing  Deployment  Deliver the system to the customer ▪ Sometimes this is the first time the customer has seen the system work!

11  Maintenance  Debug problems  Make Enhancements  This phase is acknowledged to be the most expensive

12

13  Follows other engineering disciplines – “Have a blueprint before you build anything”  The entire system is planned from the beginning, allowing design to be comprehensive.  The customer is told what they will get from the beginning  Good for contracts, at least on the surface  Module breakdown provides parallelism of effort.

14  The less sure we are about what we want the more expensive it will be  What happens if the project is cancelled before deployment?  How do we keep all the documents consistent?  How do we know that the system will solve the user’s problem?  How do we know how long things will take?  It is unclear how effective it is.


Download ppt " Randy Ribler – Lynchburg College  PhD from Virginia Tech  Postdoc at University of Illinois (UIUC)  Many years of industry experience building systems."

Similar presentations


Ads by Google