h4p://home.hit.no/~hansha/?page=so#ware_development So#ware Development Overview B. Lund. (2013). Lunch. Available: h4p://www.lunchstriper.no, h4p://www.dagbladet.no/tegneserie/lunch/ Hans- Pe4er Halvorsen, M.Sc. 1
2
Main Goal To give you an overview of what so#ware engineering is To take you beyond programming to engineering so#ware 3
Reality? I ll go up and find out what they need and the rest of you start coding! You dont make good so#ware using this approach!
So#ware Development So#ware So#ware and hardware are usually Wghtly integrated! Hardware If you are serious about so#ware you should create your own hardware 5
So#ware Development Planning, Requirements, Design, ImplementaWon, TesWng, Deployment, Maintenance, etc. User Applica,on OperaWng System Hardware Who are going to use the so#ware? Desktop, Web, Mobile? Windows, OS X, Linux, Android, ios, etc. PC, Mac, Smartphone, Tablet, SmartTV, etc.
Typical Network and Infrastructure the So#ware relies on Windows Server 2008/2012 Windows 7/8 Clients Wi- Fi Server LAN Ethernet OPC Server Router Web Server Internet Typical Network & Infrastructure IIS SQL Server Database Server
So#ware Trends Apps The Cloud VirtualizaWon Cloud CompuWng So#wear BYOD Mobile Wearable CompuWng Bring Your Own Device 8
So#ware Trends 9
Exercise So#ware Development What is So#ware Development/So#ware Engineering? What do you associate with So#ware Development/So#ware Engineering? Write a list with 5-10 points Discussion
So#ware Development/ So#ware Engineering Simple to understand, but difficult to master What does this means? è It means that the theory and the principles behind so#ware development are easy to understand, but it is very difficult to actually create good so#ware!
So#ware Engineering Databases Requirements Project Management Development Processes Cost EsWmaWon Design Quality Control Architecture TesWng Laws and Ethics Programming 12
Planning Requirements Design ImplementaWon TesWng Deployment & Maintenance 13
Planning Requirements Design
ImplementaWon TesWng Deployment
Deployment Planning Maintenance TesWng ImplementaWon The So#ware Development Lifecycle (SDLC) Requirements Analysis Design
Why spend Wme on Requirements & Design? Why Find Bugs early? Why Do Quality Control? Cost per defects SoIware Development Life Cycle (SDLC) 17
So#ware Engineer/So#ware Developer Job Ads Examples (in Norway): 18
So#ware Engineer/So#ware Developer System Developer: h4p://www.youtube.com/watch?v=zkd07mrul5m IT Manager: h4p://www.youtube.com/watch?nr=1&v=yf1ompd6j1o&feature=endscreen (Norwegian Videos) 19
Your Toolbox B. Lund. (2013). Lunch. Available: h4p://www.lunchstriper.no, h4p://www.dagbladet.no/tegneserie/lunch/ What kinds of Tools do a So#ware Engineer need? 20
Learned in previous courses Focus in this Course Your Toolbox PC Programming and Programming Languages (e.g., C#) IDE (Integrated Development Environment) (e.g., Visual Studio) So#ware Frameworks (e.g.,.net) SCC Tool (Source Code Control) (e.g., Team FoundaWon Server, TFS) ALM Tool (ApplicaWon Lifecycle Management) (e.g., Team FoundaWon Server, TFS) Knowledge about basic SoIware Engineering (Requirements, Planning, TesWng, and Development Processes like Agile, Scrum, etc.) You cannot do a good job as a so#ware developer without some proper tools!
B. Lund. (2013). Lunch. Available: h4p://www.lunchstriper.no, h4p://www.dagbladet.no/tegneserie/lunch/ Project Planning and Management is also important in So#ware Development! h4p://www.digi.no/912578/de4e- kostet- 125- millioner 22
MoWvaWon Windows 7: A Team with 1000 Developers Number of Code Lines: Real systems may have millions of code lines Big money: 100+ million Development Projects CombinaWon of Hardware and So#ware iphone 1: Development period 2004-2007, 1000 Apple employees worked with the device, EsWmated cost: $150 mill. è Some kind of structure is needed!! - So#ware Engineering is the Answer!
So#ware ApplicaWons/Systems Stand- alone applica,ons These are applicawon systems that run on a local computer, such as a PC. They include all necessary funcwonality and do not need to be connected to a network. Interac,ve transac,on- based applica,ons ApplicaWons that execute on a remote computer and are accessed by users from their own PCs or terminals. These include web applicawons such as e- commerce applicawons. Embedded control systems These are so#ware control systems that control and manage hardware devices. Numerically, there are probably more embedded systems than any other type of system. Batch processing systems These are business systems that are designed to process data in large batches. They process large numbers of individual inputs to create corresponding outputs. Entertainment systems These are systems that are primarily for personal use and which are intended to entertain the user. Systems for modeling and simula,on These are systems that are developed by scienwsts and engineers to model physical processes or situawons, which include many, separate, interacwng objects. Data collec,on systems These are systems that collect data from their environment using a set of sensors and send that data to other systems for processing. Systems of systems These are systems that are composed of a number of other so#ware systems. I. Sommerville, So(ware Engineering: Pearson, 2010. 24
Generic vs Customized So#ware Generic Products Stand- alone systems that are marketed and sold to any customer who wishes to buy them. Examples PC so#ware such as graphics programs, project management tools; CAD so#ware; so#ware for specific markets such as appointments systems for denwsts. Example: MS Word Customized Products So#ware that is commissioned by a specific customer to meet their own needs. Tailor made SoluWons Examples: embedded control systems, air traffic control so#ware, traffic monitoring systems, etc. I. Sommerville, So(ware Engineering: Pearson, 2010. 25
What is a So#ware Project? A group of people (Team) with different skills working together to develop a so#ware system It has a Goal (Create a System) It has a Start and an End It involves Project Planning & Management It involves Planning, Requirements, Design, ImplementaWon, TesWng and Deployment 26
So#ware Releases Before the so#ware is released Alpha Release(s) (Internal release, not public) Beta Release(s) ( Developer Preview, Consumer Preview ) RC - Release Candidate(s) ( Release Preview ) 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), SP1, SP2, R1, R2,.. Start Planning next Release 27
Team Teams and Roles Customer Project Manager So#ware Architect UX Designer Developer Tester Collabora,on! Customer/Stakeholders So#ware Architect So#wareTester Project Manager UX Designer Programmer 28
So#ware Team Stakeholders Project Manager So#ware Tester UX Designer System Engineer Programmer So#ware Architect A System Engineer is a general person that could be a Programmer, Architect, Designer, Tester in different phases in the project, or he could be a tester in one project and a programmer in another project all in one person. That is usually the case in small companies, while in larger companies these roles (designer, tester, programmer) could be a full- Wme job.
CollaboraWon! Project Manager So#ware Architect So#ware Tester Stakeholders UX Designer Programmer CollaboraWon and CommunicaWon within the Team and with Stakeholders, etc. is crucial! 30
Typical So#ware DocumentaWon Project Management (Gan4 Chart, etc.) Start Time Finish 1. Planning 2.Requierements /Design (The stakeholders, the so#ware team; architects, UX designers, developers) 2. Tes,ng (QA people) 3. End- user Documenta,on (The people that shall actually use the so#ware) So#ware Development Plan High- Level Requirements and Design Documents Detailed Requirements and Design Documents Test Plans Test DocumentaWon System DocumentaWon InstallaWon Guides User Manuals (SDP) WHAT HOW ER Diagram (Database) UML Diagrams (Code) CAD Drawings, etc. How to Test/ (STP) What to Test Proof that you have tested and that the so#ware works as expected Technical Stuff (Super User/ IT dep.) How to install it How to use it (End User) (SRS) (SDD) (STD)
Project Planning and Management Hans- Pe4er Halvorsen, M.Sc. 32
Chicken and the egg DocumentaWon The documentawon is useless without good so#ware The so#ware becomes/is useless without good documentawon So#ware
How to work in the project period Project Management Working with Project Tasks Documenta,on (Report, etc.) Start Important: Work with these ac,vi,es in parallel!!! Finish 34
35
Project Planning Gan4 Chart is the number one tool regarding Project Management 36
Deadlines So#ware Development involves lots of Deadlines Proper Project Planning and Management makes it easier to fulfill these deadlines 37
Brainstorming 38
Brainstorming A Project should always start with a Brainstorming Involve all in the group Discuss what you are going to do in the project How are you going to solve the project? etc. B. Lund. (2013). Lunch. Available: h4p://www.lunchstriper.no, h4p://www.dagbladet.no/tegneserie/lunch/ 39
Brainstorming You need to figure out what do, how to do it, who will do it, when to do it, etc. B. Lund. (2013). Lunch. Available: h4p://www.lunchstriper.no, h4p://www.dagbladet.no/tegneserie/lunch/ 40
Support When the so#ware is released it has to be Maintened and Supported B. Lund. (2013). Lunch. Available: h4p://www.lunchstriper.no, h4p://www.dagbladet.no/tegneserie/lunch/ Customers are demanding, the so#ware needs to be easy to understand and it needs to work all the Wme (24-7) 41
So#ware Development Process S. Adams. Dilbert. Available: h4p://dilbert.com Hans- Pe4er Halvorsen, M.Sc.
Requirements Deployment Design TesWng ImplementaWon 43
InstallaWon Deployment Acceptance TesWng Support Maintenance FuncWonality Requirements IniWal User Interface Planning Technology Plazorm SelecWon Requirements So#ware Development involves a lot! Technical Architecture Project Plan ApplicaWon Architecure Design Detailed SpecificaWons System Interface Design Finalize User Interface Test Plans System TesWng TesWng ImplementaWon ApplicaWon Code Development System Interface Development IntegraWon TesWng RegressionTesWng Unit TesWng IntegraWon with exiswng Apps
Development Process The Development Process involves different phases, e.g.: The Requirements may be given by the Customer Requirements In this case the overall Requirements are given by the Teacher in the Assignment. The details are wri4en by you! Are the Design wrong? Go back and correct it! Design ImplementaWon The Design phase is important, but make sure you have Wme le# for all the other tasks as well) TesWng Errors? Improve your code and fix the bugs Make sure everything work as expected When you are finished, you deploy and test the soluwon on the Customer Site Deployment 45
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), IteraWons Windows 8 (2012), Windows 8.1 (2013),... 46
So#ware Development Methods Tradi,onal Plan- driven Methods Agile Methods Waterfall Method extreme Programming (XP) Scrum V- Model Feature Driven Development (FDD) Spiral model Lean So#ware Development Test Driven Development (TDD) Even if we use different so#ware development methods, we deal with the same phases like Requirements, Design, Coding, TesWng and Deployment but they may have different priority and may be done in different manners and order, etc. 47
Agile So#ware Development Examples of Agile methods: exreme Programming, Scrum 48
Scrum Overview Daily Scrum MeeWngs Sprint Sprint Review Product Owner Sprint Backlog Product Backlog Stakeholders Scrum Master Development Team 3-9 persons
So#ware Development Process - Requirements The Requirements is normally given by the Customers needs Tailor- maid so#ware: The customers say/specify what they need (somewmes in details, but not always) Generic so#ware: You need to figure out what the potenwal customers want. CreaWng a Need for your Product. Find out what the customer wants before he know it himself. Predict the Future. SRS So#ware Requirements SpecificaWon document 50
So#ware Development Process Specifica,on and Design Plan what you are going to do Implementa,on Make sure to have the SpesificaWon and Design ready before you start the ImplementaWon (Coding) Create Overall and Detailed Requirements Flow Charts, UML, Database Design, etc. GUI/HMI Start by designing your GUI on the paper 51
So#ware Development Process - Design How the So#ware will work. 2 different types of Design: Technical Design (Plazorm, Architecture, etc.) UX Design (User experience, GUI/HMI) 52
So#ware Development Process - Design IntuWve and Userfriendly User Interfaces!! 53
So#ware Development Process - Tes,ng Planning Tests Perform Tests Document Test Results 54
So#ware Development Process - Tes,ng Always test your applicawon! Test it yourself Test it on other computers and environments Make sure others test your applicawon Eat Your Own Dog Food etc. 55
So#ware Development Process - Deployment So#ware deployment is all of the acwviwes that make a so#ware system available for use. Make sure the So#ware is well tested before it is deployed to the customer The So#ware should be easy to install 56
Exercise So#ware Process What so#ware process/method is best suited for your Project? Discussion
Summary There are no right or wrong so#ware processes Ian Sommerville But someone may be be4er than other in a given situawon It is be4er to use a so#ware development metod than using none 58
References I. Sommerville, So(ware Engineering: Pearson, 2010. E. J. Braude and M. E.Bernstein, So(ware Engineering: Modern Approaches, 2 ed.: Wiley, 2011. Wikipedia. (2013). Scrum Development. Available: h4p://en.wikipedia.org/wiki/scrum_(development) Wikipedia. (2013). Agile So(ware Development. Available: h4p://en.wikipedia.org/wiki/agile_so#ware_development CoreTrek. (2013). Scrum i et nø>eskall. Available: h4p://www.coretrek.no/scrum- i- et- noe4eskall/category642.html 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/ 59
Hans- Peder Halvorsen, M.Sc. Telemark University College Faculty of Technology Department of Electrical Engineering, Informa,on Technology and Cyberne,cs E- mail: hans.p.halvorsen@hit.no Blog: hdp://home.hit.no/~hansha/ 60