Download presentation
Presentation is loading. Please wait.
Published bySharleen McDowell Modified over 9 years ago
1
INTRODUCTION -SOFTWARE ENGINEERING MUHAMMAD RIZWAN Spring 2012
2
How to get in touch? 2 Email: muhammadrizwan@ciitsahiwal.edu.pk Office: F 2.7 Room No. : F 2.7 Software Engineering - 2012
3
Course Details 3 Books Somerville, Ian. Software Engineering, 8th Edition, Addison-Wesley, 2006 R.S. Pressman, Software Engineering: A Practitioner's Approach, 6th ed., McGraw-Hill Book Co., NY, 2005 Policies Attendance policy Mobile phone usage Assignment submission Quizzes Fines Plagiarism policy Important Rule – Don’t Cheat! (There will not be a 2 nd warning) Software Engineering - 2012
4
Class Objectives 4 Students will be able to evaluate software engineering techniques and approaches. "It is important that students bring a certain ragamuffin barefoot irreverence to their studies. They are here not to worship what is known, but to question it." - Jacob Bronowski, The Ascent of Man Students will be able to exercise professional judgment in selecting an approach for a particular project based on an understanding of: How the present state of software practice came about What was tried in the past What worked and what did not work Why Software Engineering - 2012
5
Lecture Outcomes 5 At the end of this lecture you should be able to answer the following key questions: What is software engineering? Why is software engineering important? What is the role of software in today’s age? Software Engineering - 2012
6
Course Outline Evolving Role of Software Software Process Models Software Configuration management Requirements Analysis Use-Case Fundamentals UML Notations Actor-Goal Lists Class Diagrams Sequence Diagrams Architecture Architectural Patterns Decision Tables User Interface Design Facts and Fallacies of Software Engineering Software Engineering I This Semester Software Engineering II Next Semester Requirements Analysis and Architecture Design and Implementation
7
Engineering 7 “Its not just oil – its liquid engineering!” - Caltex Advertisement Software Engineering - 2012
8
1-8 What is (not) S.E.? Not just software programming Individual vs. team Not just a process Field that studies several different processes
9
What is Software Engineering? 9 An Exercise: List all the ways in which Building a tinker-toy car for fun is different from designing a new automobile Building a tree-house is different from the architecture of a high- rise office building So, how might software “engineering” be different from writing a 50-line Java applet? Software Engineering - 2012
10
1-10 Developing software Product CS201 (Operating Systems) CS425 (Distributed Computing) ... Process ISE103 (Computer Programming) CS340/350 (Software Engineering I/II) CS860 (Object Oriented Analysis & Design) People
11
1-11 Software varies Size How humans interact with it Requirements stability/knowledge Need for reliability Need for security Portability Cost
12
Microsoft Powerpoint Size: large Interactiveness: high Requirements: frequent new features Reliability: moderate Security: low (at least used to be) Portability: high Cost: high Software Engineering - 2011 12
13
1-13 Space shuttle software Size: moderate to large Interactiveness: low Requirements: stable Reliability: very high Security: low Portability: low Cost: high
14
1-14 Online shopping software Size: moderate Interactiveness: high Requirements: frequent new features Reliability: moderate Security: high Portability: low Cost: low
15
1-15 Your example Size: Interactiveness: Requirements: Reliability: Security: Portability: Cost:
16
What will you learn? 16 Understanding, clarifying and documenting the requirements for a customer Planning how to conduct a project Designing a software system at the architectural and detailed levels Reviewing and testing designs and implementations Software Engineering - 2012
17
Software Engineering 17 What is Software? The programs, routines, and symbolic languages that control the functioning of the hardware and direct its operation. A set of instructions that cause a computer to perform one or more tasks. The set of instructions is often called a program or, if the set is particularly large and complex, a system. Programs are written in programming languages, especially designed to facilitate the creation of software Packaged software such as word processors, spreadsheets, graphics and drawing tools, email systems, and games are widely available and used Software Engineering - 2012
18
Software costs Software costs often dominate computer system costs. The costs of software on a PC are often greater than the hardware cost. Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs may be several times development costs. Software engineering is concerned with cost- effective software development.
19
Software Engineering 19 What is Engineering? Engineering is the discipline and profession of applying technical, scientific and mathematical knowledge in order to utilize natural laws and physical resources to help design and implement materials, structures, machines, devices, systems, and processes that safely realize a desired objective. [Wikipedia] Software Engineering - 2012
20
Software Engineering 20 What is Software Engineering? Software Engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines [NAU69]. Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. Software engineering encompasses a process, management techniques, technical methods, and the use of tools.
21
Why does Software Engineering matter? 21 Software’s contribution to economies (US, India, Pak…) Role in infrastructure not just the Internet transportation, energy, medicine, finance How good is our software? failed developments, accidents & poor quality software Software Engineering - 2012
22
22 Motivation for Studying IT Projects have terrible track record A 1995 Standish Group study (CHAOS) found that only 16.2% of IT projects were successfulCHAOS Over 31% were canceled before completion, costing over 81B$ in US alone The need for IT Projects keeps increasing In 1998, corporate America issued 200,000 new application development projects In 2001, there were 300,000 new IT projects In 2003, over 500,000 new IT projects were started http://www.standishgroup.com/press/article.php?id=2 http://www.standishgroup.com/press/article.php?id=2 Software Engineering - 2012
23
23 CHAOS research study Project success rates have increased to just over a third or 34% in 2003 and 35% in 2006 of all projects. This is a 100% plus improvement over the 16% rate in 1994. Project failures in 2006 have declined to 19% of all projects from the 31% in 1994. Challenged projects account for the remaining 51%. 46% of this 51% had a cost overrun of less than 20% of the estimated cost. Lost dollar value for US projects in 2002 is estimated at $38 billion with another $17 billion in cost overruns for a total project waste of $55 billion against $255 billion in project spending. In 1994, The Standish Group estimated US IT projects had a waste of $140 billion ($80 billion in failed projects) against $250 billion in project spending. Software Engineering - 2012
24
Accidents 24 Therac-25 (1985-87) Ariane-5 (June 1996) London Ambulance Service (1992) 7 out of every 10 major weapons development programs are encountering software problems and the rate is increasing Some interesting readings can be found at http://sunnyday.mit.edu/accide nts/index.html http://sunnyday.mit.edu/accide nts/index.html Software Engineering - 2012
25
Software products (Types) Generic products Stand-alone systems that are marketed and sold to any customer who wishes to buy them. Examples – PC software such as graphics programs, project management tools; CAD software; software for specific markets such as appointments systems for dentists. Customized products Software that is commissioned by a specific customer to meet their own needs. Examples – embedded control systems, air traffic control software, traffic monitoring systems. Chapter 1 Introduction 25
26
Frequently asked questions about software engineering Chapter 1 Introduction 26 QuestionAnswer What is software?Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market. What are the attributes of good software?Good software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable. What is software engineering?Software engineering is an engineering discipline that is concerned with all aspects of software production. What are the fundamental software engineering activities? Software specification, software development, software validation and software evolution. What is the difference between software engineering and computer science? Computer science focuses on theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software. What is the difference between software engineering and system engineering? System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this more general process.
27
Frequently asked questions about software engineering QuestionAnswer What are the key challenges facing software engineering? Coping with increasing diversity, demands for reduced delivery times and developing trustworthy software. What are the costs of software engineering? Roughly 60% of software costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs. What are the best software engineering techniques and methods? While all software projects have to be professionally managed and developed, different techniques are appropriate for different types of system. For example, games should always be developed using a series of prototypes whereas safety critical control systems require a complete and analyzable specification to be developed. You can’t, therefore, say that one method is better than another. What differences has the web made to software engineering? The web has led to the availability of software services and the possibility of developing highly distributed service- based systems. Web-based systems development has led to important advances in programming languages and software reuse. Chapter 1 Introduction 27
28
Essential attributes of good software Chapter 1 Introduction 28 Product characteristicDescription MaintainabilitySoftware should be written in such a way so that it can evolve to meet the changing needs of customers. This is a critical attribute because software change is an inevitable requirement of a changing business environment. Dependability and security Software dependability includes a range of characteristics including reliability, security and safety. Dependable software should not cause physical or economic damage in the event of system failure. Malicious users should not be able to access or damage the system. EfficiencySoftware should not make wasteful use of system resources such as memory and processor cycles. Efficiency therefore includes responsiveness, processing time, memory utilisation, etc. AcceptabilitySoftware must be acceptable to the type of users for which it is designed. This means that it must be understandable, usable and compatible with other systems that they use.
29
1-29 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” My View: “The steps a particular group follows to develop software”
30
Software process activities Software specification, where customers and engineers define the software that is to be produced and the constraints on its operation. Software development, where the software is designed and programmed. Software validation, where the software is checked to ensure that it is what the customer requires. Software evolution, where the software is modified to reflect changing customer and market requirements. Chapter 1 Introduction 30
31
Application types Stand-alone applications These are application systems that run on a local computer, such as a PC. They include all necessary functionality and do not need to be connected to a network. Interactive transaction-based applications Applications that execute on a remote computer and are accessed by users from their own PCs or terminals. These include web applications such as e-commerce applications. Embedded control systems These are software control systems that control and manage hardware devices. Numerically, there are probably more embedded systems than any other type of system. Chapter 1 Introduction 31
32
Application types Batch processing systems These are business systems that are designed to process data in large batches. They process large numbers of individual inputs to create corresponding outputs. Entertainment systems These are systems that are primarily for personal use and which are intended to entertain the user. Systems for modelling and simulation These are systems that are developed by scientists and engineers to model physical processes or situations, which include many, separate, interacting objects. Chapter 1 Introduction 32
33
Application types Data collection systems These are systems that collect data from their environment using a set of sensors and send that data to other systems for processing. Systems of systems These are systems that are composed of a number of other software systems. Chapter 1 Introduction 33
34
Software engineering and the web The Web is now a platform for running application and organizations are increasingly developing web-based systems rather than local systems. Web services (discussed in Chapter 19) allow application functionality to be accessed over the web. Cloud computing is an approach to the provision of computer services where applications run remotely on the ‘cloud’. Users do not buy software but pay according to use. Chapter 1 Introduction 34
35
Web-based software engineering Web-based systems are complex distributed systems but the fundamental principles of software engineering discussed previously are as applicable to them as they are to any other types of system. The fundamental ideas of software engineering, discussed in the previous section, apply to web- based software in the same way that they apply to other types of software system. Chapter 1 Introduction 35
36
36 Hardware vs. Software HardwareSoftware Manufactured Wears out Built using components Relatively simple Developed/ Engineered Deteriorates Custom built Complex Software Engineering - 2011
37
37 Manufacturing vs. Development Once a hardware product has been manufactured, it is difficult or impossible to modify. In contrast, software products are routinely modified and upgraded. In hardware, hiring more people allows you to accomplish more work, but the same does not necessarily hold true in software engineering. Unlike hardware, software costs are concentrated in design rather than production. Software Engineering - 2011
38
38 Software Myths If we get behind schedule, we can add more programmers and catch up. A general statement about objectives is sufficient to begin building programs. Change in project requirements can be easily accommodated because software is flexible. Software Engineering - 2011
39
39 Software Myths Once we write a working program, we ’ re done. Until I get the program running, I have no way of assessing its quality. The only deliverable work product for a successful project is the working program. Software engineering will make us create too much documentation and will slow us down. Software Engineering - 2011
40
40 Customer Myths “ A general statement of objectives is sufficient to begin writing programs - we can fill in the details later …” “ Project requirements continually change but this change can easily be accommodated because software is flexible …” Software Engineering - 2011
41
Assignments Write down brief description of few software applications that are being used at various organizations in Pakistan (Deadline – 12 th Feb) Read Chapter 1 and be prepare for quiz Presentations: Chapter 1 1.2 Professional and Ethical Responsibility of a SE and Q1.10 41 Software Engineering - 2011
42
Questions? 42 Software Engineering - 2011
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.