1 / 9

Practical Software Engineering: Principles and Practice

Dive into the principles and tools of software engineering. Explore the challenges of developing large systems, testing, and documentation. Understand the complexities and costs involved in software development. Learn through lectures and hands-on projects.

karenhuerta
Download Presentation

Practical Software Engineering: Principles and Practice

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSE350 Software Design and Engineering University of Pennsylvania http://www.cis.upenn.edu/~jms 254 Moore GRW, 8-9509 January 16th, 2001

  2. Administrative • TA, Chuck Davin, davin@dsl.cis.upenn.edu • My Office Hours are T/Th 8:30 or by Appt. – jms@cis.upenn.edu • No mid-term or final; 100% of the grade based on term project implemented by a group of 3 people • Plagiarism results in an “F”

  3. Course Organization • Principles and Practice • Learn by listening and doing • Tuesday’s classes will be lectures on topics from the syllabus • Thursday’s classes will be focused on material needed for the project • Project will be kernel coding for OpenBSD – implementation of IP striping

  4. Bulk Pack ready next week – copy center OpenBSD CD-Roms when groups are formed www.openbsd.org to read ahead Need to program in “C” Large vs. Small Systems – scale Software lifecycle SW reuse. Tools. Programming as a group activity SW Testing Documentation Legal issues Syllabus

  5. What is SW Engineering? • SW systems are large and complex • Society increasingly relies on them • They are enormously costly • They are engineered artifacts • Opportunity: engineering discipline • So far: not really there. But why???

  6. It’s not like other engineering! • Mathematics exists for the rest of engineering • Add cement, power, pressure,… voila! • Software systems are “non-linear” • Changing a single bit may break the program • Are there any principles?

  7. Most “principles” are empirical • Adding programmers slows things down • Cost rises with complexity • Complexity is difficult to measure • 10% of the cost is development • 90% of the cost is maintenance • Major cost factor is people • At a certain scale, it’s a management problem

  8. Complexity • All metrics are approximate • Lines of code? • Number of branches? • McCabe’s complexity measure? #programmers Complexity increasing….

  9. Perhaps the central question is: • If you want to build a VERY complex system, are you better off • Enhancing “super-programmer” • Managing an “army of ants” • What do you think????

More Related