Grade 10 Computer Lesson 11 Completing An Application
Grade 10 Computer Lesson 11 Completing An Application
Grade 10 Computer Lesson 11 Completing An Application
Application
Competency
Run unit tests and debugging tools against a Web application
in Visual Studio
Learning Targets:
I can differentiate the approaches in software development projects.
I can identify the general steps in developing a Visual Basic .Net
application.
Software Development Life Cycle (SDLC)
A lot of time is
dedicated to making
sure that the
resources allocated
to the development
of the software
solution will be used
efficiently.
Software Development Life Cycle (SDLC)
The programmer is
not a one-man army
in making software
solutions and more
often than not, the
programmer is part
of a bigger team that
creates the overall
software solution
Software Development Life Cycle (SDLC)
• The Waterfall model is the earliest SDLC approach that was used for
software development.
• The waterfall Model illustrates the software development process in
a linear sequential flow.
• This means that any phase in the development process begins only
if the previous phase is complete.
• In this waterfall model, the phases do not overlap.
Waterfall Model
• In this Waterfall model,
typically, the outcome of one
phase acts as the input for
the next phase sequentially.
• The illustration is a
representation of the
different phases of the
Waterfall Model.
Waterfall Model
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.
Identification
This phase starts with gathering the business requirements in the
baseline spiral. In the subsequent spirals as the product matures,
identification of system requirements, subsystem requirements and
unit requirements are all done in this phase.
Design
The Design phase starts with the conceptual design
in the baseline spiral and involves architectural
design, logical design of modules, physical product
design and the final design in the subsequent
spirals.
Spiral Model - Design
Construct or Build
The Construct phase refers to production of the actual software
product at every spiral. In the baseline spiral, when the product is just
thought of and the design is being developed a POC (Proof of Concept)
is developed in this phase to get customer feedback.
This method is consistent with approaches that have multiple software builds and releases
which allows making an orderly transition to a maintenance activity. Another positive
aspect of this method is that the spiral model forces an early user involvement in the system
development effort.
On the other side, it takes a very strict management to complete such products and there is
a risk of running the spiral in an indefinite loop. So, the discipline of change and the extent
of taking change requests is very important to develop and deploy the product successfully.
Spiral Model - Pros and Cons
The following
illustration depicts
the different phases in
a V-Model of the
SDLC.
V-Model - Verification Phases
System Design
• Once you have the clear and detailed product requirements, it is
time to design the complete system.
• The system design will have the understanding and detailing the
complete hardware and communication setup for the product
under development.
• The system test plan is developed based on the system design.
Doing this at an earlier stage leaves more time for the actual test
execution later.
V-Model - Verification Phases
Architectural Design
• Architectural specifications are understood and designed in this phase.
Usually more than one technical approach is proposed and based on the
technical and financial feasibility the final decision is taken.
• The system design is broken down further into modules taking up
different functionality. This is also referred to as High Level Design (HLD).
• The data transfer and communication between the internal modules and
with the outside world (other systems) is clearly understood and defined
in this stage. With this information, integration tests can be designed and
documented during this stage.
V-Model - Verification Phases
Module Design
• In this phase, the detailed internal design for all the system modules
is specified, referred to as Low Level Design (LLD).
• It is important that the design is compatible with the other modules
in the system architecture and the other external systems.
• The unit tests are an essential part of any development process and
helps eliminate the maximum faults and errors at a very early stage.
• These unit tests can be designed at this stage based on the internal
module designs.
V-Model - Coding Phase
Unit Testing
Unit tests designed in the module design phase are
executed on the code during this validation phase.
Unit testing is the testing at code level and helps
eliminate bugs at an early stage, though all defects
cannot be uncovered by unit testing.
V-Model - Validation Phases
Integration Testing
Integration testing is associated with the
architectural design phase. Integration tests are
performed to test the coexistence and
communication of the internal modules within the
system.
V-Model - Validation Phases
System Testing
System testing is directly associated with the system
design phase. System tests check the entire system
functionality and the communication of the system
under development with external systems. Most of
the software and hardware compatibility issues can
be uncovered during this system test execution.
V-Model - Validation Phases
Acceptance Testing
Acceptance testing is associated with the business
requirement analysis phase and involves testing the
product in user environment. Acceptance tests uncover the
compatibility issues with the other systems available in the
user environment. It also discovers the non-functional
issues such as load and performance defects in the actual
user environment.
V-Model - Application
This model is ideal for small projects with one or two developers
working together and is also useful for academic or practice
projects. It is an ideal model for the product where requirements
are not well understood and the final release date is not given.
Big Bang Model ─ Pros and Cons
The advantage of this Big Bang Model is that it is very simple
and requires very little or no planning. Easy to manage and no
formal procedure are required.
However, the Big Bang Model is a very high risk model and
changes in the requirements or misunderstood requirements
may even lead to complete reversal or scraping of the project.
It is ideal for repetitive or small projects with minimum risks.
Big Bang Model ─ Pros and Cons
• Data Modelling
The information gathered in the Business
Modelling 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.
The relation between these data objects are
established and defined in detail in relevance to
the business model.
RAD Model - Design
• Process Modelling
• The data object sets defined in the Data Modelling
phase are converted to establish the business
information flow needed to achieve specific business
objectives as per the business model. The process
model for 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.
RAD Model - Design
• Application Generation
• The actual system is built and coding is done by
using automation tools to convert process and
data models into actual prototypes.
RAD Model - Design
• Testing and Turnover
• The overall testing time is reduced in the 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.
Since most of the programming components have
already been tested, it reduces the risk of any major
RAD Model - Design
RAD Model Vs Traditional SDLC
Prototyping is used to allow the users evaluate developer proposals and try
them out before implementation. It also helps understand the requirements
which are user specific and may not have been considered by the developer
during product design.
Software Prototype Model
Throwaway/Rapid Prototyping
Throwaway prototyping is also called as rapid or close ended
prototyping. This type of prototyping uses very little efforts with
minimum requirement analysis to build a prototype. Once the
actual requirements are understood, the prototype is
discarded and the actual system is developed with a much
clear understanding of user requirements.
Software Prototype Types
Evolutionary Prototyping
Evolutionary prototyping also called as breadboard prototyping is
based on building actual functional prototypes with minimal
functionality in the beginning. The prototype developed forms the
heart of the future prototypes on top of which the entire system is built.
By using evolutionary prototyping, the well-understood requirements
are included in the prototype and the requirements are added as and
when they are understood.
Software Prototype Types
Incremental Prototyping
Incremental prototyping refers to building multiple
functional prototypes of the various sub-systems and
then integrating all the available prototypes to form a
complete system.
Software Prototype Types
Extreme Prototyping
Extreme prototyping is used in the web development domain. It consists of
three sequential phases. First, a basic prototype with all the existing pages is
presented in the HTML format. Then the data processing is simulated using
a prototype services layer. Finally, the services are implemented and
integrated to the final prototype. This process is called Extreme Prototyping
used to draw attention to the second phase of the process, where a fully
functional UI is developed with very little regard to the actual services.
Software Prototype Application
After you have added objects to a form, you can set their
properties in the Properties window or in the Code Editor.
Development Process
After you have set the initial properties for the form and its
objects, you can add code that runs in response to events.
Events occur when different actions are performed on a
control or objects.
Development Process