Module 03 Integrative Coding: Background
Module 03 Integrative Coding: Background
1
Integrative Coding
Background
Designing reusable object-oriented software that models an existing system is genuinely
challenging. A software developer must factor the system's entities into classes whose public
interfaces aren't overly complex, establish relationships among classes, expose inheritance
hierarchies, and more. Because most software remains in use long after it was written, software
developers also need to address current application requirements while keeping their code and
infrastructure flexible enough to meet future needs.
Design Pattern
A Lower level framework for structuring an application than architectures (Sometimes, called
micro-architecture). Reusable collaborations that solve sub problems within an application. Design
patterns support object-oriented reuse at a high level of abstraction. Design patterns provide a
“framework” that guides and constrains object-oriented implementation.
Course Module
Integrative Programming and Technologies 1
2
Integrative Coding
Interfaces
Application Programming Interfaces
- These are sets of requirements that govern how one application can talk to another.
Applications to share data and take actions on one another's behalf without requiring
developers to share all of their software's code and it define exactly how a program will
interact with the rest of the software world—saving time, resources.
Course Module
Integrative Programming and Technologies 1
3
Integrative Coding
Examples: a. System-level APIs- cut and paste LibreOffice document into an Excel spreadsheet
b. FacebookAPIs- Facebook users sign into many apps and Web sites using their
Facebook ID
c. Web APIs – games let players chat, post high scores and invite friends to play via
Face book, right there in the middle of a game
Inheritance
It derive a new class based on an existing class, with modifications or extensions. A subclass
inherits all the variables and methods from its super classes, including its immediate parent as well
as all the ancestors and avoid duplication and reduce redundancy.
Types of Inheritance
Simple, Multilevel, Multiple, hierarchical and Hybrid
Abstract Class
A class containing one or more abstract methods is called an abstract class.
- must be declared with a class-modifier abstract.
- provides a template for further development.
Course Module
Integrative Programming and Technologies 1
4
Integrative Coding
Course Module
Integrative Programming and Technologies 1
5
Integrative Coding
If make a mistake, roll back to a previous version. Reproduce and understand a bug report
on a past version of your software. Undo specific edits without losing all the work that was done in
the meanwhile. For any part of a file, determine when, why, and by whom it was ever edited. Version
control uses a repository (a database of changes) and a working copy (checkout) where you do your
work working copy is your personal copy of all the files in the project. Edits to this copy, without
affecting your teammates. Commit your changes to a repository repository is database of all the
edits to, and/or historical versions (snapshots) of, your project update your working copy to
incorporate any new edits or versions.
Two varieties of version control: centralized (one repository) and distributed (multiple
repositories). Some popular version control systems are Mercurial (distributed), Git (distributed),
and Subversion (centralized). The main difference between centralized and distributed version
control is the number of repositories. In centralized version control, there is just one repository, and
in distributed version control, there are multiple repositories
Course Module