So#ware Development. Overview. Hans- Pe4er Halvorsen, M.Sc. h4p://home.hit.no/~hansha/?page=so#ware_development

Similar documents
The So5ware Development Process (SDLC)

Agile So6ware Development

So#ware Deployment. Hans- Pe4er Halvorsen, M.Sc. h4p://home.hit.no/~hansha/?page=so#ware_development

Software Engineering. A Short Overview. Hans- Petter Halvorsen, M.Sc.

h(p://home.hit.no/~hansha/?page=so3ware_development So3ware Maintenance Hans- Pe(er Halvorsen, M.Sc.

Team Foundation Server

Source Code Control & Bugtracking

Software Documentation

Create a Virtual Test Environment

Programming. Languages & Frameworks. Hans- Pe(er Halvorsen, M.Sc. h(p://home.hit.no/~hansha/?page=sodware_development

Web. Programming. Hans- Pe0er Halvorsen, M.Sc. h0p://home.hit.no/~hansha/?page=sojware_development

Create Installa+on Packages in Visual Studio

Database Communica/on in Visual Studio/C# using Web Services. Hans- Pe=er Halvorsen, M.Sc.

01. Introduction of Android

Introduction to Virtualization

MANUAL TESTING. (Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn.?? New Batches Info

Microsoft Modern ALM. Gilad Levy Baruch Frei

Cloud Compu)ng in Educa)on and Research

Software Quality Testing Course Material

Application Lifecycle Management Using Visual Studio 2013 (SCRUM)

Software Testing Lifecycle

Lab Inventory System. Label Writer Access Card with Barcode Barcode Reader. Hans- Pe(er Halvorsen, M.Sc.

Agile Development with Agile Business Suite

Software Engineering I (02161)

4.1 Introduction 4.2 Explain the purpose of an operating system Describe characteristics of modern operating systems Control Hardware Access

ALM2013VS_ACC: Application Lifecycle Management Using Visual Studio 2013

From Traditional Functional Testing to Enabling Continuous Quality in Mobile App Development

Collaborating for Quality in Agile Application Development From Beginning to End

SOFTWARE UNIT 1 PART B C O M P U T E R T E C H N O L O G Y ( S 1 O B J A N D O B J 3-2)

Agile Requirements And Testing For Continuous Software Delivery

PowerPoint Presentation to Accompany. Chapter 5. System Software. Copyright 2014 Pearson Educa=on, Inc. Publishing as Pren=ce Hall

Agile Software Development Methodologies and Its Quality Assurance

Access Tropical Cloud Desktop from Any Device

Traditional SDLC Vs Scrum Methodology A Comparative Study

CHAPTER 1 INTRODUCTION. ones. It is recognized that the current existence of game has become one of the

Introduction to Agile and Scrum

CompSci Fall 2014 Professors: Robert Duvall, Ajay Patel, Salman Azhar (rcd@cs, ajay.patel, azhar@cs)

PROJECT PORTFOLIO SUITE

Your guide to building great apps. Upgrade your skills and update your tools to create the next great app

Guide to Mobile Testing

Modeling the Mobile Application Development Lifecycle

SECTION 2 PROGRAMMING & DEVELOPMENT

2015 IBM Continuous Engineering Open Labs Target to better LEARNING

SmartBear Software Pragmatic Agile Development (PAD) Conceptual Framework

,... Innovative Software in its Simplicity! Windows Linux Mac OS X ios

Seedling Internet of Things (IoT) and Wearables Platform

Enhancing The ALM Experience

Synchronization with Microsoft Team Foundation Server 2010

Integrating Team Foundation Server, Microsoft Test Manager and Coded UI Tests

Getting Started with VMware Horizon View (Remote Desktop Access)

HP Application Lifecycle Management

HP Agile Manager What we do

Sandesh Prasanna Kumar

Night Owl 8 channel DVR system with HDMI output, 960H recording and a Free Night Owl Pro App with Owl Scan (No Hard Drive Included)

Mobile Solutions in ArcGIS. Justin Fan

SAS in clinical trials A relook at project management,

Cloud-based Data Logging, Monitoring and Analysis

AGILE & SCRUM. Revised 9/29/2015

4 Ch. HD Network Video Recorder with 1TB HDD, HDMI Output, 4 Night Vision 720p Cameras and Free Night Owl Pro App

HP ALM11 & MS VS/TFS2010

Mobile App Testing Guide. Basics of Mobile App Testing

Mobile Test Strategy. Shankar Garg. Senior Consultant - Testing

Skynax. Mobility Management System. System Manual

Software Testing, Mythology & Methodologies

Web Services. with Examples. Telemark University College Department of Electrical Engineering, Information Technology and Cybernetics

VIA CONNECT PRO Deployment Guide

Industrial DAQ System for Measurements and Monitoring. Hans-Petter Halvorsen, M.Sc.

De-Risking large Software development projects

TeamCompanion Solution Overview. Visual Studio

Continuous Delivery / Continuous Deployment How to automate your Deliveries. Bernhard Keprt

Experiences with ALM tools in Software Engineering course

Product Stack and Corporate Overview

Testing in Agile methodologies easier or more difficult?

JOB DESCRIPTION APPLICATION LEAD

Effective Team Development Using Microsoft Visual Studio Team System

Adopting Agile Approaches for the Enterprise

Modern practices TIE-21100/

SCREAM (SCRUM TEAM MANAGEMENT TOOL)

White Paper Bridging the Essential Gap between Continuous Quality and Crowd Based Testing

Using the Agile Methodology to Mitigate the Risks of Highly Adaptive Projects

How To Design An Information System

Keshima Technologies Pvt. Ltd.

Microsoft Licensing. Overview over the most important usage rules for Microsoft products at ETH Zurich. Ralph Curschmann 3.11.

Chapter 13: Program Development and Programming Languages

Atomate Development Process. Quick Guide

Indie_App_Development() { // Arjun Gopalakrishna // Bhavya Udayashankar

Issues in Internet Design and Development

Faronics Products SYSTEM REQUIREMENTS Last modified: October 2014

Software Engineering

The Role of CM in Agile Development of Safety-Critical Software

Transcription:

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