Wednesday, June 28, 2017

Rapid Application Development

2011- (1)past paper questions with answers 

Questions

  1.  Briefly describe what you understand by the Rapid Application Development(RAD).
  2.  List three advantages of RAD methodology and describe them.   
  3. List two Software Version Control systems. 
  4. What are the advantages of Decentralized Version Control Systems over Centralized Version Control Systems?(Your answer should include at least two valid points.) 
  5. Briefly describe what is mean by affordance in Human Computer Interaction (HCI).
  6. Explain why web applications are more vulnerable than stand-alone applications with the support of two valid points. 
  7.  Briefly describe what is mean by Extreme Programming(XP)  
  8.  List three issues with Iterative-Incremental applications development.
  9.  Explain why Agile Practices are suitable for RAD. 
  10. Describe what is meant by Software Internationalization and explain why much attention is paid on software internationalization when developing software.
  11. Walkthrough, Code reading, Inspection are three technical review methodologies that are used to detect flaws in requirements, design, code, test cases or other project artifacts. Briefly describe two of those methodologies.
  12. Distinguish between Throw-away prototyping and Iterative Development.

    ANSWERS 

    1. Rapid Application Development is an approach to building computer systems which combines Computer Assisted Software Engineering(CASE) tools & techniques, user driven prototyping & stringent project delivery time limits into a powerful, tested, reliable formula for excellent quality & productivity.
    2. Advantages of RAD
      •  Increase speed 
        • Increased development speed & decreased time to delivery.
        • Through the use of CASE tools, which focus on converting requirements to code as quickly as possible, as well as Time Boxing, in which features are pushed out to future releases in order to complete a feature light version quickly.
      •  Increased Quality
        • It is a primary focus of the RAD methodology.   
        • Build the systems that the users really need system has low maintenance costs.
      • Early visibility
        • Because of the incremental prototyping.
      • Greatly reduced  manual coding
        • Wizards, code generators, code reuse are mostly involved in RAD.
      • Possibly fewer defects
        • The CASE tools generate much of the code. 
    1. Version Control Systems
      • Source Code Control System(SCCS)
      • Concurrent Versions Systems(CVS)  
      • Centralized Version Control Systems(CVCS) 
      • Decentralized Version Control Systems(DVCS) 
    1. Advantages of DVCS
      •  Offline operation
        •  One of the main motivations behind DVCSs is the need of being able to collaborate offline.Most centralized approaches requires a network to operate with the repository server which introduces the problem of depending in a network of trust which could not be always guaranteed. Therefore, as in DVCSs each user has a first-class repository, people are able to work offline.
      •  Fast common operations 
        • Another consequence of this “network semi-independence” is that as the whole repository is at a local level, the most common operations (i.e.,commit, merge, etc) are performed really fast, decreasing the operation time overhead introduced in centralized models where these operations need to be done with the main server through a network connection. 
      • No canonical reference copy 
        • No reference copy of the code base exists by default, only working copies. This allow to different users to decide which one is going to be their mainline within a repository and also they can work more individually.
      • More security against catastrophic failure
        • One security problem of CVCSs is that in a likely scenario where a catastrophic event occurs in the main server, although people working with this repository probably have some copies of it, they do not have the whole version history and maybe not even the latest working copy and as a consequence the complete repository or a big part of it couldbe lost. The central server is a critical point in the system. In DVCSs, because of people having whole copies of the repository, even if a catastrophic failure occurs to one of them, there still existing probably unlimited copies of the whole repository and most probably some of themcompletely up-to-date. 
      • No central authority 
        • In DVCSs, every single user is the owner of his own repository and therefore they are full-permission users of it. This fact increases the collaboration rate in projects since no special permissions are needed to submit changes made by one user, like in centralized alternatives where only a few selected and trusted users have the right to submit changes. As a direct consequence, the figure of commiter becomes irrelevant(or at least partially).
      • Less necessary resources 
        • In large projects where a lot of people are working with a single central server, the resources requirements for this server could be really big, increasing the operational cost. With decentralized systems, the requirements of storage space, memory or network capacity are significantly lower (if any). 
      • Experimental branches 
        • Having local copies of the repository encourage user to develop new experimental features. These developers can create experimental branches on their own repository with the purpose of developing or experimenting with a new or existing feature and see the outcome of such modifications at a local level by comiting to local snapshots before including those changes in the main project. Also, as these “experimental branches” remain local, the developer does not feel restrained because of the fear of causing problems in an existing branch of a central repository. In addition, with cheap and fast branching operations, creating or deleting them do not suppose any operational overhead. 
      • Simple automatic merging  
        • The amount of information maintained by DVCSs make the merging operation very efficient and also automatic, a very important aspect in long-lived branches. This easy merging also encourages the users to keep their branches up-to-date with the mainline development, reducing in the process the amount of work for committers. Flexibility  The flexibility of a distributed system make possible to use several workflows in contrast with CVCSs where the only possible workflow is working with a centralized server. In this scenario, the decision of selecting the workflow depends on the people involved in the project. In DVCSs there are a lot of possible workflows but one of the most used is the Partner workflow.Full version history  When a user makes a checkout of a centralized repository, he only gets an snapshot of it.In contrast, when doing a checkout of a decentralized repository, the user copy all the previous versions and their history. 
    1. Affordance in HCI
      • The concept of affordances was quickly adopted in HCI and interaction design; it became popular among practitioners, researchers, and educators. For designers of interactive technologies the concept signified the promise of exploiting the power of perception in order to make everyday things more intuitive and, in general, more usable. Affordance is also considered a fundamental concept in HCI research and described as a basic design principle in HCI and interaction design textbooks. The use of affordance is not limited to the design of physical objects. In fact, the concept has been especially appealing to designers of graphical user interfaces. Compared to traditional industrial designers, user interface designers can more freely and easily define visual properties of the objects they create. 
    1. web applications are more vulnerable than stand-alone applications
    2. Extreme Programming
      • It is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development advocates frequent "releases" in short development cycles, which is intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted extreme programming include: code review, unit testing  of all code, avoiding programming of features until they are actually needed, a flat management structure, code simplicity and clarity, expecting changes in the customer's requirements as time passes and the problem is better understood, and frequent communication with the customer and among programmers. 
    1. Issues with Iterative- Incremental applications development
      • Each phase of an iteration is rigid with no overlaps 
      • Costly system architecture or design issues may arise because not all requirements are gathered up front for the entire life cycle   
    1. Agile practices are suitable for RAD
    •  By breaking down projects into small chunks, it makes it easy to prioritize and add or drop features mid project. Something that is impossible in traditional waterfall projects.Agile practices are suitable for RAD because
      • SPEED TO MARKET 
        • Agile lets you get your concept to your users as quickly as possible. 
        • During every sprint an agile project delivers something of value. 
        • At any point, you may determine you want to launch what has been delivered and start building a user base or testing your hypothesis. 
      • FLEXIBLE 
        •  Able to react and update the product according to market expands. 
        • Able to include great ideas on mid-project. 
      • RISK MANAGEMENT 
        • Product can be used early in the process by stakeholders and users. 
        • It helps to identify issues and feature deficits early in the process. 
        • It is not a problem to change  the scope midway through the project, something that would be impossible in a waterfall style project.
      •  COST CONTROL 
        • Agile is flexible with regard to scope.
        • Clients realize features they originally requested are no longer necessary; This allows them to launch sooner and pay less. 
        • Agile it’s about paying for only what you need. 
      • QUALITY 
        • Agile integrates testing throughout the process. 
        • Consistently delivering tested software means higher overall quality and less time spent on QAing the full application. 
      • RIGHT PRODUCT 
        • Incremental releases let you test your product early and often. 
        • It’s much easier to locate flaws and things that can be improved when you have an actual product to play with vs a series of designs. 
      • TRANSPARENCY 
        • Agile lets you see, feel and use a project consistently throughout the project.
    1. Software Internationalization 
    2. Technical reviews
      • Walkthroughs 
        • The most common kind of review is probably the informal walkthrough. The term "walkthrough" is loosely defined and refers to any meeting at which two or more developers review technical work with the purpose of improving its quality. Walkthroughs are useful to rapid development because you can use them to detect defects well before testing. The earliest time that testing can detect a requirements defect. A walkthrough can detect a requirements defect at specification time, before any design or code work is done. Walkthroughs can find between 30 and 70 percent of the errors in a program. 
      • Code reading 
        • Code reading is a somewhat more formal review process than a walkthrough but nominally applies only to code. In code reading, the author of the code hands out source listings to two or more reviewers. The reviewers read the code and report any errors to the author of the code.
      • Inspections 
        • It is  a kind of formal technical review that has been shown to be extremely effective in detecting defects throughout a project.
        • Developers receive special training in inspections and play specific roles during the inspection. 
        •  The "moderator" hands out the work product to be inspected before the inspection meeting. 
        •  The "reviewers" examine the work product before the meeting and use checklists to stimulate their review. 
        • During the inspection meeting, the "author" usually paraphrases the material being inspected, the reviewers identify errors, and the "scribe" records the errors. 
        • Throughout the inspection process you gather data on defects, hours spent correcting defects, and hours spent on inspections so that you can analyze the effectiveness of your software-development process and improve it.


No comments:

Post a Comment

Rapid Application Development

2015-(4) past paper questions with answers Questions State what is Scrum framework.  Justify the importance of Scrum Master role. Scr...