Software Development

The six main activities of the software development life cycle is as shown below:

Figure 1.1 Main activities in software development.

Figure 1.1 Main activities in software development.

We have covered some of them in our previous COE courses. For this course specifically, we are focusing on the system design aspect of software development.

System Design and Software Architecture

The main output of the system design phase is the software architecture, in terms of the:

Software architecture is a creative exercise, requiring considerable knowledge, experience and discipline, thus developers select strategies for building the system, such as the hardware/software strategy, the persistent data management strategy.

As an example, we’ll use a learning management system (LMS) as reference.

<aside> <img src="/icons/map-pin_gray.svg" alt="/icons/map-pin_gray.svg" width="40px" /> An LMS is a software application for the administration, documentation, tracking, reporting, automation, and delivery of educational courses — like D2L.

</aside>

Let’s consider what are the main software components that make up an LMS?

Figure 1.2 Software components of an LMS.

Figure 1.2 Software components of an LMS.

We can simplify it into the three components as shown above. Now ask yourself, what is the relationships between these components? There are many important design decision you need to make when designing the system.