Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 3

MSCS 6340

Component Architecture
Take home Final Exam
Total points: 100
Due date: Monday, May 9 (Midnight)
Submission: Softcopy using digital drop box.
Name:

Sanjeev Gupta

MU ID(last four digit): 1180

1. Lets assume you are a manager of healthcare application software development team.
How would you use component based software development for the above
application? (20 points)
Being part of Medical Device software group, I can clearly see the benefit of
component based software development. The two big reason for component based
software development is reuse and clean interfaces.
We are a global company with software being contributed by teams sitting in different
geographical regions so it becomes very important that clean interfaces are defined
for every piece of software otherwise integrating this software into a bigger system
becomes a nightmare.
Secondly, there are pieces of software in a medical imaging company which can be
reused across different kind of software groups like CT, MR, XRay and Ultrasound.
Some examples are image viewers, medical image databases, dicom servers, HIS/RIS
service class users. It is essential that these applications are created as pluggable
components which can be plugged in to CT, MR, XRay or Ultrasound software
applications.
2. Compare and contrast component based software development with service oriented
software development. (30 points)
Service oriented software development provides another level of decoupling between
software modules. Where component based development provides decoupling or
reusability within the same system, services provide reusability across systems.
Software architectures in reality cannot be completely service oriented. Though there
is a big push around micros services, in reality no real software application can be
composed of only micro-services. The biggest reason for this is performance incurred
doing IPC between one microservice and another.
In reality, service oriented architectures start with essential services in the application
layer to satisfy user requirements. Then the domain layer services are created to serve
application layer services. And finally infrastructure layer services are created to
serve domain layer services. But if each and every software module is packaged as a

service, there will be a huge performance penalty. So a practical approach is to keep


services only in the application layer and use components in domain layer.
Components provide decoupling via interfaces but can still be called from another
component via direct function calls. In case of services, a REST, SOAP etc. interface
needs to be used.
Services have the advantage of being accessible from outside the system.

3. Write a paper from you class project report and class project; (50 points)
[The paper should be in IEEE format. Please use appropriate references. A sample outline
is given below (it may vary based on the topic.):
1. Title of the problem
2. Abstract of the problem
3. 4/5 keywords
4. Introduction (first paragraph: importance, second paragraph: brief related work
in the context of what others have done, third paragraph: what you are doing,
fourth paragraph summary of contributions, and fifth paragraph outline of the
report)
5. Motivation (with examples and scenarios)
6. Characteristics of the problem/system
7. Related works
- Identification of the existing approaches or solutions
- Description of each solution (what, why, and how)
8. A comparison table with other approaches
- Discuss the problems of the existing approaches
9. Overview of your proposed solution (if any)/list of open issues
10. Details of your solution
11. Evaluate your solution
. Implementation of your solution
12. Strength and weakness of your solution
13. Broad impact of your research result
14. Discussion (summary, strength, weakness, future work)
15. References (IEEE format)
[Please use the following link for your paper:
http://www.mscs.mu.edu/~iq/papers/long/2006/sac06.pdf]

You might also like