DOC PREVIEW
UCI ICS 52 - Recurring Fundamental Principles

This preview shows page 1-2-3-22-23-24-44-45-46 out of 46 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 46 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 46 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 46 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 46 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 46 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 46 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 46 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 46 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 46 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 46 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

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

UCI ICS 52 - Recurring Fundamental Principles

Download Recurring Fundamental Principles
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Recurring Fundamental Principles and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Recurring Fundamental Principles 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?