Lecture 1: Software Engineering: Introduction

Slides:



Advertisements
Similar presentations
Requirements Engineering Processes – 2
Advertisements

Adaptive Processes Introduction to Software Engineering Adaptive Processes.
Analysis of Computer Algorithms
Chapter 1: The Database Environment
Requirements Engineering Process
By Rick Clements Software Testing 101 By Rick Clements
Objectives To introduce software project management and to describe its distinctive characteristics To discuss project planning and the planning process.
Modern Systems Analyst and as a Project Manager
Making the System Operational
1 Implementing Internet Web Sites in Counseling and Career Development James P. Sampson, Jr. Florida State University Copyright 2003 by James P. Sampson,
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.
Week 2 The Object-Oriented Approach to Requirements
Configuration management
Software change management
Software Processes.
Lecture 3: Software Process Models Dr Valentina Plekhanova University of Sunderland, UK
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software processes 2.
Lecture 8: Testing, Verification and Validation
Lecture 6: Software Design (Part I)
Lecture 7: Software Design (Part II)
Software Tools Lecture 10: Software Tools Dr Valentina Plekhanova University of Sunderland, UK.
Lecture 5: Requirements Engineering
Lecture 2 1 Introduction to Software Engineering.
Global Analysis and Distributed Systems Software Architecture Lecture # 5-6.
Requirements Analysis 1. 1 Introduction b501.ppt © Copyright De Montfort University 2000 All Rights Reserved INFO2005 Requirements Analysis Introduction.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 1 Software Engineering Software Engineering.
Copyright © 2003 by Prentice Hall Computers: Tools for an Information Age Chapter 15 Programming and Languages: Telling the Computer What to Do.
Database Administration
1 SWE Introduction to Software Engineering Lecture 3 Introduction to Software Engineering.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Engineering II
SWE Introduction to Software Engineering
Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
 Software Software  Program vs Software Products Program vs Software Products  Software Characteristics Software Characteristics  Software Crisis.
1 Software Engineering CEN5035 copyright © 1996, 2001 R.S. Pressman & Associates, Inc.
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
CSI315 Web Applications and Technology Overview of Systems Development (342)
Introduction to Software Engineering. What is Software? “ Software is a set of instructions to acquire inputs and to manipulate them to produce the desired.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Lecture 1 Introduction to Software Engineering
Lecture 1Software Engineering1 (Trimester I Session 2002/2003) Lecturer / Tutor Name : Mr. R. Logeswaran
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,
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Chapter 1 The Product. 2 Product  What is it?  Who does it?  Why is it important?  How to ensure it be done right?
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways [1]: ◦ Project running over-time. ◦ Project running over-budget.
1M.Sc(I.T.) VNSGU, Surat. Software is instructions (computer programs) that when executed provide desired function and performance, data structures that.
Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
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.
PI2134 Software Engineering IT Telkom.  Software definition  Characteristic of software  Software myths  Software Engineering definition  Generic.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Rekayasa Perangkat Lunak Kuliah 2. Outline of this presentation Attributes of Good Software Why Software Engineering ? What is Software Product ? Software.
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.
Software and Software Engineering By bscshelp.com software engineering 1.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
Advanced Software Engineering Dr. Cheng
Software What Is Software?
Software Engineering B.E IT Sem-VII
Software Engineering (CSE 314)
Overview: Software and Software Engineering
CS310 Software Engineering Lecturer Dr.Doaa Sami
What is Software? Software is: (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures.
Introduction Software Engineering.
Presentation transcript:

Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK http://www.cet.sunderland.ac.uk/~cs0vpl/SE-Com185.htm

Background and Definitions Lecture 1 Background and Definitions What is Software?  Could say software is instructions (programs) to provide desired function and performance data structures that enable the program to manipulate information documents that describe the operation and use of the programs. Lecture 1 Valentina Plekhanova

Background and Definitions Can also look at software characteristics and application domains to get a better idea of what software is   Software is more than code! Lecture 1 Valentina Plekhanova

Background and Definitions Lecture 1 Background and Definitions Software: any computer instructions written to be executed on hardware, including operating systems, utility programs, and application programs. [Academic Press Dictionary of Science and Technology] Lecture 1 Valentina Plekhanova

Software Applications [Pressman, R.S., 2000] The characteristics of software vary with the application domain. Some examples: Real-time Software Business Software Engineering and Scientific Software Embedded Software Personal Computer (consumer) software AI Software ….. Lecture 1 Valentina Plekhanova

Software Applications The methods, techniques and tools for software development can vary considerably between application domains. Lecture 1 Valentina Plekhanova

What is … ? [Sommerville] What is Engineering? Engineers try to discover the problems and find/develop & apply appropriate theories, methods, and tools to the solutions to these problems. What is System Engineering? (Computer-based) System engineering is concerned with hardware development and evolution of complex systems; policy, process design and system deployment as well as software engineering … What is Software Engineering? … Lecture 1 Valentina Plekhanova

An Engineering Approach considers the following [Pressman, R. S What is the problem to be solved? What are the characteristics of the entity that are used to solve the problem? How will the entity (and solution) be realised? What approach will be used to uncover errors in the design and construction of the entity? How will the entity be maintained - corrections, adaptations and enhancements requested by users of the entity? Lecture 1 Valentina Plekhanova

The Software Crisis The development of software engineering tools and methods began in the late 1960’s, largely in response to what many authors have termed “the software crisis”. The "software crisis" refers to the inability of developers to deliver reliable software, within cost and schedule. Lecture 1 Valentina Plekhanova

The Software Crisis This crisis arose from the rapid increase in the size and complexity of computer applications. Systems became much too large and complicated to be performed by one individual or two people; instead, large project teams were required. Lecture 1 Valentina Plekhanova

Software Characteristics Software is ‘logical’ rather then physical (though there are physical representations of the software). Software is developed or engineered, it is not manufactured in the classical sense. Nearly all the software costs are in the engineering, rather than manufacture. Classical project management for engineering projects do not map directly to software projects. Lecture 1 Valentina Plekhanova

Software Characteristics Lack of visibility of software. Complexity of software projects not linear with size - projects do not scale up well as larger projects much more complex. Software subject to frequent change to requirements. Lack of good spatial representations for software. Most software is custom built, rather than being assembled from standard components. Lecture 1 Valentina Plekhanova

Software Characteristics Ideal does not occur because: Software is always subject to changes in requirements or the operating environment. Fixing errors in software is not the same as fixing errors in hardware. Don’t just replace component, but change the system. This can introduce new errors. Lecture 1 Valentina Plekhanova

Software Myths [Pressman, R.S., 2000] Myths or attitudes to software development include: Management Myths, e.g. Have standards and procedures for building software - what more do we need? My programmers have state of the art s/w development tools - we buy them the newest computers.    Lecture 1 Valentina Plekhanova

Software Myths [Pressman, R.S., 2000] If we get behind schedule, we can add more programmers and catch up. A general statement of objectives is sufficient to begin writing programs - we can fill in the details later. Lecture 1 Valentina Plekhanova

Software Myths [Pressman, R.S., 2000] Customer Myths, e.g. Project requirements continually change, but change can be easily accommodated because software is flexible. Practitioner's Myths, e.g. Once we write the program and get it to work, our job is done. Until I get the program running, I really have no way of assessing its quality. The only delivery for a successful project is the working program. Lecture 1 Valentina Plekhanova

Software Engineering: Definitions There are a large number of ‘definitions’ of software engineering: The establishment and use of sound engineering principles in order to obtain, economically, software that is reliable and works efficiently on real machines [Bauer, 1972] Lecture 1 Valentina Plekhanova

Software Engineering: Definitions The process of creating software systems (using) techniques that reduce high software cost and complexity while increasing reliability and modifiability [Ramamoorthy and Siyan, 1983] Lecture 1 Valentina Plekhanova

Software Engineering: Definitions The technological and managerial discipline concerned with systematic production and maintenance of software products that are developed on time and within cost estimates [Fairley, 1984] Lecture 1 Valentina Plekhanova

Software Engineering: Definitions Software engineering: the application of the techniques and disciplines of engineering to the development of high-quality, large-scale software systems; includes controlled design, structured program methodology, productivity aids, and project management tools. [Academic Press Dictionary of Science and Technology] Lecture 1 Valentina Plekhanova

Software Engineering: Definitions “We consider software engineering as the application of mathematical techniques and rigorous engineering methods to software development. We also need to support synthesis of formal methods and heuristic approaches to engineering tasks, which ensures managerial support for the evaluation, comparison, analysis, evolution and improvement of resources. We need to use heuristic approaches where heuristics can be defined as reasonable/effective and supportive tool for decision making.” [Plekhanova, 1997] Lecture 1 Valentina Plekhanova

Software Engineering: Definitions Software Engineering: A systematic approach to the analysis, design, implementation and maintenance of software. It usually involves the use of CASE tools. There are various models of the software life-cycle, and many methodologies for the different phases. http://sting.web.cern.ch/sting/glossary.html Lecture 1 Valentina Plekhanova

Keywords Reason: reliability, efficiency, high-quality, software/systems, reduce cost/time, increase productivity. Lecture 1 Valentina Plekhanova

Keywords Application of methods/techniques/tools: the techniques and disciplines of engineering; mathematical techniques and rigorous engineering methods; synthesis/integration of formal methods and heuristic approaches to engineering tasks, CASE tools Lecture 1 Valentina Plekhanova

Common factors to these definitions include Software Engineering is concerned with software systems built by teams rather than individuals. Engineering principles are used in the software development process. Software Engineering involves both technical and non-technical considerations. Lecture 1 Valentina Plekhanova

Generic View of Software Engineering Engineering is the analysis, design, construction, verification, and management of technical (and social) entities.   Lecture 1 Valentina Plekhanova

Three generic ‘phases’[Pressman, R.S., 2000]: Definition phase - focus on ‘what’: Systems engineering; Project planning/scheduling; Requirements analysis. Lecture 1 Valentina Plekhanova

Three generic ‘phases’: Development phase - focus on ‘how’: Software Design; Implementation (Code generation); Testing. Lecture 1 Valentina Plekhanova

Three generic ‘phases’: Maintenance phase - focus on change & modification: Correction; Adaptation; Enhancement; Prevention. Lecture 1 Valentina Plekhanova

Week 4: 24.02.03- 28.02.03 Project Control Session Tutorial Time: 10 minutes for each Team Project Team will present project file: Schedule, any project documentation. Students will describe where they are in the project and any problems encountered. During the discussion reviewers will ask to see evidence of deliverables for any tasks that are complete to determine whether they have in fact been done. Lecture 1 Valentina Plekhanova