Presentation is loading. Please wait.

Presentation is loading. Please wait.

Alex Jacobson Presents An Introduction To Software Engineering.

Similar presentations


Presentation on theme: "Alex Jacobson Presents An Introduction To Software Engineering."— Presentation transcript:

1 Alex Jacobson Presents An Introduction To Software Engineering

2 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.

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

4 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

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

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

7 Software Today

8 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?

9 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”

10 Solving Problems Analysis

11 Solving Problems Synthesis

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

13 Who's All Involved In This?

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

15 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

16 Systems Approach

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

18 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

19 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

20 How Do We Know We're Doing It Right?

21 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?

22 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)

23 How Do We Know We're Doing It Right?

24 ISO 9000

25 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

26 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

27 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

28 References http://www.cs.cmu.edu/~Compose/SEprincipl es-pub-rev2.pdf http://l3d.cs.colorado.edu/~gerhard/papers/is fst2001.pdf http://arstechnica.com/information- technology/2014/08/how-microsoft-dragged- its-development-practices-into-the-21st- century/ http://www.cse.msu.edu/~cse435/Lectures/2 014-Lectures/Notes/Lecture2-PA-chapter01- notes.pdf https://www.cs.colorado.edu/~kena/classes/5 828/s08/_Media/02-introse.pdf


Download ppt "Alex Jacobson Presents An Introduction To Software Engineering."

Similar presentations


Ads by Google