FIT3077 Lecture 17: Architecture + Design with COTS Components
Architecture and Design with COTS Components
Commercial Off-the-Shelf Software
Pre-exisng, pretested soware components that can be inserted right into new soware programs.
Cheaper and more reliable than a home-grown soluon. Its economical.
COTS Components
●Program parts designed to be included within developed soware to provide addional
funconality
●Parts are designed, developed, tested, documented and maintained by their suppliers
●Developed and tested with reuse in mind
●More generically designed than typical custom soware
●Control over architecture and design implies control over system quality aributes and
architecture - increase of of COTS components means this may not always be the case
●Change the design process, they can constrain the architecture
Assumpons that components can make about each other
Provides : describe the services a component provides to its users or clients
Requires : detail the services or resources that a component must have in order to funcon correctly
COTS Types and Selection
● Some components are commercial but other are open source
●Building a system from the off-the-shelf components requires components selecon
Selection
●Idenfy assemblies of compable components
●Understand how they can achieve the desired quality aributes
●Decide whether they can be integrated into the system being built
●Components capabilies and liabilies is an important constraint
Unsuitable Components
●Components that were not developed specifically for your system may not meet all of your
requirements
●Component interfaces are poor at specifying their quality aributes
○How secure is the compiler you are using right now?
○How reliable is the mail system on your desktop?
○How accurate is the math library that your applicaons depend on?
●Architectural mismatch
○Difficulty to successfully integrang component-based systems
○Shows up at system integraon me - system doesn’t compile, not link, not run
○When components provides and requires assumpons don’t match up
○What can be done about it?
■Avoid: carefully specifying and inspecng the components of the system
●Write interface specificaon for each module that it includes
○Access methods
Document Summary
P(cid:396)e-e(cid:454)is(cid:415)(cid:374)g, p(cid:396)etested so(cid:332)(cid:449)a(cid:396)e (cid:272)o(cid:373)po(cid:374)e(cid:374)ts that (cid:272)a(cid:374) (cid:271)e i(cid:374)se(cid:396)ted (cid:396)ight i(cid:374)to (cid:374)e(cid:449) so(cid:332)(cid:449)a(cid:396)e p(cid:396)og(cid:396)a(cid:373)s. Cheape(cid:396) a(cid:374)d (cid:373)o(cid:396)e (cid:396)elia(cid:271)le tha(cid:374) a ho(cid:373)e-g(cid:396)o(cid:449)(cid:374) solu(cid:415)o(cid:374). P(cid:396)og(cid:396)a(cid:373) pa(cid:396)ts desig(cid:374)ed to (cid:271)e i(cid:374)(cid:272)luded (cid:449)ithi(cid:374) de(cid:448)eloped so(cid:332)(cid:449)a(cid:396)e to p(cid:396)o(cid:448)ide addi(cid:415)o(cid:374)al fu(cid:374)(cid:272)(cid:415)o(cid:374)alit(cid:455) Pa(cid:396)ts a(cid:396)e desig(cid:374)ed, de(cid:448)eloped, tested, do(cid:272)u(cid:373)e(cid:374)ted a(cid:374)d (cid:373)ai(cid:374)tai(cid:374)ed (cid:271)(cid:455) thei(cid:396) supplie(cid:396)s. De(cid:448)eloped a(cid:374)d tested (cid:449)ith (cid:396)euse i(cid:374) (cid:373)i(cid:374)d. Mo(cid:396)e ge(cid:374)e(cid:396)i(cid:272)all(cid:455) desig(cid:374)ed tha(cid:374) t(cid:455)pi(cid:272)al (cid:272)usto(cid:373) so(cid:332)(cid:449)a(cid:396)e. Co(cid:374)t(cid:396)ol o(cid:448)e(cid:396) a(cid:396)(cid:272)hite(cid:272)tu(cid:396)e a(cid:374)d desig(cid:374) i(cid:373)plies (cid:272)o(cid:374)t(cid:396)ol o(cid:448)e(cid:396) s(cid:455)ste(cid:373) (cid:395)ualit(cid:455) a(cid:425)(cid:396)i(cid:271)utes a(cid:374)d a(cid:396)(cid:272)hite(cid:272)tu(cid:396)e - i(cid:374)(cid:272)(cid:396)ease of of cots (cid:272)o(cid:373)po(cid:374)e(cid:374)ts (cid:373)ea(cid:374)s this (cid:373)a(cid:455) (cid:374)ot al(cid:449)a(cid:455)s (cid:271)e the (cid:272)ase. Cha(cid:374)ge the desig(cid:374) p(cid:396)o(cid:272)ess, the(cid:455) (cid:272)a(cid:374) (cid:272)o(cid:374)st(cid:396)ai(cid:374) the a(cid:396)(cid:272)hite(cid:272)tu(cid:396)e. Assu(cid:373)p(cid:415)o(cid:374)s that (cid:272)o(cid:373)po(cid:374)e(cid:374)ts (cid:272)a(cid:374) (cid:373)ake a(cid:271)out ea(cid:272)h othe(cid:396) Provides : des(cid:272)(cid:396)i(cid:271)e the se(cid:396)(cid:448)i(cid:272)es a (cid:272)o(cid:373)po(cid:374)e(cid:374)t p(cid:396)o(cid:448)ides to its use(cid:396)s o(cid:396) (cid:272)lie(cid:374)ts. Requires : detail the se(cid:396)(cid:448)i(cid:272)es o(cid:396) (cid:396)esou(cid:396)(cid:272)es that a (cid:272)o(cid:373)po(cid:374)e(cid:374)t (cid:373)ust ha(cid:448)e i(cid:374) o(cid:396)de(cid:396) to fu(cid:374)(cid:272)(cid:415)o(cid:374) (cid:272)o(cid:396)(cid:396)e(cid:272)tl(cid:455) So(cid:373)e (cid:272)o(cid:373)po(cid:374)e(cid:374)ts a(cid:396)e (cid:272)o(cid:373)(cid:373)e(cid:396)(cid:272)ial (cid:271)ut othe(cid:396) a(cid:396)e ope(cid:374) sou(cid:396)(cid:272)e. Buildi(cid:374)g a s(cid:455)ste(cid:373) f(cid:396)o(cid:373) the o -the-shelf (cid:272)o(cid:373)po(cid:374)e(cid:374)ts (cid:396)e(cid:395)ui(cid:396)es (cid:272)o(cid:373)po(cid:374)e(cid:374)ts sele(cid:272)(cid:415)o(cid:374)