|
| 1 | +--- |
| 2 | +title: "Software Engineering Field" |
| 3 | +layout: notes |
| 4 | +--- |
| 5 | + |
| 6 | +# Software |
| 7 | +* *[programming](https://en.wikipedia.org/wiki/Computer_programming)* - Computer Programmer |
| 8 | +* *[software engineering](https://en.wikipedia.org/wiki/Software_engineering)* - [Software Engineer](https://en.wikipedia.org/wiki/Software_engineer) |
| 9 | + |
| 10 | +# Fundamental Activities |
| 11 | + |
| 12 | + |
| 13 | + |
| 14 | +# "Software Engineering" |
| 15 | +* [Margaret Hamilton](http://www.vox.com/2015/5/30/8689481/margaret-hamilton-apollo-software) |
| 16 | +* [Definition](http://en.wikipedia.org/wiki/Software_engineering) |
| 17 | +* [Software Crisis](http://en.wikipedia.org/wiki/Software_crisis) |
| 18 | +* [Size of software](https://informationisbeautiful.net/visualizations/million-lines-of-code/) |
| 19 | + |
| 20 | +# Expectations of Software |
| 21 | +* Reliability |
| 22 | +* Robustness |
| 23 | +* Transparency |
| 24 | +* New features |
| 25 | +* Rate of improvements |
| 26 | + |
| 27 | +# Layers of Software Engineering |
| 28 | +<table style="width: 80%; border: 1px solid black"><tr><th style=" background-color: white; text-align: center">Quality Focus</th></tr></table> |
| 29 | +<table style="width: 60%; border: 1px solid black"><tr><th style="background-color: white; text-align: center">Process</th></tr></table> |
| 30 | +<table style="width: 40%; border: 1px solid black"><tr><th style="background-color: white; text-align: center">Methods</th></tr></table> |
| 31 | +<table style="width: 20%; border: 1px solid black"><tr><th style="background-color: white; text-align: center">Tools</th></tr></table> |
| 32 | + |
| 33 | +# Processes Needed |
| 34 | +* Fix bugs quickly and safely |
| 35 | +* Introduce new features quickly and safely |
| 36 | +* Get users what they need |
| 37 | +* Stay current with changes in software environment |
| 38 | + |
| 39 | +# Quality Focus & Process |
| 40 | +* Goals (Quality Focus) |
| 41 | + * Foundation of software engineering |
| 42 | + * Software should meet expectations |
| 43 | + * What level/kinds of quality do you require? |
| 44 | + * Customer: efficiency, reliability, etc. |
| 45 | + * Developer: maintainability, reusability, etc. |
| 46 | + * Users: usability, efficiency, etc. |
| 47 | + * Microsoft Word vs. Autonomous Car |
| 48 | +* Process |
| 49 | + * Framework for how you develop/deliver software on time and on budget |
| 50 | + * Defines tasks and order performed |
| 51 | + * How you achieve quality focus |
| 52 | + |
| 53 | +# Methods & Tools |
| 54 | +* Methods |
| 55 | + * Techniques for performing tasks of the process |
| 56 | + * Multiple techniques to accomplish same task |
| 57 | + |
| 58 | +* Tools |
| 59 | + * What is used to carry out/support methods |
| 60 | + |
| 61 | +# Stakeholders, e.g., People |
| 62 | +* Developers |
| 63 | +* Developers' management |
| 64 | +* Other parts of the company |
| 65 | +* Users |
| 66 | +* Osers' management |
| 67 | +* Other parts of the users' company |
| 68 | +* Others in same industry |
| 69 | +* Reviewers and the outside world |
| 70 | + |
| 71 | +# Single Project Development |
| 72 | + |
| 73 | +|||| |
| 74 | +|---|---| |
| 75 | +||Education/Class|Industry| |
| 76 | +|Total time|days|months-years| |
| 77 | +|number developers|1 - 3|3 - hundreds| |
| 78 | +|number programming languages|1|> 1| |
| 79 | + |
| 80 | +# Software Development Reality |
| 81 | +* Greenfield vs Brownfield Development |
| 82 | +* Software Evolution = Software Development + Software Maintenance |
| 83 | +* Waterfall vs Agile |
| 84 | + |
| 85 | +# Goal: Success |
| 86 | +* Improve quality |
| 87 | +* New features |
| 88 | +* Reduce needed resources |
| 89 | +* Reduce time-to-market |
| 90 | + |
| 91 | +# BGSU Software Engineering Courses |
| 92 | +* SE 3540: Introduction to Software Engineering (Required) |
| 93 | +* SE 4550: Software Architecture and Design (SE Required) |
| 94 | +* SE 4560: Software Testing and Quality Assurance (SE Required) |
| 95 | +* SE 4770: Software Engineering Capstone Experience (SE Required) |
| 96 | +* SE 6640: Advanced Software Engineering (Grad Course) |
0 commit comments