CMSC 435: Sof tware Engineering Section 0201 • Atif M. Memon (atif @cs. umd. edu) • 4115 A. V. Williams building • Phone: 301- 405- 3071 • Of f ice hours – Tu. Th. (11:00am- 1:00pm) • Don’t wait, don’t hesitate, do communicate!! – Phone – E- mail – Of f ice hours – Course discussion group More Resources • Class TA – I shan Banerjee – ishan@cs. umd. edu – Of f ice location • 4122 A.V.Williams building – Of f ice hours • TBA • Course page – www. cs. umd. edu/ ~atif/ teaching/ spring2003 1
How Cars are Engineered (A simple view) • User requirements – Engine power, all- wheel, seating, comf ort, MP3 player!! • Detailed design – Blueprints, design documents • Test design – Simulation, prototyping • Develop parts (components) – Test each component – Components may be reused – Mass produced • Assemble the car – Test the car • Fr ont / side cr ash t est s • St abilit y t est s – Usability testing • Feedback f r om dr iver s/ passenger s I n Pictures!! 2
But Seriously • Features of many LEGO parts – Modularity – Reusability • Each part can be used in dif f erent places and ways – Flexibility of design – Compatibility • Wit h ot her LEGO set s • Building- blocks Similar Techniques Used by Builders: Bridges 3
Detailed Design and Specif ications Galvanized Bridge Wire for Parallel Wire Bridge Cables. Recommended diameter .196 inch. Galvanized Bridge Strand--consists of several bridge wires, of various diameters twisted together. Galvanized Bridge Rope--consists of six strands twisted around a strand core. Detail of Main Cable and Cable Band. The wrapping wire is omitted at the right for clarity. Note the closed construction and aluminum fillers. Parallel Wire Cable More Detailed Design and Specif ications 4
Tacoma Narrows Bridge Disaster Back to Sof tware • Sof tware uses some of the most complex structures ever designed • Need to apply/ develop engineering principles to/ f or sof tware • Sof tware engineering is concerned with theories, methods and tools f or prof essional sof tware development 5
I mportant: Team Work • Most sof tware is developed – By teams of • Designers • P rogrammers • Managers • Social skills – Trust other team members • They will develop sof t ware component s t hat you may use • Management skills – Schedules – Work distribution – Budget A Few Facts About Sof tware Today • Sof tware costs of ten dominate system costs. – The costs of sof tware are of ten greater than the hardware cost • Sof tware costs more to maintain than it does to develop. – For systems with a long lif e, maintenance costs may be several times development costs 6
Costs I nvolved • Typically – 60% of costs are development costs, – 40% are testing costs. – For custom sof tware, evolution costs of ten exceed development costs • Costs vary depending on the type of system being developed and the requirements of system attributes such as perf ormance and system reliability • Distribution of costs depends on the development method that is used We will Engineer Sof tware • But what is sof tware? – Computer programs and – Associated documentation • Sof tware products may be developed f or – A particular customer or – A general market 7
Role of a Sof tware Engineer • Sof tware engineers should adopt a systematic and organised approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available Attributes of Good Sof tware • Should deliver the required f unctionality and perf ormance • Maintainability – Sof tware must evolve to meet changing needs • Dependability – Sof tware must be trustworthy • Ef f iciency – Sof tware should not make wastef ul use of system resources • Usability – Sof tware must be usable by the users f or which it was designed 8
Sof tware Processes • What is a Sof tware Process? – A set of activities whose goal is the development or evolution of sof tware • Some Activities: – Specif ication • what t he syst em should do and it s development const raint s – Development • product ion of t he sof t ware syst em – Validation • checking t hat t he sof t ware is what t he cust omer want s – Evolution • changing t he sof t ware in response t o changing demands Sof tware Process Models • A simplif ied representation of a sof tware process, presented f rom a specif ic perspective • Examples of process perspectives are – Workf low perspective • sequence of act ivit ies – Data- f low perspective • inf ormat ion f low – Role/ action perspective • who does what • Generic process models – Waterf all – Evolutionary development – Formal transf ormation – I ntegration f rom reusable components 9
Generic Sof tware Process Models • The waterf all model – Separate and distinct phases of specif ication and development • Evolutionary development – Specif ication and development are interleaved • Formal systems development – A mathematical system model is f ormally transf ormed to an implementation • Reuse- based development – The system is assembled f rom existing components Waterf all Model Requirements Requirements Def inition Def inition System & System & Sof tware Design Sof tware Design I mplementation I mplementation & Unit Testing & Unit Testing I ntegration & I ntegration & System Testing System Testing Operation & Operation & Maintenance Maintenance 10
Waterf all Model Problems • I nf lexible partitioning of the project into distinct stages • This makes it dif f icult to respond to changing customer requirements • Theref ore, this model is only appropriate when the requirements are well- understood Evolutionary Development • Exploratory development – Objective is to work with customers and to evolve a f inal system f rom an initial outline specif ication. Should start with well- understood requirements • Throw- away prototyping – Objective is to understand the system requirements. Should start with poorly understood requirements 11
Evolutionary Development Concurrent Activities I nitial I nitial Specif ication Specif ication Version Version Outline I ntermediate Outline I ntermediate Development Development I ntermediate I ntermediate Description Versions Description Versions Versions Versions Final Final Validation Validation Version Version Evolutionary Development • Problems – Lack of process visibility – Systems are of ten poorly structured – Special skills (e. g. in languages f or rapid prototyping) may be required • Applicability – For small or medium- size interactive systems – For parts of large systems (e. g. the user interf ace) – For short- lif etime systems 12
Formal Systems Development • Based on the transf ormation of a mathematical specif ication through dif f erent representations to an executable program • Transf ormations are ‘correctness- preserving’ so it is straightf orward to show that the program conf orms to its specif ication • Embodied in the ‘Cleanroom’ approach to sof tware development Formal Systems Development Requirements Requirements Def inition Def inition Formal Formal Specif ication Specif ication Formal Formal Transf ormation Transf ormation I ntegration & I ntegration & System Testing System Testing 13
Formal Transf ormations Formal Transf ormations T1 T4 T2 T3 Formal Executable Formal Executable R1 R2 R3 R1 R2 R3 Specif ication Program Specif ication Program P1 P2 P3 P4 P1 P2 P3 P4 Proof s of Transf ormation Correctness Formal Systems Development • Problems – Need f or specialised skills and training to apply the technique – Dif f icult to f ormally specif y some aspects of the system such as the user interf ace • Applicability – Critical systems especially those where a saf ety or security case must be made bef ore the system is put into operation 14
Reuse- oriented Development • Based on systematic reuse where systems are integrated f rom existing components or COTS (Commercial- of f - the- shelf ) systems • Process stages – Component analysis – Requirements modif ication – System design with reuse – Development and integration • This approach has received a lot of attention recently Reuse- oriented Development Requirements Requirements Specif ication Specif ication Component Component Analysis Analysis Requirements Requirements Modif ication Modif ication System Design System Design With Reuse With Reuse Development Development & I ntegration & I ntegration System System Validation Validation 15
Recommend
More recommend