1. What is the difference between model and Methodology? List popular Software models and methodologies. 2.

What is Extreme programming(xp)? It is a model or a methodology? What are the basic practices in XP?

Extreme Programming (or XP) is a set of values, principles and practices for rapidly developing high-quality software that provides the highest value for the customer in the fastest way possible. XP is extreme in the sense that it takes 12 well-known software development "best practices" to their logical extremes -- turning them all up to "10".
Extreme Programming is a methodology. It is a light weighted, repeatable process for developing software. Basic Practices in XP:

1. The Planning Game: Business and development cooperate to produce the maximum business value as rapidly as possible. The planning game happens at various scales, but the basic rules are always the same: 1. Business comes up with a list of desired features for the system. Each feature is written out as a User Story, which gives the feature a name, and describes in broad strokes what is required. User stories are typically written on 4x6 cards. 2. Development estimates how much effort each story will take, and how much effort the team can produce in a given time interval (the iteration). 3. Business then decides which stories to implement in what order, as well as when and how often to produce a production releases of the system. 2. Small Releases: Start with the smallest useful feature set. Release early and often, adding a few features each time. 3. System Metaphor: Each project has an organizing metaphor, which provides an easy to remember naming convention. 4. Simple Design: Always use the simplest possible design that gets the job done. The requirements will change tomorrow, so only do what's needed to meet today's requirements. 5. Continuous Testing: Before programmers add a feature, they write a test for it. When the suite runs, the job is done. Tests in XP come in two basic flavors. 1. Unit Tests are automated tests written by the developers to test functionality as they write it. Each unit test typically tests only a single class, or a small cluster of classes. Unit tests are typically written using a unit testing framework, such as JUnit. 2. Acceptance Tests (also known as Functional Tests) are specified by the customer to test that the overall system is functioning as specified. Acceptance tests typically test the entire system, or some large chunk of it. When all the acceptance tests pass for a given user story, that story is considered complete. At the very least, an acceptance test could consist of a script of user interface actions and expected results that a human can run. Ideally acceptance tests should be automated, either using the unit testing framework, or a separate acceptance testing framework. 6. Refactoring: Refactor out any duplicate code generated in a coding session. You can do this with confidence that you didn't break anything because you have the tests.

It specifies . Any developer is expect to be able to work on any part of the codebase at any time. 11. not by the skills required to develop the application but by the design and marketing point of view. develop and maintain software systems. you have to imagine it. You know whom you need to satisfy. 10. 4. 40-Hour Work Week: Programmers go home on time. you shouldn't be able to tell by looking at it who on the team has touched a specific piece of code. Understanding the need and Analyzing it to get the best out of it is a challenge here. you have a specific face of "end . a customer proxy (usually the product manager) is used instead. in Custom Software development. The tests have to run 100% both before and after integration. the software process focuses on the construction tasks rather than the output products.user" in front of you. What are the four important attributes which all software products should have? Suggest four other attributes that may sometimes be significant.7. 9. Coding Standards: Everyone codes to the same standards. Market Surveys and general Customer Demand analysis may help a company to reduce the risk factor and think about some innovations over existing similar solutions. On the other hand. What are the differences between generic software product development and custom software development? Generic software product is the one. Generic purpose software development is tough as compared with custom made. 12.user" has no face. someone who will actually be using the system. you will need to "imagine" what an end-user requires. For commercial software with lots of customers. Ideally. What is the difference between a software process model and a software process? Suggest Two ways in which a software process model might be helpful in identifying possible process Improvements Software Process: (Action plan) A set of activities undertakes to manage. which is developed for general purpose. 8. that is. 5. Here. Pair Programming: All production code is written by two programmers sitting at one machine. In Generic software product design and development. Collective Code Ownership: No single person "owns" a module. Custom software development is done to satisfy a particular need of a particular client. In other words. all code is reviewed as it is written. Continuous Integration: All changes are integrated into the codebase at least daily. Planning and reaching the goals within dead-line adds a value to your software development excellence as a professional service provider. the term "end . But multiple consecutive weeks of overtime are treated as a sign that something is very wrong with the process. up to one week of overtime is allowed. 3. On-site Customer: Development team has continuous access to a real live customer. Essentially. In crunch mode.

2. Five Types of Method Support of CASE tools Analysis: Requirement analyzing. 3. diagram. A concept built upon client-customer satisfaction. A role/action model This represents the roles of the people involved in the software process and the activities for which they are responsible. A workflow model this shows the sequence of activities in the process along With their inputs. Designing: CASE tools include Text. It's a concept. each of which carries out some data transformation.techniques to perform the tasks. 1. such as a specification. A dataflow or activity model This represents the process as a set of activities. A holistic guestimation and estimation to get the work done right and right away. The activities in this model represent human actions. about various factors that would be a constraint in the near future. the actors who execute the activities. Software process model: A software process model is an abstract representation of the software process. outputs and dependencies. It is a Plan of Action. 6. The activities here may represent transfOJmations carried out by people or by computers. It shows how the input to the process. their roles and the artifacts produced. Software engineering methods became widely used only when CASE technology became available to support them. Suggest five types of method support that can be provided by case tools. A concept built upon getting the task or project completed in the most effective and efficient manner using technology and technique. time estimation methods are also part of CASE tools. is transformed to an output. A concept which looks to forewarn the participants in the task or project. . and word editor for designing software. such as a design.

Global competition: Competitive pressures are changing the nature of software. 10. A functional perspective where CASE tools are classified according to their specific function. There are several ways to classify CASE tools. 8. Responsiveness: New Businesses must continually respond to their changing environment. identify other problems and challenges that software engineering is likely to face in the 21st century. Documenting: One of the methods of CASE tool is report generator which is often used for documenting data. file comparator. CASE technology classifications help managers to understand the types of CASE tools and their role in Supporting software process activities. 9. Apart from the challenges of heterogeneity. 3. I discuss CASE tools from three of these perspectives: 1.Code Generator: The CASE tools may also include a code generator that automatically generates source code from the system model and some process guidance for software engineers. A process perspective where tools are classified according to the process activities that they support. lDiscuss whether the introduction of advanced CASE technology is likely to have thE! same consequences for . Suggest how a CASE technology classification scheme may be helpful to managers responsible for CASE system procurement. Openness: Centralized IT is no longer viable. Adequacy: Software must be good enough for its purpose. 11. Testing: CASE tools are also used for testing data generator. each of which gives us a different perspective on these tools. 7. 2. the introduction of technology has caused profound changes in the labour market and. Adaptiveness: Software must be adaptive to respond to rapid business change. In this section. What are the five components of a design method? Take any method you know and describe its components. Resilience: Software must be resilient to cope with change. An integration perspective where CASE tools are classified according to how they are organized into integrated units that provide support for one or more Process activities. rapid delivery and trust. displaced people from jobs. Historically. Explain how both the waterfall model of the software process and the prototyping model can be accommodated in the spiral process model. temporarily at least. AS5ess the completeness of the method that lfOU have chosen.

is it ethical for the engineer~. If you think that it will reduce job opportunities. If you don't think it will. explain why not.software engineers. affected to passively or actively resist the introduction of this technology? .

Sign up to vote on this title
UsefulNot useful