Software Engineering 1. Software development – the grand view 2. Requirements engineering.

Slides:



Advertisements
Similar presentations
System Integration Verification and Validation
Advertisements

Software Quality Assurance Plan
Lecture # 2 : Process Models
Object-Oriented Software Development CS 3331 Fall 2009.
MIS 2000 Class 20 System Development Process Updated 2014.
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Alternate Software Development Methodologies
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Engineering General Project Management Software Requirements
Software Requirements
1 SOFTWARE QUALITY ASSURANCE Basic Principles. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance SW Quality:
Introduction to Systems Analysis and Design
Software Process and Product Metrics
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
Introduction to Software Testing
Chapter : Software Process
CHAPTER 5 Infrastructure Components PART I. 2 ESGD5125 SEM II 2009/2010 Dr. Samy Abu Naser 2 Learning Objectives: To discuss: The need for SQA procedures.
Pre-Project Activities Text Chapters 5 and 6. Pre-Project Activities 1.Contract Review 2.Development Plan 3.Quality Plan.
Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software.
Managing Software Quality
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Chapter 2 The process Process, Methods, and Tools
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
Planning and Tracking Software Quality.  What Is Software Quality?  Causes of Software Defects  What is Quality Assurance?  Improving the Software.
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Instructor: Peter Clarke
Software Engineering Management Lecture 1 The Software Process.
IT Requirements Management Balancing Needs and Expectations.
Requirements Engineering ments_analysis.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
OHT 1.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The uniqueness of software quality assurance The environments for which.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Chapter 4 프로세스 모델 Process Models
Lecture 2 –Approaches to Systems Development Method 10/9/15 1.
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
Requirements Engineering Lesson 2. Terminologies:  Software Acquisition is where requirement engineering significantly meets business strategy.  Software.
1 Quality Attributes of Requirements Documents Lecture # 25.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
CSE 303 – Software Design and Architecture
Program Development Cycle
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
CHPATER Agenda Software Development  Challenges of Software Development Software Engineering Software Development Life Cycle  Water-fall.
Software Design and Development Development Methodoligies Computing Science.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements (utvalgte foiler fra Kap 6 og 7 i Sommerville)
 System Requirement Specification and System Planning.
Advanced Software Engineering Dr. Cheng
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
(Professional Business Analyst Training organisation)
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Introduction to Software Engineering
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Introduction to Software Testing
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Presentation transcript:

Software Engineering 1. Software development – the grand view 2. Requirements engineering

Software development Collection of activities, organised in different ways according to:  Specific software development methodology  Specific software product characteristics  Specific project characteristics (team, budget, organisational culture, etc.)

Software development Activities: Problem definition Requirements Construction planning High-level design Detailed design Coding and debugging Unit testing Integration testing Integration System testing Corrective maintenance

Software development Organisation of activities: Waterfall (linear, sequential): Desirable, but rarely applicable (...)

Software development Organisation of activities: Prototyping: requirements prototype tests

Software development Organisation of activities: RAD (Rapid Application Development): (...) Team 1: (...) Team 2: (...) Team 3: (...)

Software development Organisation of activities: Spiral: Requirements Planning Risk analysis Engineering Construction Evaluation

Software development Organisation of activities: Agile: Scrum, XP Concurrent Component-based

Software development In this course: Software construction

Activities: Problem definition Requirements Construction planning High-level design Detailed design Coding and debugging Unit testing Integration testing Integration System testing Corrective maintenance

Software development Common metaphors:  Developing software = writing a text Applicable only for small scale individual projects, and even then not so good metaphor. Underlying idea is that writing software is “artistic craftsmanship”: build a model, do not show it to anyone, evaluate it, throw it away, build a new one from scratch and then present your masterpiece to the world...

Software development Common metaphors:  Developing software = building a house Different situations imply different construction problems and techniques (doghouse, family house, shopping center, skyscraper,...) Team work Plan ahead Use standardised and pre-fabricated components Be disciplined

Software development Always have a plan is completely different from Never change your plan Planning is a dynamic activity, that should follow the dynamics of external reality. Plans should be permanently revised.

Software requirements Requirements are dynamic... but must not be chaotic Requirements should be updated as project goes along, but some degree of stability must be assured so that project can be developed.

Requirements checklist (Copied directly from Code Complete, 2nd. edition) Specific functional requirements:  Are all inputs specified, including source, accuracy, range of values and frequency?  Are all outputs specified, including destination, accuracy, range of values and frequency?

Requirements checklist  Are all output formats specified (reports, graphics, etc.)?  Are all external hardware and software interfaces specified?  Are all external communication interfaces specified, including hand-shaking, error- checking and communication protocols?  Are all tasks desired by the user specified?  Is the data required by each task and the data resulting from each task specified?

Requirements checklist Specific non-functional requirements:  Is the expected response time, from the user’s point of view, specified for all operations?  Are other timing considerations specified, e.g. processing time and data transfer rate?  Is the level of security specified?

Requirements checklist  Is the reliability specified, including Consequences of failure Vital information that needs to be protected from failure Strategy for error detection and recovery?  Are minimum machine memory and free disk space specified?

Requirements checklist  Is the maintainability of the system specified, including Ability to adapt to changes in specific functionality Changes in the operating environment Changes in interfaces with other software?  Is the definition of success included?  Is the definition of failure included?

Requirements checklist Requirements quality:  Are the requirements written in the user’s language? Do the users think so?  Does each requirement avoid conflicts with other requirements?  Are acceptable tradeoffs between competing attributes specified?

Requirements checklist  Do the requirements avoid specifying the design?  Are the requirements specified at the appropriate level of detail?  Are the requirements clear enough to be delivered to an independent group? Do the developers think so?

Requirements checklist  Is each item relevant to the problem and its solution?  Is each requirement testable?  Are all possible changes to the requirements specified, including the likelihood of each change?

Requirements checklist Requirements completeness:  Some information may not be available before development begins. Are all areas of incompleteness specified?  If the product satisfies every requirement, will it be acceptable?  Is there any requirement that is impossible to implement, which was included to appease your customer or your boss?