Welcome to Software Construction
The term software construction refers to the detailed creation of working software through a combination of coding, verification, unit testing, integration testing, and debugging. The Software Construction is most strongly linked to Software Design and Software Testing because the software construction process involves significant software design and testing. The process uses the design output and provides an input to testing. Boundaries between design, construction, and testing (if any) will vary depending on the software life cycle processes that are used in a project.
Although some detailed design may be performed prior to construction, much design work is performed during the construction activity. Thus, the Software Construction is closely linked to the Software Design . Throughout construction, software engineers both unit test and integration test their work. Thus, the Software Construction is closely linked to the Software Testing as well.
Software construction typically produces the highest number of configuration items that need to be managed in a software project (source files, documentation, test cases, and so on). Thus, the Software Construction is also closely linked to the Software Configuration Management. Code is the ultimate deliverable of a software project, and thus the Software Quality is closely linked to the Software Construction.
Since software construction requires knowledge of algorithms and of coding practices, it is closely related to the Computing Foundations, which is concerned with the computer science foundations that support the design and construction of software products. It is also related to project management, insofar as the management of construction can present considerable challenges.
Source: Software Engineering Body of Knowledge (SWEBOK)
Possible Roles
How To
Professional Certifications
- Microsoft Front-End Developer Professional Certificate
- Microsoft Back-End Developer Professional Certificate
- Microsoft Full-Stack Developer Professional Certificate
- Meta Front-End Developer Professional Certificate
- Meta Back-End Developer Professional Certificate
- Meta Android Developer Professional Certificate
- Meta iOS Developer Professional Certificate
- Meta Database Engineer Professional Certificate
- IBM Front-End Developer Professional Certificate
- IBM Back-End Development Professional Certificate
- IBM Back-end JavaScript Developer Professional Certificate
- IBM Full-Stack JavaScript Developer Professional Certificate
- IBM Full Stack Software Developer Professional Certificate
- IBM iOS and Android Mobile App Developer Professional Certificate
- IBM DevOps and Software Engineering Professional Certificate
- Amazon Junior Software Developer Professional Certificate
Online Communities
Blogs
- Medium - Programming
- Top Programming Blogs and Websites For Programmers
- Top Software Development Blogs, Websites & Influencers
Resources Collections
Learning Resources
Important Note: all learning resources available here are free. If you found any learning resource that requires a fee or the URL is broken/wrong, please inform us. Regarding the MOOCs that are bundled as a specialization track with a fee (e.g. coursera’s specializations and edx’s xseries programs), you can look for each individual course and take it for free (Audit option).
Foundation
MOOCs
Websites
Beginner
MOOCs
General
- CS50’s Introduction to Programming with Python
- Java Programming and Software Engineering Fundamentals
- Version Control with Git
Web
- HTML, CSS, and Javascript for Web Developers
- Introduction to Web Accessibility
- Front-End Interview Prep
Mobile
Android
iOS
Websites
Intermediate
MOOCs
General
Web
- CS50’s Web Programming with Python and JavaScript
- Introduction to Node.js
- Responsive Website Development and Design