Download presentation
Presentation is loading. Please wait.
Published byDorthy Lynch Modified over 9 years ago
1
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman, Chapter 1 HP Software Engineering via Martin Griss “Code Complete” McConnell, Chapters 1-3
2
CS 3500 SE - 2 Software Eras (Pressman Figure 1.1) Early years l Batch l Limited distribution l Custom software Second era l Multiuser l Real-time l Database l Product software Third era l Distributed systems l Embedded “intelligence” l Low cost hardware l Consumer impact Fourth era l Powerful desk-top systems l OOP l Parallel l Internet 19501960197019801990200x Increasing Amounts of Software The fifth era? Cloud computing Smart phones Multi-core
3
CS 3500 SE - 3 The 50+ Year “Software Crisis” l Hardware advances faster than the ability of software to take advantage of the hardware l Demand for new programs exceeds our ability to produce them l Computers are pervasive; reliability is key; major damage is possible on failure l We struggle to build reliable, high quality software l Support and enhancement of existing programs is expensive and error prone due to poor design and inadequate resources l Many, many projects are started but never finished
4
CS 3500 SE - 4 Aspects of Software Crisis l Techniques that work for small programs don’t scale l Big systems live on beyond original author(s) l Most effort expended after first release l Requirements change rapidly l User expectations increase rapidly l Most software late, expensive, buggy or inadequate l Last minute testing can’t ensure quality l What can you add to this list?
5
CS 3500 SE - 5 Software vs. Hardware Hardware failure rates (Pressman 1.2) Idealized software failure rates (Pressman 1.3) Why the difference?
6
CS 3500 SE - 6 Software Failure Rates Idealized software failure rates (Pressman 1.3) Actual software failure rates (Pressman 1.4) Why the difference?
7
CS 3500 SE - 7 Software Myths l Management Myths – We have books of standards. – I work very hard to put the latest, greatest, fastest, state-of-the-art hardware in front of all my programmers. – We have the greatest CASE tools around. – If we get behind, we can just add more programmers. l Customer myths – A general statement of objectives is sufficient to start coding, we can fill in the details later – Project requirements change constantly, but change is easy because software is flexible. l Programmer myths – Once the program is written and working, our job is done. – Until the program is running, there is no way to assess quality. – The only deliverable for a successful project is the working program.
8
CS 3500 SE - 8 Solution: Disciplined Software Engineering Computer Science Psychology, HCI Systems Management, Sociology Software Engineering “More than just programming and algorithms”
9
CS 3500 SE - 9 Software Lifecycle l Development phases: – Analysis [What do we need?] (14-22%) – Design [How do we do it?] (16-21%) – Coding [Implement it] (30-39%) – Testing [Make sure it works] (25-37%) l Relative time to fix defect after release depends on origin: – Analysis >> design >> coding >> test l Average time in maintenance – Only 25-45% of entire lifecycle spent in development – Fixing defects is 20-30% of lifecycle; enhancing the program is 35-45% of lifecycle – Half of maintenance time is spent figuring things out
10
Software Development Processes l Traditional Waterfall Process - Address each step completely before moving to the next - Each step might take many months - Premium on getting things right the first time - Emphasis on management hierarchies and written reports l Agile Process - Iterate repeatedly through each step, gradually growing the system - Each iteration produces an incomplete but usable system - Design changes and code refactoring are the norm - Premium on frequent and rapid interactions among clients and developers - Emphasis on face-to-face interactions
11
CS 3500 SE - 11 What Will We Study? l C# Programming using Visual Studio 2010 l Software Construction Tools and Techniques – Version control (SVN) – Testing – Debugging – Performance profiling – Code inspections – Object-oriented design patterns – Program organization and coding style – Documentation – UML (Unified Modeling Language) – Scripting
12
What Will We Study? l Software Architectures – Pipe and filter – Object-oriented – Client/server – Event-driven – Model-view-controller l Working Individually, in Pairs, in Small Groups – Via programming projects l Other Topics – Requirement gathering – High-level design – Intellectual property – Professional ethics
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.