Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 CSE 403 Introduction Reading: Rapid Development Ch3.3 These lecture slides are copyright (C) Marty Stepp, 2007, with significant content taken from slides.

Similar presentations


Presentation on theme: "1 CSE 403 Introduction Reading: Rapid Development Ch3.3 These lecture slides are copyright (C) Marty Stepp, 2007, with significant content taken from slides."— Presentation transcript:

1 1 CSE 403 Introduction Reading: Rapid Development Ch3.3 These lecture slides are copyright (C) Marty Stepp, 2007, with significant content taken from slides written by Valentin Razmov. They may not be rehosted, sold, or modified without expressed permission from the author. All rights reserved.

2 2 Software engineering software engineering: creating and maintaining software applications by applying technologies and practices from computer science, project management, and other fields. Software engineering is about people working in teams under stress to create value for their customers. Software engineering has accepted as its charter, "How to program if you cannot." -- E. Dijkstra The first step toward the management of disease was replacement of demon theories and humours theories by the germ theory. That very step, the beginning of hope, in itself dashed all hopes of magical solutions. It told workers that progress would be made stepwise, at great effort, and that a persistent, unremitting care would have to be paid to a discipline of cleanliness. So it is with software engineering today. -- F. Brooks

3 3 Ties to many fields in contrast to other CS disciplines you have been exposed to, this one involves aspects of: computer science (algorithms, data structures, languages, tools) business/management (project mgmt, scheduling) economics/marketing (selling, niche markets, monopolies) communication (managing relations with stakeholders: customers, management, developers, testers, sales) law (patents, licenses, copyrights, reverse engineering) sociology (modern trends in societies, localization, ethics) political science (negotiations; topics at the intersection of law, economics, and global societal trends; (public) safety) psychology (personalities, styles, usability, what is fun) art (GUI design, what is appealing to users) hence, the discipline will necessarily be "softer" and there will be fewer clearly right/wrong answers

4 4 Roles of people in software people involved in software production customer / client: wants software built often doesn't know what he/she wants managers / designers: plan software difficult to foresee all problems and issues in advance developers: write code to implement software it is hard to write complex code for large systems testers: perform quality assurance (QA) it is impossible to test every combination of actions users: purchase and use software product users can be fickle and can misunderstand the product

5 5 Tools for software engineers CASE (Computer-Aided Software Engineering) requirements / spec generation software design diagram (UML) software integrated development environments (IDEs) test suites (JUnit) and benchmarking / profiling software content management systems (CVS, Subversion) performance testing (profiling) software

6 6 Projects you make project proposals (and then vote on which projects to develop) start thinking about ideas today project ideas from previous quarters are linked from the respective course webs project development in stages reflects modern methodologies for effective software project development you get feedback from us after each stage, but also regularly during the development at each stage project teams need to have at least 5 members otherwise it'd be toy development, and you’d miss on some of the most important experiences

7 7 Unique aspects of the course cross-disciplinary nature of the subject larger-size teams you have the opportunity to propose and work on your own ideas instructors in the coach role mistakes along the way are encouraged, not penalized. few clearly right/wrong answers plans (always) change content topics: software design, testing, project management, etc.

8 8 What you'll learn get exposure to some of the best software development practices in use today learn how to more effectively collaborate with others toward a common goal understand how software is produced – from conception to shipping and subsequent maintenance have experience working in a larger team toward a common goal be able to articulate and understand ideas in a conversation with expert practitioners in the field of software engineering understand the issues and tradeoffs involved in making decisions as software engineers and project managers


Download ppt "1 CSE 403 Introduction Reading: Rapid Development Ch3.3 These lecture slides are copyright (C) Marty Stepp, 2007, with significant content taken from slides."

Similar presentations


Ads by Google