About Software Engineering.

Similar documents
Object-Oriented Design

Object-oriented Analysis and Design

Unit 5: Unified Software Development Process. 3C05: Unified Software Development Process USDP. USDP for your project. Iteration Workflows.

Course Introduction and Overview of Software Engineering. Richard N. Taylor Informatics 211 Fall 2007

UNIT-III LIFE-CYCLE PHASES

Software Life Cycle Models

Requirements Gathering using Object- Oriented Models

Computer Science: Disciplines. What is Software Engineering and why does it matter? Software Disasters

Software Maintenance Cycles with the RUP

Introduction to adoption of lean canvas in software test architecture design

Computer Science: Who Cares? Computer Science: It Matters. Computer Science: Disciplines

IS 525 Chapter 2. Methodology Dr. Nesrine Zemirli

A FRAMEWORK FOR PERFORMING V&V WITHIN REUSE-BASED SOFTWARE ENGINEERING

Code Complete 2: A Decade of Advances in Software Construction Construx Software Builders, Inc. All Rights Reserved.

R&D PROJECT MANAGEMENT IS IT AGILE?

UNIT IV SOFTWARE PROCESSES & TESTING SOFTWARE PROCESS - DEFINITION AND IMPLEMENTATION

Requirements Analysis aka Requirements Engineering. Requirements Elicitation Process

CS Division of EECS Dept. KAIST

The Study on the Architecture of Public knowledge Service Platform Based on Collaborative Innovation

Pragmatic Strategies for Adopting Model-Based Design for Embedded Applications. The MathWorks, Inc.

By the end of this chapter, you should: Understand what is meant by engineering design. Understand the phases of the engineering design process.

Towards an MDA-based development methodology 1

Information Systemss and Software Engineering. Computer Science & Information Technology (CS)

UNIT VIII SYSTEM METHODOLOGY 2014

Model Based Systems Engineering (MBSE) Business Case Considerations An Enabler of Risk Reduction

Requirement Definition

ELG3336 Introduction to Engineering Design

ACE3 Working Group Session, March 2, 2005

ARTEMIS The Embedded Systems European Technology Platform

Testing in the Lifecycle

Systems Engineering Presented at Stevens New Jersey Community College Strategic Partnership 27 th September, 2005

CHAPTER 1 INTRODUCTION TO THE GUIDE

An introduction to software development. Dr. C. Constantinides, P.Eng. Computer Science and Software Engineering Concordia University

Physics-Based Modeling In Design & Development for U.S. Defense Virtual Prototyping & Product Development. Jennifer Batson Ab Hashemi

Introduction to Software Requirements and Design

Fostering Innovative Ideas and Accelerating them into the Market

CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DESIGN

THR%%A%P COM 1?4w XFROX. Agenda

CAPACITIES. 7FRDP Specific Programme ECTRI INPUT. 14 June REPORT ECTRI number

UX: THE KEY TO SUCCESS FOR YOUR PROJECTS

Business Driven Software Development. Why the Focus on the Team is an Impediment to Agile

1. Executive Summary. 2. Introduction. Selection of a DC Solar PV Arc Fault Detector

Innovation in Quality

USER RESEARCH: THE CHALLENGES OF DESIGNING FOR PEOPLE DALIA EL-SHIMY UX RESEARCH LEAD, SHOPIFY

Technology Transfer: An Integrated Culture-Friendly Approach

Leverage 3D Master. Improve Cost and Quality throughout the Product Development Process

2015 HSC Industrial Technology Graphics Technologies Marking Guidelines

Methodology for Agent-Oriented Software

Lean Enablers for Managing Engineering Programs

Digital Engineering. Phoenix Integration Conference Ms. Philomena Zimmerman. Deputy Director, Engineering Tools and Environments.

Software-Intensive Systems Producibility

Systems Engineering Overview. Axel Claudio Alex Gonzalez

Interaction Design in Digital Libraries : Some critical issues

Microsoft Services. Mixed Reality: Helping manufacturers develop transformative customer solutions

OCEAN OBSERVATORIES INITIATIVE. Release 2 Schedule. OOI CI Release 2 Kickoff M a y 2,

Roadmapping. Market Products Technology. People Process. time, ca 5 years

School of Computer Science. Course Title: Introduction to Human-Computer Interaction Date: 8/16/11

ENHANCED HUMAN-AGENT INTERACTION: AUGMENTING INTERACTION MODELS WITH EMBODIED AGENTS BY SERAFIN BENTO. MASTER OF SCIENCE in INFORMATION SYSTEMS

Systems Engineering Process

University of Massachusetts Amherst Libraries. Digital Preservation Policy, Version 1.3

Why do we need standards?

UX CAPSTONE USER EXPERIENCE + DEVELOPMENT PROCESS

D8.1 PROJECT PRESENTATION

THE APPLICATION OF SYSTEMS ENGINEERING ON THE BUILDING DESIGN PROCESS

CC532 Collaborative System Design

Grundlagen des Software Engineering Fundamentals of Software Engineering

A New Approach to Software Development Fusion Process Model

SYSTEMS ENGINEERING MANAGEMENT IN DOD ACQUISITION

A Mashup of Techniques to Create Reference Architectures

Socio-cognitive Engineering

Proposed Curriculum Master of Science in Systems Engineering for The MITRE Corporation

HELPING THE DESIGN OF MIXED SYSTEMS

Industry 4.0. Advanced and integrated SAFETY tools for tecnhical plants

A Dynamic Analysis of Internationalization in the Solar Energy Sector: The Co-Evolution of TIS in Germany and China

TERMS OF REFERENCE FOR CONSULTANTS

Digital Fabrication Production System Theory: towards an integrated environment for design and production of assemblies

Digital Engineering Support to Mission Engineering

Best practices in product development: Design Studies & Trade-Off Analyses

Automated Test Summit 2005 Keynote

Technology & Manufacturing Readiness RMS

Pervasive Services Engineering for SOAs

Code Complete 2: Realities of Modern Software Construction

Federico Forti, Erdi Izgi, Varalika Rathore, Francesco Forti

on-time delivery Ensuring

Presentation Title: Polarion Customization at Vorwerk (presented by GARANTIS IT Solutions)

Issues and Challenges in Ecosystems of Federated Embedded Systems

with permission from World Scientific Publishing Co. Pte. Ltd.

Domain Understanding and Requirements Elicitation

A New - Knot Model for Component Based Software Development

Interoperable systems that are trusted and secure

Standards Essays IX-1. What is Creativity?

ECE 396 Senior Design I

Office of Technology Development (OTD) Gap Fund

DEFENSE ACQUISITION UNIVERSITY EMPLOYEE SELF-ASSESSMENT. Outcomes and Enablers

Wednesday November 29, 2017 IR Technology Seminar Presentation Outline Note: This is an English Translation from the original summary in Japanese.

Understanding Requirements. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Non-Functional Requirements (NFRs) Definitions

A New Approach to the Design and Verification of Complex Systems

Agile Non-Agile. Previously on Software Engineering

Software Project Management 4th Edition. Chapter 3. Project evaluation & estimation

Transcription:

About Software Engineering pierre-alain.muller@uha.fr

What is Software Engineering? Software Engineering Software development Engineering Let s s have a look at ICSE International Conference on Software Engineering

Challenges Software permeates every aspect of our society at home and at work, in business and for pleasure, to support our daily chores, and to plan and manage our future. We increasingly expect it to be available, reliable, safe, secure, and usable, despite our own mobility, unpredictability, and changing needs. ICSE 2005, St-Louis

Challenges The development of such software poses increasing challenges for software engineering teams, who are themselves distributed, perhaps mobile, have varied skills, and often speak varied languages. The discipline of software engineering must address these challenges through the development and refinement of new techniques, practices, and tools that build upon sound engineering principles. Moreover, the ubiquity of software means that the discipline of software engineering is also extending. A software engineering team must think of software not only as a mathematical description or a product, but also as a service, a commodity, or even as a user experience. ICSE 2005, St-Louis

Challenges Computer-based systems continue increasingly to pervade every aspect of human activity. As this proceeds, the need to be sure that we can provide safe, efficient, high-quality software for these systems at acceptable costs in time and money, continue to assume increasing importance. The practice of software development is a worldwide enterprise, with nations and companies, both great and small, and both established and emerging, all vying for leading positions. Breakthroughs and improvements in the practice of software development, and the attendant competitive advantages they will convey, will depend pivotally on progress in fundamental software engineering research, and in effective education. ICSE 2006, Shangai

Challenges The theme of ICSE 2007 is Developing Dependable Software,, with which we acknowledge the increasingly crucial role the engineering of software plays in business, healthcare, government and society at-large. large. The theme also highlights the growing responsibility our profession and its members are expected to assume.

Topics Software requirements engineering Software architectures and design Patterns and frameworks Software components and reuse Software testing and analysis Theory and formal methods Computer supported cooperative work Human-Computer Interaction Software processes and workflows Software dependability, safety and reliability Reverse engineering and software maintenance Software economics and metrics AI and Knowledge based software engineering

Topics Agile software development Empirical software engineering and metrics Aspect-orientation and feature interaction Distributed/parallel SW systems Embedded and real-time time software Mobile, ubiquitous and pervasive systems Software tools and development environments SW Configuration management and deployment Software policy and ethics Software distribution licenses Programming languages Object-oriented techniques End user software engineering Internet and information systems development

Lifecycle of software Let s s start

Linear lifecycles The tunnel The Waterfall Software lifecycles The V Limits of linear lifecycles Iterative lifecycles

Goals Handle SW development all the way long Master the risks Master the changes Repeatable quality figures Breakdown the workload

The tunnel model t 0?

The waterfall model Analysis Design Coding Maintenance

The V model Analysis Design Validated by Integration tests Functional tests Coding Unit tests Application

Features of the waterfall Linear, flowing down Limited feedback Documentation based Validated by reviews From requirements to implementation Good when requirements are well-known

Limits of the waterfall Lack of knowledge of the reqts by the customer Misunderstanding of the reqts by the supplier Analysis Resulting Instability Design Technical choices Personnel turnover Coding Integration

Risks and waterfall Late problem identification Late proof of satisfaction Reviews of documentation, not real product Risk Reqt Analysis Design Coding Integration

Risk reduction Faster decrease of risks due to prototyping Risque Architecture P1 P2 P3 Pn V1 V2

Enhancement Distinction between phases and activities Incremental system building Early proof of feasibility Prototyping as support of system construction Concrete (executable) software evaluation

Iterative and incremental lifecycle Iterative : the process is applied several times Incremental : an iteration raises the knowledge A better waterfall

A Mini-Waterfall N times Analysis Design Planning Analysis Design Coding Integration Coding Evaluation Delivery

Iterative lifecycle variants According to project size, domain complexity and architectural choices The b-shaped b shaped is the most frequent Inception Inception Inception Iteration planning Elaboration Construction Elaboration Construction Elaboration Construction

Risk management Each prototype eliminates part of the overall risk A A prototype is an executable program A A prototype can be evaluated Risk Risk 1 2 3 4 1 2 3 4 Prototype n Prototype n+1

Risk driven iteration Initial evaluation of project risks Planning for iteration N Cost and delays Development of iteration N Evaluation of iteration N General plan update Cost Delay Scope Content Risk revision Priority evaluation Risks eliminated

Evaluation of an iteration Costs and delays for iteration N Quality of iteration N Test results Defect density Architecture stability Evaluation of iteration N Comparison of costs, delays and actual content of the iteration compared to the plan Determination of what must be redone and assignment to an iteration Determination of risks eliminated, reduced or newly identified. General plan update Next iteration planning and selection of scenarios Plan for revised risks Plan for revised project Total cost Planning Scope Content Plan for iteration N+1 Iteration cost Delay Content

Recurring risks Integration too complex Poorly adapted development environment Users not favorable Technology too complex Manual activities too heavy Inadequate reusable components Excessive bureaucracy

Structure of prototypes GUI Slide P1 P3 System P2

Iteration planning Completion (% of total) First iteration too ambitious Important repairs Touchups on first iterations

Touchup evolution Touchups by prototypes (% of total) Max Architecture validation Sum is less than 25 % Inception Elaboration Construction Transition

Implementing iterative lifecycle Requires complete adherence of involved parties Business view financial, strategic, commercial humans aspects Technical view Engineering, quality and modeling method

Two complementary views Development process Inception Elaboration Construction Transition Business View Technical View

Business view Split into phases Inception (feasibility study) Elaboration (architecture, planning) Construction Transition Inception Elaboration Construction Transition time

Technical view Iteration driven Iteration Result Time Preliminary Architecture Architecture Develpt Develpt Develpt Transition Transition Mockup Architecture prototype Architecture prototype Development prototype Development prototype Beta version Beta version Generation

Synchronization of the two views Synchronization of the two views Inception Elaboration Construction Transition Conceptual Prototype Release Architectural Prototype Release Architectural Baseline Release Construction Release 1 Construction Release 2 Construction Release 3 Transition Release Generation 1 Preliminary Iteration Architect. Iteration Architect. Iteration Devel. Iteration Devel. Iteration Devel. Iteration Transition Iteration Transition Iteration

Activities and Phases Inception Elaboration Construction Transition Planning Analysis Architecture design Design Implementation Integration Test/assessment Iteration Iteration Iteration Iteration Iteration Iteration Iteration Iteration

Misconceptions about the iterative lifecycle Reqts Reqt explosion Encourages tinkering Causes problems Endless restarting Excuse to not plan Only applies to developers Encourages endless addition of new requirements Reqt instability Time

Conclusion Iterative lifecycle simply copes with reality allows evolution based on prototyping requires planing and management require supporting environment very compatible with OO