• Unit 7: Object-Oriented Implementations

    Implementation, also known as programming or coding, is the process of using a programming language to convert specified requirements into software source code and later into compiled code for execution. Programmers can use automated tools to convert design requirements into code. Sometimes, vendors are subcontracted to develop all or part of the software and even the hardware it will run on, according to specified requirements. In these situations, vendors will bid on the subcontract by providing a proposal.

    Completing this unit should take you approximately 2 hours.

    • 7.1: History of Programming

    • 7.2: Choosing Implementation Languages

      A programming language is often selected before a development project begins or may be specified in the requirements. The selection of a programming language depends on several factors, including business goals, market strategy, language features, familiarity and expertise in a language, compatibility with available hardware and software systems, and compatibility with organizational models, processes, procedures, practices, methodologies, and tools. The factors determining the language choice for a software development project affect cost, schedule, quality, and achievement of other project objectives.

      This section discusses OO implementation. "OO" is a design abstraction, meaning it can be implemented in several (perhaps many) ways. It is implemented via programming language features built into an OOL (Object Oriented Language). However, there are other ways to implement OO. For example, OO could be implemented at a lower level, using operating system processes, data, and network functions, or it could be implemented at a higher level, using a development environment. OO could even be implemented at the lowest level via hardware or firmware. Consider project requirements that specify an application design that shall be deployed for any programming language and computer hardware with a full-function operating system.

    • 7.3: Version Control Systems

      Version control is a process or tool for tracking and managing changes to software code. Changes occur during the code development, testing phases, and maintenance. Changes are made by you or your teammates working on the code. A change could result from an improvement, an error, or a change. Software code is organized according to the software architecture and stored as modules. Version control provides a standard way of assigning a version identifier to a module file, which includes the version name and creation date/time. Version control is one activity of Software Configuration Management (SCM).

      Version control tools have existed since the beginning of assembler language programming. Yes, they have improved over the years to include some Software Configuration and project management functions and improvements in usability, security, performance, adaptability, etc. However, conceptually (i.e., at a higher level of abstraction), they have not changed because they provide support for the identification and control of stored data and changes to that data - fundamental functional requirements that are not likely to be affected by new technology or, in other terms, the process and procedures for version control, except for increasing efficiency, scale, or security. For example, Git and GitHub are old but still among the most popular tools for version control and software code repositories. Here are summaries of these two code support tools.

      1. Git (2005) - Linux open source community - distributed version control system or software code management system - supports branching, merging of branches, distributed development, CI/CD (continuous integration / continuous deployment), cloud storage, developer collaboration;
      2. GitHub (2009) Microsoft - software code repository platform - web-based management of software code repositories, uses Git for version control and developer collaboration.

    • Unit 7 Assessment

      • Receive a grade