Alex Jacobson Presents An Introduction To Software Engineering.

Slides:



Advertisements
Similar presentations
h Protection from cyber attacks is achieved by acting on several levels: first, at the physical and material, placing the server in a place as safe as.
Advertisements

EEE 243B Applied Computer Programming Software engineering Life cycle and when to test.
INTRODUCTION TO MODELING
Software Development Methodologies Damian Gordon.
Chapter 2 – Software Processes
S.T.A.I.R.. General problem solving strategy that can be applied to a range problems.
Computer-Aided Design Chapter 7. Computer-Aided Design (CAD) Use of computer systems to assist in the creation, modification, analysis, and optimization.
Chapter 1 4th Edition What is Software Engineering Shari L. Pfleeger
1 Software Development Prepared By Joseph Leung. 2Agenda 1.Discuss the need for quality software in business systems, industrial process control systems,
IS Terms and Introductory Concepts. Contemplative Questions What is an information system? What is an information system? Why do we care about the difference.
The Process of Interaction Design. What is Interaction Design? It is a process: — a goal-directed problem solving activity informed by intended use, target.
Software Quality Assurance. CS351 - Software Engineering (AY2004)2 Software engineering processes Systems vs. Software –Terms often used interchangeably.
Neural Networks (NN) Ahmad Rawashdieh Sa’ad Haddad.
IS Terms and Introductory Concepts. Contemplative Questions What is an information system? What is an information system? What is data, information and.
McGraw-Hill/Irwin ©2005 The McGraw-Hill Companies, All rights reserved ©2005 The McGraw-Hill Companies, All rights reserved McGraw-Hill/Irwin.
Course Instructor: Aisha Azeem
Chapter 12: Simulation and Modeling Invitation to Computer Science, Java Version, Third Edition.
Philosophy of ICT and Islam Lecture 1: Philosophy of Science and Computing.
Structured Vs. Object Oriented Analysis and Design SAD Vs. OOAD
ECNG3023: Introduction to Software Engineering Kevon Andrews Rm. 329 Ph: x3156 Open Hours:
SE: CHAPTER 1 Why Software Engineering ?
MADALINA CROITORU Software Engineering week 4 Madalina Croitoru IUT Montpellier.
Chapter 12: Simulation and Modeling
Chapter 9: Coupling & Cohesion Omar Meqdadi SE 273 Lecture 9 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Profile and a quick introduction Software Engineering: ) هندسة البرمجيات (in Arabic: is the branch of computer science Designed to develop a set rules.
The process of interaction design. Overview What is involved in Interaction Design? –Importance of involving users –Degrees of user involvement –What.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
Overview of Computing. Computer Science What is computer science? The systematic study of computing systems and computation. Contains theories for understanding.
Chapter 1 What is Software Engineering Shari L. Pfleeger Joanne M. Atlee 4 th Edition.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Vladimir Misic: Design111:43:34 AM Software design.
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
CS 4310: Software Engineering Lecture 4 System Modeling The Analysis Stage.
DEBUGGING. BUG A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected.
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development 3.
 What is Modeling What is Modeling  Why do we Model Why do we Model  Models in OMT Models in OMT  Principles of Modeling Principles of Modeling 
What is Software Engineering? The discipline of designing, creating, and maintaining software by applying technologies and practices from computer science,
Today’s Agenda  Reminder: HW #1 Due next class  Quick Review  Input Space Partitioning Software Testing and Maintenance 1.
1 EE29B Feisal Mohammed EE29B: Introduction to Software Engineering Feisal Mohammed Ph: x3156.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Introduction to Operations Research. MATH Mathematical Modeling 2 Introduction to Operations Research Operations research/management science –Winston:
Human Computer Interaction INSY 3020/7976 ENH 670.
Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution Structured programming Product SW.
CS223: Software Engineering
1 ANDRES PICO USE SLIDESHOW OR PRESS F5 FOR BETTER EXPERIENCE! GIFS USED!
Lecture 3 : Hard Systems Modelling UFCE8V-20-3 Information Systems Development SHAPE Hong Kong 2010/11.
Chapter 9: Coupling & Cohesion Omar Meqdadi SE 273 Lecture 9 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Science and Engineering Practices K–2 Condensed Practices3–5 Condensed Practices6–8 Condensed Practices9–12 Condensed Practices Developing and Using Models.
Software. Introduction n A computer can’t do anything without a program of instructions. n A program is a set of instructions a computer carries out.
Chapter 1 SOFTWARE ENGINEERING What is Software Engineering.
IMPROVING THE HUMAN TECHNOLOGY INTERFACE NURSING INFORMATICS CHAPTER 4 1.
Chapter 5 – System Modeling Lecture 1 1Chapter 5 System modeling.
Modelling & Simulation of Semiconductor Devices Lecture 1 & 2 Introduction to Modelling & Simulation.
Week#3 Software Quality Engineering.
Chapter 12: Simulation and Modeling
Information Systems in Organizations 2
ICS 3UI - Introduction to Computer Science
Invitation to Computer Science 5th Edition
Introduction To System Analysis and Design PART 2
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Algorithms.
TOPIC: Computer-Aided Design
Chapter 4 System Modeling.
Chapter 6: Architectural Design
Software Design & Production Methodologies
Presentation transcript:

Alex Jacobson Presents An Introduction To Software Engineering

What is Software Engineering? Let's distinguish it from Computer Science:  Computer Science: the study of how to solve complex problems  Software Engineering: the branch of computer science that creates practical and cost-effective solutions to computing and information processing problems, preferentially by applying scientific knowledge.

What is Software Engineering? This guy discovered an O(lg n) sorting algorithm This guy is trying to make someone rich with that algorithm

What is Software Engineering? But beyond the obvious distinctions, people who are software engineers:  Design complex systems  Test these systems  Spill gallons of tears every day

Software Today In the past, software was confined to proprietors  Fewer updates  Longer time spent on specific stages of development  Embodied by Waterfall methodology

Software Today Today, software is updated more rapidly, and there's more collaboration from users and developers  Agile Methodology reflects this

Software Today

So How Does It Happen? It all starts when someone with lots of money/capital has a problem they need you to solve. How do you go about solving this problem?

Solving Problems Development boils down to analysis and synthesis  Analysis: “decompose a large problem into smaller, understandable pieces” Requires the use of abstraction  Synthesis: “build (compose) a software from smaller building blocks”

Solving Problems Analysis

Solving Problems Synthesis

Who's All Involved In This? The Customer The Developer The User

Who's All Involved In This?

Systems Approach How exactly do Software Engineers “synthesize” their solutions? One way is to use the Systems Approach

Systems Approach Activities and Objects  An activity is an event initiated by a trigger  An object is an element involved in an activity Relationships and System Boundaries  A relationship defines the interaction among entities and activities  System boundaries determine the origin of input and destinations of the output

Systems Approach

It is possible for systems to rest within other systems These systems interact with one another This is called a layered system

How Do We Know We're Doing It Right? The goal of software engineering is to produces high quality software. What does that even mean? We can consider “quality” in a few different contexts:  Quality of the product  Quality of the process  Quality of the product in the business environment

How Do We Know We're Doing It Right? The Quality of the Product  Users will be interested in how well the product functions, and how often it has problems  Developers care about the internal characteristics, such as how efficiently it works, and what kind of errors it generates  There are models out there, such as McCall's quality model, that helps us wrap our head around these issues

How Do We Know We're Doing It Right?

The Quality of the Process  A good quality engineering process is usually modeled in some way What steps are needed and in what order? Where in the process is effective for finding a particular kind of fault? How can you shape the process to find faults earlier? How can you shape the process to build fault tolerance into a system?

How Do We Know We're Doing It Right? The Quality of the Process  Examples of Software Process Models SEI’s Capability Maturity Model (CMM) ISO 9000 Software Process Improvement and Capability dEtermination (SPICE)

How Do We Know We're Doing It Right?

ISO 9000

What Happens When We Make Mistakes? Errors can happen, either on the part of the user or on the part of the developer  A fault: occurs when a human makes a mistake, called an error, in performing some software activities  A failure: is a departure from the system’s required behavior

What Happens When We Make Mistakes? This can be very serious depending on the context Safety-Critical System: “A system in which any failure or design error has the potential to lead to loss of life.”  Examples: Flight-Control Systems, Certain Medical Technology.  Therac-25: A computer-run radiation machine that killed and injured several cancer patients due to failures

So In Summary Software Engineering involves tackling problems more economically than computer scientists Software Engineering involves collaboration from non-engineers (users and customers) Good SE will be based on models like CMM and ISO Proper SE can be the difference between life and death in certain situations

References es-pub-rev2.pdf fst2001.pdf technology/2014/08/how-microsoft-dragged- its-development-practices-into-the-21st- century/ Lectures/Notes/Lecture2-PA-chapter01- notes.pdf 828/s08/_Media/02-introse.pdf