CS504 - Software Engineering I
Course Page
Q & A
Short Question & Answers
Q26: Collaboration Diagrams depict Dynamic behavior of the system, explain it.
Collaboration diagrams: Collaboration diagrams can also be used to depict the dynamic behavior of a system. They show how objects interact with respect to organizational units (boundaries!). Since a boundary shapes communication between system and outside world e.g. user interface or other system, collaboration diagrams can be used to show this aspect of the system. The sequence of messages determined by numbering such as 1, 2, 3, 4, this shows which operation calls which other operation.
Q27: To manage the complexity of the system we need to apply the principles of separation of concern. Discuss briefly.
Separation of concern allows us to deal with different individual aspects of a problem by considering these aspects in isolation and independent of each other. A complex system may be divided into smaller pieces of lesser complexity called modules.
Q28: What is elaborated Use case? Explain it.
After the derivation of the use case model, each use is elaborated by adding detail of interaction between the user and the software system. An elaborated use case has the following components: Use Case Name, actors, summary, precondition, post-condition, extend, uses, normal course of events, alternative path, exception, assumption.
Q29: What do we mean by ambiguous requirements? Explain with the help of an example.
Ambiguity means that two different readers of the same document interpret the requirement differently. Ambiguity arises from the use of natural language. Because of the imprecise nature of the language, different readers interpret the statements differently. As an example, consider the following Urdu Phrase: “Rooko mut jane doo”. Now, depending upon where a reader places the comma in this statement, two different readers may interpret it in totally different manner. If a comma is palced after “Rooko”, the sentence will become “Rooko, mut jane doo”, meaning “don’t let him go”. On the other hand if the comma id placed after “mut”, the sentence will become “Rooko mut, jane doo”, meaning “let him go”. Ambiguous requirements therefore result in misunderstandings and mismatched expectations, resulting in a wasted time and effort and an undesirable product.
Q30: How can we decrease Coupling explain it.
That is, we can reduce the coupling of a system by minimizing the number of messages in the protocol of a class.
Q31: Narrate some of the architectural design guidelines that can help in addressing non-functional requirements challenges.
Software architecture must address the non-functional as well as the functional requirements of the software system. Following are some of the architectural design.

Performance: Performance can be enhanced by localizing operations to minimize sub-system communication. That is, try to have self-contained modules as much as possible so that inter-module communication is minimized.

Security: Security can be improved by using a layered architecture with critical assets put in inner layers.

Safety: Safety-critical components should be isolated

Availability: Availability can be ensured by building redundancy in the system and having redundant components in the architecture.

Maintainability: Maintainability is directly related with simplicity. Therefore, maintainability can be increased by using fine-grain, self-contained components.
Q32: What is the importance of Classification in identifying Classes and objects?
Consider a large university library. Tens of thousands of books, periodicals, and other information resources are available for use. But to access these resources, a categorization scheme must be developed. To navigate this large volume of information, librarians have defined a classification scheme that includes a Library of Congress classification code, keywords, author names, and other index entries. All enable the user to find the needed resource quickly and easily.
Q33: What is the difference between Association and composition?
In Association, interacting objects have no intrinsic relationship with other object. It is the weakest link between objects. While in Composition an object may be composed of other smaller objects, the relationship between the “part” objects and the “whole”.
Q34: How the objects are identified in peter codd’s technique?
Objects are identifying in the following way.

Select actors: Actors are people and organizations that take part in the system under consideration. Examples of actors are: person, organization (agency, company, corporation, foundation).

Select Participants: A participant is a role that each actor plays in the system under consideration. Examples of participants are: agent, applicant, buyer, cashier, clerk, customer, dealer, and distributor. Etc.

Select Places: Places are where things come to rest or places that contain other objects. Examples of places are: airport, assembly-line, bank, city, clinic, country, depot, garage and hospital etc.

Select Transactions: Transactions are the “events”. These transactions usually come from a window (GUI), some object which monitors for significant event and logs that information, or a another system that interacts with the system under consideration and logs some information. Examples of transactions are: agreement, assignment, authorization, contract, delivery, deposit, incident, inquiry, order, payment, problem report, purchase and sales etc.

Select Container Objects: Containers are objects that hold other objects. e.g. bin, box, cabinet, folder, locker, safe, shelf, etc. Therefore a place is also a container but every container need not be a place.

Select Tangible things: Take a “walk” through the system and select “tangible” things around you used in the problem domain. These may be characterized as all the remaining (not yet selected) “nouns” that make up the problem domain. Examples are: account, book, calendar, cash box, cash drawer, item, plan, procedure, product, schedule, skill, tool, etc.
Q35: Define cohesion.
Cohesion is an internal property of a module. Cohesion describes the intra-component linkages while couple shows the inter-component linkages. Cohesion measures the independence of a module.
Course Instructor

Dr. Fakhar Lodhi
D.Sc. (CS) George
Washington University, USA

Software Engineering: A Practitioner’s Approach by Roger S. Pressman

The Unified Modeling Language User Guide by Grady Booch