101-intro1Software EngineeringCSE470(Spring 2002)Instructor:Dr. W. [email protected] EB201-introAcknowledgments●G. Coombs●L. Dillon●M. Heimdahl●R. Stephenson●National Science Foundation:■VESL (Visions of Embedded Systems Laboratory)■CDA-9700732●Tony Torre, Detroit Diesel Corp.301-introWhat is Software Engineering???●The study of systematic and effective processesand technologies for supporting softwaredevelopment and maintenance activities■Improve quality■Reduce costs401-introWhy is software engineeringneeded?●To predict time, effort, and cost●To improve software quality●To improve maintainability●To meet increasing demands●To lower software costs●To successfully build large, complex software systems●To facilitate group effort in developing software501-introWho Needs SoftwareEngineering?Everyone!So…..Show me a business in the U.S. that doesn’t use Software601-introHistorical Perspective●1940s: computers invented●1950s: assembly language, Fortran●1960s: COBOL, ALGOL, PL/1, operating systems 1969: First conference on Software Eng●1970s: multi-user systems, databases, structuredprogramming2701-introHistorical Perspective (cont.)●1980s: networking, personal computing, embeddedsystems, parallel architectures●1990s: information superhighway, distributedsystems, OO in widespread use.●2000s: virtual reality, voice recognition, videoconferencing, global computing, ...*801-introHardware Costs vs Software Costs(% of overall costs)s/w costsh/w costsTime*901-introWhy is software so expensive?●Hardware has made great advances●But, software has made great advances ...●We do the least understood tasks in software●When task is simple & understood, encode it inhardware●Demand more and more of software1001-introSize of programs continues to grow●Trivial: 1 month, 1 programmer, 500 LOC,■Intro programming assignments●Very small: 4 months, 1 programmer, 2000 LOC■Course project●Small: 2 years, 3 programmers, 50K LOC■Nuclear power plant, pace maker●Medium: 3 years, 10s of programmers, 100K LOC■Optimizing compiler1101-introSize of programs continues to grow●Large: 5 years, 100s of programmers, 1M LOC■MS Word, Excel●Very large: 10 years, 1000s of programmers, 10M LOC■Air traffic control,■Telecommunications, space shuttle●Unbelievable: ? years, ? programmers■W2K 35M LOC■Missile Defense System 100M LOC?*1201-introWhat’s the problem?●Software cannot be built fast enough to keep up with■H/W advances■Rising expectations■Feature explosion●Increasing need for high reliability software31301-introWhat’s the problem?●Software is difficult to maintain“aging software”●Difficult to estimate software costs and schedules●Too many projects fail■Ariane Missile■Denver Airport Baggage System■Therac1401-introGoals of this Course●Expose you to some of the problems typicallyencountered in software eng●Expose you to some of the techniques that have beenfound to be effectiveRequiring more rigorOften appearing “obvious” (but only after being learned)1501-introOverview of Course● Emphasis on analysis and design● Learn/apply new techniques for softwaredevelopment● Learn to work with a group● Improve technical writing skills●Become up to date on current trends in SE●Explore presentation media and techniques*1601-introStructure of Course●(Short) assignments over readings●In lab assignments (various SE tools)●Homework●Quizzes●Group projects (prototype, analysis, design)●One hour exam●Presentations: oral presentations, prototypedemos01-intro17Software EngineeringA Brief Introduction1801-introSoftware Engineering Phases●Definition: What?●Development: How?●Maintenance: Managing change●Umbrella Activities: Throughout lifecycle41901-introThe “Standard” DevelopmentCycleDefinitionRequirementsDesignCodingTesting2001-introDefinition●Requirements definition and analysis■Developer must understand◆Application domain◆Required functionality◆Required performance◆User interface2101-introDefinition (cont.)●Project planning■Allocate resources■Estimate costs■Define work tasks■Define schedule●System analysis■Allocate systemresources to◆Hardware◆Software◆Users*2201-introDevelopment●Software design■User interface design■High-level design◆Define modular components◆Define major data structures■Detailed design◆Define algorithms and procedural detail2301-introDevelopment (cont.)●Coding■Develop code for eachmodule■Unit testing●Integration■Combine modules■System testing2401-introMaintenance●Correction - Fix software defects●Adaptation - Accommodate changes■New hardware■New company policies●Enhancement - Add functionality●Prevention - make more maintainable52501-introUmbrella Activities●Reviews - assure quality●Documentation - improve maintainability●Version control - track changes●Configuration management - integrity of collectionof components2601-introSoftware Engineering CostsMaintenanceDevelopmentDefintiion*2701-introRelative Costs to Fix Errors01020304050607080RequirementsDesignCodeTestingDeliveryCostThis is why software process pays off*2801-introWhat’s a “Methodology” or“Process Model”●Set of activities, notations, tools, in definedsequence.●Goal: Order, predicitability, quality, cost control●Follows requirements=>design=>coding, etc.sequence (usually)●Usually defines phases or steps●Often has notations●Sometimes has tools2901-introWaterfall Process ModelRequirementsDesignMaintenanceCodingTesting3001-introPrototyping Process ModelRequirementsQuick DesignPrototypeEvaluateDesign63101-introWhen to use prototyping?●Help the customer pin down the requirements■Concrete model to “test out”■Often done via the user interface●Explore alternative solutions to a troublesome component■e.g., determine if an approach gives acceptable performance●Improve morale■Partially running system provides visibility into a projectNEVER Press a prototype into production*3201-introSpiral Process ModelPlanningRisk AnalysisEngineeringCustomerEvaluation3301-introProcess Models●Idealized views of the process●Different models are often used for differentsubprocesses■may use spiral model for overall development◆prototyping for a particularly complex component◆waterfall model for other componentsSee Evolution of the Frameworks Quagmire,Computer, July 2001,
View Full Document