Thanks for linking to old. reddit; the new page noticeably increases power consumption.<p>Anyway, I think 'software engineering' makes less sense than 'software design'. Everything that made has a design, whether it was created intentionally or not, but only an intentionally planned design is engineered, so all software has a design but not all software is engineered.
Architecture maps responsibilities to capabilities.
Analysis maps a problem space to a model.
Design transforms a model into a better model. (This is implicitly iterative.)
Implementation maps the designed model to buildables/deployables/runnables.