h4p://home.hit.no/~hansha/?page=so#ware_development So#ware Deployment B. Lund. (2013). Lunch. Available: h4p://www.lunchstriper.no, h4p://www.dagbladet.no/tegneserie/lunch/ Hans- Pe4er Halvorsen, M.Sc.
Deployment Maintenance Planning TesRng ImplementaRon The So#ware Development Lifecycle Requirements Analysis Design
Alpha Requirements/Design Plans made and approved Beta RC FoundaRon finished, building structure started A proof that you can do it, PoC (Proof of Concept) Building structure finished, Furniture, Flowers and Inside work on track small adjustments missing RTM Ready for Sale or Move in 3
So#ware Releases Before the so#ware is released Alpha Release(s) Beta Release(s) RC - Release Candidate(s) RTM Release To Manufactoring Maintenance (a#er the so#ware is released) Patches (small fixes) SP - Service Packs (lots of small fixes and pathes bundle together) Start Planning next release 4
Example: Windows Timeline/Lifecycle 5
So#ware Development is a never ending story! MS- DOS (1981) Windows 1.0 (1985) Windows 3.0 (1990),, Windows NT (1993),, Windows XP (2001), Windows 7 (2009), Windows 8 Windows 8 (2012), Windows 8.1 (2013), Windows 8.1 Update (2014)
Example - Windows 8 Start planning and development of Windows 8, 2008/2009 (the planning started before Windows 7 was released) Internal Builds xxxx xxxx Internal Alpha versions, Alpha 1, 2, 3 Internal Builds xxxx xxxx Internal Milestone1 Release (build 7850), 2010.09.22 Internal Milestone2 (build 7955), Milestone3 (build 7989) Developer Preview (build 8102), 2011.09.13 Internal Builds xxxx xxxx Consumer Preview (build 8250), 2012.02.29 Internal Builds xxxx xxxx Release Preview (build 8400), 2012.05.28 Internal Builds xxxx xxxx major.minor.maintenance.build RTM Release (build 9200), 2012.08.01 It is normal to build the so#ware automarcally every night, ready for internal tester the day a#er
So#ware Deployment Hans- Pe4er Halvorsen, M.Sc.
What is Deployment? Gemng so#ware out of the hands of the developers into the hands of the users. More than 50% of commissioned so#ware is not used, mostly because it fails at deployment stage. 80% of the cost of (commissioned) so#ware comes at and a#er deployment. What are the issues that make it hard? (Try to give some examples!) h4p://www.inf.ed.ac.uk/teaching/courses/inf2c- se/lectures/deployment.pdf 9
What is Deployment? So#ware deployment is all of the acrvires that make a so#ware system available for use. Examples: Get the so#ware out to the customers CreaRng InstallaRon Packages DocumentaRon InstallaRon Guide, etc. InstallaRon etc. Deployment strategies may vary depending of what kind of so#ware we create, etc. 10
Release 1.0 Finished Developed InstallaRon The so#ware should be easy to install Different approches for different Plaporms Desktop (Create Executables, setup packages, etc.) Web (where/how shall it be hosted?, etc.) Mobile (Internal Business App, App Store, Google Play, ) or a mix of these Support How to register and handle Support requests from the Customers Maintenance Bugfixes, Patches, Service Packs, New Releases How to make the updated so#ware availible to the customers 11
Is Deployment the Problem? Not always. O#en, problems show up at deployment which are actually failures of requirements analysis. 12
Key Issues around Deployment Business Processes: Most large so#ware systems require the customer to change the way they work. Training: No point in deploying so#ware if the customers can't use it. Support: The need goes on, and on, and on. Deployment: How do you physically get the so#ware installed. Equipment: Is the customer's hardware up to the job? ExperHse: Does the customer have the IT experrse to install the so#ware? Upgrades: Can't avoid them! IntegraHon: Shall the so#ware interact/integrate with other systems of the customer. Performance: The Customer may not have the same hardware as in the Development/Test Environment h4p://www.inf.ed.ac.uk/teaching/courses/inf2c- se/lectures/deployment.pdf 13
Deployment - InstallaRon Package the so#ware Executable files Create installaron packages InstallShield, etc. (lots of tools available) Make it available (nowadays over Internet or on DVD) Give the customer turn- key installers, which will: Check the system for missing dependencies or drivers etc. (e.g., Your so#ware may need.net X.x, etc.) Install the so#ware on the system Set up any necessary licence informaron, licence managers, etc. 14
Exercise Deployment Create Executable Files for your ApplicaRon (if possible) Create an Installer/Setup Package Create a Test Environment and Deploy your ApplicaRon to the Test Environment
Test & ProducRon Environment Hans- Pe4er Halvorsen, M.Sc.
It works on my Computer Make sure to test your so#ware on other Computers and Environments! Everything works on the Developer Computer The Customers Database is not the same as yours The Customer may not use the same OS The Customer may not use the same Web Browser etc. 17
It works on my Computer Typically everything works on the the computer that the developer of the code is using, but the customers computer may use another OS, another version of the hardware, another version of a 3.party component or other so#ware that your so#ware relies on, etc. Therefore it is very important to test the so#ware on other computers and other environments, different versions of hardware, different versions of web browsers, etc. Development Environment (your computer), Test Environment and ProducRon Environment 18
Test Environment vs. ProducRon Environment 19
Maintenance Developers Developers & Testers Customers Development TesRng ProducRon Deployment & InstallaRon Support A Clean PC/Server (or a network The Customers environment with PCs and Servers) where you where you unstall the final install and test your So#ware. so#ware (Servers and Today we typically set- up a Virtual Test Environment Clients) Typically the Developers Personal Computer with Database, Web Server and Programming So#ware Development Environment Test Environment ProducRon Environment Programming environments such as Visual Studio, etc. should not be installed in this environment. You need to create.exe files etc. in order to make your so#ware run.
Test Environment A tesrng environment is a setup of so#ware and hardware on which the tesrng team is going to perform the tesrng of the newly built so#ware product. This setup consists of the physical setup which includes hardware, and logical setup that includes Server OperaRng system, client operarng system, database server, front end running environment, browser (if web applicaron), IIS (version on server side) or any other so#ware components required to run this so#ware product. This tesrng setup is to be built on both the ends i.e. the server and client. 21
ProducRon Environment ProducRon environment is a term used mostly by developers to describe the semng where so#ware and other products are actually put into operaron for their intended uses by end users. A producron environment can be thought of as a real- Rme semng where programs are run and hardware setups are installed and relied on for organizaron or commercial daily operarons. 22
Test/ProducRon Environment Infrastructure with Servers, Virtual Servers, Database Servers, Web Servers, etc. Local Infrastructure with Servers & VirtualizaRon Cloud- based Infrastructure (monthly payment), e.g.: Windows Azure www.windowsazure.com Amazon Web Services (AWS) h4p://aws.amazon.com Google Cloud Plaporm h4ps://cloud.google.com 23
24
Summary Make sure the applicaron is well tested The ApplicaRon should be easy to install 25
References I. Sommerville, So3ware Engineering, 9 ed.: Pearson, 2010. E. J. Braude and M. E.Bernstein, So3ware Engineering: Modern Approaches, 2 ed.: Wiley, 2011. Wikipedia. (2013). So3ware Deployment. Available: h4p://en.wikipedia.org/wiki/so#ware_deployment S. Adams. Dilbert. Available: h4p://dilbert.com O. Widder. (2013). geek&poke. Available: h4p://geek- and- poke.com B. Lund. (2013). Lunch. Available: h4p://www.lunchstriper.no, h4p://www.dagbladet.no/tegneserie/lunch/ The University of Edinburgh, School of InformaRcs: h4p://www.inf.ed.ac.uk/teaching/courses/inf2c- se 26
Hans- PeSer Halvorsen, M.Sc. Telemark University College Faculty of Technology Department of Electrical Engineering, InformaHon Technology and CyberneHcs E- mail: hans.p.halvorsen@hit.no Blog: hsp://home.hit.no/~hansha/ 27