390 likes | 398 Views
Chapter 1 Introduction. An Introduction to Software Engineering. Overview. Objectives The role of computers in our lives Defining Software Defining Software Engineering Software process Software process models CASE tools SW engineering vs. Systems Analysis Course Syllabus.
E N D
Chapter 1 Introduction An Introduction to Software Engineering
Overview • Objectives • The role of computers in our lives • Defining Software • Defining Software Engineering • Software process • Software process models • CASE tools • SW engineering vs. Systems Analysis • Course Syllabus
Activity Feedback How many answers were each team able to list? What do you conclude from this activity?
Computers In Our Lives Society has become computer dependent, almost touches all aspects of our lives Software is important, and new technologies have increased the complexity of software systems developed.
Software Failure What is software failure? What happens if software fails? Let’s see some examples together…
Loss of the Mars Climate orbiter in 1999 because an error in a Metric to English conversion formula (pounds and Kilograms)[1]
Ariane 5 Explosion • Caused by an overflow error. • Watch the video http://www.youtube.com/watch?v=z-r9cYp3tTE
Therefore.. A well-disciplined approach to software development and management is necessary. This is called engineering.
A question to think about….? How is engineering software different from engineering other products?
Software is different because.. Software is an intangible product.
Software is different because.. We can not see the software being developed to determine its progress. But we can see the bridge being built to determine its progress.
Software is different because.. We can notprove that software will not fail. But we can prove that a bridge will not fall.
Given that….. • Software failures have devastating effects • Software is different from other products It is not easy to manage and develop software. Can we do anything?
Yes… The solution is Software Engineering
Software Engineering An engineering approach to software was first suggested at a NATO conference in 1968.
Software Engineering Definition I (IEEE93)[3] “The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. “ Definition II [4] “An engineering discipline that is concerned with all aspects of software production from the system specification to maintaining the system”
Software Engineering is A methodological process for building software on time within budget and with quality attributes.
A question……..? Quality attributes …hmmmm????
Quality Attributes • Functional attributes • Services it provides (search, report, etc) • Non-functional attributes (depend on application) • Maintainability (understandability of the code, modularity) • Performance (response time) • Dependability (reliability, security, safety) • Usability (good user interface, documentation)
Activity • Work in teams to identify the most important quality attribute for the following software systems. • One member should be a reporter for the group. • The reporter should present the attributes to the class.
A Software Process is A Set of activities and associated results that produce a software product. There are four fundamental activities common to all software process models • SW specification • SW development • SW validation • SW evolution
What is a Software Process Model? A simplified description of a SW process that presents one view of that process SW process models are based on three general models: • The Waterfall approach • Evolutionary development • Component-Based SW engineering (CBSE)
What is CASE? CASE is an acronym for “Computer Aided Software Engineering” They are programs used to support software process activities such as system modeling, debugging, and testing Some CASE tools include automatic code generation from diagrams.
Example CASE • Eclipse http://www.eclipse.org • Open source software • Large number of plug-ins available (diagrams plug-in, testing plug-in). • Includes IDE (Integrated Development Environment) • Available for several languages such as C, PHP, Java, and C++ • We will use it this term. • You will see demo in tutorial.
What you studied in System Analysis course constitutes part of software engineering. Software Engineering is a broader subject. To be a software engineer, you must master several skills, one of which is analysis and design. SW engineering vs. Systems Analysis
References • PRESS&SUN-BULLETIN, The Binghamton Press Co., Binghamton, NY, October 1,1999. • “Software Hell: Is there a way out?”, BUSINESS WEEK, December 6, 1999. • IEEE Standards Collection: Software Engineering, IEEE standard 610.12-1990, IEEE 1993. • Sommerville, Ian “Software Engineering”, 8th edition, Addison-Wesley.
Reminder Please Check course blog at http://312cap.wordpress.com Register with Tawasul ksu sms service