490 likes | 797 Views
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.
E N D
Devon M. Simmonds University of North Carolina, Wilmington Course Introduction CSC450Software Engineering
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
COURSE INTRODUCTIONOutline • Getting to know you • Motivation for software engineering • Course overview
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
Solving Problems With The Aid of Computers Communication? Programming language Machine language • Large software systems: 4 x 106 – 100 x 106
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,…...
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
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
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)
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
Motivation: Some Facts • Current code-centric development practices are inadequate. • Need to take an engineering approach to developing software!
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
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
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.
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
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
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
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.
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
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!
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
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)
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.
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.
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.
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.
Why take this course? • Demand • There will be 35,086 openings for Systems analy/software engineers annually, Shatkin and Farr predict. – Forbes.com
Why take this course? • Starting salary 2013 Forbes.com survey
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
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!
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
SE is very relevant – this class is very relevant! Software engineering and the world of work
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
The Role of csc450 in CS Dept. • An assessment tool • Requirements • Design • Implementation/testing • Peer evaluation
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-
Course Information • Teams, course project, readings, homeworks, etc Web Page • For Next Class: complete Homework 1. Submit typed answers in 12 point font.
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
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
Projects Completed to Date • Fall 2011 • ClipBits– A Lightweight user-friendly interface for clipboard management • Michelle Willcox, Thomas Lovette, Yuli Bonner
Fall 2011 A Social collaborative web interface for musicians. Audio Alchemy Alex Beaty Mathew Pollard Kevin Shea
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
Fall 2011 • Conformation Bias – A Web interface for automating the conformation bias evaluation • Ashley Nassar • John Robertson • Wayne Shaw
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)
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.
What are your course expectations? Your Questions?
Qu es ti ons? The End ______________________ Devon M. Simmonds Computer Science Department University of North Carolina Wilmington _____________________________________________________________
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