CIS 3250 Lecture 22: 22 Software Design Challenges and Concepts
Document Summary
What"s the difference between design activity and a design process: empathize, design, ideate, prototype, test are the design activity, the process is the order in which these activities are performed. Desig(cid:374): (cid:862)the (cid:272)o(cid:374)(cid:272)eptio(cid:374), i(cid:374)(cid:448)e(cid:374)tio(cid:374), or (cid:272)o(cid:374)tri(cid:448)a(cid:374)(cid:272)e of a s(cid:272)he(cid:373)e for tur(cid:374)i(cid:374)g a spe(cid:272)ifi(cid:272)atio(cid:374) for computer software into operational software. Design is the activity that links requirements to coding and debugging. I(cid:374) ge(cid:374)eral, (cid:449)e (cid:272)a(cid:374)"t reall(cid:455) defi(cid:374)e it (cid:449)ell: t(cid:455)pi(cid:272)all(cid:455), i(cid:374) edu(cid:272)atio(cid:374) it is(cid:374)"t a (cid:449)i(cid:272)ked pro(cid:271)le(cid:373) a(cid:374)d is si(cid:373)plified. In the real-world, it is never crystal clear what the solution will look like. Spiral introduced after waterfall to help with wicked problems. Introduced prototyping for getting feedback and iterating on the designs. Software design is a wicked problem because any reasonable sized software system is complex. The larger the software system, the greater its complexity. Mi(cid:374)i(cid:373)izi(cid:374)g the a(cid:373)ou(cid:374)t of esse(cid:374)tial (cid:272)o(cid:373)ple(cid:454)it(cid:455) that a(cid:374)(cid:455)o(cid:374)e"s (cid:271)rai(cid:374) must deal with at any one time.