CS504-Softwere Engineering -1 midterm Past Papers
Q. Define abstraction?
An abstraction is a technique in which we construct a model of an entity based upon its essential characteristics
and ignore the inessential details.
Q.Is the design of software architecture a creative process?
Design of software architecture is a creative and iterative process. This involves performing a number of
activities, not necessarily in any particular order or sequence.
Q. Suppose you are working as a software engineer involved in the development of an e-commerce website. What are the 2 most important characteristics your software must have?
Two most important characteristics are that software should be reliable and useable.
Q.What is the purpose of collaboration diagrams?
Answer:- 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!). Collaboration diagrams can also show synchronous, asynchronous, create, and destroy message using the same notation as used in sequence diagrams.
Q.Define Asynchronous Messages and Synchronous Messages.
Asynchronous messages are “signals,” denoted by a half arrow. They do not block the caller. Asynchronous
messages typically perform the following actions:
Create a new thread
Create a new object
Communicate with a thread that is already running
Synchronous messages are “call events” and are denoted by the full arrow. They represent nested flow of
control which is typically implemented as an operation call. In case of a synchronous message, the caller waits
for the called routine to complete its operation before moving forward.
Q.Law of balancing act in software
The Balancing Act!
Software Engineering is actually the balancing act. You have to balance many things like cost, user
friendliness, Efficiency, Reliability etc. You have to analyze which one is the more important feature for your
software is it reliability, efficiency, user friendliness or something else. There is always a trade-off among all
these requirements of software. It may be the case that if you try to make it more user-friendly then the
efficiency may suffer. And if you try to make it more cost-effective then reliability may suffer. Therefore there
is always a trade-off between these characteristics of software. These requirements may be conflicting. For
example, there may be tension among the following:
Cost vs. Efficiency
Cost vs. Reliability
Efficiency vs. User-interface
A Software engineer is required to analyze these conflicting entities and tries to strike a balance.
Q. HOW DO YOU DETERMINE THAT AN OBJECTIVE BELONGS TO CERTAIN CLASS?
The basic unit of object oriented design is an object. An object can be defined as a tangible entity that exhibits
some well defined behavior. The structure and behavior of similar objects are defined in their common class. A
class specifies an interface and defines an implementation.
Q.What is meant by “System’s Static View”?
Static view of semantic classes.
Requirements are assessed and classes are extracted (and represented) as part of the analysis model.
Static view of attributes. Every class must be explicitly described. The attributes associated with the class
provide a description of the class.
Static view of relationships.
Objects are “connected” to one another in a variety of ways. The analysis model must represent these.
Static view of behaviors.
The relationships just noted define a set of behaviors that accommodate the usage scenario (use-cases) of the
Q. What is the Cardinality of Objective?
Cardinality: The data model must be capable of representing the number of occurrences Objects in a given
relationship. Tillmann [TIL93] defines the cardinality of an object/relationship pair in the following manner:
One-to-one (l:l)—An occurrence of [object] ‘A’ can relate to one and only one occurrence of [object]
‘B,’ and an occurrence of ‘B’ can relate to only one occurrence of ‘A.’
One-to-many (l:N)—One occurrence of [object] ‘A’ can relate to one or many occurrences of [object]
‘B,’ but an occurrence of ‘B’ can relate to only one occurrence of ‘A.’ For example, a mother can have
many children, but a child can have only one mother.
Many-to-many (M:N)—An occurrence of [object] ‘A’ can relate to one or more occurrences of ‘B,’
while an occurrence of ‘B’ can relate to one or more occurrences of ‘A.’ For example, an uncle can have
many nephews, while a nephew can have many uncles.
Q.What is behavior driven perceptive of an objective?
Behavior is how an object acts and reacts in terms of its state changes and message passing. The behavior of an
object is completely defined by its actions. A message is some action that one object performs upon another in
order to elicit a reaction. The operations that clients may perform upon an object are called methods.
Q.What is Textual Analysis? Explain it.
Textual analysis was developed by Abbot and then extended by Graham and others. In this technique different
parts of speech are identified within the text of the specification and these parts are modeled using different
Q. What is Software Architecture?
Answer:- Architecture is the organizational structure of a system. Architecture can be recursively decomposed into parts that interact through interfaces, relationships that connect parts, and constraints for assembling parts. Parts that interact through interfaces include classes, components and subsystems.
Q. What is the difference between Aggregation and Association?
As compared to association, aggregation implies a tighter coupling between the two objects which are involved
in this relationship. Therefore, one way to differentiate between aggregation and association is that if the two
objects are tightly coupled, that is, if they cannot exist independently, it is an aggregation, and if they are
usually considered as independent, it is an association.
Q.what parameters are used to measure and analyze design quality?
A software design can be looked at from different angles and different parameters can be used to measure and
analyze its quality. These parameters include efficiency, compactness, reusability, and maintainability. A good
design from one angle may not seem to be suitable when looked from a different perspective. For example, a
design that yields efficient and compact code may not be very easy to maintain. In order to establish whether a
particular design is good or not, we therefore have to look at the project and application requirements.
Q. Discuss some of the purpose of interacting diagram?
The purposes of interaction diagrams are to visualize the interactive behaviour of the system. Now visualizing
interaction is a difficult task. So the solution is to use different types of models to capture the different aspects
of the interaction.
That is why sequence and collaboration diagrams are used to capture dynamic nature but from a different angle.
So the purposes of interaction diagram can be describes as:
To capture dynamic behaviour of a system.
To describe the message flow in the system.
To describe structural organization of the objects.
To describe interaction among objects.
Q.What should be consideration for maintain design?
In order to make a design that is maintainable, it should be understandable and the changes should be local in
effect. That is, it should be such that a change in some part of the system should not affect other parts of the
system. This is achieved by applying the principles of modularity, abstraction, and separation of concern. If
applied properly, these principles yield a design that is said to be more cohesive and loosely coupled and thus is
easy to maintain.
Q. It is fact that good design makes maintenance easier. Which design principle help this to be achieved?
A good design from one angle may not seem to be suitable when looked from a different perspective. For
example, a design that yields efficient and compact code may not be very easy to maintain. In order to establish whether a particular design is good or not, we therefore have to look at the project and application requirements.
Q. To manage the complexity of the system we need to apply the principle of abstraction. Discuss briefly?
An abstraction is a technique in which we construct a model of an entity based upon its essential characteristics
and ignore the inessential details. The principle of abstraction also helps us in handling the inherent complexity
of a system by allowing us to look at its important external characteristic, at the same time, hiding its inner
complexity. Hiding the internal details is called encapsulation.
Q.Differentiate between architectural design and system architecture in a single line?
Architecture faces towards strategy, structure and purpose, towards the abstract while Design faces towards
implementation and practice, towards the concrete.
Q.What are architectural designs Process, explain briefly?
System structuring: –
System structuring is concerned with decomposing the system into interacting sub-systems. The system is
decomposed into several principal sub-systems and communications between these sub-systems are identified.
Control modeling establishes a model of the control relationships between the different parts of the system.
During this activity, the identified sub-systems are decomposed into modules. This design process is further
elaborated in the following section where architectural views are discussed.
Q. Discuss the relationship between sequence diagram and logical complexity?
It is important to understand that the diagrams are meant to make things clear. Therefore, in order to keep them
simple, special attentions should be paid to the conditional logic. If it is simple then there is no harm in adding
it to the diagram. On the other hand if the logic is complex then we should draw separate diagrams like flow
Q.Define Motivation of GUI.
Motivation for GUI
System users often judge a system by its interface rather than its functionality
A poorly designed interface can cause a user to make catastrophic errors
Poor user interface design is the reason why so many software systems are never used
Q. Keeping in mind the Connie’s case study, what rule of thumbs was identified, list them down.
Who I Know – Rules of Thumb
an actor knows about its participants person knows about cashier
a transaction knows about its participants a session knows about its register and cashier
A transaction contains its transaction line items sale contains its sales line items
A transaction knows its sub transactions session knows about its sales sale knows about its payments
A place knows about its transactions store knows about its sessions
A place knows about its descriptive objects store knows about its tax categories
A container knows about its contents a store knows about its cashiers, items, and registers.
Q. What is action-oriented approach for Software Design?
In the case of action-oriented approach, data is decomposed according to functionality requirements. That is,
decomposition revolves around function. In the OO approach, decomposition of a problem revolves around
data. Action-oriented paradigm focuses only on the functionality of a system and typically ignores the data until
it is required. Object- oriented paradigm focuses both on the functionality and the data at the same time. The
basic difference between these two is decentralized control mechanism versus centralized control mechanism
respectively. Decentralization gives OO the ability to handle essential complexity better than action-oriented
Q. Collaboration Diagrams depict Dynamic behavior of the system, explain it.
Answer: – 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.
Q. 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.
Q. 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.
Q. 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”.
Q. How the objects are identified in peter codd’s technique?
Objects are identifying in the following way.
Actors are people and organizations that take part in the system under consideration.Examples of actors are:
person, organization (agency, company, corporation, foundation).
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.
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.
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
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,
Q. Keeping connie’s case study in mind, as discussed in lecture, list down whole parts structures which were identified.
Identify Whole-Part Structures
A store as a whole is made up of cashiers, registers, and items.
A register contains a cash drawer.
A sale is constituted of sale line items.
Q. Define data flow diagram.
A data flow diagram (DFD) is a graphical representation of the “flow” of data through an information system,
modeling its process aspects. Often they are a preliminary step used to create an overview of the system which
can later be elaborated.
Q. comparison of software architecture and Building architecture.
When building a house, the architect, the general contractor, the electrician, the plumber, the interior designer,
and the landscaper all have different views of the structure. Although these views are pictured differently, all
are inherently related: together, they describe the building’s architecture. The same is true with software
architecture. Architectural design basically establishes the overall structure of a software system.