Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

An Introduction to Software Engineering - Project 7 | CS 451, Study Guides, Projects, Research of Software Engineering

Material Type: Project; Professor: Cai; Class: Software Engineering; Subject: Computer Science; University: Drexel University; Term: Winter 2009;

Typology: Study Guides, Projects, Research

Pre 2010

Uploaded on 08/19/2009

koofers-user-sdl
koofers-user-sdl 🇺🇸

10 documents

1 / 15

Toggle sidebar

Related documents


Partial preview of the text

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
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved