Difference between revisions of "Software Development"
(Made minor changes to the topics intro, updated the SWEBOK download link, and added chapter numbers and placeholder topics.) |
(Added "Introduction to the Guide" to the topic outline.) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== Introduction == | == Introduction == | ||
This is a collection of notes on software development. Its main purpose is to help me raise my development's level of professionalism. It also gives me a place to air an opinion or two. | |||
To give you an idea of my background, after some BASIC programming in my childhood and a break of many years for other interests, I returned to hobby programming just after undergrad and was able to make it my living several years later in 2006. That phase of my developer life started with Perl, and since then I've moved on to Python and XSLT. I've worked mainly in the area of text processing. JavaScript and PHP have played intermittent supporting roles for occasional web development or InDesign scripting. My projects have all been either solo or with a very small team. It's all been on Windows and mostly for the command line. | |||
== Topics == | == Topics == | ||
Line 35: | Line 9: | ||
As a way to organize my notes and make sure I don't miss anything important, I'll use the structure of IEEE's ''Guide to the Software Engineering Body of Knowledge'' (SWEBOK). It's a standard that overviews the entire field and forms the basis for creating things like curricula and certifications. You can [https://www.computer.org/education/bodies-of-knowledge/software-engineering/v3 download the PDF] for free. | As a way to organize my notes and make sure I don't miss anything important, I'll use the structure of IEEE's ''Guide to the Software Engineering Body of Knowledge'' (SWEBOK). It's a standard that overviews the entire field and forms the basis for creating things like curricula and certifications. You can [https://www.computer.org/education/bodies-of-knowledge/software-engineering/v3 download the PDF] for free. | ||
The items under the SWEBOK knowledge areas in the first level link to my notes on each topic. | The items under the SWEBOK knowledge areas in the first level link to my notes on each topic. I've sorted the knowledge areas to approximate my preferred order, though I'll address them more haphazardly. | ||
* Ch. 1: Software requirements | * '''Introduction to the Guide''' | ||
* '''Ch. 12: Software engineering economics''' | |||
* '''Ch. 11: Software engineering professional practice''' | |||
** [[/License/]] | |||
* '''Ch. 14: Mathematical foundations''' | |||
* '''Ch. 13: Computing foundations''' | |||
* '''Ch. 15: Engineering foundations''' | |||
* '''Ch. 9: Software engineering models and methods''' | |||
* '''Ch. 7: Software engineering management''' | |||
* '''Ch. 10: Software quality''' | |||
* '''Ch. 6: Software configuration management''' | |||
** [[/Version Control/]] | |||
** [[/Version Numbers/]] | |||
** [[/Distribution/]] | |||
* '''Ch. 8: Software engineering process''' | |||
** [[/Software Development Methodology/]] | |||
*** [[/Iterative and Incremental Development/]] | |||
* '''Ch. 1: Software requirements''' | |||
** Requirements | ** Requirements | ||
* Ch. 2: Software design | * '''Ch. 4: Software testing''' | ||
** [[/Testing/]] | |||
* '''Ch. 2: Software design''' | |||
** Design | ** Design | ||
** Architecture | ** Architecture | ||
** UX and UI | ** UX and UI | ||
* Ch. 3: Software construction | * '''Ch. 3: Software construction''' | ||
** [[/Code Style/]] | ** [[/Code Style/]] | ||
** [[/Project Structure/]] | ** [[/Project Structure/]] | ||
Line 59: | Line 52: | ||
** [[/Logging/]] | ** [[/Logging/]] | ||
** [[/Test-First Programming/]] | ** [[/Test-First Programming/]] | ||
* | * '''Ch. 5: Software maintenance''' | ||
** [[/Refactoring/]] | ** [[/Refactoring/]] | ||
== [[/Sources/]] == | == [[/Sources/]] == |
Latest revision as of 15:32, 10 May 2023
Introduction
This is a collection of notes on software development. Its main purpose is to help me raise my development's level of professionalism. It also gives me a place to air an opinion or two.
To give you an idea of my background, after some BASIC programming in my childhood and a break of many years for other interests, I returned to hobby programming just after undergrad and was able to make it my living several years later in 2006. That phase of my developer life started with Perl, and since then I've moved on to Python and XSLT. I've worked mainly in the area of text processing. JavaScript and PHP have played intermittent supporting roles for occasional web development or InDesign scripting. My projects have all been either solo or with a very small team. It's all been on Windows and mostly for the command line.
Topics
As a way to organize my notes and make sure I don't miss anything important, I'll use the structure of IEEE's Guide to the Software Engineering Body of Knowledge (SWEBOK). It's a standard that overviews the entire field and forms the basis for creating things like curricula and certifications. You can download the PDF for free.
The items under the SWEBOK knowledge areas in the first level link to my notes on each topic. I've sorted the knowledge areas to approximate my preferred order, though I'll address them more haphazardly.
- Introduction to the Guide
- Ch. 12: Software engineering economics
- Ch. 11: Software engineering professional practice
- Ch. 14: Mathematical foundations
- Ch. 13: Computing foundations
- Ch. 15: Engineering foundations
- Ch. 9: Software engineering models and methods
- Ch. 7: Software engineering management
- Ch. 10: Software quality
- Ch. 6: Software configuration management
- Ch. 8: Software engineering process
- Ch. 1: Software requirements
- Requirements
- Ch. 4: Software testing
- Ch. 2: Software design
- Design
- Architecture
- UX and UI
- Ch. 3: Software construction
- Ch. 5: Software maintenance
Sources
See the article linked in the heading for a list of code examples and other sources I'm drawing from.
<disqus/>