Software Engineering Overview [Dev Concepts #30]

In this article of the series Dev Concepts, we take a look at Software Engineering, Quality Assurance, Unit Testing, Source Control and Project Tracking.
Dev-Concepts-Episode-30-Software-Engineering-Overview

For this article, we will make an overview of software engineering concepts like software development lifecycle, software quality assurance, unit testing, source control system, and project trackers. Each concept is essential for your development as a software engineer. You should have a basic knowledge of each area because they are daily used in software companies. Even if the technologies differ, the concept is still the same but with a different GUI and software.

sdlc-diagram

  • The Software Development Lifecycle¬†is a process used by the software industry to¬†design,¬†develop,¬†and¬†test¬†high-quality¬†software. It aims to produce high-quality software that meets or exceeds customer expectations reaches completion within times and cost estimates.¬†The benefits of using it only exist if the plan is followed faithfully. Read our blog post about them here.

designer-work-with-internet-vector

  • Software Quality Assurance is a term that covers all aspects of guaranteeing a high-quality¬†software product. It includes¬†creating processes¬†for each stage of development to reduce¬†bugs¬†and¬†flaws¬†during the build. Companies need it to measure the¬†quality of the software. At the heart of the QA process is software testing. Read more about them in our separate blog post here.
  • Unit testing¬†is an important concept and practice in¬†software development. As a term,¬†unit tests¬†are pieces of code that¬†test specific functionality in a certain software component. ¬†Unit testing frameworks¬†simplify, structure, and organize the¬†unit testing process. It executes the¬†test¬†and generates¬†reports. Examples of¬†unit testing frameworks are¬†JUnit¬†for Java and¬†Mocha for JavaScript.¬†Read more here.

unit_testing_guidelines

  • Git¬†is the most popular¬†source control system¬†in modern software development. It is a powerful tool for¬†version control¬†and¬†team collaboration¬†at the¬†source code level. In our article, we work with¬†Git¬†and¬†GitHub by showing a few examples. We clone¬†the¬†repository,¬†edit¬†a local file,¬†commit¬†the local changes, and then¬†publish the commit. You can read it here.

github-architecture

  • Project trackers, as a term, are a simple¬†tool¬†that manages the project schedule,¬†plan,¬†assign,¬†arrange,¬†track¬†and¬†visualize¬†project¬†tasks. They are a great way to make your¬†tasks¬†come to life and¬†visualize your upcoming week or month‚Äôs tasks. You can read more about them in our blog post here.

trello-design

All of these concepts are important for your future development as a software engineer. Each topic can be separated into a course and studied in detail. Even if you are indifferent to all the concepts, you should know at least the basics about each topic. In almost every interview for a software developer, you will be asked if you are familiar with these areas. Each software company uses different technologies, but the concepts are the same.

Lesson Topics

In this tutorial we cover the following topics:
  • Software Development LifeCycle
  • Software Quality Assurance (QA)
  • Unit Testing and Testing Frameworks
  • Overview of Git and GitHub
  • Project Trackers, Kanban Boards, and Trello

Lesson Slides

Leave a Comment

Recent Posts

About SoftUni

SoftUni provides high-quality education, profession and job to people who want to learn coding.

The SoftUni Global “Learn to Code” Community supports learners with free learning resources, mentorship and community help.

Tags

Categories

Scroll to Top