Introduction to Software Engineering - Prof. Prasad Mahale

Slides:



Advertisements
Similar presentations
Colin Weaver The Eleven Essential Behaviours of Successful Agile Project Teams.
Advertisements

Chapter: 3 Agile Development
Lecture 2 1 Introduction to Software Engineering.
E X treme Programming & Agile Modeling Copyright © 2003 Patrick McDermott UC Berkeley Extension
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
Slide Set to accompany Web Engineering: A Practitioner’s Approach
Agile Project Management with Scrum
Agile Architecture? Paul Lund 24 th Nov Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it.
1 SWE Introduction to Software Engineering Lecture 3 Introduction to Software Engineering.
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Agile Methods.
An Agile View of Process
Software engineering Process models Pavel Agejkin.
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
1 Agile Methodology & Programming Ric Holt July 2009.
Software Engineering Modern Approaches
Agile Programming Principles.
Agile Web Development C. Daniel Chase University of Colorado at Boulder.
Chapter 4 Agile Development
AgileCamp Presents: Agile 101. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons Attribution.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
Chapter 2 Process: A Generic View
1M.Sc(I.T.) VNSGU, Surat. Software is instructions (computer programs) that when executed provide desired function and performance, data structures that.
Chapter 4 프로세스 모델 Process Models
AGILE COTS Václav Pergl We are uncovering better ways of developing software by doing it and helping others do it. Through this work.
1 11/21/2015 ã 2007, Spencer Rugaber Agile Manifesto February, 2001 XP, SCRUM, DSDM, Adaptive Software Development,
Why (or When) Agile Fails Creating high performance software delivery teams.
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
Jeff Briggs Senior Consultant Capstone Consulting.
Software Engineering Introduction.
PI2134 Software Engineering IT Telkom.  Software definition  Characteristic of software  Software myths  Software Engineering definition  Generic.
- Discussion of Chapter 1 in Martin and Martin.  We are uncovering better ways of developing software by doing it and helping others do it. Through this.
Chapter 3 Agile Development
Module 2: What is Agile? Why use it? TLO: Given a DoD program involved in software development, the student will recognize situations where applying agile.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Agile Introduction Emerson Murphy-Hill. Agile Manifesto/Alliance XP, SCRUM, DSDM, Adaptive Software Development, Crystal, FDD February 2001 (Snowbird,
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 1 Introduction to Software Engineering.
Baby Steps to Agility How to Grow Into Agile. A little about me A little about Agile Growing into Agile Questions Goals.
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 7th edition by Roger S. Pressman.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Software Engineering Principles I (Spring 2017)
Agile Project Management and the yin & yang of
Introduction to Agile Software Development
Principles for Agile Development
Agile Training Day 2 November 17, 2015.
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Software What Is Software?
Software Engineering B.E IT Sem-VII
Software Engineering (CSE 314)
Software Myths Deep Mann.
Project Management and the Agile Manifesto
Rosa María Torres de Paz
The Agile Manifesto is based on 12 principles
Chapter 2 Process Models
Chapter 2 Process Models
Introduction to Agile Blue Ocean Workshops.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Adjective: Able to move quickly and easily. Principles and Values
Chapter 3: Agile Software Processes
Chapter 2 Process Models.
What is Software? Software is: (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures.
Projects, Assignments, and other Assessments
Chapter 2 Process Models
Chapter 2 Process Models
Introduction Software Engineering.
Agile Development.
Chapter 2 Software Engineering
Presentation transcript:

Introduction to Software Engineering - Prof. Prasad Mahale UNIT-I Introduction to Software Engineering - Prof. Prasad Mahale

Syllabus Nature of Software Software Process Software Engineering Practice Software Myths Generic Process model Process Assessment and Improvement Perspective Process Models Specialized Process Models Personal and Team Process Models Agile Process models: Agile process Extreme programming

Nature of Software Delivers Computing potential It resides on various resources Delivers imp product Time : Information Gateway to worldwide information Sophistication & complexity Adoption of software engg practice

Defining Software Software is: instructions (computer programs) that when executed provide desired features, function, and performance data structures that enable the programs to effectively manipulate information, and descriptive information in both hard copy and virtual forms that describes the operation and use of the programs.

software characteristics Software is developed or engineered; it is not manufactured in the classical sense. Although the industry is moving toward component-based construction, most software continues to be custom built. Software doesn’t “wear out.” But it does deteriorate!

Figure 1: Failure curve for hardware Figure 1.2: Failure curves for software

Software Application Domains System software Application software Engineering/scientific software Embedded software Product-line software Web applications Artificial intelligence software

Legacy Software Legacy software systems . . . were developed decades ago Continually modified to meet changes Must be adopted Enhance to implement

THE SOFTWARE PROCESS A process is a collection of activities, actions, and tasks that are performed when some work product is to be created. A generic process framework for software engineering encompasses five activities: Communication Planning Modeling Construction Deployment

Communication Project Initiation

Planning Scheduling Tracking Estimation

Modeling

Construction

Deployment

Umbrella activities Software project tracking and control Risk management Technical reviews Measurement Software configuration management Reusability management Work product preparation and production

SOFTWARE ENGINEERING PRACTICE The Essence of Practice Understand the problem (communication and analysis). Plan a solution (modeling and software design). Carry out the plan (code generation). Examine the result for accuracy (testing and quality assurance).

Understand the problem Who Stake Solution? What Unknowns? Can Compartmentalized? Can Represent Graphically

Plan a solution Have u seen similar problem? Has similar problem solved? Can sub problems defined? Can represent solution effective implementation?

Carry out the plan Does solution conforms plan? Is component part achieved correct?

Examine the result for accuracy Is it possible to test? Does solution produce required result?

General Principles The Reason It All Exists Keep It Simple, Stupid! Maintain the Vision What You Produce, Others Will Consume Be Open to the Future Plan Ahead for Reuse Think!

SOFTWARE MYTHS Management myths Myth: We already have a book that’s full of standards and procedures for building software. Won’t that provide my people with everything they need to know? Myth: If we get behind schedule, we can add more programmers and catch up (sometimes called the “Mongolian horde” concept). Myth: If I decide to outsource the software project to a third party, I can just relax and let that firm build it.

2. Customer myths Myth: A general statement of objectives is sufficient to begin writing programs—we can fill in the details later. Myth: Software requirements continually change, but change can be easily accommodated because software is flexible.

Practitioner’s myths Myth: Once we write the program and get it to work, our job is done. Myth: Until I get the program “running” I have no way of assessing its quality. Myth: The only deliverable work product for a successful project is the working program. Myth: Software engineering will make us create voluminous and unnecessary documentation and will invariably slow us down.

A GENERIC PROCESS MODEL A software process framework

Process flow

Defining a Framework Activity Identifying a Task Set Process Patterns Proven solutions Process related problems Pattern Name: Forces: Type: Stage pattern Task pattern Phase pattern

PROCESS ASSESSMENT AND IMPROVEMENT Standard CMMI Assessment Method for Process Improvement (SCAMPI) CMM-Based Appraisal for Internal Process Improvement (CBA IPI) SPICE (ISO/IEC15504) ISO 9001:2000 for Software

PRESCRIPTIVE PROCESS MODELS 1. The Waterfall Model

PRESCRIPTIVE PROCESS MODELS 2. Incremental Process Models

PRESCRIPTIVE PROCESS MODELS Evolutionary Process Models Prototyping

PRESCRIPTIVE PROCESS MODELS II. The Spiral Model

PRESCRIPTIVE PROCESS MODELS 4. Concurrent Models

SPECIALIZED PROCESS MODELS Component-Based Development Provide targeted functionality Incorporates characteristics of spiral model Model construct applications Researched and evaluated for application Design to accommodate components Integrated into architecture Testing ensured proper functionality

SPECIALIZED PROCESS MODELS The Formal Methods Model Leads to mathematical specification Mechanism for eliminating many problems Quite time consuming and expensive Difficult to use the models as communication mechanism

SPECIALIZED PROCESS MODELS Aspect-Oriented Software Development Implement a set of localized feature, fun, info Modeled as a component (OO class) High level properties (eg. Security & fault tolerence) Sophisticated concern Crosscutting concern(fun, feature, info)

PERSONAL AND TEAM PROCESS MODELS Personal Software Process (PSP) The PSP model defines five framework activities Planning High-level design High-level design review Development Postmortem

Team Software Process (TSP) Build self directed teams that plan and tract the work Integrated product team 3 to 20 enggs Show managers how to motivate their teams Accelerate software process improvements Facilitate university teaching of industrial team grade skills Define roles and responsibility for each team members Track, manages and report project status

AGILE PROCESS MODELS Agile process engineering combines a philosophy and a set of development guidelines. The philosophy encourages customer satisfaction and early incremental delivery of software, small highly motivated project teams, informal methods, minimal software engineering products, and overall development simplicity. The development guidelines stress delivery over analysis and design and active and continuous communication between developer and customer

Agility Principles The Agile Alliance defines agility principles for those who want to achieve agility: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project.

Build projects around motivated individuals Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity—the art of maximizing the amount of work not done—is essential.

The Politics of Agile Development This methodology debate risk degenerating into a religious war. The real que is: what is the best to achieve it Each model there is a set of ideas Many agile concepts are simply adaptations of good s/w engg.

Human Factors: Competence Common focus Collaboration Decision-making ability Fuzzy problem-solving ability Mutual trust and respect Self-organization

EXTREME PROGRAMMING (XP) XP Values Communication Simplicity Feedback courage

The XP Process Planning Design Coding Testing

Industrial XP Readiness assessment Project community Project chartering Test-driven management Retrospectives Continuous learn

The XP Debate Requirements volatility Conflicting customer need Requirements are express informally Lack of formal design