Chapter 1 Introduction to Software Engineering. Why Engineer Software? n Air traffic control case study –$2.3 Billion spent without any usable deliverable.

Slides:



Advertisements
Similar presentations
Computer ScienceSoftware Engineering Slide 1 Requirements/Projects l FAA story l Requirements – specify functionality, constraints, domain restrictions.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
25 February 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department.
CSCU 411 Software Engineering Chapter 2 Introduction to Software Engineering Management.
CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik Adapted from Budgen (2003) Chapters 1.
Chapter 15: System Modeling with UML
Introduction To System Analysis and Design
Object-Oriented Metrics. Characteristics of OO ● Localization ● Encapsulation ● Information hiding ● Inheritence ● Object abstraction.
Knowledge Acquisitioning. Definition The transfer and transformation of potential problem solving expertise from some knowledge source to a program.
1 / 26 CS 425/625 Software Engineering Software Requirements Based on Chapter 5 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed.,
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Effective Software Engineering Pedagogy By Evelyn Stiller and Cathie LeBlanc Plymouth State College.
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
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.
Course Technology Chapter 3: Project Integration Management.
Planning. SDLC Planning Analysis Design Implementation.
OBJECT ORIENTED PROGRAMMING IN C++ LECTURE
Chapter 9 – Software Evolution and Maintenance
Chapter 3 Object-Oriented Analysis of Library Management System(LMS)
Personal Chitra Chandavarkar Office: D5 Office Hours: T 4:30-5:30
CMPT 275 Software Engineering
1 CMPT 275 Software Engineering Introduction. Janice Regan, Important Topics  Why is Software Engineering Important?  What is Software Engineering?
Introduction To System Analysis and design
PROGRAMMING LANGUAGES The Study of Programming Languages.
Using UML to report results of project management for information systems projects Donna M. Gavin MMIS 621 Information Systems Project Management Assignment.
SA Capstone Requirements and Design Week 10 SYST Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso.
Copyright Course Technology 1999
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
SOFTWARE ENGINEERING BIT-8 APRIL, 16,2008 Introduction to UML.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Chapter 3 Object-Oriented Analysis. Requirements Analysis A requirement is a feature of the system Requirements analysis seeks to assess and specify the.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Introduction To System Analysis and Design
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.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Lecture 3 Uses Cases Topics UML Use Cases pop quiz Readings: Chapter 3 January 24, 2008 CSCE 492 Software Engineering.
CS 4310: Software Engineering Lecture 4 System Modeling The Analysis Stage.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
1 Introduction to Software Engineering Lecture 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Modeling system requirements. Purpose of Models Models help an analyst clarify and refine a design. Models help simplify the complexity of information.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
 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 
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
System Context and Domain Analysis Abbas Rasoolzadegan.
Chapter 3: Software Project Management Metrics
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
Chapter 2 Object-Oriented Paradigm Overview. Getting Acquainted with the Class Project Read the requirements specification carefully Make note of any.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Formal Methods in Software Engineering1 Today’s Agenda  Mailing list  Syllabus  Introduction.
Chapter 7 Lecture 1 Design and Implementation. Design and implementation Software design and implementation is the stage in the software engineering process.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
© NALO Solutions Limited NALO Solutions, presents the – Revenue Collector App Using Mobile Phones to gather Revenue SOFTWARE ENGINEERING.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
Unit 1 - Introducing Abstract Data Type (ADT) Part 1.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
 System Requirement Specification and System Planning.
Chapter 2 Object-Oriented Paradigm Overview
CompSci 280 S Introduction to Software Development
Software Engineering Lecture 4 System Modeling The Analysis Stage.
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Complexity Time: 2 Hours.
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
What Is Good Software(Program)?
Modern Systems Analysis and Design Third Edition
Presentation transcript:

Chapter 1 Introduction to Software Engineering

Why Engineer Software? n Air traffic control case study –$2.3 Billion spent without any usable deliverable n Enormous social cost of NOT engineering software n Too many large-scale software development failures for too many decades n Software development initiatives fail for many different reasons, most of which are addressed by good software engineering practices

Sources of Complexity in Software Development n Technical staff lacks expertise in the complex application domain n Difficulty in interpersonal communications n Ambiguity of natural language, used to express user needs n Difficulty of mentally grasping and coordinating the details of a large-scale development project

How Software Development Projects Fail n No functioning software results n The resulting software does not adequately address the need of the users n Software contains incorrect computations n The software is too difficult to use correctly n The system response time is too slow to be used without frustration

Why Inter-personal Communication is Difficult n Technical staff and end users have different background knowledge n Technical staff often do not possess the vocabulary used in the application domain n End users frequently do not understand how to effectively express their needs in terms that are clear to systems developers. n Ambiguity of natural language

Maintaining Software Systems n Maintenance is an inevitable aspect of software development n It allows software to evolve with an organization n Too often too many resources are directed to maintenance and away from new development n Software requires excessive maintenance efforts if it is poorly structured n It is better to invest in well-structured software up front than to invest excessively in maintenance later

Elements of a Software Development Paradigm n Conceptualization –What elements are instrumental in how the developers think about the software system? n Representation –Must convey what the software project is all about –Most effectively done with a software modeling notation n Implementation –Addresses how the source code is structured

A Brief History of Software Engineering Techniques n Structured Programming –No gotos n Functional Decomposition –Top-down organization of subprograms n Structured Analysis –Recognition that analyzing the problem statement has critical influence on the success of the overall project –Formal modeling of subprogram interaction with dataflow diagrams

More History of SE Techniques n Data-centered analysis –Uses techniques developed in structured analysis –Data modeling occurs using entity relationship diagrams before functional modeling n Object-oriented analysis –No longer segregates the modeling of functions and data –Objects aggregate data with functions that operate on the data

Sample Dataflow Diagram Check for overdue books Check-out books Read Patron record Change book status Read book record Write book record Patron ID True/false Patron ID Patron record or null Book ID, out Book ID Book record

Sample Entity Relationship Diagram Checks out Library Patron Address BookPublisher Requests 1:M Has-a

Principles of the Object- Oriented Paradigm n Abstraction n Modularity n Modeling n Inheritance n Encapsulation(covered in chapter2) n Polymorphism(covered in Chapter2) Shared by other paradigms

Abstraction n Expressing the software requirements in abstract terms, suppressing details so that a comprehensive portrayal can be made n The abstract representation must then be connected to more detailed expressions, so that no information is lost in modeling the system n This allows us to reason about the breadth of functionality of the developing system

Modularity n Breaking a complex software system into smaller modules allows one to reduce its overall complexity n Modules should aggregate some coherent aspect of the system n Modules should present a simple interface n Classes, functions, and abstract data types are examples of modules.

Abstract Data Type Example STACKSTACK POP() PUSH(item) ISEMPTY() Interface Accesses Implementation Option: Array Implementation Option: Linked list

Modeling n Modeling is the process of use a graphic notation to express properties of the software system n Models express how the system is built out of modules and how these modules interact n One objective of modeling is to express characteristics of the software system in an unambiguous manner

Inheritance n A property distinguishing classes from abstract data types n Allows characteristics from one class to be passed on its subclasses n Subclasses may override inherited characteristics

Cost of not Engineering Software n Need to restructure code n High maintenance costs n Software is unacceptable to end users n Unreliable code n Need to rewrite code n Difficulty integrating system modules n Difficult project management n Budget and time overruns

Why Software Engineering is not Universal n Understanding software development as programming only without recognition of importance of analysis and design n Short-sighted technical management n Pressure of deadlines n Poor project estimation, thus unreasonable deadlines

Working in Teams n Be conscientious about due dates n If you are less motivated by the class project, negotiate an equitable grade and take a lesser role n Meet regularly with your team n Always create an agenda for every team meeting n Rotate responsibility for chairing team meetings