CS504 - Software Engineering I
Course Page
Q & A
Short Question & Answers
Q11: 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.
Q12: What is the purpose of 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!). Collaboration diagrams can also show synchronous, asynchronous, create, and destroy message using the same notation as used in sequence diagrams.
Q13: 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.
Q14: 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.
Q15: Discuss some of the purpose of interacting diagram?
The purposes of interaction diagrams are to visualize the interactive behavior 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 behavior of a system, to describe the message flow in the system, to describe structural organization of the objects, to describe interaction among objects.
Q16: 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.
Q17: 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.
Q18: 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.
Q19: 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.
Q20: 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: Control modeling establishes a model of the control relationships between the different parts of the system. Modular decomposition:- 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.
Q21: 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 charts.
Q22: 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, and poor user interface design is the reason why so many software systems are never used.
Q23: 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.
Q24: The CPU of a computer consists of an ALU and a CU. Intel and AMD are two types of CPUs, which are widely used in computers. Users of computers can be either novices or experts. Consider the following classes. (i) CPU and AMD (ii) User and Computer (iii) CPU and ALU
CPU and AMD: There is relationship between CPU and AMD is “A kind of” type as AMD is a kind of CPU.

User and Computer: The relationship between User and Computer is “simple Association” type as there is weak relationship between user and computer.

CPU and ALU: Relationship between CPU and ALU is “composition” type as ALU is a part of CPU.
Q25: 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 approach.
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