Difference between revisions of "Software Development"
(Condensed and updated the intro. Reordered the topic outline.) |
(Added "Introduction to the Guide" to the topic outline.) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 11: | Line 11: | ||
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. | 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. 12: Software engineering economics | * '''Introduction to the Guide''' | ||
* Ch. 11: Software engineering professional practice | * '''Ch. 12: Software engineering economics''' | ||
* '''Ch. 11: Software engineering professional practice''' | |||
** [[/License/]] | ** [[/License/]] | ||
* Ch. 14: Mathematical foundations | * '''Ch. 14: Mathematical foundations''' | ||
* Ch. 13: Computing foundations | * '''Ch. 13: Computing foundations''' | ||
* Ch. 15: Engineering foundations | * '''Ch. 15: Engineering foundations''' | ||
* Ch. 7: Software engineering management | * '''Ch. 9: Software engineering models and methods''' | ||
* Ch. 8: Software engineering process | * '''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/]] | ** [[/Software Development Methodology/]] | ||
*** [[/Iterative and Incremental Development/]] | *** [[/Iterative and Incremental Development/]] | ||
* Ch. 1: Software requirements | * '''Ch. 1: Software requirements''' | ||
** Requirements | ** Requirements | ||
* | * '''Ch. 4: Software testing''' | ||
** [[/Testing/]] | ** [[/Testing/]] | ||
* Ch. 2: Software design | * '''Ch. 2: Software design''' | ||
** Design | ** Design | ||
** Architecture | ** Architecture | ||
** UX and UI | ** UX and UI | ||
* | * '''Ch. 3: Software construction''' | ||
** [[/Code Style/]] | ** [[/Code Style/]] | ||
** [[/Project Structure/]] | ** [[/Project Structure/]] | ||
Line 51: | Line 52: | ||
** [[/Logging/]] | ** [[/Logging/]] | ||
** [[/Test-First Programming/]] | ** [[/Test-First Programming/]] | ||
* Ch. 5: Software maintenance | * '''Ch. 5: Software maintenance''' | ||
** [[/Refactoring/]] | ** [[/Refactoring/]] | ||
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/>