1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 1- Introduction Module homepage

Slides:



Advertisements
Similar presentations
Developed by Reneta Barneva, SUNY Fredonia
Advertisements

Lecture 1: Software Engineering: Introduction
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software processes 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Software Processes Modified by Randy K. Smith
Chapter 2 – Software Processes
CS3773 Software Engineering Lecture 01 Introduction.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
Software Engineering COMP 201
Software Engineering COMP 201
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
Software Engineering, COMP201 Slide 1 Software Engineering COMP 201 Lecturer: Dr. Igor Potapov Ashton Building, room 3.15
Software Engineering COMP 201
Software Engineering General Project Management Software Requirements
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
1 SWE Introduction to Software Engineering Lecture 5.
Fundamentals of Information Systems, Second Edition
L ECTURE 2 S OFTWARE P ROCESSES 1. O BJECTIVES To describe outline process models for requirements engineering, software development, testing and evolution.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Engineering Course Instructor: Aisha Azeem.
An Introduction to Software Engineering
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 1- Introduction Dr Richard Clayton &
Chapter 3 Software Processes.
Software Engineering EE323 Y.F. Fung Office: CF605 Consultation hours: Wednesday 6pm-7:30pm.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Introduction to Software Engineering. Topic Covered What is software? Attribute of good S/w? Computer Software? What is Software Engineering? Evolving.
Software Engineering Methodologies (Introduction)
Objectives of the Lecture
SOFTWARE ENGINEERING Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
Software EngineeringIntroduction Slide 1 Software Engineering Mr. Ahmad Al-Ghoul.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Modern Software Development Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways [1]: ◦ Project running over-time. ◦ Project running over-budget.
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 using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
Software Production ( ) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD)
Introduction to Software Engineering COMP 412 – Software Engineering Project Management Prepared by: Engr. Maria Diorella A. Paguio.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
Systems Development Life Cycle
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Software Engineering. Acknowledgement Charles Moen Sharon White Bun Yue.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Requirements Analysis
PI2134 Software Engineering IT Telkom.  Layered technology  Software Process  Generic Process (by Pressman)  Fundamental activities (by Sommerville)
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
HNDIT23082– Principals of Software Engineering
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Object-Oriented Software Engineering Using UML, Patterns, and Java,
The Systems Engineering Context
Software Engineering B.E IT Sem-VII
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Presentation transcript:

1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 1- Introduction Module homepage

2COM6030 Systems Analysis and Design © University of Sheffield 2005 Introduction 1. Software engineering: definition, products, processes 2. Software engineering – models, management

3COM6030 Systems Analysis and Design © University of Sheffield 2005 Outline  Aims and objectives  Software engineering definitions  Software applications  Software engineering history  Software myths  Software failures  Processes Reading: Sommerville chapters1,3; Pressman chapters 1,2

4COM6030 Systems Analysis and Design © University of Sheffield 2005 References  Sommerville, Software Engineering, 5th edition, Addison-Wesley,  S Bennett, S McRobb R Farmer, Object-Oriented Systems Analysis and Design using UML, McGraw-Hill,  P Stevens, R Pooley, Using UML - software engineering with objects and components, Addison Wesley,  M Fowler with K Scott, UML Distilled: Applying the Standard Object Modelling Language, Addison-Wesley,  R S Pressman, Software Engineering: A Practioner's Approach, 5th edition, McGraw-Hill, 2000 (or the European adaptation by D. Ince).  T Gilb, Principles of Software Engineering Management, Addison- Wesley, 1988.

5COM6030 Systems Analysis and Design © University of Sheffield 2005 Aims and objectives of the course Aims and Objectives The aims of this module are:  to introduce the basic concepts of software development methods, and the need for a professional approach to software system development;  to describe the activities of software requirements analysis and software design;  to introduce the diagrammatic notation UML, and its uses in representing analysis and design models of software systems.

6COM6030 Systems Analysis and Design © University of Sheffield 2005 First part of the course Software engineering (SE) is the application of systematic, disciplined, quatifiable approach to the development, operation and maintenance of software; that is, the application of engineering to software. – Pressman p18 SE is an engineering discipline concerned with all aspects of software production from early specifications through to maintenace. SE is the profession that creates and maintains software applications by applying technologies and practices from computer science, project management, engineering, application domain, and other fields. Software Engineering

7COM6030 Systems Analysis and Design © University of Sheffield 2005 SE vs Computer Science(CS) SE deals with practical problems  Complex software products (I)  Processes (II)  Methods/Models (III)  People (IV) CS is concerned with  Theories  Methods Algorithms, data structures, programs, formal grammars, abstract machines, complexity, numerical methods…

8COM6030 Systems Analysis and Design © University of Sheffield 2005 (I) Software is everywhere Computer software has become a driving force. It is the engine that drives business decision making. It serves as the basis for modern scientific investigation and engineering problem solving. It is a key factor that differentiates modern products and services. It is embedded in systems of all kinds: transportation, medical, telecommunications, military, industrial processes, entertainment, office products… Software is virtually inescapable in a modern world. And as we move into the 21 st century, it will become the driver for new advances in everything from elementary education to genetic engineering. – Pressman p.3

9COM6030 Systems Analysis and Design © University of Sheffield 2005 Software applications Potential applications  System software  Real-time software  Business software  Engineering and scientific software  Embedded software  Personal computer software  Web-based software  Artificial Intelligence software  Research software

10COM6030 Systems Analysis and Design © University of Sheffield 2005 SE history  SE introduced first in 1968 – conference about ‘software crisis’ when the introduction of third- generation computer hardware led more complex software systems than before;  Early approaches based on informal methodology leading to:  delays in software delivery  higher costs than initially estimated  unreliable, difficult to maintain software  Need for new methods and techniques to manage the production of complex software  Even today SE is in a “chronic affliction” state – Pressman p4.

11COM6030 Systems Analysis and Design © University of Sheffield 2005 Software myths(SM) SM – causes of software affliction (apparently reasonable statements, supported by experienced practitioners) propagated from early days of software development:  Management myths  Standards and procedures for building software  State of the art software tools and latest computers  Add more programmers if behind the schedule  Customer myths  A general description of objectives enough to start coding  Requirements may change as the software is flexible  Practitioner’s myths  Task accomplished when the program works  Quality assessment when the program is running  Working program the only project deliverable

12COM6030 Systems Analysis and Design © University of Sheffield 2005 Software failures Complex software systems failures and bugs:  Therac-25 ( ): six people overexposed during treatments for cancer  Taurus (1993): the planned automated transaction settlement system for London Stock Exchange cancelled after five years of development  Ariane 5 (1996): rocket exploded soon after its launch due an error conversion (16-bit floating point into 16-bit integer)  The Mars Climate Orbiter assumed to be lost by NASA officials (1999): different measurement systems (Imperial and metric)

13COM6030 Systems Analysis and Design © University of Sheffield 2005 However… Important progress:  Ability to produce more complex software has increased  New technologies have led to new SE approaches  A better understanding of the activities involved in software development  Effective methods to specify, design, implement software have been developed  New notations and tools have been produced

14COM6030 Systems Analysis and Design © University of Sheffield 2005 (II) Processes A software process (II) consists of a set of activities and associated results which lead to the production of a software product (I) Sommerville p43 Fundamental activities:  Software specification  Software design and implementation  Software validation  Software evolution Software developed from scratch or by extending and modifying existing systems

15COM6030 Systems Analysis and Design © University of Sheffield 2005 Software specifications (Ss) Ss refers to services requested (functional aspects) and constraints (non-functional component) – called requirements engineering  Feasibility study  Requirements elicitation and analysis  Requirements specification  Requirements validation Lead to reports, models, documents

16COM6030 Systems Analysis and Design © University of Sheffield 2005 Software design and implementation (I) Software design process - a set of activities transforming (iteratively) the set of requirements into design products  Abstract specification of each sub-system  Component design  Interface design  Data structure  Algorithm design A set of reports, models (notations), documents is generated

17COM6030 Systems Analysis and Design © University of Sheffield 2005 Software design and implementation (II) Implementation (programming) stage – transforms the design model(s) into code  Sometimes interleaved with design  Tools used to (partially) convert into code  Programming strategies: top-down, bottom-up  Use of coding standards  Quality aspects  Debugging and testing Software product

18COM6030 Systems Analysis and Design © University of Sheffield 2005 Software validation The validation is the process of checking that “the correct system” was implemented – inspections and reviews Verification – “building the product right”; formal verification, testing  Unit testing  Module testing  Sub-system testing  Systems testing  Acceptance testing

19COM6030 Systems Analysis and Design © University of Sheffield 2005 Software evolution Software evolution process: changes made to a software product after the system development (but not always) - maintenance  Changes to repair software faults  Changes to adapt a software system to different operating environment  Changes regarding system’s functionality Increasingly maintenance is part of system’s development (open source, generic frameworks etc)

20COM6030 Systems Analysis and Design © University of Sheffield 2005 Summary  Software engineering covers all aspects of software production  Historically motivated by a lack of suitable methods to specify and develop complex software systems  Software engineering includes software products, processes, models and people  Failures in software production impose adequate approaches and require a limitation of mythical believes  Software engineering processes cover the whole cycle of developing a software product (specification through to implementation and maintenance)