Group 4 - Methodology













Muhammad Nur Khaliq Bin Norsalim 01DDT17F1039

Durratun Nasihah Binti Che Lateh 01DIS17F1071

Muhammad Syazwan Nadzmi Bin Mohd Salwazi 01DIS17F1073

Muhammad Arif Bin Shahril Anuar 01DIS17f1079

Muhammad Sufi Asraf Bin Sabri 01DIS17F1081

Daniel Iskandar Agus Bin Faisal 01DIS17f1089

Ifwat Irsyad Bin Shamsul Hadi 01DIS17f1091

Veennosh Nedunchezhian 01DIS17F2019

Anbukarasee Perumal 01DDT17F2052




Post 1 Waterfall model

The Waterfall Model was the first Process Model to be introduced. It is also referred to as a linear-sequential life cycle model. It is very simple to understand and use. In a waterfall model, each phase must be completed before the next phase can begin and there is no overlapping in the phases.

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 - 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 this Waterfall model, typically, the outcome of one phase acts as the input for the next phase sequentially.
The following illustration is a representation of the different phases of the Waterfall Model.

Phases in Waterfall model

·        Requirement Gathering and Analysis - All possible requirements of the system to be developed are captured in this phase and documented in a requirement specification document.

·        System Design – The requirement specifications from first phase are studied in this phase and the system design is prepared.

·        Implementation – With inputs from the system design, the system is first developed in small programs called units, which are integrated in the next phase.

·        Integration and Testing − All the units developed in the implementation phase are integrated into a system after testing of each unit.

·        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. 

·        Maintenance − There are some issues which come up in the client environment. To fix those issues, patches are released.

Application
Every software developed is different and requires a suitable SDLC approach to be followed based on the internal and external factors. 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.

Advantages

The advantages of waterfall development are that 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.
Some of the major advantages of the Waterfall Model are as follows −
·        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.

Disadvantages
The disadvantage of waterfall development is that it does not allow 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 or thought upon in the concept stage.
The major disadvantages of the Waterfall Model are as follows −
·        No working software is produced until late during the life cycle.
·        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. So, risk and uncertainty is high with this process model.
·        It is difficult to measure progress within stages.
·        Cannot accommodate changing requirements.
·        Adjusting scope during the life cycle can end a project.
·  Integration is done as a "big-bang. at the very end, which doesn't allow identifying any technological or business bottleneck or challenges early.

Post 2 Iterative Model



What is iterative model?

Iterative model is a particular implementation of a software development life cycle (SDLC) that focuses on an initial, simplified implementation, which then progressively gains more complexity and a broader feature set until the final system is complete. When discussing the iterative method, the concept of incremental development will also often be used liberally and interchangeably, which describes the incremental alterations made during the design and implementation of each new iteration.
Process of iterative model.
Unlike the more traditional waterfall model, which focuses on a stringent step-by-step process of development stages, the iterative model is best thought of as a cyclical process. After an initial planning phase, a small handful of stages are repeated over and over, with each completion of the cycle incrementally improving and iterating on the software. Enhancements can quickly be recognized and implemented throughout each iteration, allowing the next iteration to be at least marginally better than the last.
§  Planning & Requirements: As with most any development project, the first step is go through an initial planning stage to map out the specification documents, establish software or hardware requirements, and generally prepare for the upcoming stages of the cycle.

§  Analysis & Design: Once planning is complete, an analysis is performed to nail down the appropriate business logic, database models, and the like that will be required at this stage in the project. The design stage also occurs here, establishing any technical requirements (languages, data layers, services, etc) that will be utilized in order to meet the needs of the analysis stage.

§  Implementation: With the planning and analysis out of the way, the actual implementation and coding process can now begin. All planning, specification, and design docs up to this point are coded and implemented into this initial iteration of the project.

§  Testing: Once this current build iteration has been coded and implemented, the next step is to go through a series of testing procedures to identify and locate any potential bugs or issues that have have cropped up.

§  Evaluation: Once all prior stages have been completed, it is time for a thorough evaluation of development up to this stage. This allows the entire team, as well as clients or other outside parties, to examine where the project is at, where it needs to be, what can or should change, and so on. 
  Advantages                                
·        Implemented during the earlier stages of the development process.
·        Allows the team to find functional or design related flaws as early as possible.
·        Easily adaptable to the ever changing needs of the project as well as the client.
·        It is best suited for agile organisations.
·        Parallel development can be planned.
·        Less time is spent on documenting and more on designing
   Disadvantages
·        To implement iterative model more resources may be required.
·        It is not suitable for smaller projects.
·        Project progress is highly dependent upon the risk analysis phase.
·        Defining increments may require definition of the complete system.
·        It is not very suitable for changing requirements.
·        More management attention is required.

Post 3 Agile methodology
Agile methodology is a practice that promotes continuous iteration of development and testing throughout the software development lifecycle of the project. Both development and testing activities are concurrent unlike the Waterfall model





Value

1.     Focus should be more on individuals and interactions instead of processes and tools
2.     Working software is more important that comprehensive documentation
3.     Customer collaboration is more vital than contract negotiation
4.     The process should respond to change rather than follow a plan
Principles
1.     Deliver customer satisfaction by delivering valuable software continuously
2.     Always accept change of requirements matter how early or late in the project
3.     Deliver software that works within a shorter timescale
4.     Both developers and business professionals must work closely together daily throughout the duration of the project
5.     Information is best transferred between parties in face-to-face conversations
6.     Motivate people to build a project by creating an environment of appreciation, trust, and empowerment
7.     Working software is the key measure of progress
8.     The agile process promotes sustainable development
9.     Continuous attention to excellence and quality in technical development and design boosts the agility
10.         10 Simplicity is a vital part of effective agile management

11.         Self-organized teams produce the best architecture, requirements, and design
12.         Teams should reflect through inspection and adaption to be more effective
Step
1.     Requirement
The purpose of this phase is to investigate all the requirement and problem for this project. The investigation is anticipated step because the outcome will affect whole development process. A key part of the investigation is a feasibility study that reviews anticipated cost and benefit and recommends a course of action based on operational, technical, and economic
2.     Design and Analysis
The purpose of the analysis and design phase is to design a model of the system. The first step is brainstorming about the system design, where we documented what the system must have. Analysis and design is important to determine what the system needs, as well as how they can be met, who will be responsible for individual pieces of the project, and what sort of timeline should be expected.
3.     Build
The purpose of build phase is to create a physical model that will satisfy all documented needs for the system design. At this stage, we design the interface of the system and identify the necessary needs for the system.
4.     Test
The testing phase is where we focus on investigation and discovery if the system have any errors.
5.     Iteration
The evaluation phase is where we focus to test the system if it can run without any problems and maintain the system so that it can be used.



Post 4 Reuse-oriented model



The reuse-oriented model, also called reuse-oriented development (ROD), is a method of software development in which a program is refined by producing a sequence of prototypes called models, each of which is automatically derived from the preceding one according to a sequence of defined rules.
The reuse-oriented model can reduce the overall cost of software development compared with more tedious manual methods. It can also save time because each phase of the process builds on the previous phase which has already been refined. When carefully carried out, ROD can minimize the likelihood of errors or bugs making their way into the final product.
The reuse-oriented model is not always practical in its pure form because a full repertoire of reusable components may not be available. In such instances, some new program components must be designed. If not thoughtfully done, ROD can lead to compromises in perceived requirements, resulting in a product that does not fully meet the needs of its intended users.
1.     Component Analysis:- According to given requirement, component is selected to implement that requirement specification. That is not possible the selected component provide the complete functionality, but that is possible the component used provide some of the functionality required.

2.     Requirement Modification:- Information about component that is selected during component analysis is used to analysis requirement specification. Requirements are modified according to available components. Requirement modification is critical then component analysis activity is reused to find relative solution.

3.     System design with reuse:- During this stage the design of the system is build.  Designer must consider the reused component and organize the framework. If reused component is not available then new software is develop.

4.     Development and Integration:- Components and COTS system are integrated to develop new software. Integration in this model is part of development rather than separate activity.

  
Advantages
1.    It can reduce the overall cost of software development as compared to other model.
2.    It can reduce the risk.
3.    It can save the time of software development. b/c testing of component is minimize.
4.    Faster delivery of software.

Disadvantages
1.       Reuse-oriented model is not always practical in its pure form.
2.    Compromises in Requirement may lead to a system that does not meet the real requirement of the user.
3.   Organization using the reusable component, are not able to control the new version of component, this may lead to lost control over the system evolution.





Comments

Popular posts from this blog

Group 1 - Post 2 Iterative Model

Reuse-oriented Model (Group 1)

Wedding events