Uploaded by iqramultaji

SOFTWARE A#1

advertisement
Assignment #1 (Theory)
Bioinformatics Software Development
Iqra Mahmood
SP19-BSI-004
Q#01. What is Software Process. What are generic framework activities in a software process
A software process (also known as software methodology) is a set of related activities that leads to the
production of the software. These activities may involve the development of the software from the
scratch, or, modifying an existing system.
Any software process must include the following four activities:




Software specification (or requirements engineering): Define the main functionalities of the
software and the constraints around them.
Software design and implementation: The software is to be designed and programmed.
Software verification and validation: The software must conform to its specification and meet
the customer's needs.
Software evolution (software maintenance): The software is being modified to meet customer
and market requirements changes.
In practice, they include sub-activities such as requirements validation, architectural design, unit testing,
…etc. There are also supporting activities such as configuration and change management, quality
assurance, project management, user experience.
There are five generic process framework activities:
1. Communication:
The software development starts with the communication between customer and developer.
2. Planning:
It consists of complete estimation, scheduling for project development and tracking.
3. Modeling:


Modeling consists of complete requirement analysis and the design of the project like
algorithm, flowchart etc.
The algorithm is the step-by-step solution of the problem and the flow chart shows a
complete flow diagram of a program.
4. Construction:




Construction consists of code generation and the testing part.
Coding part implements the design details using an appropriate programming language.
Testing is to check whether the flow of coding is correct or not.
Testing also check that the program provides desired output.
5. Deployment:


Deployment step consists of delivering the product to the customer and take feedback
from them.
If the customer wants some corrections or demands for the additional capabilities, then
the change is required for improvement in the quality of the software.
Q#02. What are prescriptive process models and what are their strengths and weaknesses.
A prescriptive process model is a model that describes "how to do" according to a certain software
process system. A prescriptive model prescribes how a new software system should be developed.
Prescriptive models are used as guidelines or frameworks to organize and structure how software
development activities should be performed, and in what order.
Examples of Prescriptive Process Models:
1. Waterfall Model
In a waterfall model, each phase must be completed fully before the next phase can begin. This type of
model is basically used for the project which is small and there are no uncertain requirements. In this
model the testing starts only after the development is complete.
Advantages of waterfall model:



This model is simple and easy to understand and use.
In this model phases are processed and completed one at a time. Phases do not overlap.
Waterfall model works well for smaller projects where requirements are very well understood.
Disadvantages of waterfall model:





Once an application is in the testing stage, it is very difficult to go back and change something that
was not well-thought out in the concept stage.
High amounts of risk and uncertainty.
Not a good model for complex and object-oriented projects.
Poor model for long and ongoing projects.
Not suitable for the projects where requirements are at a moderate to high risk of changing.
2. Incremental Process Model
In incremental model the whole requirement is divided into various builds. Multiple development cycles
take place here, making the life cycle a “multi-waterfall” cycle. Cycles are divided up into smaller, more
easily managed modules. Each module passes through the requirements, design, implementation and
testing phases. A working version of software is produced during the first module, so you have working
software early on during the software life cycle. Each subsequent release of the module adds function to
the previous release. The process continues till the complete system is achieved.
Advantages of Incremental model:





Generates working software quickly and early during the software life cycle.
This model is more flexible – less costly to change scope and requirements.
It is easier to test and debug during a smaller iteration.
In this model customer can respond to each built.
Easier to manage risk because risky pieces are identified and handled during it’d iteration.
Disadvantages of Incremental model:



Needs good planning and design.
Needs a clear and complete definition of the whole system before it can be broken down and built
incrementally.
Total cost is higher than waterfall.
3. The RAD Model
RAD model is Rapid Application Development model. It is a type of incremental model. In RAD model the
components or functions are developed in parallel as if they were mini projects. The developments are
time boxed, delivered and then assembled into a working prototype. This can quickly give the customer
something to see and use and to provide feedback regarding the delivery and their requirements.
Advantages of the RAD model:



Reduced development time.
Increases reusability of components
Encourages customer feedback
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.
Q#03. What is agile software development and how it differs from traditional software
development methods
Agile software development is the software development process used to design complicated software.
It is basically used when the software is quite sensitive and complicated. It is used when security is much
important. It is used by professionals in order to develop the software. Unlike the traditional approaches
of SDLC, Agile approaches are precise and customer friendly.
Following table explains how it differs from traditional software development.
Traditional Software Development
Agile Software Development
It is used to develop the simple software.
It is used to develop the complicated software.
In this methodology, testing is done once the
development phase is totally completed.
In this methodology, testing and development
processes are performed concurrently.
It provides less security.
It provides high security.
It provides less functionality in the software.
It provides all the functionality needed by the
users.
It is basically used by freshers.
It is used by professionals.
Development cost is less using this
methodology.
Development cost is high using this
methodology.
It majorly consists of five phases.
It consists only three phases.
It is less used by software development firms.
It is normally used by software development
firms.
Download