Difference between revisions of "Software Development"

From The Thinkulum
Jump to navigation Jump to search
(In the topic outline, moved "Software engineering models and methods" to just after "Engineering foundations.")
m (Boldfaced the top-level topics in the outline for easier reading.)
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
* '''Ch. 12: Software engineering economics'''
* Ch. 11: Software engineering professional practice
* '''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. 9: Software engineering models and methods
* '''Ch. 9: Software engineering models and methods'''
* Ch. 7: Software engineering management
* '''Ch. 7: Software engineering management'''
* Ch. 8: Software engineering process
* '''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. 10: Software quality
* '''Ch. 10: Software quality'''
* Ch. 4: Software testing
* '''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. 6: Software configuration management
* '''Ch. 6: Software configuration management'''
** [[/Version Control/]]
** [[/Version Control/]]
** [[/Version Numbers/]]
** [[/Version Numbers/]]
** [[/Distribution/]]
** [[/Distribution/]]
* Ch. 3: Software construction
* '''Ch. 3: Software construction'''
** [[/Code Style/]]
** [[/Code Style/]]
** [[/Project Structure/]]
** [[/Project Structure/]]
Line 51: Line 51:
** [[/Logging/]]
** [[/Logging/]]
** [[/Test-First Programming/]]
** [[/Test-First Programming/]]
* Ch. 5: Software maintenance
* '''Ch. 5: Software maintenance'''
** [[/Refactoring/]]
** [[/Refactoring/]]



Revision as of 15:54, 9 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.

Sources

See the article linked in the heading for a list of code examples and other sources I'm drawing from.

<disqus/>