Introduction to Software Development
Sample learning objectives
Differentiate between system software, programming software, application software and embedded software and provide examples of languages and platforms used to create each
Understand basic application computing and architectural concepts, such as layered architecture types versus Service Oriented Architectures (SOA), Microservice environments, and how they have evolved over time
Understand consumer applications versus enterprise application environments
Identify software tools used most to develop apps on Windows, Android, iOS, macOS, and Linux platforms; compare and contrast the advantages and disadvantages of each
Describe the role of linkers, compilers, code editors, GUI designers, assemblers, debuggers, IDEs, static code analysis and code coverage tools, and performance analysis tools in developing software
Compare and contrast commonly used software development tools such application lifecycle management (ALM), Integrated Development Environments (IDE), Source Code Management (SCM), Test Management, Application Performance Monitoring (APM), Test Automation, Static Analysis, and other application dev and delivery toolsets. Explain how software developers ascertain and document specifications for clients, end users, or other stakeholders, and standards that software must meet
Discuss ways in which data can be transferred to new or updated software from existing applications or data sources
Explain the purpose of relational versus nonrelational database technologies
Describe the use of Relational Database Management Systems in creating database objects and tables, and demonstrate the ability to create a basic database in MySQL, SQL Server, MS Access, Oracle, Sybase, Informix, Postgres or other database system