CS 435 - Week 2 Lecture 1 - 2014-01-28 - in-class projections ------------------------------------ from Pfleeger and Atlee, "Software Engineering: Theory and Practice": fault - "occurs when a human makes a mistake, called an error, in performing some software activities" failure - "is a departure from the system's required behavior" ------------------------------------ SWEBOK - Software Engineering Body of Knowledge * looks like it is overseen by the IEEE Computer Society; * from http://www.computer.org/portal/web/swebok/faq : "The Computer Society began defining this body of knowledge in 1998 as a necessary step toward making software engineering a legitimate engineering discipline and a recognized profession. As software becomes the center of critical systems, it is only natural that standards of practice, knowledge, and training would arise in software engineering, as the usage section explains." * the PDF version of the SWEBOK Guide does appear to be free (although there is a terms of use -- possibly the most readable/straightforward I've seen -- and you do provide your name and e-mail, and then they e-mail you a link to download from) * form for obtaining the PDF version of the SWEBOK Guide is linked from: http://www.computer.org/portal/web/swebok * this is a resource that could be interesting; ---------------------------------- ...recurring themes for software development: * quality * cost * schedule * ...Jalote calls these the main forces that drive "industrial strength" software projects * Extreme Programming: choose 2 of these 3? ---------------------------------- Defining quality can be ... interesting; * International Standards Organization (ISO) suggest some quality attributes for software: * functionality -the capability to provide functions that meet stated and implied needs when the software is used * reliability - the capability to provide failure-free service * usability - the capability to be understood, learned, and used * efficiency - the capability to provide appropriate performance relative to the resource used * maintainability - the capability to be modified for purposes of corrections, improvements, and/or adaptations * portability - capability to be adapted for different specified environments