Presentation is loading. Please wait.

Presentation is loading. Please wait.

INTRODUCTION -SOFTWARE ENGINEERING MUHAMMAD RIZWAN Spring 2012.

Similar presentations


Presentation on theme: "INTRODUCTION -SOFTWARE ENGINEERING MUHAMMAD RIZWAN Spring 2012."— Presentation transcript:

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


Download ppt "INTRODUCTION -SOFTWARE ENGINEERING MUHAMMAD RIZWAN Spring 2012."

Similar presentations


Ads by Google