180 likes | 300 Views
CSCE 240 – Intro to Software Engineering . Instructor Orren Mckay www.cse.sc.edu/~mckayj/cse240.htm. Quote of the Day. “Everything should be made as simple as possible, but not simpler.” -Albert Einstein. Overview. Syllabus Roll/Introductions Start on Chapter 1. Syllabus.
E N D
CSCE 240 – Intro to Software Engineering Instructor Orren Mckay www.cse.sc.edu/~mckayj/cse240.htm
Quote of the Day “Everything should be made as simple as possible, but not simpler.” -Albert Einstein
Overview • Syllabus • Roll/Introductions • Start on Chapter 1
Syllabus • See handout • Remember, feel free to ask questions and point out any misteaks.
Roll/Introductions • Stand up, introduce yourselves as I call the roll. • Name, where you’re from, and what your major is. • Please try and be patient with my mangling your names.
Reading for Next Class • Please Read Chapter 1 in Object Oriented Software Engineering book.
The Big Question What is Software Engineering?
Authors Definition “Software engineering is the process of solving customers’ problems by the systematic development and evolution of large, high-quality software systems within cost, time and other constraints.”
IEEE Definition “(1)the application of systematic, disciplined, quantifiable approach to the development, operation, maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1).”
Canadian Standards Assn. Definition “The systematic activities involved in the design, implementation and testing of software to optimize its production and support.”
Software vs. Other Engineering • Finished product more intangible than other engineering fields. • Mass production trivial • Software creation very labor intensive • Poorly trained programmers can create functional (or semi-functional products)
Software vs. Other Engineering (continued) • Easy to modify, hard to modify without repercussions • Software does not wear out, instead design deteriorates through repeated changes and revisions
Types of Software • Custom – developed for needs of (usually) one particular customer (ex. VIP (probably), CSE dropbox system ) • Generic – designed for sale on the open market (ex. MS Word, IE, Netscape) • Embedded – for running specific hardware devices (ex. Digital Watches, Recent cars)
Software Categories • Real-time – has to react immediately to stimuli. • Data processing – Database operations, sales, where operations can be organized into batches for execution.
Stakeholders • Users – people who will use the finished software. • Customers – the people writing the check (and deciding what the check is for). • Software Developers – Most likely, you. • Development Managers – people who run organization developing software.
What makes Quality Software? • Usability – how easy to learn to use, and once experienced with software, use efficiently. Also how well errors are handled. • Efficiency – good use of CPU time, memory, bandwidth, disk space and resources. • Reliability – few failures, and fast recovery from failures that do occur.
What makes Quality Software? (continued) • Maintainability – how easy is it to change, update, fix software. • Reusability – can software components be used for multiple projects with little or no modification.
The Rest of the Semester • Understanding the Customer and User • Object Oriented Methods • UML (Unified Modeling Language) • Producing reusable technology • Iterative development • Communication through documentation • Risk Management