270 likes | 422 Views
CSC 480 Software Engineering. Lecture 1 August 25, 2009. Topics. Welcome to CSC 480 Course Roadmap Introduction to Software Engineering. Goals. SE activities and processes Object orientation: concepts and principles Team-based projects leading to working applications
E N D
CSC 480Software Engineering Lecture 1 August 25, 2009
Topics • Welcome to CSC 480 • Course Roadmap • Introduction to Software Engineering CSC 480 -- Fall 2004
Goals • SE activities and processes • Object orientation: concepts and principles • Team-based projects leading to working applications • Team activities and role playing • Advanced programming/system development techniques CSC 480 -- Fall 2004
Textbook & References • Object-Oriented Software Engineering Bruegge & Dutoit • Prentice Hall, 2004 CSC 480 -- Fall 2004
Special Features • Put ideas into reality conceptualization specification high-level and detailed design implementation & testing next iteration, if needed • Valuable teamwork experience • Form a team with a common set of goals • Choose a role (or roles) that can match your interest and talent • Respect differences and perform as a whole • Synergy: P(n) > n * P(1) • Healthy competition between teams CSC 480 -- Fall 2004
Team Lineup – Couch • Martin Zhao, PhD • Teaching Programming, SE, DB & OOAD @ Mercer • Engaged in s/w development and integration using Java technologies • Other background -- computer aided design and modeling • Committed to a enjoyable class experience • For both you all and me CSC 480 -- Fall 2004
We Want to Know You... • Background: • Major • Courses taken • Strength/interest in computing • Programming/system development experience • Career goals • Expectations for the class • Respond to the questionnaire in the handouts folder CSC 480 -- Fall 2004
Team Lineup – Players • CHIP • VAN • TRAVIS • JAMES • BRAD • ADAM • CLINESA • NELU • ERIC • TIM • DERON • MICHAEL CSC 480 -- Fall 2004
Course Roadmap • Lectures – show you how it works the 1st time • Processes & team issues • Methodologies (e.g., OOAD using UML) • Special topics (e.g., client/server, DB connectivity) • Practices – walk you through the 2nd time • Workshops Exposure to new technologies • Homework • Topics may not be directly covered in workshops CSC 480 -- Fall 2004
Course Roadmap (cont’d) • Team projects –you are on your own the 3rd time • OOAD - thinking and using objects • Plans, logs, and documentation – doing software engineering • Presentations – talking about S/E formally CSC 480 -- Fall 2004
Score Breakdown CSC 480 -- Fall 2004
Introduction • What is Software Engineering? • What is the difference? • Computer Science vs. Software Engineering • Software Engineering vs. other engineering • What activities are involved? CSC 480 -- Fall 2004
The Essence of SE • The essence of software engineering is to deliver high-quality software products that can meet clients’ requirements at agreed cost and schedule. CSC 480 -- Fall 2004
Software • Software is not just the programs! • A software system usually consists of • Requirement documents • Design specifications (diagrams, etc) • Programs (code, executables and config data) • Installation and user manuals CSC 480 -- Fall 2004
Software Is Soft • As described in section 1.2 of your text, SE is • A modeling activity:methodologies • A problem-solving activity:processes and practices • A knowledge acquisition activity: intellectual property • A rational-driven activity: constantly changing req’ts • We will discussed the first two areas in detail with lectures and workshops. It’s important to have the mental set of dealing with the softness of software as reflected in the latter two areas CSC 480 -- Fall 2004
The Four P’s • The four P’s in software development • People – in different roles working in a team • Product – the working software system and associated artifacts • Process – a set of activities that is performed in a certain order toward a special purpose • Project – a specific instance of building a software product CSC 480 -- Fall 2004
Relationships Among the 4 P’s Project: People performing Processes to produce Product CSC 480 -- Fall 2004
A Closer Look at the 4 P’s CSC 480 -- Fall 2004
Implemented By Expressed in Terms Of Structured By Realized By Verified By class... class... class... ? ? class.... Application Domain Objects Solution Domain Objects Use Case Model Source Code Subsystems Test Cases Software Lifecycle Activities Requirements Elicitation Analysis System Design Object Design Implemen- tation Testing ...and their models CSC 480 -- Fall 2004
Software Lifecycle Definition • Software lifecycle: • Set of activities and their relationships to each other to support the development of a software system • Typical Lifecycle questions: • Which activities should I select for the software project? • What are the dependencies between activities? • How should I schedule the activities? CSC 480 -- Fall 2004
Other Basic SE Concepts • Functional requirements • Nonfunctional requirements • Notation • Method • Methodologies CSC 480 -- Fall 2004
Additional Background Info CSC 480 -- Fall 2004
Engineering The profession in which a knowledge of the mathematical and natural sciences gained by study, experience, and practice …... -- Accreditation Board for Engineering and Technology CSC 480 -- Fall 2004
Engineering The profession in which a knowledge of the mathematical and natural sciences gained by study, experience, and practice is appliedwith judgment to develop ways to utilize, economically, the materials and forces of nature for the benefit of mankind -- Accreditation Board for Engineering and Technology, 1996 CSC 480 -- Fall 2009
Software Engineering • A discipline which • Applies mathematical and computer sciences • Utilizes (mostly) human intelligence, economically, for the benefit of mankind • Based on greatly wise judgment CSC 480 -- Fall 2004
Software Engineering Vs. CS • CS is more on the theoretical side • Theories, methods, etc • Essential knowledge for software engineers • Software Engineering is practical • Applying CS theories and methods • Hopefully, in a formal (NOT ad hoc) way • Don’t just learn Software Engineering. Do it! CSC 480 -- Fall 2004
Software Vs. Other Engineering • Software is soft • Mostly human intellectual effort • Need for physical resources (e.g. raw materials) is usually not the first priority • Products are intangible and progress may not be visible • With applications in virtual all industries, previous experience may not be easily adopted CSC 480 -- Fall 2004