M885 Analysis and design of enterprise systems: an object-oriented approach Flashcards
What is requirements analysis?
Is the process of elaborating the requirements in terms of understanding their business context and their impact on the system
What are the possible consequences
of conducting an inadequate requirements analysis?
Building the wrong system, or one that does not satisfy the
customer.
What is the purpose of modelling in analysis?
Models help software developers to deal with the complexity and to understand what is being developed. A model is an abstract representation of some view of a system. The view of a system changes with the stage of the development process. So, we have models with different perspectives according to the stage of development
What are the steps necessary to develop analysis models from a domain model?
- Identify how objects, and links between those objects, are affected when the system operations, corresponding to system events from the environment, are performed.
- Describe how objects within the system interact with each other to verify the precondition and fulfil the postcondition of each system operation.
- Assign to each class of objects the responsibilities that it has to effect each system operation.
- Identify the operations needed to carry out the responsibilities assigned to each class.
- Specify those operations through operations contracts.
What is association between classes
Is a property of a concept that relates it to another concept through some meaningful and interesting connection.
Describe class multiplicity
How many objects at that end are linked to one object at the other end.
What is a property of an object
Its a variable that represents an attribute of an object.
What are the two types of identities described in the course?
A property is a form of identity is known as value identity.
An object identity is intelligible only to the software system.
Briefly describe two types of interaction diagrams defined in UML
There are two kinds of interaction diagram:
- sequence diagrams, which focus on the time ordering of the messages
- communication diagrams, which focus on the links between objects, and their creation and destruction
What is a a communication diagram?
Communication diagrams show the objects involved in a collaboration, the links between those objects, and the nature of those links. In particular, a communication diagram shows the objects, the links that exist throughout the collaboration, and those that are created and/or destroyed by the collaboration.
Describe GRASP.
Craig Larman (Larman, 2002) has defined a collection of patterns (GRASP) to help the designers assign responsibilities in commonly occurring design scenarios, based on such principles. GRASP means General Responsibility Assignment Software Patterns.
What are patterns?
Architectural patterns codify recurrent software architectures, by describing the key elements of the architecture and how they fit together.
A design pattern codifies a solution to a recurring design problem. This solution is rooted in practice, in that it codifies what experienced practitioners do when they encounter a particular software problem.
What are frameworks?
Framework are sets of classes with self-defined interactions which are designed to solve specific problems
What are product lines?
The concept of product line (Clements and Northrop, 2002) is based on the idea that within a specific domain many different products can be developed with a similar structure and with well-identified variation points; these variations usually correspond to alternative components that can be plugged into the defined architecture.
Describe component architecture
Component Architecture aim to support the development of server-side business components. Other standards have emerged which aim to support many other aspects of enterprise application development, from user interaction to database integration. The ultimate goal is for whole system architectures to be built by fitting standard components together.
Describe service-oriented architecture
SOA is an approach to build enterprise systems that deliver application functionality either as services to end-user applications or to build other services. In this approach, services are software assets, which are described and interact in a standard way, so that the focus of application development is the assembly of services as building blocks.
What are Use Cases?
A use case represents one possible way of using a system; it describes, from a user’s point of view, the interactions with the system necessary to achieve a goal, i.e. it describes functionality. Users have goals that are to be met with the help of the system.
What is inheritance?
Inheritance is one of the main mechanisms for the reuse of code in an object-oriented language. By applying inheritance, a class becomes the subclass of an existing class, from which it inherits attributes and methods. The subclass can, of course, add new attributes and methods, or override those of its superclass. Objects of the subclass can make use of any attribute or method defined in the superclass as though they were their own.
What is delegation?
Delegation is where a class uses the services of another class to fulfil its responsibility. By applying delegation, a class A makes use of some or all of the services of another class B in order to fulfil some of its responsibilities. Objects of class A hold references to objects of class B which they use to invoke class B’s methods.
What are the possible obstacles to developing fit-for-purpose systems?
Changes in business occur frequently, so software has to adapt to these frequent changes in order to keep a business competitive. Software development does not always mean development from scratch. Timely delivery of new software may mean that existing software has to be reused.
What are the practices that may help remove obstacles in developing fit-for-purpose systems?
Reuse of expertise, design and even existing systems or parts of them within new developed software
What is object identity?
Is a form of identity intelligible only to the software system, where it identifies which object to use as a receiver of a given message.