Análisis, diseño y construcción de Software



Similar documents
Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems

Modelli di sviluppo software. Enrico Giunchiglia

Lecture 3 Software Development Processes

CSCI-485: Software Design

To introduce software process models To describe three generic process models and when they may be used

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI.

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

SOFTWARE PROCESS MODELS

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

When is Agile the Best Project Management Method? Lana Tylka

General Problem Solving Model. Software Development Methodology. Chapter 2A

2. Analysis, Design and Implementation

Unit I. Introduction

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

Agile and lean methods for managing application development process

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Software Process Models. Xin Feng

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Classical Software Life Cycle Models

Software Development Process

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

CMSC 435: Software Engineering Course overview. Topics covered today

CS4507 Advanced Software Engineering

Software Development Methodologies in Industry. By: Ahmad Deeb

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Topics covered. An Introduction to Software Engineering. FAQs about software engineering Professional and ethical responsibility

Unit 1 Learning Objectives

Software Life-Cycle. Series of steps through which software product progresses. A life-cycle is selected during requirement Phase

A Review of an MVC Framework based Software Development

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

Software Engineering

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

How To Understand The Software Process

Advanced Software Engineering. Software Development Processes

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

Rapid Development & Software Project Survival Guide Steve McConnell Dave Root (Developed with Mel Rosso-Llopart)

XP and TDD. Extreme Programming and Test Driven Development. Bertrand Meyer, Manuel Oriol Andreas Leitner. Chair of Software Engineering ETH Zurich

Agile and lean methods for managing application development process

2. Analysis, Design and Implementation

Introduction to Software Engineering (ESE : Einführung in SE)

Software Life-Cycle Management

Software Engineering. What is SE, Anyway? Based on Software Engineering, 7 th Edition by Ian Sommerville

An Agile Project Management Model

Introduction to Software Engineering. Adopted from Software Engineering, by Ian Sommerville

Software Engineering UNIT -1 OVERVIEW

On the Agile Development of Virtual Reality Systems

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Software Process and Models

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell

J Intercultural communica0on, mee0ngs and nego0a0ons Seminars and case studies

AGILE vs. WATERFALL METHODOLOGIES

SOFTWARE DEVELOPMENT METHODOLOGIES, TRENDS, AND IMPLICATIONS

LECTURE 1. SYSTEMS DEVELOPMENT

CSC 492 The Practice of Software Engineering. Lecture 3 University of Mount Union Software Life Cycle Models

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

Chapter 2 Software Processes

I219 Software Design Methodology

Karunya University Dept. of Information Technology

Agile in a Safety Critical world

Aerospace Software Engineering

Lecture 8 About Quality and Quality Management Systems

[ ] = sexta edición { } = quinta edición ( ) = cuarta edición

Umbrella: A New Component-Based Software Development Model

Agile Processes and Methodologies: A Conceptual Study

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

Software Production and Lifecycle Models

Introduction. Getting started with software engineering. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

CSE 435 Software Engineering. Sept 16, 2015

Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research)

What is a life cycle model?

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

Agile with XP and Scrum

How To Understand The Limitations Of An Agile Software Development

A Capability Maturity Model (CMM)

Title: Topic 3 Software process models (Topic03 Slide 1).

An Introduction to Software Engineering

An Introduction to Software Engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Software Development Process

Software Processes. Topics covered

3C05: Unified Software Development Process

Agile and Secure: Can We Be Both?

Chapter 4 Software Lifecycle and Performance Analysis

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

Software Development: The Waterfall Model

IV. Software Lifecycles

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

Software Quality and Assurance in Waterfall model and XP - A Comparative Study

Transcription:

Análisis, diseño y construcción de Software Dizan Vasquez 1/38

Presentación 2010-2011 Profesor / ITESM Mexico - Consultor 2007-2009 2003-2004 2002-2003 2001-2002 1993-2001 1993 Postdoc / ETH Zurich Doctorado / INPG France DEA (Master)/ INPG France Master / ITESM México Industria / México ISC / ITESM México http://www.dizanvasquez.info 2/38

Políticas del curso Documentos en formato PDF. Tareas: por mail a dichodaemon@gmail.com Por favor, apaga tu celular, computadora, phaser, etc. Si no asistes a clase, eres responsable de informarte de lo dicho en ella. Si requieres asesoría, por favor avísame con al menos un día de anticipación. 3/38

Evaluación Parciales: Calificación Final: Examen: 30% Tareas y proyectos: 70% Primer parcial: 20% Segundo parcial: 20% Tercer parcial: 20% Proyecto final: 40% Nota Nota La La fecha fecha de de entrega entrega del del proyecto proyecto coincide coincide con con el el final final de de clases. clases. 4/38

Bibliografía Craig Larman. Applying UML and patterns. 3a edición. Addison Wesley, 2004. Johanna Rothman. Manage it!. Pragmatic Bookshelf, 2007. Martin Fowler. UML Distilled. 3a edición. Addison Wesley, 2004. Joel Spolsky. The best software writing. Apress, 2005. Jarred Richardson and William Gualtney Jr. Ship it!. Pragmatic Bookshelf, 2005. 5/38

Software Engineering 6/38

software = problems NASA space shuttle program: Cost: 10,000,000,000 USD. Time: 3 years late. First Columbia launch delayed due to a single bug. Introduced 2 years ago (a parameters was changed from 50 to 70 ms.). Undetected after thousands of hours of tests. Astronauts received a booklet: known software problems. 7/38

Typical problems Bugs in systems. Systems do not comply with user requirements. Release delays and cancelation. Development exceed projected costs. Systems are difficult to maintain an expand. 8/38

Context All industrialized economies are highly dependent on software. Every day, more systems are controlled by software. Industrialized countries spend a very significant part of their budget addressing software development issues. 9/38

Software engineering Software engineering is a systematic approach to develop, operate, maintain and retire software Software engineering is the application of science and mathematics thanks to which computing capacities become useful through programs, procedures and documentation Blah, blah, blah 10/38

What's the goal? To produce low-cost, high-quality software on time. Cost Quality Time 11/38

Two perspectives 1) Software as a product. 2)Software as a process. 12/38

Product: what's software? Programs Documentation Processes Data 13/38

Product: features Usability Maintainability Reliability Efficiency Note Note software software product product <> <> programming programming programming programming is is a a means, means, not not an an end end 14/38

Product: client Provides resources, expects results. Defines requirements. Client satisfaction is your PRIMARY goal! 15/38

Process: what? A set of activities aiming to develop or evolve software 16/38

Process: activities Specification. Design. Development. Validation. Deployment. Evolution/maintenance. 17/38

Process: development models Simplified representations of the software process presented from a specific perspective: Perspective examples: Workflow: activity sequence. Dataflow: information flow. Roles and actions: who does what.. 18/38

Process: model examples Waterfall Evolutionary Spiral Iterative Agile 19/38

Process: costs Typical values are: 60 % Development 40 % Tests/validation But they vary with the system and development model 20/38

Methods Structured methodologies include the following: Development models. Notation: documents, graphics, etc. Rules: restrictions to apply to models. Recommendations: best practices, errors, case studies. Bottom Bottom line line Software Software engineering engineering is is more more an an art art than than a a science. science. 21/38

Software lifecycles 22/38

Exercise What is a software process. Which software process models have you used? Tools? Examples? Uses? Strengths and weaknesses? Observations? 23/38

Software development process A structured set of activities to develop a software system. Activities: Requirements. Design. Development. Test. Maintenance. Software process model: An abstract, prescriptive representation of a process. 24/38

Software process types 25/38

Software process types 26/38

Serial model: waterfall 27/38

Serial model: waterfall Drawbacks: Inflexible partitioning on stages. Relies on perfect hindsight. Cannot adapt to changing requirements,or incorporate new knowledge. Only appropriate when the requirements are well understood. Example: replicating existing system s functionality 28/38

Iterative model: spiral 29/38

Iterative model: spiral Advantages: Copes with schedule risk. Prototyping allows learning. Drawbacks: Users treat the prototype as the product. Specification is left to the designer/developer. Not clear how to analyze risk. Lack or process visibility. 30/38

Incremental development 31/38

Incremental development Advantages System functionality is available earlier. Early increments may work as prototypes. Handles schedule risk. Highest priority functionality receives the most testing. Drawbacks Unable to deal with architecture changes. 32/38

Agile methodologies Examples: XP (Extreme Programming), Scrum, Kanban. New approach to development based on the development and delivery of very small increments of functionality. Relies on constant code improvement and user involvement in the development team. 33/38

Agile methodologies Advantages Evolutive. Mesurable. Predictive. Drawbacks Unstructured. Incomplete. 34/38

Formal models Based on the transformation of a mathematical specification through different representations to an executable program. Transformations are correctness-preserving so it is straightforward to show that the program conforms to its specification. Embodied in the Cleanroom approach to software development. 35/38

Formal models Drawbacks Need for specialised skills and training to apply the technique. Difficult to formally specify some aspects of the system such as the user interface. Changes require new transformations and proofs. Hard to scale. 36/38

The bottom, bottom line There is no perfect model, the best one depends on the project and the team. 37/38

Assignment Read the following two articles How many Microsoft employees does it take to change a Light Bulb and Great Hackers then write a two-page essay on your opinion about them. 38/38

Acknowledgements for today's lecture Jeremy R. Cooperstock. Human-computer Interaction. Lecture Notes. Karon MacLean. Physical user interface design. Course material. 39/38