1 / 49

CSC450 Software Engineering

Devon M. Simmonds University of North Carolina, Wilmington. Course Introduction. CSC450 Software Engineering. Quick Info. Dr. Devon Simmonds CIS 2046 simmondsd @uncw.edu http://people.uncw.edu/simmondsd/ 962-3819.

tala
Download Presentation

CSC450 Software Engineering

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. Devon M. Simmonds University of North Carolina, Wilmington Course Introduction CSC450Software Engineering

  2. Quick Info • Dr. Devon Simmonds • CIS 2046 • simmondsd@uncw.edu • http://people.uncw.edu/simmondsd/ • 962-3819 Research interests:software engineering/model-driven development/software architecture/aspect-oriented & component-based development

  3. COURSE INTRODUCTIONOutline • Getting to know you • Motivation for software engineering • Course overview

  4. The Man without a Face, oil on panel, 11x14, 2005 – Dae-Woong Nam Getting to Know You • Name • Background • Where from • Previous school • Programming background • Languages • Software development experience

  5. Solving Problems With The Aid of Computers Communication? Programming language Machine language • Large software systems: 4 x 106 – 100 x 106

  6. ENIAC I - 1946 Motivation • The early decades (40s – 60s) • Main focus of attention - computer hardware. • Building faster, simpler, and, more efficient machines. • Problems, problems, problems,…...

  7. Motivation:problems • Inability to predict time, effort, and costs. • Projects were often late and ran over budget because there was little experience on which to base predictions • Inability to deliver quality software. • Customers and developers accept that software will always have defects • Software products are released with known “list of bugs” • Lack of enough competent software developers

  8. Wilmington network A Chapel Hill Charlotte C B Rising software complexity! • Complex, critical systems are pervasive! • Quality of life issues • Consequences of errors are far-reaching • Consequences of errors are far-reaching • Consequences of errors are far-reaching

  9. Software Development Mishap:Long-distance phone traffic routing …switch (caseIndex) {case‘A’: route = routeA; … break; …case‘M’: route = routeM;case‘N’: route = routeN; … break;…} Missing break statement Result:Loss of long-distance service in NE USA Cost of approx. $800 M (1990)

  10. Software Development Mishap • Problem: • Patients were given massive overdoses of radiation • Cause: • Safety of software not considered • Software reused without testing • No architectural model. • Result:at least 5 deaths! The radiation therapy: Therac 25 Machine

  11. Motivation: Some Facts • Current code-centric development practices are inadequate. • Need to take an engineering approach to developing software!

  12. What is engineering? • Engineering is … • The application of scientific principles and methods to the construction of useful structures & machines • Examples • Mechanical engineering • Civil engineering • Chemical engineering • Electrical engineering • Nuclear engineering • Aeronautical engineering • Software Engineering

  13. What is the origin of software engineering?

  14. Motivation – the genesis • 1968 NATO Science Committee convened a meeting of some fifty(50) top programmers, computer scientists, and captains of industry to examine the issues with a view to finding solutions. • Garmisch, Germany, October 7-11, 1968 • Rome, Italy, October 27-31, 1969 • Software engineering

  15. What is Software Engineering (SE)? • Software Engineering is concerned with development of complex systems that are built by teams of developers. • SE techniques are not intended for small problems (e.g., writing a program for sorting a list of numbers). • However, SE builds upon programming techniques; a good software engineer must also be a good programmer. • SE research focuses on developing mechanisms and methods that help developers manage system complexity.

  16. What is SE? – Bauer, 1969/72 • Bauer, 1972: The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and works on real machines. • “sound engineering principles” - Emphasizes use of methods based on proven experiences and sound, formal engineering models that reflect these experiences • “obtain economically” – emphasizes cost-effective development • “that is reliable and works …” – focus on reliability and executability as primary qualities of programs Other SE definitions from textbooks and papers

  17. What is SE? Boehm, 1976 • The practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate, and maintain them. • Emphasizes use of “practical” methods that have a sound scientific basis. • Explicitly mentions application of methods for both design and programming. • Explicitly mentions application of techniques are to documentation artifacts e.g., requirements documents and designs, user manuals, change plans, test cases, etc. Other SE definitions from textbooks and papers

  18. What is SE? – Pressman, 2005 • The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines. Other SE definitions from textbooks and papers

  19. SE Essential I: Concepts • Problem solving involves analyzing problems and synthesizing solutions. • Analysis of complex problems can involve decomposing the problem into subproblems that can be understood on their own. • Design/Creation of subcomponents that solve sub-problems. • Synthesis of subcomponents to form a complete solution.

  20. SE Essential II: Change? • Current code-centric development practices are inadequate. • Need to take an engineering approach that emphasizes developing product specifications and models to support analysis

  21. Benefits of models Help us understand and manage complex systems Communicate understanding Drive implementation Save resources • A - Making a V-cut. • B - Receiving Inside Hand-off. Roy Williams SE Essential III: Models in Engineering Engineering is aModel-Driven Discipline!

  22. CompileModel CreateModel Need modelcompiler Model of the Program A C B Binary instructions Code-centric Development Model-Driven Development (MDD) Using programminglanguage Manually Create Code Code Using modelinglanguage CompileCode

  23. What is this course about? • An introduction to software engineering • A team philosophy • Analysis, design, creation, synthesis of complex software • Focus on processes, techniques, tools • Model-driven development approach to software creation • Language: The Unified Modeling Language (UML)

  24. CSC Program Educational Objectives • Three to five years after graduation, alumni will have demonstrated their ability to: • Advance their careers in the emerging knowledge-based economy • Pursue graduate studies • Adapt to the needs of the workplace by independently acquiring new professional skills.

  25. CSC Student Outcomes • By the time of graduation, enable students to achieve: • Knowledge of mathematical, algorithmic, and computing principles appropriate to the design and implementation of computer-based systems; • An ability to apply analysis, design, development, and testing principles in the construction of software systems; An ability to function effectively on a software development team; • An ability to communicate effectively on technical subject matters; • A recognition of the value of continued professional development, as evidenced by the ability to acquire and use appropriate techniques, skills, and tools necessary for computing practice, and; • An understanding of professional, ethical, legal, and security issues and responsibilities, and the societal impact of computing.

  26. 450 Course Objectives At the end of this course students will be able to: 1.   Gain experience, knowledge and skills working as individuals and as part of a team to develop quality software and present project results orally and in writing. 2.     Apply current theories, models, techniques and tools during problem identification and analysis, requirements specification, software design, implementation, software testing, software evolution and documentation. 3.     Design alternative solutions to a given problem and describe and reconcile alternate approaches taking into considerations technical and non-technical concerns. 4.     Develop the knowledge, skills, and professional awareness foundational to the practice of software engineers including an appreciation for the need for continuing professional development, leadership, good communication, negotiation, as well as effective work habits.

  27. 450 Course Objectives cont’d. At the end of this course students will be able to: 5.     Present technical software engineering material and defend design decisions as evidenced by artifacts created during the software development lifecycle. 6.     Critically analyze, evaluate and discuss in writing theories, models, techniques and tools relevant to problem identification and analysis, requirements specification, software design, implementation, software testing, software evolution and documentation as well as the ethical and societal impact of software engineering. 7.     Demonstrate the ability to analyze and evaluate arguments using rules of logic and display a clear understanding of how the ideas of other persons may be properly cited and used in written documents. 8.     Identify and locate appropriate sources of software engineering and related information to support decisions and written ideas.

  28. Why take this course? • Demand • There will be 35,086 openings for Systems analy/software engineers annually, Shatkin and Farr predict. – Forbes.com

  29. Why take this course? • Starting salary 2013 Forbes.com survey

  30. Why take this course? • Average salary 2013 Forbes.com survey • Engineering                                       $63,000Computer Science                           $60,000Business                                              $54,000Communications                             $43,000Math & Sciences                               $42,700Education                                            $40,000Humanities & Social Sciences    $37,000

  31. Why take this course? • Augment you skill set • Systematic problem solving skills: analysis, design, development, testing. • Working with teams. • Formal oral presentations • Modeling • At least 8 UML diagram types • Tools • Modeling e.g Microsoft Visio, Junit for testing, etc. • A capstone experience!

  32. How does software engineering fit into computer science?

  33. Software Engineering’s Unique Role • Computer science - solving problems with the aid of a computer • Programming languages, csc 121, 221 • Data structures, csc 332 • Computer graphics, csc 320 • Operating systems, csc 342 • Computer networks, csc 344 • Artificial intelligence, csc 415 • Database management systems, csc 455 • Software engineering, csc 450

  34. SE is very relevant – this class is very relevant! Software engineering and the world of work

  35. CSC450 Grading • Project (3 persons/group) (30%) • Requirements specification/presentation (10%) • Design specification/presentation (10%) • Implementation/presentation and demo (10%) • Homeworks (20%) • 2-3 Tests (20%) • Quizzes (10%) • Final exam (20%) Grading system 90% or above A 80% - 89% B 65% - 79% C 50% - 64% D below 50% F

  36. The Role of csc450 in CS Dept. • An assessment tool • Requirements • Design • Implementation/testing • Peer evaluation

  37. How to get an “A” • Project (85%) 25.5 xx • Homeworks (90%) 18 xx • 2-3 Tests (90%) 18 xx • 3-5 Quizzes (90%) 9 xx • Final exam (90%) 18 xx • Grade (total = 88.5) B/B+/A-

  38. Course Information • Teams, course project, readings, homeworks, etc  Web Page • For Next Class: complete Homework 1. Submit typed answers in 12 point font.

  39. Fall 2012 Projects Completed to Date • CorkBoard– Group collaboration & communication • Andrew Harnage, Douglas Flagg, Amber Whittemore • University Mapping Mobile Ap– • Ben Singer, Brandon Lundquist, Brianna Lofton • Student Parking Maps– • Nathan Arnold, Robert Smith, Phillip Walker

  40. Projects Completed to Date • Spring 2012 by Christine Posey, Travis Radtke, Brennan Smith A Mobile Stenography Application by Dan O’Dor, Nick Ruiz, Reid Jackson, Kory Urban

  41. Projects Completed to Date • Fall 2011 • ClipBits– A Lightweight user-friendly interface for clipboard management • Michelle Willcox, Thomas Lovette, Yuli Bonner

  42. Fall 2011 A Social collaborative web interface for musicians. Audio Alchemy Alex Beaty Mathew Pollard Kevin Shea

  43. OrderUP - 3 Amigos Software Jordan Clifton - Project Manager Ryan Garner - Lead Designer James Forte - Lead Programmer • Fall 2011 • Order Up - 3 Amigos Software– Surface computing for restaurant management

  44. Fall 2011 • Conformation Bias – A Web interface for automating the conformation bias evaluation • Ashley Nassar • John Robertson • Wayne Shaw

  45. Projects Completed to Date • Fall 2011 • Study Buddy – A n Android utility for student support • Anton Nikolov (Project Manager) • Derrick Turner(Chief Requirements Engineer), • Elizabeth Haller(Chief Designer) • Vincent Tran(Quality Assurance Engineer)

  46. Projects Completed to Date • Fall 2010 • SMS Texing Software – For MobileEd • Java Buddy – A Java learning Environment • CodeWave – An Environment for Distributed Collaborative Development • Pitch Detection Software – A Guitar Tuner • Fall 2010 • GiftScroll – A gift registry for the Android smart-phone • WhiteBoard – An Interactive Classroom Environment • etc.

  47. What are your course expectations? Your Questions?

  48. Qu es ti ons? The End ______________________ Devon M. Simmonds Computer Science Department University of North Carolina Wilmington _____________________________________________________________

  49. Why take this course? • Below are the 15 college majors with the highest salary potential, according to Payscale: • Petroleum Engineering • Staring median salary: $103,000 • Mid-career median salary: $160,000 • Actuarial Mathematics: • Starting median salary: $58,700 • Mid-career median salary: $120,0000 • Nuclear Engineering • Starting median salary: $67,600 • Mid-career median salary: $117,000 • Chemical Engineering • Starting median salary: $68,200 • Mid-career median salary: $115,000 • 5. Aerospace Engineering • Starting median salary: $62,800 • Mid-career median salary: $109,000 • 6. Electrical Engineering • Starting median salary: $64,300 • Mid-career median salary: $106,000 • 7. Computer Engineering • Starting median salary: $65,300 • Mid-career median salary: $106,000 • 8. Computer Science • Starting median salary: $59,800 • Mid-career median salary: $102,000 • 9. Physics • Starting median salary: $53,100 • Mid-career median salary: $101,000 • 10. Mechanical Engineering • Starting median salary: $60,900 • Mid-career median salary: $99,700 • 11. Materials Science and Engineering • Starting median salary: $62,700 • Mid-career median salary: $99,500 • 12. Software Engineering • Starting median salary: $60,500 • Mid-career median salary: $99,300 • 13. Statistics • Starting median salary: $52,500 • Mid-career median salary: $98,900 • 14. Government • Starting median salary: $43,200 • Mid-career median salary: $97,100 • 15. Economics • Starting median salary: $50,100 • Mid-career median salary: $96,700 • Read more: http://www.businessinsider.com/15-highest-paying-majors-payscale-2013-9#ixzz2qJTFMJNK

More Related