Software Architecture and Design Questions and Answers

 

 Contents


1 Architecture and Design
1.1. What is software design?
1.2. Explain the term 'architecture of the application'?
1.3. What is design?
1.4. What is software?
1.5. Differentiate between the terms 'Design Patterns', 'Framework' and 'Architecture'.
1.6. Define the terms authentication and authorization.
1.7. How do you differentiate true designers and architects from other software developers?
1.8. What’s the most powerful language you have ever used? Why?
1.9. Do you typically generate alternative designs?
1.10. How do you choose between these designs?
1.11. Tell me about the last major design you did. What was the purpose? What happened?
1.12. If you had to design for our product (talk about your product here), what approach would you take?
1.13. What are the productivity measurement considerations?
1.14. How do you define productivity?
1.15. What is system architecture?
1.16. What is most critical activity in software development life cycle?
1.17. What are the steps in defining architecture?
1.18. Why do you need architecture?
1.19. Why do you need a layered architecture? Why are layered architectures so useful?
1.20. How do you document or present architecture?
1.21. How do you sell architecture to senior management?
1.22. How do you create an architectural vision?
1.23. Why do you need enterprise architect?
1.24. What may be the reasons why you don’t need software architect?
1.25. What is effective architecture? Who is effective architect?
1.26. Who, when and how should architecture decisions be made?
1.27. What is your definition of a well-designed product?
1.28. What is “good design”?
1.29. What should a software designer consider in the design and implementation of code?
1.30. How do you go about obtaining requirements from your customer?
1.31. How do you make certain you understand what they want?
1.32. Once you have the requirements, what do you do with them?
1.33. To what level do you document them? Please provide samples of requirements gathering documentation work that you have done.
1.34. What is “good code”? Or what do you consider to be "good code"?
1.35. What are the criteria for components?
1.36. What are design patterns?
1.37. In what ways do design patterns help build better software?
1.38. Why use patterns?
1.39. What are the differences between analysis patterns and design patterns?
1.40. What are singleton patterns?
1.41. What patterns are particularly useful in building networked applications?
1.42. What is event driven programming?
1.43. What is reengineering?
1.44. What are factory classes?
1.45. What is refactoring?
1.46. What is factoring?
1.47. What is the difference between an API and a framework?
1.48. What is SDK?
1.49. What are callback functions?
1.50. Why should you use callback functions?
1.51. Describe Microsoft .NET.
1.52. What are the characteristics of the two-tier application model?
1.53. Describe 3-tier architecture in enterprise application development.
1.54. Describe a reason why one would want to build an application using 3-tier scheme.
1.55. Describe a reason why one would not want to build an application using 3-tier scheme.
1.56. What is middleware?
1.57. What is MVC?
1.58. What is CORBA?
1.59. What is computer telephony integration (CTI)?
1.60. What is a modal dialog?
1.61. What is a modeless dialog?
1.62. What is MDI?
1.63. What is SDI?
1.64. Which GUI style is best?
1.65. What are the advantages of popup menus?
1.66. What does effective GUI design requires?
1.67. What are GUI design objectives?
1.68. Why GUIs fail?
1.69. What are the key GUI strategies?
1.70. What is the procedure for application migration?
1.71. What are DLLs? What are their advantages?
1.72. What is the difference between COM and DLL?
1.73. What is the difference between SDK and JDK?
1.74. What is the difference between LDAP and Database?
1.75. What is the difference between Class and Object?
1.76. What is the difference between ZIP and GZIP?
1.77. What is the difference between Abstract Class and Interface?
1.78. What is the difference between EXE and DLL?
1.79. What is the difference between LIB and DLL?
1.80. What is the difference between Operating System and Kernel?
1.81. What is the difference between MFC and Win32?
1.82. What is the difference between GZIP and TAR?
1.83. What is the difference between add-on and plug-in?
1.84. What is the difference between AJAX and Silverlight?
1.85. What is the difference between Winzip and WinRar
1.86. What is the difference between Windows and Linux?
1.87. What is an Object?
1.88. What is a Class?
1.89. What is the difference between a class and an object?
1.90. What is OOP?
1.91. Is there anything you can do in C++ that you cannot do in C?
1.92. What are the two things that make up an object in Java?
1.93. What is an abstract method?
1.94. What is an abstract class?
1.95. What is Encapsulation?
1.96. What are the benefits of Encapsulation?
1.97. What is Inheritance?
1.98. What is Polymorphism?
1.99. What are Virtual Functions and are they supported in Java?
1.100. What is runtime binding?
1.101. What are Web services?
1.102. Describe Web Services development platforms.
1.103. What is SOAP and what is SOAP used for?
1.104. Why SOAP?
1.105. Is SOAP secure?
1.106. What is WSDL?
1.107. How does CORBA compare to RMI? to SOAP? to .NET?
1.108. What is Ant?
1.109. Why another build tool when there is already make, gnumake, nmake, jam, and others?
1.110. How do you select which partition to choose from - Fat, Fat32, and NTFS for W2K servers?
1.111. Why use coding/programming standards or conventions?
1.112. Why use an automated programming standard review tool?
1.113. What is the difference between fault-tolerance and redundancy?
1.114. When do you use radio button and checkboxes?
1.115. What are your company’s most important criteria for selecting a PC vendor?
1.116. Do you think technology standards are more important than the technologies themselves?
1.117. What is Serialization?
1.118. What is a Control?
1.119. What is a resource?
1.120. What is a Virtual server?
1.121. What does LAMP stands for?
1.122. After the release, which are the biggest points of pain in your deployment process?
1.123. What is the difference between a Web developer and a Web designer?
1.124. What do physicians use IT for?
1.125. Describe the document management (DM) lifecycle.
1.126. What is document management?
1.127. When should you consider using document management system?
1.128. Compare various load balancing schemes.
1.129. What is InstallShield?
1.130. Why do we model software?
1.131. What are the three major steps to modeling software?
1.132. What is a activity diagram?
1.133. What are the steps to modeling an activity diagram?
1.134. What is a sequence diagram?
1.135. What are the steps to modeling a sequence diagram?
1.136. What are some differences between use case diagrams and sequence diagrams?
1.137. What is the difference between synchronous and asynchronous messages?
1.138. What are the steps used to create a class diagram?
1.139. What are collaboration diagrams?
1.140. Why do we model a collaboration diagram?
1.141. What are the steps required to create a collaboration diagram?
1.142. What are the basic notational components of statechart diagrams?
1.143. What is the difference between statechart diagrams and activity diagrams?
1.144. What is the difference between events and actions?
1.145. What is a statechart diagram?
1.146. What are the steps involved in diagramming a statechart diagram?
1.147. What is a component?
1.148. What is a component diagram?
1.149. What is a deployment diagram?
1.150. What is the difference between a component and a deployment diagram?
1.151. What do components represent?
1.152. What are the relationships between components called?
1.153. List the steps to create an implementation diagram.
1.154. What is meant by stereotyping dependencies?
1.155. What is a MSI file?
1.156. Why the Microsoft Installer (MSI) format?
1.157. Describe severity levels.
1.158. What is user management?
1.159. What are consoles?
1.160. What are managers?
1.161. Describe the traffic entering and leaving the corporate network? Email content versus Web content.
1.162. How information leaves the corporate network?
1.163. What is leaving the corporation in email attachments?
1.164. Encrypted versus unencrypted content
1.165. What is safety and security?
1.166. What are the advantages of LDAP?
1.167. What is SSO?
1.168. What types of security technologies have you used?
1.169. What is authentication?
1.170. Hash functions
1.171. Describe what PKI is and how it works.
1.172. What is access control?
1.173. Discuss the differences between symmetric key cryptography and public key cryptography. Give an example of when you would use each.
1.174. If you discover a new cryptography algorithm, should you use it immediately?
1.175. Since FTP is insecure, how can you implement a secure solution that is as easy to use as FTP?
1.176. What is role-based user provisioning?
1.177. What is HTTPS?
1.178. What are the key differences between IPSec and SSL?
1.179. What are passfaces?
1.180. What is data marshaling?
1.181. Discuss concerns and limitations while developing for mobile devices.
1.182. What is distinctive about real-time software?
1.183. What is the difference between Google Android and Windows Mobile?
1.184. What is the difference between iPhone and Windows Mobile?
1.185. What is SyncML (Synchronization Markup Language)?
1.186. What are the requirements for SyncML?
1.187. What is Service Oriented Architecture?
1.188. Why Service Oriented Architecture?
1.189. Who does SOA?
1.190. What SOA isn’t?
1.191. What is the SOA life cycle?
1.192. What are the benefits of SOA?
1.193. What are the challenges associated with SOA?
1.194. How can your organization get started with SOA?
1.195. What are the benefits of a SaaS solution?
1.196. Give an example of software as a service.
1.197. What are the SaaS advantages for the customer?
1.198. Cloud Computing.
1.199. Software as a Service.
1.200. Platform as a Service.
1.201. Core Cloud Services.
1.202. Does Cloud Computing offer an easy stepping stone for SaaS?
1.203. What are some of the challenges of deploying or implementing Software as a Service (SaaS)?
1.204. What are the essential questions for SaaS hosting provides?
1.205. What is REST?
2 Mobile Development
2.1. What do you think the future holds for mobile devices?
2.2. What do you think the future of mobile devices is going to look like? What are some other already new things that we are starting to hear about?
2.3. How has the iPad fit into the mobile enterprise?
2.4. What trends are developing in web applications?
2.5. What are the top five new technologies that hold the most promise?
3 Internationalization and Localization
3.1. What is UTC?
3.2. What is internationalization?
3.3. What is localization?
3.4. What is the difference between Unicode and UTF-8?
3.5. What is the difference between UTF-8 and UTF-16?
4 Frameworks and Tools
4.1. What does "open" mean?
4.2. What is Object/Relational Mapping?
4.3. What is Hibernate?
4.4. What are Hibernate Shards?
4.5. Why Hibernate?
4.6. What is Ganglia?
4.7. What is Capistrano?
4.8. What is Apache Lucene?
4.9. What is Solr?
4.10. What is Hudson?
4.11. What is Maven?
4.12. What is a POM?