UNIT I Programming Language Syntax and semantics. Kainjan Sanghavi

Similar documents
Processes. Object Orientated Analysis and Design. Benjamin Kenwright

3. Comparison of Above Described SDLC Models

Software Design COSC 4353/6353 D R. R A J S I N G H

Chapter 3 Prescriptive Process Models

The Systems Development Lifecycle

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

SDLC Models- A Survey

Chapter 3 Software Process Model

Software Engineering Part 2

Software Engineering in the Agile World. Table of contents

Software Development Software Development Activities

Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1

Waterfall model is the earliest SDLC approach that was used for software development.

04. Agile Development

Explore Comparative Analysis Software Development Life Cycle Models

CMPT 275 Software Engineering

Introduction to Software Engineering

A New Divide & Conquer Software Process Model

Software Methodologies

QAIassist IT Methodology General Context

THE ADVANTAGES OF AGILE METHODOLOGIES APPLIED IN THE ICT DEVELOPMENT PROJECTS

CS350 Lecture 2 Software Dev. Life Cycle. Doo-Hwan Bae

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

A Comparative Study of Universally Accepted SDLC Models for Software Development

Selecting Software Development Life Cycles. Adapted from Chapter 4, Futrell

INTRODUCTION. Objectives. Unit 1: Introduction to Systems Analysis and Design. Key Ideas

Process, Models, Methods, Diagrams Software Development Life Cyles. Part - II

Software Process. Overview

Chapter 2 Objectives. Pfleeger and Atlee, Software Engineering: Theory and Practice (edited by B. Cheng) Chapter 2.

A Comparative Study on Software Development Life Cycle Models

Software Engineering. M Umair.

Software Modeling & Analysis. - Fundamentals of Software Engineering - Software Process Model. Lecturer: JUNBEOM YOO

Processes and Life- Cycles. Kristian Sandahl

03. Perspective Process Models

Other Agile Approaches & Methodologies

Software Life Cycle. Main Topics. Introduction

Research Article / Paper / Case Study Available online at: Analysis of Strengths and Weakness of SDLC Models Shikha Verma Delhi India

SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)

Agile Projects 7. Agile Project Management 21

CSE 435 Software Engineering. Sept 14, 2015

CSE 403: Software Engineering, Winter courses.cs.washington.edu/courses/cse403/16wi/ Software Lifecycle. Emina Torlak

What is Software Engineering?

PMINJ Chapter 02 May Symposium Hybrid Agile The Best of Both Worlds

Introduction of RUP - The Rational Unified Process

MIS Systems & Infrastructure Lifecycle Management 1. Week 10 March 24, 2016

Processes and Life- Cycles. Kristian Sandahl

2009 Spring. Software Modeling & Analysis. - Software Process Model. Lecturer: JUNBEOM YOO

Ingegneria del Software Corso di Laurea in Informatica per il Management

SDLC AND MODEL SELECTION: A STUDY

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

CTC/ITC 310 Program Management California State University Dominguez Hills First Exam Answer Key November 20, 2018 Instructor: Howard Rosenthal

5) A work breakdown structure is a list of tasks broken down to small manageable activities. Answer: TRUE Diff: 2 Page Ref: 42

CSE 403: Software Engineering, Spring courses.cs.washington.edu/courses/cse403/15sp/ Software Lifecycle. Emina Torlak

Software Engineering Modern Approaches

Tuesday, October 25. Announcements

Software Engineering

Cambridge University Press Agile Testing: How to Succeed in an Extreme Testing Environment John Watkins Excerpt More information

CS 320 Introduction to Software Engineering Spring February 01, 2017

Watson Internet of Things. Agile Development Why requirements matter

Note 10: Software Process

WHAT HAS AGILE DONE FOR TESTING?

Introduction. Figure 1-1

Introduction to Systems Analysis and Design

Agile Essentials Track: Business Services

The Software Life Cycle

Pertemuan 2. Software Engineering: The Process

[Name] [ ID] [Contact Number]

CHP 1: AN OVERVIEW OF IT PROJECT MANAGEMENT

SDLC Submitted in partial fulfillment of the requirement for the award of Degree of Computer Science

Chapter 13. Building Information Systems

Software Engineering

Softwaretechnik. Lecture 02: Processes. Peter Thiemann SS University of Freiburg, Germany

SOFTWARE ENGINEERING SOFTWARE-LIFE CYCLE AND PROCESS MODELS. Saulius Ragaišis.

Non-object-oriented design methods. Software Requirements and Design CITS 4401 Lecture 15

Building Information Systems

The Top Thrill Dragster

Software Processes. CSE-C3610, Software Engineering, 5 cr. Prof. Casper Lassenius

Software Engineering Development and Analysis of Life Cycle Models

Building Information Systems

Homework 2. Software Development Lifecycle. Today s plan. How complex is software? How complex is software? 2/12/18

An Overview of Software Process

A Comparison Between Two Software Engineering Processes, RUP And Waterfall Models

Transition from conventional to Agile process model An Experience Report

Choose an Agile Approach

The Challenge of Agile Estimating

Topics to be covered. Commercial Levers Available to the PM to Manage Agile project delivery

A Comparison Between Evolutionary and Prototype Model

Agile. How would you implement agile methodologies and tools for web projects? What do you see as the benefits and challenges to doing this?

Introduction to Agile/Extreme Programming

Systems Analysis and Design 8 th Edition. Chapter 1 Introduction to Systems Analysis and Design

Chapter 3. Information Systems Development. McGraw-Hill/Irwin. Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved.

It is not just programming. Cartoon source:

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

The software process

Build Your Project Using Feature Driven Development #4 of a Series, by Pavan Kumar Gorakavi, M.S., M.B.A, G.M.C.P, C.A.P.M.

Session 2: A Phased Life Cycle for a modern system development project. COMP 377/477 Spring 2016 Conrad Weisert

Agile Methodology. Tech Focus. Agile Methodology: Characteristics. Techspace Home Tech Focus Case Study Trend Watch Thought Post

Working Towards Lightweight Enterprise Architectures: the Process, frameworks, standards, and models

Transcription:

UNIT I Programming Language Syntax and semantics B y Kainjan Sanghavi

Contents Software development process Language and software development environments Language and software design methods

SDLC A framework that describes the activities performed at each stage of a software development project.

SDLC PHASES Requirements Gathering and Analysis Design Development Testing Implementation Maintenance

SDLC PHASES

SDLC MODELS To help understand and implement the SDLC phases various SDLC models have been created by software development experts, universities, and standards organizations.

Reasons SDLC for Using Models Provides basis for project planning, estimating & scheduling Provides framework for standard set of terminologies, activities & deliverables Provides mechanism for project tracking & control Increases visibility of project progress to all stakeholders

Advantages of Choosing an Appropriate SDLC Increased development speed Increased product quality Improved tracking & control Improved client relations Decreased project risk Decreased project management overhead

Common Life Cycle Models Waterfall Spiral/Iterative Agile

Waterfall Model Analysis Design Development Testing Deployment Maintenance

Waterfall Model Oldest and most well-known SDLC model Follows a sequential step-by-step process from requirements analysis to maintenance. Systems that have well-defined and understood requirements are a good fit for the Waterfall Model

Waterfall Model Strengths Easy to understand, easy to use Provides structure to inexperienced staff Milestones are well understood Sets requirements stability Good for management control (plan, staff, track) Works well when quality is more important than cost or schedule

Waterfall Model Weaknesses All requirements must be fully specified upfront Idealised, does not match reality well. Can give a false impression of progress Does not reflect problem-solving nature of software development iterations of phases Integration is one big bang at the end Difficult and expensive to make changes

Waterfall Model Weaknesses Difficult to integrate risk management Significant administrative overhead, costly for small teams and projects.

When t o use the Waterfal l Model Requirements are very well known Product definition is stable Technology is understood New version of an existing product Porting an existing product to a new platform.

Spiral / I t e r ative Model Requirements Analysis Requirements Gathering Design R e p e at Maintenance Enhancement Iterative Development Deployment Quality Assurance

Spiral Model Spiral Model is a Disk-driven iterative model Divides a project into iterations Each iteration deals with 1 or more risks Each iteration starts with small set of requirements and goes through development phase (except Installation and Maintenance) for those set of requirements.

Spiral Model Iterate until all major risks addressed and the application is ready for the Installation and Maintenance phase (production) Each of the iterations prior to the production version is a prototype of the application. Last iteration is a waterfall process

Spiral Model Strengths Provides early indication of insurmountable risks, without much cost Critical high-risk functions are developed first The design does not have to be perfect Users see the system early because of rapid prototyping tools Users can be closely tied to all lifecycle steps Early and frequent feedback from users

Spiral Model Weaknesses Time spent for evaluating risks too large for small or low-risk projects Time spent planning, resetting objectives, doing risk analysis and prototyping may be excessive The model is complex Risk assessment expertise is required Spiral may continue indefinitely May be hard to define objective, verifiable milestones that indicate readiness to proceed through the next iteration

When to use Spir al Model When creation of a prototype is appropriate When costs and risk evaluation is important For medium to high-risk projects Users are unsure of their needs Requirements are complex New product line Significant changes are expected (research and exploration)

Agile Model Discover Test Develop Design Test Discover Develop Design Test Discover Develop Design

Agile Model Speed up or bypass one or more life cycle phases Usually less formal and reduced scope Used for time-critical applications Used in organizations that employ disciplined methods

Some Agile Methods Rapid Application Development (RAD) Scrum Extreme Programming (XP) Adaptive Software Development (ASD) Feature Driven Development (FDD) Crystal Clear Dynamic Software Development Method (DSDM) Rational Unify Process (RUP)

Agile Model Strengths Deliver a working product faster than conventional linear development model Customer feedback at every stage ensures that the end deliverable satisfies their expectations No guesswork between the development team and the customer, as there is face to face communication and continuous inputs from the client

Agile Model Weaknesses For larger projects, it is difficult to judge the efforts and the time required for the project in the SDLC. Since the requirements are ever changing, there is hardly any emphasis, which is laid on designing and documentation. Therefore, chances of the project going off the track easily are much more

Language and Software Development Environment Environment means group of H/w and S/w tools used by a developer to build software systems. H/w tools S/w tools SDE

Language and Software Development Environment In development for Coding tools such as Compilers, Linkers, Text Editors and Libraries are used. Integrated Development Environments Debuggers are used to find faults and programming errors

Programmer s Approach to Software Engineering Skip requirements engineering and design phases; start writing code 30

Why this programmer s approach? Design is a waste of time We need to show something to the customer real quick We are judged by the amount of LOC/month We expect or know that the schedule is too tight 31

However,... The longer you postpone coding, the sooner you ll be finished 32

Up front remarks Design is a trial-and-error process The process is not the same as the outcome of that process There is an interaction between requirements engineering, architecting, and design 33

Language and Software Design Methods Most of the programming languages impose particular programming style. and this style is known as Programming Paradigm

Programming Paradigms C / Pascal/ FORTRAN Imperative or Procedural C++/ Java Object Oriented Cuda Parallel LISP/ML Applicative or Functional PROLOG Rule Based or Logic Generic Eiffel

Functional Style : Illustration Definition: Equations sumto(0) = 0 sumto(n) = n + sumto(n-1) Computation: Substitution and Replacement sumto(2) = 2 + sumto (2-1) = 2 + sumto(1) = 2 + 1 + sumto(1-1) = 2 + 1 + sumto(0) = 2 + 1 + 0 = = 3

Procedural vs Functional Program: a sequence of instructions for a von Neumann m/c. Computation by instruction execution. Iteration. Modifiable or updatable variables.. Program: a collection of function definitions (m/c independent). Computation by term rewriting. Recursion. Assign-only-once variables.

Object-Oriented Style Programming with Abstract Data Types ADTs specify/describe behaviors. Basic Program Unit: Class Implementation of an ADT. Abstraction enforced by encapsulation.. Basic Run-time Unit: Object Instance of a class. Has an associated state.

Procedural vs Object-Oriented Emphasis on procedural abstraction. Top-down design; Step-wise refinement. Suited for programming in the small. Emphasis on data abstraction. Bottom-up design; Reusable libraries. Suited for programming in the large.

Logic Programming Paradigm 1. edge(a,b). 2. edge(a,c). 3. edge(c,a). 4. path(x,x). 5. path(x,y) :- edge(x,y). 6. path(x,y) :- edge(x,z), path(z,y).

Logic Programming A logic program defines a set of relations. This knowledge can be used in various ways by the interpreter to solve different queries. Make explicit HOW the declarative knowledge is used to solve the query.

Thank You! Angelin