What is Software Engineering? The discipline of designing, creating, and maintaining software by applying technologies and practices from computer science,

Slides:



Advertisements
Similar presentations
Object-Oriented Software Development CS 3331 Fall 2009.
Advertisements

OBP Research Oy for simpler creation of embedded systems.
Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.
Chapter 1 4th Edition What is Software Engineering Shari L. Pfleeger
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
7M822 Software Engineering Introduction 7 September 2010.
What is software engineering?
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Swami NatarajanJuly 14, 2015 RIT Software Engineering Reliability: Introduction.
The analysis steps. Problem Analysis Sub-problem 3 Sub-problem 2 Sub-problem nSub-problem 1.
Introduction to Software Testing
CSC230 Software Design (Engineering)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Lecture 3.
Chapter 9 – Software Evolution and Maintenance
ECNG3023: Introduction to Software Engineering Kevon Andrews Rm. 329 Ph: x3156 Open Hours:
SE: CHAPTER 1 Why Software Engineering ?
Chapter 9 Database Planning, Design, and Administration Sungchul Hong.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
1 Chapter 2 Socio-technical Systems (Computer-based System Engineering)
1. Topics to be discussed Introduction Objectives Testing Life Cycle Verification Vs Validation Testing Methodology Testing Levels 2.
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
CSE 303 – Software Design and Architecture
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department.
Chapter 1 What is Software Engineering Shari L. Pfleeger Joanne M. Atlee 4 th Edition.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Basic of Software Testing Presented by The Smartpath Information System An ISO 9001:2008 Certified Organization
TOTAL COST OF OWNERSHIP
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways [1]: ◦ Project running over-time. ◦ Project running over-budget.
About Quality Pre paired By: Muhammad Azhar. Scope What is Quality Quality Attributes Conclusion on software Quality Quality Concepts Quality Costs.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering 1.
SOFTWARE ENGINEERING1 Introduction. SOFTWARE ENGINEERING2 Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
1 EE29B Feisal Mohammed EE29B: Introduction to Software Engineering Feisal Mohammed Ph: x3156.
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
AvaTax ST The fastest, easiest, most accurate and affordable way to calculate and file sales and use taxes.
CSE 303 – Software Design and Architecture
IS444: Modern tools for applications development Dr. Azeddine Chikh.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Object-Oriented Software Engineering Chapter 1 Software and Software Engineering.
Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution Structured programming Product SW.
Chapter 4 Requirements Engineering (1/3) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
System A system is a set of elements and relationships which are different from relationships of the set or its elements to other elements or sets.
Chapter 1 SOFTWARE ENGINEERING What is Software Engineering.
Software Design and Development Development Methodoligies Computing Science.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
Introduction to Software Engineering
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software Requirements
Introduction SOFTWARE ENGINEERING.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software engineering Lecturer: Nareena.
Introduction to Software Testing
PPT1: Basics of software engineering
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Chapter 1: Software and Software Engineering
Presentation transcript:

What is Software Engineering? The discipline of designing, creating, and maintaining software by applying technologies and practices from computer science, project management, engineering, application domains and other fields. (Wikipedia)

Software Engineering Goal To produce solutions incorporating high-quality software.

Why we Need Software Engineering? Easy problems (like building a one- story house) may not required engineering approach, but large projects and difficult problems (like building a skyscraper) cannot be effectively solved without it.

Why we Need Software? 1. To boost productivity and reduce costs due to process automation. 2. To perform calculations that are unfeasible (if not impossible) to execute manually.

What’s in Our Way? 1.Bugs Human Error -> Fault -> Failure Safety-Critical Systems: 10 9 up hours 2.Complexity 3.Interdependence 4.Unpredictability 5.Uncontrollability

Process Automation 1.First there has to be a process that is worked out in ALL detail and IS efficient! 2.Then and only then we can find a way to automate the process with the help of computers and software. 3.Analyze first than synthesize (not the other way around).

Practical Considerations 1.The direct or indirect cost of executing the process manually must be greater than the cost of developing, maintaining and supporting the system automating the process! 2.Software generates revenue when sold, hence development and support costs must be lower than the sale price times number of copies sold.

Major Issues with Software 1.Bugs Human error may lead to software fault that may lead to system failure. 2.Support Users always make mistakes or do not know something. 3.Maintenance software bug fixes feature changes hardware (including communication) failures software conflicts incorrect data upgrades

Software Costs Money! Depending on the project the cost of software development can be only 10% of the total project cost. Maintenance and support could account for the lion share of all expenses. Return on Investment (ROI) is a dynamic measure.

What is Good Software? The answer depends on requirements: 1.Safety Critical Systems (e.g. medical, public transportation) 2.Fault Tolerant Systems (e.g. military, space, communications) 3.Available Systems (e.g. communications, embedded) 4.User-Friendly (e.g. vending, information kiosks) 5.Affordable (for mass market)

What is Quality Software? 1.Correct 2.Reliable 3.Efficient 4.Usable 5.Maintainable 6.Re-usable 7.Testable 8.Scalable 9.Portable 10.Interoperable 11.Simple 12.Expandable

What is Quality Process? Good (and simple!) process leads to good software Process modeling allows: Optimize / simplify the process Identify fault-prone locations Choose the easiest development process Develop ideas for fault-tolerant operation

Return on Investment (ROI) Software Quality: Up vs. Down time Customer View: Dollars spent vs. Dollars Saved Industry / Developer View: Effort saved rather than cost

Who is Involved?

Who is Involved in Development?

What is a System? System is an assemblage of entities/objects, real or abstract, comprising a whole with each and every component/element interacting or related to another one. Any object which has no relationship with any other element of the system is not a component of that system. A subsystem is then a set of elements which is a system itself and a part of the whole system. -- Wikipedia

Systems Approach

System Specifics Systems are always interrelated Environment may be uncontrollable System boundary needs to be defined Defining subsystems within your system is the first level of abstraction

System Design Considerations Selecting proper technology (not necessarily the newest or the “coolest”) –Finding developers for the selected technology Selecting right products and tools (do not use a cannon to kill a mosquito) –Getting support for the products used Staying within budget (compromises inevitable)

Software Architecture Modular Data-oriented Event-driven Object-oriented Service-based

Software Architecture

Prototyping Helps customer identify requirements Demonstrated feasibility of the design approach

Dynamic World Get used to change – it is the only thing constant. Time-to-market is important! Efficiency IS important: Efficiency=Power~Support Cost Upgrades Inevitable Technologies Change: Migration Inevitable

Exercise Think of a process or product that YOU think is important to automate or implement in software AND think of a way of doing it.