Midterm Study - OOS Overview Flashcards
What are the two types of software products?
Generic (word) Bespoke (custom) (one view)
How can new software be created?
- Develop new programs - Configure generic software systems - reuse existing software (build on op)
What are the attributes of good software?
The software should deliver the required functionality and performance to the user and should be maintainable, dependable, efficient and acceptable
What is software engineering?
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.
What is an Object Oriented System?
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 does object-oriented software work?
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).
What are the 4 generic activities in all software processes?
– 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
What is the most common modern process model?
Agile Development
What is modularisation?
subdividing a computer program into separate sub-programs
What is decomposition?
factoring, breaking a complex problem or system into parts
What does iteration mean?
breaking down the software development of a large application into smaller chunks
What is documentation?
written text or illustration that accompanies computer software or is embedded in the code
Parallel Activities means?
Two or more tasks that can be performed simultaneously
What does the object oriented system engineering method look like?

What is abstraction?
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)
What is inheritance?
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.
What is encapsulation?
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.
What is polymorphism?
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
What is UML?
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
What does user-case driven mean?
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
What does architecture-centric mean?
This means that you consider a well-defined, basic system architecture important and that this architecture should be established early in the process.
What is an object?
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
Explain what the state of an object means?
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.
Explain what an objects behaviour is
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)