Chapter 3 - Software Models and Technologies Flashcards

1
Q

Software Models

A

Computer systems and application programming languages are generally built upon models
that give the language some form and structure.
Four primary software models:
- Control flow
- Structured
- Object-oriented
- Knowledge-based.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Control Flow Languages

A
  • Early computer languages were sequential, executing statements in order.
  • Commonly used “if-then” and “goto” constructs.
  • The disadvantage of control flow is the difficulty in verifying a program’s integrity
  • Excessive “goto” statements led to complex and hard-to-analyse code, leading to the popularity of structured languages.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Structured Languages

A
  • Developed to address deficiencies of control flow languages with “goto” statements.
  • Emphasised procedural structure, using subroutines or functions.
  • Reduced reliance on “goto” statements
  • Introduced structured blocks of code with keywords like if…fi, BEGIN…END, {…}, if…then…else…endif, etc.
  • Promoted hierarchical flow of logic, making analysis and verification easier.
  • Evolution eventually led to object-oriented programming.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Object-Oriented Systems

A
  • Developed to address programmer inefficiency.
  • Facilitate easy reuse of software objects.
  • Go beyond hierarchical programming.
  • Enable construction of large, complex systems with reusable code.
  • Support code written in various languages within distributed environments.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Object Oriented Programming

A

Object-oriented programming (OOP) originated inthe 1960s with the computer languages Simula and Smalltalk.
Object-oriented programming has a particular vocabulary that is used to describe how components are named and assembled into programs. These terms are:
- Class
- Object
- Method
- Encapsulation
- Inheritance
- Polymorphism

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Distributed Object-Oriented Systems

A

Distributed Object-Oriented Systems are computer systems that employ object-oriented programming (OOP) principles and are designed to operate across multiple interconnected systems or nodes within a network. In these systems:

  1. Object-Oriented Programming (OOP): They use OOP languages like Java or C++ to create software components represented as objects. Each object encapsulates data and behavior, making it a self-contained unit of functionality.
  2. Distribution: These systems are distributed, meaning that various components or objects can be located on different physical or logical systems within a network.
  3. Communication: Modules or objects residing on different systems communicate with each other to perform tasks or exchange data. This communication often occurs through an Object Request Broker (ORB) or similar middleware.
  4. Middleware: Middleware, like CORBA (Common Object Request Broker Architecture), .Net Remoting, EJB (Enterprise Java Beans), DCOM (Distributed Common Object Model), or JRMI (Java Remote Method Invocation), facilitates communication and remote access between objects across the network.
  5. Reusability: Distributed Object-Oriented Systems promote code reusability by allowing objects to be easily reused across different systems, promoting efficiency and consistency in software development.

These systems are commonly used in complex, distributed computing environments where flexibility, scalability, and reusability of software components are essential, such as in large-scale enterprise applications and networked services.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Knowledge-Based Systems

A

Knowledge-Based Systems are applications that use input data to make predictions or decisions. They incorporate feedback mechanisms to learn and improve accuracy over time. These systems aim to emulate some aspects of human reasoning and are often referred to as artificial intelligence.

Neural Networks:
- Neural networks are inspired by biological reasoning processes.
- They consist of interconnected artificial neurons that store information about specific problems.
- Neural networks improve prediction accuracy with more input data, assigning weights to different factors.

Expert Systems:
- Expert systems accumulate knowledge about a specific subject, including conditions and outcomes.
- The more data they collect, the better they become at predicting future outcomes.
- They consist of a knowledge base containing past event data and an inference engine for decision-making.
- Expert systems are valuable in solving new problems based on accumulated knowledge.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly