It is the fuel of modern life Business are run Government rule Scientists Industries Education However, building and maintaining software is hard and getting.

Slides:



Advertisements
Similar presentations
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 12, Software Life Cycle.
Advertisements

Systems Development Environment
Object-Oriented Analysis and Design LECTURE 3: REQUIREMENTS DISCIPLINE.
Object-Oriented Software Development CS 3331 Fall 2009.
Chapter 05: Evolutionary Requirements Definition : Requirements  “Requirements are capabilities and conditions to which the system, and more broadly.
Software Engineering 1. Software development – the grand view 2. Requirements engineering.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik Adapted from Budgen (2003) Chapters 1.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Testing and Quality Assurance
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.
Problem with Software Requirements are complex The client does not know the functional requirements in advance Requirements may be changing Technology.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 System and Software Engineering.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Karolina Muszyńska. Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to.
Chapter 4 – Requirements Engineering
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 Software Engineering The first lecture.
2-Oct-15 1 Introduction to Software Engineering Softwares Importance of SWE Basic SWE Concepts ICS Software Engineering.
Software engineering. What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software.
Software Requirements Engineering CSE 305 Lecture-2.
2Object-Oriented Analysis and Design with the Unified Process The Requirements Discipline in More Detail  Focus shifts from defining to realizing objectives.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Chapter 1: Introduction Omar Meqdadi SE 2730 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 11 Maintaining the System System evolution Legacy systems Software rejuvenation.
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.
Software Testing and Quality Assurance Software Quality Assurance 1.
1 Introduction to Software Engineering Lecture 1.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering 1.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
Chapter 4 Decision Support System & Artificial Intelligence.
Data Structures Using C++ 2E
An Introduction to Software Engineering (Chapter 1 from the textbook)
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
IS444: Modern tools for applications development Dr. Azeddine Chikh.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
Introduction to Software Engineering Syed Salman Ali B.E, MBA ( MIS, Mktg), PMP.
Chapter 2 – Software Processes Lecture 2 1Chapter 2 Software Processes.
Object-Oriented Software Engineering Chapter 1 Software and Software Engineering.
Requirements Analysis
Requirements Management with Use Cases Module 2: Introduction to RMUC Requirements Management with Use Cases Module 2: Introduction to RMUC.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
CIS 4251 / CIS 5930 SOFTWARE DEVELOPMENT Fall 1999 Sept. 1, 1999 Marge Holtsinger.
COP st Lecture August 29, 2005 COP 4009 Component-Based Software Engineering Fall 2005 Instructor: Masoud Sadjadi
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
CS 389 – Software Engineering Lecture 2 – Part 2 Chapter 2 – Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
Software Engineering – Fall 2015 (CSC 4350/6350) TR. 5:30 pm – 7:15 pm Rao Casturi 09/01/2015
IST 311 – Object-Oriented Design & Software
Investigating System Requirements
INTRODUCTION The economies of ALL developed nations are dependent on software. More and more systems are software controlled Software engineering is concerned.
The Development Process of Web Applications
Object-Oriented Software Engineering Using UML, Patterns, and Java,
CEN 5011 Advanced Software Engineering
Chapter 2 – Software Processes
CS385T Software Engineering Dr.Doaa Sami
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Chapter 1: Software and Software Engineering
Chapter 1: Software and Software Engineering
Presentation transcript:

It is the fuel of modern life Business are run Government rule Scientists Industries Education However, building and maintaining software is hard and getting harder

The name “Software Engineering” was noticed in 1968 There is a problem in every software project: delivering the product on time, within budget, as the product owner’s expectations

Yes, normal engineers for buildings and bridges for example, have faced similar examples, risks, solutions. But we are not so lucky So what is the problem, really? Complexity Change

Inaccurate understanding of customer needs Inability to deal with changing requirements Modules that do not fit together Software that are hard to maintain/extend Poor Quality Testing….normally should cost 40% Unacceptable performance Technology change and team- member change over time in long period projects

It is an engineering discipline that is concerned with all aspects of software production

Good software should: Deliver the required functionality Efficient: does not waste voluble resources, response time Usable Dependable: reliable, secure, and safe. Maintainable Within budget and time

Software Engineers need to understand the environment in which the system has to operate They only need to know the application domain concepts relevant to the system They need to build a model of the application domain

Then they need to understand the system they want to build They need to build a model of the solution domain We will discuss modelling in more detail in chapter 2 using UML

Engineers search for solutions often by trial and error and with limited resources 1. Formulate the problem 2. Analyse the problem 3. Search for solutions 4. Decide on appropriate solution 5. Specify solution

Requirements elicitation Requirements analysis System Design Object design Implementation

It is not linear Avoid the mistakes in Water Fall process Risk-Based development IID UP RUP XP

Assumptions that developers make about a system change constantly Sometimes, new changes are triggered for solution domain To incorporate these new changes, we need to understand the context for each design decision made.

Participant: all persons involved in a project Role: set of responsibilities System: collection of interconnected parts Model: abstraction of the system Goto figure 1-1

Requirements specify a set of features that the system must have. A functional requirement is a specification of a function that the system must support, Nonfunctional requirement: is a constraint on the operation of the system that is not related directly to a function of the system.

The user must be able to purchase tickets The user must be able to access tariff information The user must be provided feedback in less than one second The colors used in the interface should be consistent with the company LOGO System should be easy to use since users could be of different ages

Other nonfunctional requirements may include: using specific hardware platform for the system, security requirements, how the system should deal with failures and faults, and how to provide backward compatibility with an old system that the client is unwilling to retire.

Notation: a graphical or textual set of rules for representing a model (UML) Method: a repeatable technique that specifies the steps involved in solving a specific problem (Sorting Algorithm) Methodology: a collection of methods for solving a specific set of problems.