100 likes | 128 Views
This class provides an overview of software engineering and its importance in the development, operation, and maintenance of software. Topics covered include software processes, modeling, problem-solving, knowledge acquisition, and rationale management.
E N D
CEN 4010 Software Engineering 1Section 2 Fall 2005 Instructor: Peter Clarke http://www.cs.fiu.edu/~clarkep/courses/Fall2005/cen4010
Course Introduction • Syllabus • Project • Questions • What is s/w eng.? CEN 4010 Class 1 - 08/30
Overview of Software Process • Definition. • Why S/w Eng.? CEN 4010 Class 1 - 08/30
What is Software Engineering? • Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software; that is, the application of engineering to software.(5/5 points) (Source: IEEE Std 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology) CEN 4010 Class 1 - 08/30
What is Software Engineering? cont • “Software engineering is an engineering discipline which is concerned with all aspects of software production.” Sommerville (3/5points) • Software engineering is • modeling • problem-solving • knowledge acquisition • rationale-driven (3/5 points) Bruegge & Dutoit CEN 4010 Class 1 - 08/30
Why software engineering? • Bugs – leap-year, Y2K, etc. • Interface misuse • Security • Late and over budget • On-time delivery • Unnecessary complexity Bottom line COST (see text book) CEN 4010 Class 1 - 08/30
Modeling • “A model is an abstract representation of a system that enables us to answer questions about the system.” • Why use a model? Systems are too large, too small, too complicated, or too expensive, to experience firsthand. • Models allow • visualization • comprehension CEN 4010 Class 1 - 08/30
Problem Solving Steps in problem solving: • formulate the problem • analyze the problem • search for solutions • decide on the appropriate solution • specify the solution CEN 4010 Class 1 - 08/30
Knowledge Acquisition • Domain specific knowledge. • New knowledge can affect the development process. • Knowledge acquisition is nonlinear – affects several of the software development models. • Risk assessment is important. CEN 4010 Class 1 - 08/30
Rationale Management • Assumptions made about systems change constantly. • Application domain models stabilize, solution domain models are in constant flux. e.g. Changes to the solution models due to: • design and implementation faults • new technology • Need to understand the context in which each design decision was made. CEN 4010 Class 1 - 08/30