Software Development a Practical Approach!

Software Development a Practical Approach!

Software Development A Practical Approach! Hans-Petter Halvorsen https://www.halvorsen.blog https://halvorsen.blog Software Development A Practical Approach! Hans-Petter Halvorsen Software Development A Practical Approach! Hans-Petter Halvorsen Copyright © 2020 ISBN: 978-82-691106-0-9 Publisher Identifier: 978-82-691106 https://halvorsen.blog ii Preface The main goal with this document: • To give you an overview of what software engineering is • To take you beyond programming to engineering software What is Software Development? It is a complex process to develop modern and professional software today. This document tries to give a brief overview of Software Development. This document tries to focus on a practical approach regarding Software Development. So why do we need System Engineering? Here are some key factors: • Understand Customer Requirements o What does the customer needs (because they may not know it!) o Transform Customer requirements into working software • Planning o How do we reach our goals? o Will we finish within deadline? o Resources o What can go wrong? • Implementation o What kind of platforms and architecture should be used? o Split your work into manageable pieces iii • Quality and Performance o Make sure the software fulfills the customers’ needs We will learn how to build good (i.e. high quality) software, which includes: • Requirements Specification • Technical Design • Good User Experience (UX) • Improved Code Quality and Implementation • Testing • System Documentation • User Documentation • etc. You will find additional resources on this web page: http://www.halvorsen.blog/documents/programming/software_engineering/ iv Information about the author: Hans-Petter Halvorsen The author currently works at the University of South-Eastern Norway. The author has been working with Software Engineering for more than 20 years. For more information, visit my web site: https://halvorsen.blog v Table of Contents Preface .................................................................................................. iii Part 1 : Introduction ............................................................................ 18 1 Introduction ................................................................................... 19 1.1 Background .................................................................................................. 23 1.2 Topics ........................................................................................................... 24 1.3 Tools ............................................................................................................ 26 2 Software History ............................................................................ 30 2.1 Introduction ................................................................................................. 30 2.2 Software Trends ........................................................................................... 32 3 Software Development ................................................................. 34 3.1 Challenges .................................................................................................... 35 3.2 Software Systems......................................................................................... 35 3.3 Documentation ............................................................................................ 37 3.4 Iterations and Releases ................................................................................ 38 Part 2 : Software Engineering ............................................................. 40 4 Development Teams ..................................................................... 41 4.1 Teams .......................................................................................................... 42 4.2 Roles ............................................................................................................ 42 4.2.1 Stakeholders ..................................................................................................................... 43 4.2.2 Project Manager ............................................................................................................... 43 4.2.3 System Architect............................................................................................................... 43 viii 4.2.4 UX Designer ...................................................................................................................... 43 4.2.5 Programmer ...................................................................................................................... 43 4.2.6 Software Tester ................................................................................................................ 43 5 Software Development Phases ..................................................... 45 5.1 Requirements .............................................................................................. 46 5.2 Design .......................................................................................................... 47 5.2.1 Technical Design ............................................................................................................... 48 5.2.2 UX Design .......................................................................................................................... 48 5.3 Implementation ........................................................................................... 48 5.4 Testing ......................................................................................................... 49 5.5 Deployment ................................................................................................. 49 6 Software Development Process .................................................... 50 6.1 Plan-driven models ...................................................................................... 52 6.1.1 Waterfall model................................................................................................................ 52 6.1.2 V-model ............................................................................................................................. 53 6.2 Agile Software Development ....................................................................... 54 6.2.1 Waterfall vs. Agile ............................................................................................................ 58 6.2.2 eXtreme Programming (XP) ............................................................................................. 59 6.2.3 Scrum ................................................................................................................................ 61 6.2.4 Kanban .............................................................................................................................. 63 6.3 Hybrid Process Models................................................................................. 64 6.3.1 Unified Process (UP)/ Rational Unified Process (RUP) .................................................. 64 6.4 Summary ...................................................................................................... 65 6.5 Exercises ...................................................................................................... 65 7 Scrum ............................................................................................. 67 ix 7.1 The Scrum Process ....................................................................................... 67 7.2 Scrum Events ............................................................................................... 68 7.2.1 Daily Scrum Meeting ........................................................................................................ 69 7.3 Scrum Artifacts............................................................................................. 70 7.4 The Scrum Team .......................................................................................... 70 7.5 Scrum Meetings ........................................................................................... 71 7.6 Scrum Terms ................................................................................................ 72 7.7 Tips and Tricks.............................................................................................. 74 8 Project Management..................................................................... 75 8.1 Project Planning ........................................................................................... 76 8.2 Kick-off/Brainstorming ................................................................................. 76 8.3 Software Development Plan (SDP) ............................................................... 78 8.3.1 Gantt Chart ....................................................................................................................... 79 8.4 Meetings ...................................................................................................... 80 8.4.1 Meeting Agenda ............................................................................................................... 81 8.4.2 Minutes of Meeting.......................................................................................................... 81 8.5 Agile Project Planning and Tracking ............................................................. 82 8.6 Summary ...................................................................................................... 84 9 Requirements Engineering ...........................................................

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    297 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us