Midterm Study - OOS Overview Flashcards

1
Q

What are the two types of software products?

A

Generic (word) Bespoke (custom) (one view)

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

How can new software be created?

A
  • Develop new programs - Configure generic software systems - reuse existing software (build on op)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the attributes of good software?

A

The software should deliver the required functionality and performance to the user and should be maintainable, dependable, efficient and acceptable

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

What is software engineering?

A

Software engineering is an engineering discipline that is concerned with all aspects of software production, ensuring it is of high quality, affordable, maintainable, and fast to build.

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

What is an Object Oriented System?

A

It is a disciplined method for industrial development of software. It is use case driven, which centres on understanding the ways in which a system is actually used

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

How does object-oriented software work?

A

Object-oriented software is all about objects. An object is a “black box” which receives and sends messages. A black box actually contains code (sequences of computer instructions) and data (information which the instructions operates on).

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

What are the 4 generic activities in all software processes?

A

– Specification - what the system should do and its development constraints

– Development - production of the software system

– Validation - checking that the software is what the customer wants

– Evolution - changing the software in response to changing demands

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

What is the most common modern process model?

A

Agile Development

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

What is modularisation?

A

subdividing a computer program into separate sub-programs

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

What is decomposition?

A

factoring, breaking a complex problem or system into parts

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

What does iteration mean?

A

breaking down the software development of a large application into smaller chunks

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

What is documentation?

A

written text or illustration that accompanies computer software or is embedded in the code

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

Parallel Activities means?

A

Two or more tasks that can be performed simultaneously

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

What does the object oriented system engineering method look like?

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

What is abstraction?

A

Abstraction allows programmers and designers to separate categories and concepts from instances of implementation, so that they do not depend on software or hardware.

Abstraction is a concept that reduces the behaviour of an object to the lowest common denominator (abstract classes)

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

What is inheritance?

A

Inheritance means that methods and/or attributes defined in an object class can be inherited or reused by another object class. Often referred to as Generalization/Specialization, there is a super class (general) and sub classes (specialized) that inherit the general methods and attributes.

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

What is encapsulation?

A

Encapsulation is the inclusion within an object of all the resources needed for the object to function (methods and data). The object is said to publish it’s interfaces (getters, setters, properties) and other objects have to adhere to these interfaces without having to be concerened with how the object accomplishes it.

18
Q

What is polymorphism?

A

Polimorphism means “many forms”. Applied to object-oriented techniques it means that the same named behaviour may be completed differently for different objects/classes.

As an example, consider two objects “window” and “door”. Both objects have a common behaviour that they may perform - close.

But how a door object carries out that behaviour may differ substantially from the way in which a window carries out that behaviour.

Inheritance and Polymorphism are effective techniques for dealing with software complexity

19
Q

What is UML?

A

The Universal Modeling Language, any object oriented method or process can use UML as it’s modeling language. UML processes are use-case driven, architecture centric and iterative/incremental

20
Q

What does user-case driven mean?

A

In UML, use-cases capture the functional requirements of the system. Use-case driven methodologies drive the development in all phases subsequent to the requirements analysis.

During analysis, they are used to capture the required functionality and to validate this functionality with the customer

During design and implementation, the user cases must be realized in the construction.

During testing, the use cases verify the system; they become the test cases

21
Q

What does architecture-centric mean?

A

This means that you consider a well-defined, basic system architecture important and that this architecture should be established early in the process.

22
Q

What is an object?

A

An object is an entity (physical or conceptual) which has attributes and operations that can affect (query or change) those attributes.

An object has:

STATE, BEHAVIOUR, IDENTITY

23
Q

Explain what the state of an object means?

A

The state of an object is one of the possible conditions in which an object may exist.

(instance variables)

Normally changes over time, usually implemented by a set of properties called attributes.

With the values of the properties, plus the links the object may have with other objects.

24
Q

Explain what an objects behaviour is

A

Behaviour determines;

(methods)

how an object acts and reacts, and defines how an object reacts to requests from other objects.

The visible behaviour of an object is modeled by the set of messages it can respond to (the operations the object can perform)

25
Q

What is an objects identity?

A

Each object has a unique identity, even if state is identical to that of another object.

(the actual instance of that object)

3 different algebra teachers with the same name…

26
Q

What are classes?

A

A class is a description of a group of objects with common properties (attributes), common behaviour (operations), common relationships to other objects (associations and aggregations), and common semantics.

(blueprint of an object type)

27
Q

What is an attribute?

A

An attribute is a data definition held by instances of a class. They do not have a behavior and are not objects. Attribute names are simple nouns or noun phrases and each attribute should have a clear, concise definition.

(instance Variables)

28
Q

What is an operation?

A

A class embodies a set of responsibilities which define the behaviour of the objects in the class. The responsibilities of a class are carried out by its operations. This is not necessarily a one-to-one mapping.

(objects/classes methods)

Product class responsibility – supply price

Operations for this responsibility – look up info from a db, calculate price

An operation is a service that can be requested from an object to effect behavior

29
Q

What is a stereotype?

A

A stereotype is a type of modeling element. They must be based on existing types or classes in the model.

(a classes category or grouping)

Every class may have at most one stereotype

Common stereotypes - logical node, physical node, subsystem, block, getter, setter, controller, entity

30
Q

What are the two types of relationships during analysis?

A

Association and aggregation

31
Q

What is association?

A

An association is a bi-directional semantic connection between classes, this implies that there is a link between objects in the associated classes.

Associations are represented on class diagrams by a line connecting the associated classes.

Data may flow in either direction or both directions accross a link

32
Q

What is aggregation?

*** LEARN BETTER ***

A

Aggregation is a specialized form of association in which a whole is related to its parts, aggregation is known as a “part-of” or containment relationship.

An aggregation is represented as an association with a diamond next to the class denoting the aggregation (whole)

Multiplicity is represented in the same manner as other associations

33
Q

What is a package?

A

A package is a general purpose mechanism for organizing elements into groups.

The number of classes grows as use cases and scenarios are analyzed.

The classes may be grouped into packages and provides the ability to organize the model under development.

A package is represented as a tabbed folder

34
Q

Why use the object method?

A

Many of the tasks we do (including business tasks) involve identifying, organizing, transgerring, and building OBJECTS, its an object oriented world.

It makes some sense then to organize computer programming/software engineering in a way that aligns with other human organizational activities.

35
Q

Whats different in the object oriented life cycle from other SDLC’s?

A

The object oriented life cycle uses an agile methodology, It begins as an abstract and gerneralized concept that becomes more highly specific as it gets closer to the technically demanding aspects like software development.

It is very elastic and easily adaptable to changes.

36
Q

What happens in the Analysis Phase?

A

A model of the desired application is built that shows what the system is supposed to do , it specifies functional behavior.

It captures requirements which probably came from the customer, and is used for discussion and revision.

This could be done in narrative form but special modeling techniques have been devised to do this

37
Q

What happens in the Design Phase?

A

Oce the analysis model is deemed to have completely and accurately captured the functional requirements of the system, efforts shifts to creating the design model.

Here the analysis model is enhanced and detailed so that the question of how the system will work in its intended environment is answered.

This means working out details of data structures and algorithms among other things.

38
Q

What happens in the implementation phase?

A

Programming languages/other tools are used to translate the design model’s specifications into program code.

Here a great diversity of tools and approaches are possible but the expectation is that the object oriented development tools will be used (for consistency)

39
Q

What are the benefits of using the Object Oriented Systems Development Life Cycle?

A
  1. The ability to tackle more challenging problem domains
  2. Improved communication among users, analysts, designers and programmers
  3. Increased consistency among analysis, design and programming activities
  4. Ecplicit representation of commonality among system components
  5. Reusability of analysis, design and programming results.
  6. Increased consistency among the models developed during object oriented analysis, design and programming
40
Q

What is the biggest factor in high consistency with OO?

A

HIgh consistency in oo is mostly due to Unified Modeling Language or simply UML