University of California, IrvineICS 52: Introduction to SoftwareEngineeringWinter Quarter 2004Professor Richard N. TaylorLecture NotesWeek 2: Principles and Requirements Engineeringhttp://www.ics.uci.edu/~taylor/ICS_52_WQ04/syllabus.htmlCopyright 2004, Richard N. Taylor. Duplication of coursematerial for any commercial purpose without written permission is prohibited.University of California, IrvineRecurring, Fundamental Principles Rigor and formality Separation of concerns– Modularity– Abstraction Anticipation of change Generality IncrementalityThese principles apply to all aspects of software engineeringUniversity of California, IrvineRigor and Formality Creativity often leads to imprecision and inaccuracy– Software development is a creative process– Software development can tolerate neither imprecision nor inaccuracy Rigor helps to…– …produce more reliable products– …control cost– …increase confidence in products Formality is “rigor -- mathematically sound”– Often used for mission critical systemsUniversity of California, IrvineSeparation of Concerns Trying to do too many things at the same time often leads to mistakes– Software development is comprised of many parallel tasks, goals, andresponsibilities– Software development cannot tolerate mistakes Separation of concerns helps to…– …divide a problem into parts that can be dealt with separately– …create an understanding of how the parts depend on/relate to eachotherUniversity of California, IrvineExample Dimensions of Separation Time– Requirements, design, implementation, testing, …– Dial, receive confirmation, connect, talk, … Qualities– Efficiency and user friendliness– Correctness and portability Views– Data flow and control flow– Management and developmentUniversity of California, IrvineModularity Separation into individual, physical parts– Decomposability» Divide and conquer– Composability» Component assembly» Reuse– Understanding» Localization It is a particular type of separation of concerns– Divide and conquer “horizontally”– “Brick”-effectUniversity of California, IrvineModularityBigSmallSmall SmallSmallUniversity of California, IrvineAbstraction Separation into individual, logical parts– Relevant versus irrelevant details» Use relevant details to solve task at hand» Ignore irrelevant details Special case of separation of concerns– Divide and conquer “vertically”– “Iceberg”-effectUniversity of California, IrvineAbstractionBigAbstractionDetailsUniversity of California, IrvineAnticipation of Change Not anticipating change often leads to high cost and unmanageable software– Software development deals with inherently changing requirements– Software development can tolerate neither high cost nor unmanageablesoftware Anticipation of change helps to…– …create a software infrastructure that absorbs changes easily– …enhance reusability of components– …control cost in the long runUniversity of California, IrvineGenerality Not generalizing often leads to continuous redevelopment of similarsolutions– Software development involves building many similar kinds ofsoftware (components)– Software development cannot tolerate building the same thing overand over again Generality leads to…– …increased reusability– …increased reliability– …faster development– …reduced costUniversity of California, IrvineIncrementality Delivering a large product as a whole, and in one shot, often leads todissatisfaction and a product that is “not quite right”– Software development typically delivers one final product– Software development cannot tolerate a product that is not quite right ordissatisfies the customer Incrementality leads to…– …the development of better products– …early identification of problems– …an increase in customer satisfaction» Active involvement of customerUniversity of California, IrvineCohesionVERSUSUniversity of California, IrvineCouplingVERSUSUniversity of California, IrvineProvided InterfaceImplementationRequired InterfaceA Good Separation of Concerns, 1Abstraction through the use of provided/required interfacesModularity through the use of componentsLow coupling through the use of hierarchiesHigh cohesion through the use of coherent implementationsProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceUniversity of California, IrvineProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceA Good Separation of Concerns, 2Abstraction through the use of provided/required interfacesModularity through the use of componentsLow coupling through the use of a central “blackboard”High cohesion through the use of coherent implementationsImplementationProvided InterfaceUniversity of California, IrvineBenefit 1: Anticipating ChangeSeparating concerns anticipates changeProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceImplementationProvided InterfaceUniversity of California, IrvineBenefit 1: Anticipating ChangeSeparating concerns anticipates changeProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceProvided InterfaceImplementationRequired InterfaceImplementationProvided InterfaceUniversity of California, IrvineBenefit 2: Promoting
View Full Document