SlideShare a Scribd company logo
By Ketema K.(Asst/Prof)
2
Intro.to Software Development Approaches
❖ Software development is a process to create computer
software (programs) using one or more specific programming
languages that provides functionality to address particular
business or personal objectives.
❖ Some of software development approaches are as follows.
◼ Waterfall
◼ Software Prototype model
◼ Incremental
◼ Iterative
◼ Spiral
◼ RAD
3
1. Waterfall
❖ The Waterfall Model was first Process Model to
be introduced.
❖ It is very simple to understand and use.
❖ Waterfall model is the earliest SDLC approach
that was used for software development .
4
Cont…
❖ The waterfall Model illustrates the software
development process in a linear sequential flow;
hence it is also referred to as a linear-sequential life
cycle model.
❖ This means that any phase in the development process
begins only if the previous phase is complete.
5
Cont…
◼ In a waterfall model, each phase must be completed
fully before the next phase can begin.
◼ This type of model is basically used for small
projects within certain requirements.
◼ At the end of each phase, a review takes place to
determine if the project is on the right path and
whether or not to continue or discard the project.
6
Cont…
❖ In this model the testing starts only after the
development is complete.
❖ In waterfall model phases do not overlap.
❖ It is the oldest development methodology.
7
Waterfall Model design
◼ Waterfall approach was first SDLC Model to be used
widely in Software Engineering to ensure success of
the project.
◼ In "The Waterfall" approach, the whole process of
software development is divided into separate phases.
◼ In Waterfall model, typically, the outcome of one phase
acts as the input for the next phase sequentially.
8
Cont…
9
The sequential phases in Waterfall model are:
◼ Requirement Gathering and analysis: All possible
requirements of the system to be developed are captured in this
phase and documented in a requirement specification doc.
◼ System Design: The requirement specifications from first phase
are studied in this phase and system design is prepared.
◼ System Design helps in specifying hardware and system
requirements and also helps in defining overall system
architecture.
10
Cont…
Implementation:
❖ With inputs from system design, the system is first
developed in small programs called units, which are
integrated in the next phase.
❖ Each unit is developed and tested for its functionality
which is referred to as Unit Testing.
11
Cont…
Integration and Testing: All the units developed in
the implementation phase are integrated into a system
after testing of each unit.
◼ Post integration the entire system is tested.
Deployment of system: Once the functional and
non functional testing is done, the product is
deployed in the customer environment or released into
the market.
12
Cont…
Maintenance: There are some issues which come up in
the client environment.
◼ To fix those issues patches are released.
◼ Also to enhance the product some better versions are
released.
◼ Maintenance is done to deliver these changes in the
customer environment.
13
Waterfall Model Application
❖ Some situations where the use of Waterfall
model is most appropriate are:
◼ Requirements are very well documented, clear and
fixed.
◼ Product definition is stable.
◼ Technology is understood and is not dynamic.
◼ There are no ambiguous requirements.
◼ Ample resources with required expertise are
available to support the product.
◼ The project is short
14
Waterfall model Advantages & Disadvantages
Advantages
◼ It allows for departmentalization and control.
◼ A schedule can be set with deadlines for each stage of
development and a product can proceed through the development
process model phases one by one.
◼ Development moves from concept, through design,
implementation, testing, installation, troubleshooting,
and ends up at operation and maintenance.
◼ Each phase of development proceeds in strict order.
15
Cont...
◼ Simple and easy to understand and use
◼ Easy to manage due to the rigidity of the model .
◼ each phase has specific deliverables and a review
process.
◼ Phases are processed and completed one at a time.
◼ Works well for smaller projects where requirements
are very well understood.
◼ Clearly defined stages.
◼ Well understood milestones.
◼ Easy to arrange tasks.
◼ Process and results are well documented.
16
Disadvantage
◼ It does not allow for much reflection or revision.
◼ Once an application is in the testing stage, it is
very difficult to go back and change something
that was not well-documented.
◼ No working software is produced until late during the life
cycle.
◼ High amounts of risk and uncertainty.
17
Con’t…
◼ Poor model for long and ongoing projects.
◼ Not suitable for the projects where requirements
are at a moderate to high risk of changing. So risk
and uncertainty is high with this process model.
◼ It is difficult to measure progress within stages.
◼ Cannot accommodate changing requirements.
◼ Not a good model for complex and object-
oriented projects
18
2. Software Prototyping
◼ It refers to building software application
prototypes which display the functionality of
the product under development but may not
actually hold the exact logic of the original
software.
◼ Create the incomplete versions of the software
program being developed.
◼ A prototype typically simulates only a few
aspects of, and may be completely different
from, the final product.
19
Cont…
◼ It enables to understand customer requirements
at an early stage of development.
◼ It helps to get valuable feedback from the
customer and helps software designers and
developers understand about what exactly is
expected from the product under development.
20
Following is the stepwise approach to design a software
prototype:
◼ Basic Requirement Identification
◼ Developing the initial Prototype
◼ Review of the Prototype
◼ Revise and enhance the Prototype
21
3. Incremental Build Model
◼ The model is designed, implemented and tested
incrementally (a little more is added each time).
◼ Finished when satisfies all the requirements.
◼ Combines the elements of the waterfall model
with the iterative philosophy of prototyping.
22
4. Iterative
◼ Iterative process starts with a simple implementation of
a small set of the software requirements and
iteratively enhances the evolving versions until the
complete system is implemented and ready to be
deployed.
◼ An iterative life cycle model does not attempt to
start with a full specification of requirements.
23
Cont…
◼ Development begins by specifying and
implementing just part of the software, which is
then reviewed in order to identify further
requirements.
◼ This process is then repeated, producing a new
version of the software at the end of each
iteration of the model.
24
Cont….
The pictorial representation of Iterative and Incremental
model:
25
Cont…
◼ The key to successful of an iterative model
is validation of requirements, and
verification & testing of each version of
the software against those requirements
within each cycle of the model.
26
Iterative Model Application
❖ This model is most often used in the following
scenarios:
✓ Requirements of the complete system are clearly defined and
understood.
✓ Major requirements must be defined; however, some
functionalities or requested enhancements may evolve with
time.
✓ There is a time to the market constraint.
27
Cont…
✓ A new technology is being used and is being learnt by
the development team while working on the project.
✓ Resources with needed skill set are not available and are
planned to be used on contract basis for specific
iterations
✓ There are some high risk features and goals which may
change in the future.
28
5. Spiral Model
◼ The spiral model combines the idea of iterative
development with the systematic, controlled aspects of
the waterfall model.
◼ Combines the features of the prototyping and the
waterfall model
◼ The spiral model is intended for large, expensive and
complicated projects.
29
Cont…
30
Spiral Model Application
❖ The following are the typical uses of Spiral model:
◼ When a budget constraint and risk evaluation is
important
◼ For medium to high-risk projects
◼ Long-term project commitment because of potential
changes to economic priorities as the requirements
change with time
31
Cont…
• Customer is not sure of their requirements which is usually the
case
• Requirements are complex and need evaluation to get clarity
• New product line which should be released in phases to get
enough customer feedback
• Significant changes are expected in the product during the
development cycle
32
6. RAD (Rapid Application Development)
◼ The RAD model is based on prototyping and
iterative development with no specific planning
involved.
◼ RAD focuses on gathering customer requirements
through workshops or focus groups, early testing of the
prototypes by the customer using iterative concept,
reuse of the existing prototypes (components),
continuous integration and rapid delivery.
◼ In RAD model the functional modules are developed
in parallel as prototypes and are integrated to make the
complete product for faster product delivery
33
RAD Model Design
◼ RAD model distributes the analysis, design,
build, and test phases into a series of short,
iterative development cycles.
◼ Following are the phases of RAD Model:
1. Business Modeling: development is designed in
terms of flow of information and the distribution of
information between various business channels.
34
Cont…
2.Data Modeling: The information gathered in the Business
Modeling phase is reviewed and analyzed to form sets of
data objects vital for the business. The attributes of all data
sets is identified and defined.
3. Process Modeling: any changes or enhancements to the
data object sets is defined in this phase.
▪ Process descriptions for adding , deleting, retrieving or
modifying a data object are given.
35
Cont…
4. Application Generation: The actual system is
built and coding is done by using automation tools
to convert process and data models into actual
prototypes.
5. Testing and Turnover: The overall testing time
is reduced in RAD model as the prototypes are
independently tested during every iteration.
However the data flow and the interfaces
between all the components need to be
thoroughly tested with complete test coverage.
36
RAD Model Application
◼ The following are the typical scenarios
where RAD can be used:
◼ RAD should be used only when a system can
be modularized to be delivered in incremental
manner.
◼ It should be used if there’s high availability of
designers for modeling
◼ It should be used only if the budget permits
use of automated code generating tools.
37
Cont…
◼ RAD SDLC model should be chosen only if
domain experts are available with relevant
business knowledge
◼ Should be used where the requirements
change during the course of the project and
working prototypes are to be presented to
customer in small iterations of 2- 3 months.
38
Advantages of the RAD Model
◼ Reduced development time.
◼ Increases reusability of components
◼ Quick initial reviews occur
◼ Encourages customer feedback
◼ Integration from very beginning solves a lot of
integration issues
39
Disadvantages of RAD model
◼ Depends on strong team and individual performances for
identifying business requirements.
◼ Only system that can be modularized can be built using
RAD
◼ Requires highly skilled developers/designers.
◼ High dependency on modeling skills
◼ Inapplicable to cheaper projects as cost of modeling
and automated code generation is very high.
40
Stages of Software Development Life Cycle
❖ Gathering the requirements for the product and
creating a task
◼ Planning
◼ preparing the architecture and design
◼ Implementation (includes the writing of program
code)
◼ Product trials (testing)
◼ Deployment and exploitation
◼ Support.
✓ Implementation, testing, deployment and support are
mostly accomplished using programming.
41
C# and .NET Framework
.NET Framework
❖ The .NET Framework (pronounced “dot net”) is a
software framework that runs primarily on Microsoft
Windows.
❖ It includes a large library and supports several
programming
❖ languages which allow language interoperability (each
language can use code written in other Languages).
42
Cont…
❖ The .NET library is available to all the programming
languages that .NET Supports
❖ Programs written for the .NET Framework execute in a
software environment, known as the Common
Language Runtime (CLR), an application virtual
machine that Provides important services such as
security, memory management, and exception
handling.
43
Cont…
❖ The class library and the CLR together establish the
.NET Framework.
◼ The .NET framework is a revolutionary platform that
helps you to write the following types of applications:
◼ Windows applications
◼ Web applications
◼ Web services
◼ Mobile Application
44
Cont…
❖ The .Net framework applications are multi-
platform applications.
❖ The framework has been designed to be used from
any of the following languages:
C#, C++, Visual Basic, Jscript, COBOL, etc.
❖ All these languages can access the framework as well
as communicate with each other.
45
Some of the components of the .Net framework:
◼ Common Language Runtime (CLR)
◼ The .Net Framework Class Library
◼ Common Language Specification
◼ Common Type System
◼ Metadata and Assemblies
◼ Windows Forms
46
Cont…
◼ ASP.Net and ASP.Net AJAX
◼ ADO.Net
◼ Windows Workflow Foundation (WF)
◼ Windows Presentation Foundation
◼ Windows Communication Foundation (WCF)
◼ LINQ
47
The C# Programming Language
◼ C# is a modern programming language for
development of software applications.
◼ C# is a modern, general-purpose, object-
oriented programming language developed by
Microsoft.
48
Cont…
◼ C# is designed for Common Language
Infrastructure (CLI), which consists of the
executable code and runtime
environment that allows use of various high-
level languages on different computer platforms
and architectures.
49
Cont…
◼ C# is a modern object-oriented, general-purpose
programming language, created and developed by
Microsoft together with the .NET platform.
◼ There is highly diverse software developed with C# and on
the .NET platform: office applications, web
applications, websites, desktop applications,
mobile applications, games and many others.
50
The following reasons make C# a widely used
professional language:
◼ It is a modern, general-purpose programming
language
◼ It is object oriented.
◼ It is component oriented.
◼ It is easy to learn.
◼ It is a structured language.
◼ It produces efficient programs.
◼ It can be compiled on a variety of computer
platforms.
◼ It is a part of .Net Framework.
51
The Microsoft.NET Framework
◼ The C# language is not distributed as a standalone product – it
is a part of the Microsoft .NET Framework platform
(pronounced "Microsoft dot net framework").
◼ .NET Framework generally consists of an environment for
the development and execution of programs, written in C# or
some other language, compatible with .NET (like VB.NET,
Managed C++, J# or F#).
52
Integrated Development Environment (IDE) for C#
◼ Microsoft provides the following development tools for
C# programming:
◼ Visual Studio 2010 (VS)
◼ Visual C# 2010 Express (VCE)
◼ Visual Web Developer
◼ Visual studio 2012
◼ Visual studio 2013
◼ Visual studio 2015
53
Cont…
◼ The.NET Framework runs on the Windows
operating system
◼ Mono is an open-source version of the .NET
Framework which includes a C# compiler and runs on
several operating systems, including various flavors of
Linux and Mac OS.
54
Why we choose C#?
◼ It is a modern programming language
◼ widely spread, used by millions of programmers around the entire
world.
◼ At the same time C# is a very simple and easy to learn (unlike C and
C++).
◼ It is natural to start with a language
◼ It is suitable for beginners
◼ widely used in the industry by many large companies,
◼ it one of the most popular programming languages nowadays.
55
C# Program Structure
A C# program consists of the following parts:
◼ Namespace declaration
◼ A class
◼ Class methods
◼ Class attributes
◼ A Main method
◼ Statements and Expressions
◼ Comments
56
Let us look at a simple code that prints the words "Hello World":
1. using System;
2. namespace HelloWorldApplication
3. {
4. class HelloWorld
5. {
6. static void Main(string[] args)
7. {
8. /* my first program in C# */
9. Console.WriteLine("Hello World");
10. Console.ReadKey();
11. }
12. }
13. }
57
Cont…
✓ The first line of the program using System;
✓ The using keyword is used to include the System namespace in
the program.
✓ A program generally has multiple using statements.
❖ The next line has the namespace declaration.
❖ A namespace is a collection of classes.
❖ The HelloWorldApplication namespace contains the
class HelloWorld.
58
Cont…
◼ The next line has a class declaration, the
class HelloWorld contains the data and method
definitions that your program uses.
◼ Classes generally contain multiple methods. Methods
define the behavior of the class. However,
the HelloWorld class has only one method Main.
59
Cont…
◼ The next line defines the Main method, which is the entry
point for all C# programs.
◼ The Main method states what the class does when executed.
◼ The next line /*...*/ is ignored by the compiler and it is put to
add comments in the program.
◼ The Main method specifies its behavior with the
statement Console.WriteLine("Hello World");
60
Cont…
◼ WriteLine is a method of the Console class defined in
the System namespace.
◼ This statement causes the message "Hello, World!" to
be displayed on the screen.
◼ The last line Console.ReadKey(); is for the VS.NET
Users.
◼ This makes the program wait for a key press and it
prevents the screen from running and closing quickly
when the program is launched from Visual Studio
.NET.
61
The following image illustrates the important parts of C# program.
62
Cont…
NB
◼ C# is case sensitive.
◼ All statements and expression must end with
a semicolon (;).
◼ The program execution starts at the Main
method.
◼ Unlike Java, program file name could be
different from the class name.
63
Compiling and Executing the Program
❖ If you are using Visual Studio.Net for compiling and executing
C# programs, take the following steps:
◼ Start Visual Studio.
◼ On the menu bar, choose File -> New -> Project.
◼ Choose Visual C# from templates, and then choose Windows.
◼ Choose Console Application.
◼ Specify a name for your project and click OK button.
◼ This creates a new project in Solution Explorer.
◼ Write code in the Code Editor.
64
C# and VB.NET
◼ CSharp and VB.NET are the two primary languages
used to program on the .NET Framework
environment.
◼ Both languages are use the same framework and they
both precompiled into the same byte code and then it
is compiled and run at runtime.
65
Cont…
◼ So we can say VB.NET and C# are functionally
equivalent.
◼ Both C# and Visual Basic.NET share structural
similarities with other modern high level languages such
as Java and C++ .
66
Cont...
◼ C# is case sensitive while Visual Basic .NET is not.
◼ In VB.NET "Example" and "example" are same , but in
CSHARP "Example" and "example" are two different
variable names.
◼ Also it is good to remember that C# statements always
terminated by a semicolon (;).
67
Differences between VB.NET and C#.
◼ Single Line Comments :
• VB.NET : ' ex: 'This is a single line comment
• CSHARP : // ex: //This is a single line comment
◼ Multi Line Comments :
• VB.NET : Not available
• CSHARP : /*..*/ ex: /*Multi line comments */
68
Cont…
◼ Conditional Statements
• VB.NET
If condition Then
'vb.net code
Else
'vb.net code
End If
69
Cont…
◼ CSHARP
if(condition)
{
//csharp code
}
else
{
//csharp code
}
Loops
▪ VB.NET
For counter As Integer = 0 To final
'vb.net code
Next
70
Cont…
CSHARP
for(int i=0;i < final;i++)
{
//csharp code
}
Operator (Equal)
VB.NET
a=b
CSHARP
a==b;
Declaration
VB.NET
Dim i as Integer = 10
◼ CSHARP
int i=10;
71
THANKS YOU !

More Related Content

PPT
Software Engineering (Process Models)
PPT
Process models
PDF
Ch 2
PPTX
Lecture 2 Software Development Process and SDCL models.pptx
PPTX
Software development process models
PPT
Process Model in Software Engineering.ppt
PPTX
SE-03.pptx
PPTX
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Software Engineering (Process Models)
Process models
Ch 2
Lecture 2 Software Development Process and SDCL models.pptx
Software development process models
Process Model in Software Engineering.ppt
SE-03.pptx
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...

Similar to Chapter 1 Introduction to C# Programming Language (20)

PPT
187202477-Models-of-SDLC-ppt-Original.ppt
PDF
FSE Chap 2.pdf fundamental of software engineering for second year software e...
PPTX
WaterFall Model & Spiral Mode
PPT
2. Software process
PPTX
pmse-sitttr-session-3.pptx
PPTX
2-models.pptx
PPTX
Project on software engineering types of models
PPTX
Unit 1 sepm process models
PPT
Lecture46jacysnsvyyhjkcrukmactukk 02.ppt
PPTX
Software Engg. process models
PDF
Security Cosc gvggghghhhhhhhhhhhhhhhhhhhhh
PPT
Chapter 1- Introduction to software engineering for CS.ppt
PPT
Chapter 1- Introduction for software.ppt
PPT
Soft lifecycle
PDF
Traditional Process Models
PPTX
Object Oriented Software engineering.pptx
PDF
Software Development Taxonomy
PPTX
Software development life cycle (SDLC) Models
PPTX
Software life cycle models
187202477-Models-of-SDLC-ppt-Original.ppt
FSE Chap 2.pdf fundamental of software engineering for second year software e...
WaterFall Model & Spiral Mode
2. Software process
pmse-sitttr-session-3.pptx
2-models.pptx
Project on software engineering types of models
Unit 1 sepm process models
Lecture46jacysnsvyyhjkcrukmactukk 02.ppt
Software Engg. process models
Security Cosc gvggghghhhhhhhhhhhhhhhhhhhhh
Chapter 1- Introduction to software engineering for CS.ppt
Chapter 1- Introduction for software.ppt
Soft lifecycle
Traditional Process Models
Object Oriented Software engineering.pptx
Software Development Taxonomy
Software development life cycle (SDLC) Models
Software life cycle models
Ad

Recently uploaded (20)

PDF
TR - Agricultural Crops Production NC III.pdf
PDF
Microbial disease of the cardiovascular and lymphatic systems
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PPTX
Pharma ospi slides which help in ospi learning
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
VCE English Exam - Section C Student Revision Booklet
PDF
01-Introduction-to-Information-Management.pdf
PDF
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PDF
Pre independence Education in Inndia.pdf
PDF
O7-L3 Supply Chain Operations - ICLT Program
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
TR - Agricultural Crops Production NC III.pdf
Microbial disease of the cardiovascular and lymphatic systems
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Final Presentation General Medicine 03-08-2024.pptx
Pharma ospi slides which help in ospi learning
2.FourierTransform-ShortQuestionswithAnswers.pdf
VCE English Exam - Section C Student Revision Booklet
01-Introduction-to-Information-Management.pdf
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
Pharmacology of Heart Failure /Pharmacotherapy of CHF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Supply Chain Operations Speaking Notes -ICLT Program
Abdominal Access Techniques with Prof. Dr. R K Mishra
Anesthesia in Laparoscopic Surgery in India
Module 4: Burden of Disease Tutorial Slides S2 2025
Pre independence Education in Inndia.pdf
O7-L3 Supply Chain Operations - ICLT Program
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
Ad

Chapter 1 Introduction to C# Programming Language

  • 2. 2 Intro.to Software Development Approaches ❖ Software development is a process to create computer software (programs) using one or more specific programming languages that provides functionality to address particular business or personal objectives. ❖ Some of software development approaches are as follows. ◼ Waterfall ◼ Software Prototype model ◼ Incremental ◼ Iterative ◼ Spiral ◼ RAD
  • 3. 3 1. Waterfall ❖ The Waterfall Model was first Process Model to be introduced. ❖ It is very simple to understand and use. ❖ Waterfall model is the earliest SDLC approach that was used for software development .
  • 4. 4 Cont… ❖ The waterfall Model illustrates the software development process in a linear sequential flow; hence it is also referred to as a linear-sequential life cycle model. ❖ This means that any phase in the development process begins only if the previous phase is complete.
  • 5. 5 Cont… ◼ In a waterfall model, each phase must be completed fully before the next phase can begin. ◼ This type of model is basically used for small projects within certain requirements. ◼ At the end of each phase, a review takes place to determine if the project is on the right path and whether or not to continue or discard the project.
  • 6. 6 Cont… ❖ In this model the testing starts only after the development is complete. ❖ In waterfall model phases do not overlap. ❖ It is the oldest development methodology.
  • 7. 7 Waterfall Model design ◼ Waterfall approach was first SDLC Model to be used widely in Software Engineering to ensure success of the project. ◼ In "The Waterfall" approach, the whole process of software development is divided into separate phases. ◼ In Waterfall model, typically, the outcome of one phase acts as the input for the next phase sequentially.
  • 9. 9 The sequential phases in Waterfall model are: ◼ Requirement Gathering and analysis: All possible requirements of the system to be developed are captured in this phase and documented in a requirement specification doc. ◼ System Design: The requirement specifications from first phase are studied in this phase and system design is prepared. ◼ System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture.
  • 10. 10 Cont… Implementation: ❖ With inputs from system design, the system is first developed in small programs called units, which are integrated in the next phase. ❖ Each unit is developed and tested for its functionality which is referred to as Unit Testing.
  • 11. 11 Cont… Integration and Testing: All the units developed in the implementation phase are integrated into a system after testing of each unit. ◼ Post integration the entire system is tested. Deployment of system: Once the functional and non functional testing is done, the product is deployed in the customer environment or released into the market.
  • 12. 12 Cont… Maintenance: There are some issues which come up in the client environment. ◼ To fix those issues patches are released. ◼ Also to enhance the product some better versions are released. ◼ Maintenance is done to deliver these changes in the customer environment.
  • 13. 13 Waterfall Model Application ❖ Some situations where the use of Waterfall model is most appropriate are: ◼ Requirements are very well documented, clear and fixed. ◼ Product definition is stable. ◼ Technology is understood and is not dynamic. ◼ There are no ambiguous requirements. ◼ Ample resources with required expertise are available to support the product. ◼ The project is short
  • 14. 14 Waterfall model Advantages & Disadvantages Advantages ◼ It allows for departmentalization and control. ◼ A schedule can be set with deadlines for each stage of development and a product can proceed through the development process model phases one by one. ◼ Development moves from concept, through design, implementation, testing, installation, troubleshooting, and ends up at operation and maintenance. ◼ Each phase of development proceeds in strict order.
  • 15. 15 Cont... ◼ Simple and easy to understand and use ◼ Easy to manage due to the rigidity of the model . ◼ each phase has specific deliverables and a review process. ◼ Phases are processed and completed one at a time. ◼ Works well for smaller projects where requirements are very well understood. ◼ Clearly defined stages. ◼ Well understood milestones. ◼ Easy to arrange tasks. ◼ Process and results are well documented.
  • 16. 16 Disadvantage ◼ It does not allow for much reflection or revision. ◼ Once an application is in the testing stage, it is very difficult to go back and change something that was not well-documented. ◼ No working software is produced until late during the life cycle. ◼ High amounts of risk and uncertainty.
  • 17. 17 Con’t… ◼ Poor model for long and ongoing projects. ◼ Not suitable for the projects where requirements are at a moderate to high risk of changing. So risk and uncertainty is high with this process model. ◼ It is difficult to measure progress within stages. ◼ Cannot accommodate changing requirements. ◼ Not a good model for complex and object- oriented projects
  • 18. 18 2. Software Prototyping ◼ It refers to building software application prototypes which display the functionality of the product under development but may not actually hold the exact logic of the original software. ◼ Create the incomplete versions of the software program being developed. ◼ A prototype typically simulates only a few aspects of, and may be completely different from, the final product.
  • 19. 19 Cont… ◼ It enables to understand customer requirements at an early stage of development. ◼ It helps to get valuable feedback from the customer and helps software designers and developers understand about what exactly is expected from the product under development.
  • 20. 20 Following is the stepwise approach to design a software prototype: ◼ Basic Requirement Identification ◼ Developing the initial Prototype ◼ Review of the Prototype ◼ Revise and enhance the Prototype
  • 21. 21 3. Incremental Build Model ◼ The model is designed, implemented and tested incrementally (a little more is added each time). ◼ Finished when satisfies all the requirements. ◼ Combines the elements of the waterfall model with the iterative philosophy of prototyping.
  • 22. 22 4. Iterative ◼ Iterative process starts with a simple implementation of a small set of the software requirements and iteratively enhances the evolving versions until the complete system is implemented and ready to be deployed. ◼ An iterative life cycle model does not attempt to start with a full specification of requirements.
  • 23. 23 Cont… ◼ Development begins by specifying and implementing just part of the software, which is then reviewed in order to identify further requirements. ◼ This process is then repeated, producing a new version of the software at the end of each iteration of the model.
  • 24. 24 Cont…. The pictorial representation of Iterative and Incremental model:
  • 25. 25 Cont… ◼ The key to successful of an iterative model is validation of requirements, and verification & testing of each version of the software against those requirements within each cycle of the model.
  • 26. 26 Iterative Model Application ❖ This model is most often used in the following scenarios: ✓ Requirements of the complete system are clearly defined and understood. ✓ Major requirements must be defined; however, some functionalities or requested enhancements may evolve with time. ✓ There is a time to the market constraint.
  • 27. 27 Cont… ✓ A new technology is being used and is being learnt by the development team while working on the project. ✓ Resources with needed skill set are not available and are planned to be used on contract basis for specific iterations ✓ There are some high risk features and goals which may change in the future.
  • 28. 28 5. Spiral Model ◼ The spiral model combines the idea of iterative development with the systematic, controlled aspects of the waterfall model. ◼ Combines the features of the prototyping and the waterfall model ◼ The spiral model is intended for large, expensive and complicated projects.
  • 30. 30 Spiral Model Application ❖ The following are the typical uses of Spiral model: ◼ When a budget constraint and risk evaluation is important ◼ For medium to high-risk projects ◼ Long-term project commitment because of potential changes to economic priorities as the requirements change with time
  • 31. 31 Cont… • Customer is not sure of their requirements which is usually the case • Requirements are complex and need evaluation to get clarity • New product line which should be released in phases to get enough customer feedback • Significant changes are expected in the product during the development cycle
  • 32. 32 6. RAD (Rapid Application Development) ◼ The RAD model is based on prototyping and iterative development with no specific planning involved. ◼ RAD focuses on gathering customer requirements through workshops or focus groups, early testing of the prototypes by the customer using iterative concept, reuse of the existing prototypes (components), continuous integration and rapid delivery. ◼ In RAD model the functional modules are developed in parallel as prototypes and are integrated to make the complete product for faster product delivery
  • 33. 33 RAD Model Design ◼ RAD model distributes the analysis, design, build, and test phases into a series of short, iterative development cycles. ◼ Following are the phases of RAD Model: 1. Business Modeling: development is designed in terms of flow of information and the distribution of information between various business channels.
  • 34. 34 Cont… 2.Data Modeling: The information gathered in the Business Modeling phase is reviewed and analyzed to form sets of data objects vital for the business. The attributes of all data sets is identified and defined. 3. Process Modeling: any changes or enhancements to the data object sets is defined in this phase. ▪ Process descriptions for adding , deleting, retrieving or modifying a data object are given.
  • 35. 35 Cont… 4. Application Generation: The actual system is built and coding is done by using automation tools to convert process and data models into actual prototypes. 5. Testing and Turnover: The overall testing time is reduced in RAD model as the prototypes are independently tested during every iteration. However the data flow and the interfaces between all the components need to be thoroughly tested with complete test coverage.
  • 36. 36 RAD Model Application ◼ The following are the typical scenarios where RAD can be used: ◼ RAD should be used only when a system can be modularized to be delivered in incremental manner. ◼ It should be used if there’s high availability of designers for modeling ◼ It should be used only if the budget permits use of automated code generating tools.
  • 37. 37 Cont… ◼ RAD SDLC model should be chosen only if domain experts are available with relevant business knowledge ◼ Should be used where the requirements change during the course of the project and working prototypes are to be presented to customer in small iterations of 2- 3 months.
  • 38. 38 Advantages of the RAD Model ◼ Reduced development time. ◼ Increases reusability of components ◼ Quick initial reviews occur ◼ Encourages customer feedback ◼ Integration from very beginning solves a lot of integration issues
  • 39. 39 Disadvantages of RAD model ◼ Depends on strong team and individual performances for identifying business requirements. ◼ Only system that can be modularized can be built using RAD ◼ Requires highly skilled developers/designers. ◼ High dependency on modeling skills ◼ Inapplicable to cheaper projects as cost of modeling and automated code generation is very high.
  • 40. 40 Stages of Software Development Life Cycle ❖ Gathering the requirements for the product and creating a task ◼ Planning ◼ preparing the architecture and design ◼ Implementation (includes the writing of program code) ◼ Product trials (testing) ◼ Deployment and exploitation ◼ Support. ✓ Implementation, testing, deployment and support are mostly accomplished using programming.
  • 41. 41 C# and .NET Framework .NET Framework ❖ The .NET Framework (pronounced “dot net”) is a software framework that runs primarily on Microsoft Windows. ❖ It includes a large library and supports several programming ❖ languages which allow language interoperability (each language can use code written in other Languages).
  • 42. 42 Cont… ❖ The .NET library is available to all the programming languages that .NET Supports ❖ Programs written for the .NET Framework execute in a software environment, known as the Common Language Runtime (CLR), an application virtual machine that Provides important services such as security, memory management, and exception handling.
  • 43. 43 Cont… ❖ The class library and the CLR together establish the .NET Framework. ◼ The .NET framework is a revolutionary platform that helps you to write the following types of applications: ◼ Windows applications ◼ Web applications ◼ Web services ◼ Mobile Application
  • 44. 44 Cont… ❖ The .Net framework applications are multi- platform applications. ❖ The framework has been designed to be used from any of the following languages: C#, C++, Visual Basic, Jscript, COBOL, etc. ❖ All these languages can access the framework as well as communicate with each other.
  • 45. 45 Some of the components of the .Net framework: ◼ Common Language Runtime (CLR) ◼ The .Net Framework Class Library ◼ Common Language Specification ◼ Common Type System ◼ Metadata and Assemblies ◼ Windows Forms
  • 46. 46 Cont… ◼ ASP.Net and ASP.Net AJAX ◼ ADO.Net ◼ Windows Workflow Foundation (WF) ◼ Windows Presentation Foundation ◼ Windows Communication Foundation (WCF) ◼ LINQ
  • 47. 47 The C# Programming Language ◼ C# is a modern programming language for development of software applications. ◼ C# is a modern, general-purpose, object- oriented programming language developed by Microsoft.
  • 48. 48 Cont… ◼ C# is designed for Common Language Infrastructure (CLI), which consists of the executable code and runtime environment that allows use of various high- level languages on different computer platforms and architectures.
  • 49. 49 Cont… ◼ C# is a modern object-oriented, general-purpose programming language, created and developed by Microsoft together with the .NET platform. ◼ There is highly diverse software developed with C# and on the .NET platform: office applications, web applications, websites, desktop applications, mobile applications, games and many others.
  • 50. 50 The following reasons make C# a widely used professional language: ◼ It is a modern, general-purpose programming language ◼ It is object oriented. ◼ It is component oriented. ◼ It is easy to learn. ◼ It is a structured language. ◼ It produces efficient programs. ◼ It can be compiled on a variety of computer platforms. ◼ It is a part of .Net Framework.
  • 51. 51 The Microsoft.NET Framework ◼ The C# language is not distributed as a standalone product – it is a part of the Microsoft .NET Framework platform (pronounced "Microsoft dot net framework"). ◼ .NET Framework generally consists of an environment for the development and execution of programs, written in C# or some other language, compatible with .NET (like VB.NET, Managed C++, J# or F#).
  • 52. 52 Integrated Development Environment (IDE) for C# ◼ Microsoft provides the following development tools for C# programming: ◼ Visual Studio 2010 (VS) ◼ Visual C# 2010 Express (VCE) ◼ Visual Web Developer ◼ Visual studio 2012 ◼ Visual studio 2013 ◼ Visual studio 2015
  • 53. 53 Cont… ◼ The.NET Framework runs on the Windows operating system ◼ Mono is an open-source version of the .NET Framework which includes a C# compiler and runs on several operating systems, including various flavors of Linux and Mac OS.
  • 54. 54 Why we choose C#? ◼ It is a modern programming language ◼ widely spread, used by millions of programmers around the entire world. ◼ At the same time C# is a very simple and easy to learn (unlike C and C++). ◼ It is natural to start with a language ◼ It is suitable for beginners ◼ widely used in the industry by many large companies, ◼ it one of the most popular programming languages nowadays.
  • 55. 55 C# Program Structure A C# program consists of the following parts: ◼ Namespace declaration ◼ A class ◼ Class methods ◼ Class attributes ◼ A Main method ◼ Statements and Expressions ◼ Comments
  • 56. 56 Let us look at a simple code that prints the words "Hello World": 1. using System; 2. namespace HelloWorldApplication 3. { 4. class HelloWorld 5. { 6. static void Main(string[] args) 7. { 8. /* my first program in C# */ 9. Console.WriteLine("Hello World"); 10. Console.ReadKey(); 11. } 12. } 13. }
  • 57. 57 Cont… ✓ The first line of the program using System; ✓ The using keyword is used to include the System namespace in the program. ✓ A program generally has multiple using statements. ❖ The next line has the namespace declaration. ❖ A namespace is a collection of classes. ❖ The HelloWorldApplication namespace contains the class HelloWorld.
  • 58. 58 Cont… ◼ The next line has a class declaration, the class HelloWorld contains the data and method definitions that your program uses. ◼ Classes generally contain multiple methods. Methods define the behavior of the class. However, the HelloWorld class has only one method Main.
  • 59. 59 Cont… ◼ The next line defines the Main method, which is the entry point for all C# programs. ◼ The Main method states what the class does when executed. ◼ The next line /*...*/ is ignored by the compiler and it is put to add comments in the program. ◼ The Main method specifies its behavior with the statement Console.WriteLine("Hello World");
  • 60. 60 Cont… ◼ WriteLine is a method of the Console class defined in the System namespace. ◼ This statement causes the message "Hello, World!" to be displayed on the screen. ◼ The last line Console.ReadKey(); is for the VS.NET Users. ◼ This makes the program wait for a key press and it prevents the screen from running and closing quickly when the program is launched from Visual Studio .NET.
  • 61. 61 The following image illustrates the important parts of C# program.
  • 62. 62 Cont… NB ◼ C# is case sensitive. ◼ All statements and expression must end with a semicolon (;). ◼ The program execution starts at the Main method. ◼ Unlike Java, program file name could be different from the class name.
  • 63. 63 Compiling and Executing the Program ❖ If you are using Visual Studio.Net for compiling and executing C# programs, take the following steps: ◼ Start Visual Studio. ◼ On the menu bar, choose File -> New -> Project. ◼ Choose Visual C# from templates, and then choose Windows. ◼ Choose Console Application. ◼ Specify a name for your project and click OK button. ◼ This creates a new project in Solution Explorer. ◼ Write code in the Code Editor.
  • 64. 64 C# and VB.NET ◼ CSharp and VB.NET are the two primary languages used to program on the .NET Framework environment. ◼ Both languages are use the same framework and they both precompiled into the same byte code and then it is compiled and run at runtime.
  • 65. 65 Cont… ◼ So we can say VB.NET and C# are functionally equivalent. ◼ Both C# and Visual Basic.NET share structural similarities with other modern high level languages such as Java and C++ .
  • 66. 66 Cont... ◼ C# is case sensitive while Visual Basic .NET is not. ◼ In VB.NET "Example" and "example" are same , but in CSHARP "Example" and "example" are two different variable names. ◼ Also it is good to remember that C# statements always terminated by a semicolon (;).
  • 67. 67 Differences between VB.NET and C#. ◼ Single Line Comments : • VB.NET : ' ex: 'This is a single line comment • CSHARP : // ex: //This is a single line comment ◼ Multi Line Comments : • VB.NET : Not available • CSHARP : /*..*/ ex: /*Multi line comments */
  • 68. 68 Cont… ◼ Conditional Statements • VB.NET If condition Then 'vb.net code Else 'vb.net code End If
  • 69. 69 Cont… ◼ CSHARP if(condition) { //csharp code } else { //csharp code } Loops ▪ VB.NET For counter As Integer = 0 To final 'vb.net code Next
  • 70. 70 Cont… CSHARP for(int i=0;i < final;i++) { //csharp code } Operator (Equal) VB.NET a=b CSHARP a==b; Declaration VB.NET Dim i as Integer = 10 ◼ CSHARP int i=10;