190 likes | 327 Views
CS427: Software Engineering. Personnel. Ralph Johnson Danny Dig Alexandre Kofov Mayssam Sayyadian Shadi Ashnai. Texts. Hamlet and Maybe, “The Engineering of Software: A Technical Guide for the Individual” Martin Fowler, Kendall Scott, “UML Distilled”
E N D
Personnel • Ralph Johnson • Danny Dig • Alexandre Kofov • Mayssam Sayyadian • Shadi Ashnai
Texts • Hamlet and Maybe, “The Engineering of Software: A Technical Guide for the Individual” • Martin Fowler, Kendall Scott, “UML Distilled” • Alistair Cockburn, “Writing Effective Use Cases”
What is S.E.? • Not a process! • The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines. • The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.
Developing Software • Product • CS423, CS426 • Process • CS225, CS427
Activities in the process • 427 • requirements, architecture, design, management • 428 • metrics, configuration management, testing, debugging, reverse engineering
Axis of variability • Size • How humans interact with it • Requirements stability/knowledge • Need for reliability • Need for security • Portability • Cost
Microsoft Word • Size: large • Interactiveness: high • Requirements: frequent new features • Reliability: moderate • Security: low • Portability: high • Cost: high
Space shuttle software • Size: large • Interactiveness: low • Requirements: stable • Reliability: very high • Security: low • Portability: low • Cost: high
eBay software • Size: moderate • Interactiveness: high • Requirements: frequent new features • Reliability: moderate • Security: high • Portability: low • Cost: low
Software Process • Pressman: a framework for the tasks that are required to build high-quality software. • IEEE 1074: a set of activities performed towards a specific purpose • Johnson: the steps a particular group follows to develop software
IEEE 1074 • Project Management • project initiation • project monitoring and control • software quality management • Development • requirements • design • implementation
IEEE 1074 • Post-development • installation • operation and support • maintenance • retirement • Integral processes • verification and validation • software configuration management • documentation development
Defined processes • Rational Unified Process • OO • Incremental • Commercial, popular • eXtreme Programming • Used mostly by OO developers, not OO • Incremental • Counterculture, popular
More books The Rational Unified Process: An Introduction by Philippe Kruchten eXtreme Programming Explained by Kent Beck
Lots of papers! • Classics • Latest ideas • Lots of easy reading • The books and papers WILL be on the exams.
Purpose of course • Be able to follow your project’s process • Be able to improve your process • Be able to choose the right process for your project
Project Group project - 8 people Various topics Opportunity to practice Need to start thinking about projects now See http://wiki.cs.uiuc.edu/SEcourse/ Homework+1
Next: RUP Read chapter 1 of Hamlet and Maybe. Scan first 80 pages of Kruchten if you have it, or spend a few hours at http://www-136.ibm.com/developerworks/ rational/products/rup/ Especially http://www-106.ibm.com/developerworks/ rational/library/409.html