Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3
Assignment 7 + 8
3.4: Extreme programming expresses user requirements as stories, with each
story written on a card. Discuss the advantages and disadvantages of this approach to requirements description. Solution: Advantages: The use of user stories is not unique to Extreme Programming - user stories are widely-used in Agile especially Scrum. They are not necessarily written down on cards. A user story is considered a “placeholder for conversation” - it is intended only to be a short and succinct description of the user need and it is expected that the developer(s) responsible for implementing the user story will further elaborate the details based on direct communication with the user. The primary advantage of a user story is that it is short and concise and it expresses the requirement from the perspective of what the user business need is rather than attempting to tell a developer how to satisfy that need. It is lightweight, extremely adaptable, and engineered to make changes and uncertainty manageable. Disadvantages: It relies on direct communications to further elaborate the details of the requirement and some developers may not be very skilled in doing that and it is hard to sell in many corporate environments and hard to learn if you come from the same. 3.8: You are a software manager in a company that develops critical control software for aircraft. You are responsible for the development of a software design support system that supports the translation of software requirements to a formal software specification (discussed in Chapter 13). Comment on the advantages and disadvantages of the following development strategies: a. Collect the requirements for such a system from software engineers and external stakeholders (such as the regulatory certification authority) and develop the system using a plan-driven approach. b. Develop a prototype using a scripting language, such as Ruby or Python, evaluate this prototype with software engineers and other stakeholders, then review the system requirements. Redevelop the final system using Java. c. Develop the system in Java using an agile approach with a user involved in the development team. Solution: a. While working on such a systems, it becomes difficult to estimate the time and effort required to solve such problem, but I identified the issue and solve it in such a way that it will not impact the organization in long run Advantages: - There would be a team of software engineers, who will decide the development platform for the system. - Highly qualified team, which will give very accurate and on time solutions to the problems may occur to our system. - System requirements will be developed using several Visual Design software available to confirm the requirement meets our aim. - Suggesting the Java as development platform which will make the overall delivery of the system fast and reliable. It’s also portable to make java application available on different computers. - Deciding on the approach chosen we can again enhance the overall system performance. Disadvantages: - System design must be accurate so that no flaws will come into the system. - Challenges must be handled at the same time, and no challenges must be postponed as it may be going to affect the system. - Team Reliability and dependency. b. Advantages: - A highly qualified team, which will give you a very accurate and on time solutions to be problems which can occur to our system. - System requirements will be developed using several visual design software available to confirm the requirements to meet expectations. Disadvantages: - System design should be very accurate so that no flaws will come into the system. - Challenges must be handled at the same time, no challenges must be postpone as it may be going to affect the system. c. Advantages: - Java is a popular programming language and easy to use for develop the system. - Using the agile approach help communicate and update customers' requests continuously and regularly Disadvantages: - Java's performance is not really optimal compared to the new programming languages nowaday - Under agile development, the main disadvantage is the client expectation increases too much and the product delivery requires utmost care and time needs to be devoted to the whole structure of the project. 4.3: Describe the concept of separation of concerns in your own words. Solution: Separation of concerns is a design principle for separating a computer program into distinct sections, so that each section addresses a separate concern. Separation of Concerns can mean separation of dependencies or separation of relationships. The idea of Separation of Concerns is to separate the system into smaller components, functions, so that they are less common, or as less dependent on each other as possible. When components are integrated into the system, they interact with each other through Interface information, or open APIs, without knowing how those components are built. Some advantages are: - Code can be easier to read and maintain - The process grows faster, because of the components and features that can be developed independently of each other, by different teams - Components can be updated and modified separately - Components can be reused