Download An Introduction to Software Engineering - Project 7 | CS 451 and more Study Guides, Projects, Research Software Engineering in PDF only on Docsity! 1 Drexel University CS 451 Software Engineering Winter 2009 Yuanfang Cai Room 104, University Crossings 215.895.0298 yfcai@cs.drexel.edu Drexel University Software In 1970 less than 1% of the public could define what “computer software” meant. Today most people feel they understand what it is, but do they? Textbook definition: Software is instructions (computer programs) that when executed provide desired features, functions and performance. They provide data structures that enable the programs to adequately manipulate information. Additionally, they are documents that describe the operation and use of the programs Drexel University Software – Myths Which of these statements are true? We already have a book that’s full of standards and procedures for building software. Won’t that provide my people with everything they need to know? If we get behind schedule, we can add more programmers and catch up. Sometimes called the Mongolian horde concept. We practiced this at IBM. Drexel University Software – Myths Which of these statements are true? If I decide to outsource the software project to a third party, I can just relax and let that firm build it. A general statement of objectives is sufficient to begin writing programs, we can fill the details later. Project requirements continually change, but change can be easily accommodated, because software is flexible. 2 Drexel University Software – Myths Which of these statements are true? Once we write the program and get it to work, our job is done. 60 – 80 % of effort is expended after the initial deployment to customers. Until I get the program running, there is no way to access quality. The only deliverable work product for a successful project is the working program. Software engineering makes us create voluminous and unnecessary documentation and will invariably slow us down. Drexel University Software – How it starts Outside of academia, it all starts with a business need. This need is usually expressed informally. Although the industry is moving toward component-based construction, most software continues to be custom built. Software (IEEE): collection of programs, procedures, rules, and associated documentation and data Drexel University Software Engineering Term Coined At NATO Conference: Software Engineering Garmisch, Germany 7 - 11 October, 1968. Definitions Abound (E.g., Fairley): Software engineering is the technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost estimates. Drexel University Software Engineering Important Word Is Engineering Definition (Webster): The science concerned with putting scientific knowledge to practical uses. Compare Building Software With: Building Bridges Building Airplanes 5 Drexel University Quality… Reliability = Probability of failure hard to measure approximated by no. of defects in software To normalize Quality = Defect density Quality = No. of defects delivered / Size Defects delivered - approximated with no. of defects found in operation Current practices: less than 1 def/KLOC What is a defect? Project specific! Drexel University This Course SE is unlike other CS topics OS , DBMS , Compilers etc talk about specific types of software product SW Engg. focuses on general software Software Engineering is the systematic approach to development, operation, maintenance, and retirement of sw. Basic Q. of SW Engg.: How to develop industrial-strength software? Drexel University What this course will give ? Main objective: Give an idea of how industrial- strength software gets developed At the end you should have the ability to plan, execute, and manage small software projects Lectures will discuss how to perform different tasks in a project In the project, the techniques will be applied Lectures will be a phase ahead of the project Drexel University Student Software vs. Industrial Software 6 Drexel University Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will it take? Answers: generally range from 2-4 months Let us analyze the productivity Productivity = output/input resources In SW output is considered as LOC Input resources is effort - person months; overhead cost modeled in rate for person month Though not perfect, some productivity measure is needed, as project has to keep it high The productivity is 2.5-5 KLOC/PM Drexel University Software … Q: What is the productivity in a typical commercial SW organization ? A: Between 100 to 1000 LOC/PM Q: Why is it low, when your productivity is so high? (people like you work in the industry) A: What the student is building and what the industry builds are two different things Drexel University Software… In a univ a student system is built while the commercial org builds industrial strength sw What is the difference between a student program and industrial strength sw for the same problem? Drexel University Software… Student Developer is the user bugs are tolerable UI not important No documentation Industrial Strength Others are the users bugs not tolerated UI v. imp. issue Documents needed for the user as well as for the organization and the project 7 Drexel University Software… Student SW not in critical use Reliability, robustness not important No investment Don’t care about portability Industrial Strength Supports important functions / business Reliability , robustness are very important Heavy investment Portability is a key issue here Drexel University Industrial strength software Student programs for a problem & industrial strength software are two different things Key difference is in quality (including usability, reliability, portability, etc.) High quality requires heavy testing, which consumes 30-50% of total development effort Requires development be broken in stages such that bugs can be detected in each Good UI, backup, fault-tolerance, following of stds etc increase the size for the same functionality Drexel University Industrial strength software If 1/5th productivity, and increase in size by a factor of 2, industrial strength software will take 10 times effort Brooks thumb-rule: Industrial strength sw costs 10 time more than student sw Domain of SW Engg: Industrial strength sw In SW Engg. and in this course, software means industrial strength software Drexel University The Real Problems 10 Drexel University Basic Problem Drexel University SE Challenges The problem of producing software to satisfy user needs drives the approaches used in SE Software is Industrial strength sw But there are other factors that drive the selection of approaches These factors include considerations of scale, quality, productivity, consistency, change, … Drexel University Scale SE must deal with problem of scale methods for solving small problems do not scale up for large problems industrial strength SW problems tend to be large SE methods must be scalable Two clear dimensions in this engineering methods project management For small, both can be informal or ad-hoc, for large both have to be formalized Drexel University Scale… 11 Drexel University Scale… An illustration of issue of scale is counting the number of people in a room vs taking a census Both are counting problems Methods used in first not useful for census For large scale counting problem, must use different techniques and models Management will become critical Drexel University Scale: Examples Gcc 980KLOC C, C++, yacc Perl 320 KLOC C, perl, sh Appache 100 KLOC C, sh Linux 30,000 KLOC C, c++ Windows XP 40,000 KLOC C, C++ Drexel University Consistency and repeatability Sometimes a group can deliver one good software system Key SE challenge: how to ensure that success can be repeated SE wants methods that can consistently produce high Q sw with high P A sw org, wants to deliver high Q&P consistently across projects Frameworks like ISO and CMM focus on this aspect a lot Drexel University Change Only constant in business is change! Software must change to support the changing business needs SE practices must accommodate change Methods that disallow change, even if high Q and P, are of little use 12 Drexel University 45 Hardware-Characteristics Drexel University Software - Characteristics 46 Drexel University Software - Characteristics Software is developed or engineered, it is not manufactured in the classic sense. Except obviously the need to copy the disk or download the program. Software does not wear out. Is this true? The book states, Software is not susceptible to the environmental maladies the cause hardware to wear out. Drexel University SE Approach We understand the problem domain, the factors that drive SE Consistently develop sw with high Q&P for large scale problems and under changes Q&P are the basic objectives to be achieved under large scale and changes Q&P governed by people, processes, and technology