DOC PREVIEW
MSU CSE 470 - Software Engineering
Course Cse 470-
Pages 10

This preview shows page 1-2-3 out of 10 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 10 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 10 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 10 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 10 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

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 effectiveRequiring more rigorOften 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

MSU CSE 470 - Software Engineering

Course: Cse 470-
Pages: 10
Download Software Engineering
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 Software Engineering 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 Software Engineering 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?