Module 1 Introduction to Software Engineering Badariah Solemon 2010 CSEB233 Fundamentals of Software Engineering.

Slides:



Advertisements
Similar presentations
Adaptive Processes Introduction to Software Engineering Adaptive Processes.
Advertisements

Ch.1 Introduction to Software Engineering The Evolution 1.1 The Evolving Role of Software 1/15 In the early days: User Computer Software = Place a sequence.
Lecture 2 1 Introduction to Software Engineering.
May 2, May 2, 2015May 2, 2015May 2, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa, CA.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
1 SWE Introduction to Software Engineering Lecture 3 Introduction to Software Engineering.
CS487 Software Engineering Omar Aldawud
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 5 Software Engineering Practice
CSEB233: Fundamentals of Software Engineering Introduction to Software & Software Engineering.
1 Software Engineering Muhammad Fahad Khan Software Engineering Muhammad Fahad Khan University Of Engineering.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6/e.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Supplementary Slides for Software Engineering: A Practitioner's Approach, 6/e Part 1 Supplementary Slides for Software Engineering: A Practitioner's.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter : Introduction to Software Engineering Ref. book : Software Engineering by Roger Pressman.
1 Software Engineering: A Practitioner's Approach R.S. Pressman Textbook.
SOFTWARE ENGINEERING MCS-2 LECTURE # 1. COMPULSORY READING MATERIAL  Software Engineering (6 th edition) by IAN Sommerville  Software Engineering; A.
Chapter 1 Software and Software Engineering. A Quick Quiz 1. What percentage of large projects have excess schedule pressure? 25% 50% 75% 100% 2. What.
CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump.
1 Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Design Issues Practice: A generic View Design Principles.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
Chapter 1 소프트웨어의 본질 The Nature of Software 임현승 강원대학교
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Coming up: Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 1 Software and Software Engineering Discussion of the Software Product.
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering.
1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Amit Singh Introduction to Software Engineering. What is Software? The product that software professionals build and then support over the long term.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
Software Engineering Introduction.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
PI2134 Software Engineering IT Telkom.  Software definition  Characteristic of software  Software myths  Software Engineering definition  Generic.
CS 281 Intro to Software Engineering Lecture 02 Software Engineering (1)
CS 281 Intro to Software Engineering Lecture 01 Introduction to the Course The Nature of Software.
Part 1 Introduction to Software Engineering 1 copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 1 Introduction to Software Engineering.
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 7th edition by Roger S. Pressman.
Chapter 1 The Nature of Software
RPL Team Program Studi Teknik Informatika
Chapter 2 Software Engineering
Software What Is Software?
Chapter 1 The Nature of Software
Chapter 1 The Nature of Software
Software Engineering B.E IT Sem-VII
Software Myths Deep Mann.
Chapter : Introduction to Software Engineering
Chapter 2 Software Engineering
Chapter 1 Software & Software Engineering
For University Use Only
Chapter 1 Software & Software Engineering
Chapter 1 Software & Software Engineering
For University Use Only
What is Software? Software is: (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures.
Software and Software Engineering
Lecture 1 & 2 Software Engineering Tutor: Dr. Nadeem Ahmad Ch.
Chapter 1 Software & Software Engineering
Chapter 1 Software & Software Engineering
Chapter 2 Software Engineering
Presentation transcript:

Module 1 Introduction to Software Engineering Badariah Solemon 2010 CSEB233 Fundamentals of Software Engineering

Objectives To define SE-related terminologies: ‘software’, ‘software engineering’, etc. To explain several software application domain. To describe the four Polya’s essence of SE practices. To explain the seven Hooker’s SE principles. To describe several software myths. Badariah Solemon 2010

What is ‘software’? Software is: – (1) instructions (computer programs) that when executed provide desired features, function, and performance; – (2) data structures that enable the programs to adequately manipulate information; and – (3) documentation that describes the operation and use of the programs. Badariah Solemon 2010

Example Software Badariah Solemon 2010

Software … Is developed or engineered, it is not manufactured in the classical sense. – How things are manufactured? – How software are developed or engineered? Software doesn't "wear out" but it deteriorates because of errors do occur in software due to errors in requirements, design, construction or through out the development process. Most software continues to be custom-built, although the industry is moving toward component-based construction. Badariah Solemon 2010

Wear vs. Deterioration Badariah Solemon 2010

Software Application Domain  System software  Application software  Engineering/scientific software  Embedded software  Product-line software  Web applications (WebApps)  AI software Badariah Solemon 2010

Software Application Domain Matrix DomainCharacteristicExample Software System Software Generally, programs written to service other programs Heavy interaction with computer hardware Heavy usage by multiple users Concurrent operation that requires scheduling Resource sharing and sophisticated process management Complex data structures Multiple external interfaces OS – MS Windows, Linux Ubuntu Drivers – printer driver Networking software - wireless networking software Telecommunication software – messaging system such as sms, mms Compilers – Borland C++, Turbo C Application Software Point-of-sale (POS) Badariah Solemon 2010

Software Application Domain Matrix (cnt’d) DomainCharacteristicExample Software Engineering/Scientific Software Flight simulator Embedded Software Software to control robots’ movement Production-line Software Ms Word WebApps Uniten Online Application System AI Software Expert system – Diagnostic Medical expert system Badariah Solemon 2010

New Software Domain  Open world computing—pervasive, distributed computing  Ubiquitous computing—wireless networks  Netsourcing—the Web as a computing engine  Open source—”free” source code open to the computing community (a blessing, but also a potential curse!)  Data mining  Grid computing  Cognitive machines  Software for nanotechnologies Badariah Solemon 2010

The realities..  software must be adapted to meet the needs of new computing environments or technology.  software must be enhanced to implement new business requirements.  software must be extended to make it interoperable with other more modern systems or databases.  software must be re-architected to make it viable within a network environment. Badariah Solemon 2010

What is ‘Software Engineering’? IEEE: – (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. – (2) The study of approaches as in (1). Badariah Solemon 2010

SE realities … SE is a join effort should be made to understand the problem before a software solution is developed. Design, which is a crucial activity. Software should exhibit high quality. Software should be maintainable. Badariah Solemon 2010

Layers in SE a “quality” focus process model methods tools Badariah Solemon 2010

Layer: Process Model Software process is a collection of activities, actions, and tasks that are performed to develop or maintain a software product. Framework activities: – generic activities that are applicable to all software projects, regardless of their size or complexity. Umbrella activities: – complementary activities applied throughout a software project and help manage and control progress, quality, change, and risk. process model Badariah Solemon 2010

Essential SE Practices Polya suggests: 1.Understand the problem (communication and modeling). 2.Plan a solution (planning and design). 3.Carry out the plan (construction and deployment). 4.Examine the result for accuracy (testing and quality assurance). Badariah Solemon 2010

Understand the problem Who has a stake in the solution to the problem? That is, who are the stakeholders? What are the unknowns? What data, functions, and features are required to properly solve the problem? Can the problem be compartmentalized? Is it possible to represent smaller problems that may be easier to understand? Can the problem be represented graphically? Can an analysis model be created? Badariah Solemon 2010

Plan a solution Have you seen similar problems before? Are there patterns that are recognizable in a potential solution? Is there existing software that implements the data, functions, and features that are required? Has a similar problem been solved? If so, are elements of the solution reusable? Can subproblems be defined? If so, are solutions readily apparent for the subproblems? Can you represent a solution in a manner that leads to effective implementation? Can a design model be created? Badariah Solemon 2010

Carry out the plan Does the solution conform to the plan? Is source code traceable to the design model? Is each component part of the solution provably correct? Has the design and code been reviewed, or better, have correctness proofs been applied to algorithm? Badariah Solemon 2010

Examine the result for accuracy Is it possible to test each component part of the solution? Has a reasonable testing strategy been implemented? Does the solution produce results that conform to the data, functions, and features that are required? Has the software been validated against all stakeholder requirements? Badariah Solemon 2010

Hooker’s General SE Principles 1.The Reason It All Exists 2.KISS (Keep It Simple, Stupid!) 3.Maintain the Vision 4.What You Produce, Others Will Consume 5.Be Open to the Future 6.Plan Ahead for Reuse 7.Think! Badariah Solemon 2010

1.The Reason It All Exists software exists to provide value to its users and all decision should be made with this in mind. Badariah Solemon 2010

2.KISS There are many factors to consider in any design effort. Thus, all software design should be as simple as possible but not simpler to ease understanding and maintenance of the software/system. Badariah Solemon 2010

3.Maintain the Vision because a clear vision is essential to the success of a software project. Compromising the architectural vision of a software systems weakens and break even well- designed systems. Badariah Solemon 2010

4.What You Produce, Others Will Consume Consume - (use, maintain, document or depend on) So, always specify, design, and implement knowing others will have to understand what you are doing. Badariah Solemon 2010

5.Be Open to the Future True “industrial-strength” software systems must endure long lifetime. Hence, design the software systems: – to solve the general problem (not just the specific one), – to be ready to adapt to changes (in hardware, computing platform etc), and – to be reused. Badariah Solemon 2010

6.Plan Ahead for Reuse because reuse reduces the cost and increases the value of the reused components and the systems into which they are incorporated. Badariah Solemon 2010

7.Think Because when you think about something (placing clear, complete thought before action), you are more likely to do it right (more importantly, the first time). Badariah Solemon 2010

Software Myths Software myths – erroneous beliefs about software and the process that is used to build it. Misleading attitudes that have caused serious problems for managers and practitioners. Classifications of software myths: – Management myths – Customer myths – Practitioner myths Badariah Solemon 2010

Management Myth Myth: We already have a book that’s full of standards and procedures for building software. Won’t that provide my people with everything they need to know? Reality: – The book of standards may exist, but is it used? Are practitioners’ aware of its existence? Does it reflect modern SE practices? Is it complete? Is it adaptable? Badariah Solemon 2010

Customer Myth Myth: Software requirements continually change, but change can be easily accommodated because software is flexible. Reality: – The impact of change varies with the time at which it is introduced. The cost of impact of changes in early stage of software project is relative small. However, changes introduced at a later development stage may requires a lot of resources and major design modification. Badariah Solemon 2010

Practitioner Myth Myth: “Once we write the program and get it work, our job is done.” Reality: – Some once said the “the sooner you begin ‘writing code’, the longer it’ll take you to get done.” Badariah Solemon 2010

Summary You have learned about: – Definitions of software and software engineering. – Software deteriorates but never wear out. – Several software application domain – system software, engineering/scientific software, AI software, embedded software, etc. – The Polya’s essence of SE practices – understand the problem, plan a solution, execute the plan and examine the result for accuracy. – SE principles - The Reason It All Exists; KISS (Keep It Simple, Stupid!); Maintain the Vision; What You Produce, Others Will Consume ; Be Open to the Future; Plan Ahead for Reuse; Think! – Software myths have caused serious problems for the software industry. Badariah Solemon 2010

References and credit: Contents in the slides are adopted from the book and the slides that accompanied the book by R.S. Pressman, Software Engineering: A Practitioner’s Approach, 7th. Edition, McGraw Hill, Badariah Solemon 2010