Programming Language Syntax and semantics

Slides:



Advertisements
Similar presentations
Basic SDLC Models.
Advertisements

2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.
Software Development Life-Cycle Models
Lecture # 2 : Process Models
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Software Process Models
CS487 Software Engineering Omar Aldawud
CHAPTER TWO Object Oriented System Analysis and Design 1.
Adapted from a presentation by John Petlicki of DePaul University, USA.
Software Process Models
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Programming Paradigms cs784(Prasad)L5Pdm1. Programming Paradigm A way of conceptualizing what it means to perform computation and how tasks to be carried.
Software Development Life Cycle (SDLC)
1 CMPT 275 Software Engineering Software life cycle.
Chapter 2 The process Process, Methods, and Tools
IT Systems Analysis & Design
Lecture # 04 & 05 CS314 Introduction To Software Development Software Development Process (SDP) Instructor :Muhammad Janas khan
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Programming Paradigms Procedural Functional Logic Object-Oriented.
SOFTWARE ENGINEERING MCS-2 LECTURE # 3. SOFTWARE PROCESS  A software development process, also known as a software development life- cycle (SDLC), is.
Software Engineering Lecture # 1.
CHAPTER ONE Problem Solving © Prepared By: Razif Razali1.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Software Model Process
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Development Life Cycle (SDLC)
Software Development Life Cycle(SDLC)‏
Chapter 2 Software Development Model and 1. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
By : Hisham Kahlifa Shreef Foda Khaled monir Tamer medhat Supervisor : Dr Doaa Nabil.
SE 548 IŞIL ÖZTÜRK.  Software Development Life Cycle (SDLC ) is a framework that describes the activities performed at each stage of a software development.
Software Lifecycle Models Place of Testing in Software Lifecycle 1.
Software Development - Methodologies
Software Development.
Methodologies and Algorithms
Software Development Life Cycle (SDLC) by Manoj V. Nikum
Programming Paradigms
The Project Infrastructure
Lecture 3 Prescriptive Process Models
Fundamentals of Information Systems, Sixth Edition
Software Development methodologies
The Systems Engineering Context
SNS College of Engineering Coimbatore
Software Process Models
Models of Software Development Life Cycle (SDLC)
Chapter 2 SW Process Models
Software Process Models
Software Development Life Cycle (SDLC)
Software Life Cycle Models
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
IT Systems Analysis & Design
CMPE 412 Software Engineering
Requirements and the Software Lifecycle
Introduction to Software Engineering
Methodologies For Systems Analysis.
Introduction to OOSD– UFCFC Lecture Notes Week 1
Methodologies For Systems Analysis.
SDLC Model A framework that describes the activities performed at each stage of a software development project.
Chapter 2 Software Processes
Lecture 2 Revision of Models of a Software Process
Software life cycle models
Software Process Models
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Software Engineering Lecture 17.
Software Development Life Cycle Models
Programming Paradigms
SDLC (Software Development Life Cycle)
Time Scheduling and Project management
Presentation transcript:

Programming Language Syntax and semantics UNIT I Programming Language Syntax and semantics BByy 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 for Using SDLC 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 to use the Waterfall 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.

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

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 Spiral 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 Discover Design Develop Test Discover 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

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

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

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 See also the architecture chapter © SE, Design, Hans van Vliet

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 LISP/ML Applicative or Functional PROLOG Rule Based or Logic C++/ Java Object Oriented Cuda Parallel 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 edge(a,b). edge(a,c). edge(c,a). path(X,X). path(X,Y) :- edge(X,Y). path(X,Y) :- edge(X,Z), path(Z,Y). Reflexive transitive closure

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