CC3018NI – Advanced Semester One, 2011-2012 Answer ALL questions in Section A AND TWO questions from Section B.

Section A – includes Short Answer Questions 1-5 and Question 6 based on a Case Study. Answer all questions

1. Explain the following terms in relation to development – giving two examples of each: a) problem domain b) model. (6 marks)

 Problem Domain: A problem domain is the area of expertise or application that needs to be examined to solve a problem. A problem domain is simply looking at only the topics of an individual's interest, and excluding everything else.

 Model: A model is an abstraction of some aspect of an existing or planned system. Mod- els are created to serve particular purposes, for example, to present a human-understandable description of some aspect of a system or to present information in a form that can be mechanically analyzed.

2. Summaries the general areas of guidance which might be given by a Method. (6 marks)  1) Identification of required software 2) Analysis of the 3) Detailed specification of the software requirements 4) 5) Programming 6) Testing 7) Maintenance 3. Write brief notes on each of the following pairs of terms: a) i) Structured ii) Object-Oriented b) i) Waterfall ii) Incremental/Iterative c) i) Heavyweight ii) Lightweight (6 marks  Structured Programming: (sometimes known as modular programming) is a subset of procedural programming that enforces a logical structure on the program being written to make it more efficient and easier to understand and modify. Certain languages such as Ada, Pascal, and dBASE are designed with features that encourage or enforce a logical program structure.

 Object-Oriented Programming: Object-oriented programming (OOP) is a programming language model organized around objects rather than "actions" and data rather than logic. Historically, a program has been viewed as a logical procedure that takes input data, processes it, and produces output data.

 Waterfall Methodology: The is a sequential (non-iterative) design process, used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of conception, initiation, analysis, design, construction, testing, production/implementation and maintenance.

 Incremental/Iterative Development Methodology: Iterative and Incremental development is any combination of both iterative design or iterative method and incremental build model for software development. The combination is of long standing and has been widely suggested for large development efforts.

 Heavyweight Methodology: Heavyweight methodologies are considered the traditional way of software development. These are based on step by step evolution approach. Several steps in this process include, defining requirement, solution formation, testing and development. In this process it is also mandate to prepare a document that has a set of requirement at the beginning of the project

 Lightweight Methodology: [Software development] methodologies that focus on the use of as little process as possible to obtain good results. Often proportioned to the size or risk of the project. strives to be the lightest methodology worthy of the name, although the Chaos methodology seems to have less in it than XP 4. Briefly describe four key features which typical Agile methods have in common. (4 marks)  “Individuals and interactions over processes and tools  Working software over comprehensive documentation  Customer collaboration over contract negotiation  Responding to change over following a plan

5. a) In what circumstances would you be likely to use a heavyweight technique such as SSADM? Explain your answer. (4 marks)

 SSADM divides an application development project into modules, stages, steps, and tasks, and provides a framework for describing projects in a fashion suited to managing the project. SSADM's objectives are to:

 Improve & control

 Make more effective use of experienced and inexperienced development staff

 Develop better quality systems

 Make projects resilient to the loss of staff

 Enable projects to be supported by computer-based tools such as computer-aided systems

 Establish a framework for good communications between participants in a project

I prefer to use SSADM where

 Requirements are clear  Time cost and quality are variable and feature is fixed  Experience team  Highly defined requirements

b) When might you prefer to use an Agile software development method such as DSDM? Explain your answer. (4 marks)  If time, cost, quality is fixed and features are variable in that time I prefer to use DSDM.  If the requirements are not clear but they are focusing on the quality product in that situations we should use agile methodology because it help to gather requirement with frequently collaboration and meeting with the customer, daily meeting with the staff.  The projects are incrementally steered by both client and developer together so that by the time the projects final time box has finished the client has what they need and the developer is not out of pocket. Highly prioritized requirement should be deliver in the usable form within fixed period of time.  DSDM is not only about developing new solutions; projects to enhance existing solutions are also well suited to the DSDM approach.  We recognize and value the various Agile approaches and practices and believe that good Agile can be a single or blended approach, whichever is the right solution for your project environment. As the use of Agile increases, new ideas surface frequently, and this is why DSDM sees the need to evolve and embrace the wider Agile community for the greater good and to continually improve what is seen as best practice

6. Consider the Case Study below (Tennis Club). a) Suppose that the team of Developers that you lead are familiar only with SSADM and DSDM. Which of the two methods would you choose in this case and why? (5 marks)  If my team is only familiar with SSADM and DSDM I choose DSDM because following reasons:  The product owner is ready to involve till complete of the project.  MoSCo prioritized features like S1, T1 and B1 to be available for use within two months. The rest of the system could be deployed later – preferably within 6 months.  Time, cost, and quality are fixed only features are variable.  Review of pre-project and post-project. b) Suppose that DSDM is chosen. i) Explain – in relation to this case study - how you will go about planning the development process. (5 marks)  I will plan the project for development process in relation to case study:  Identify the team and their responsibility for the particular project  Identify the specific time period like start time ending time and Very important features deliver time etc.  Focus on the requirements like:  Very important – S1, T1, B1  These would be very valuable – B2, B3, B4  Would be useful – T2, B5, C1,  Would like to explore the possibility of these at some point if not too expensive – S2, S3, B6

ii) Produce a plan indicating the various milestones, who will be involved and when, what activities will take place and when. Your plan should include brief explanations/rationale. (15 marks)  The required resources and their roles for the Tennis Courts Booking System

S.N Task Duration Resources Milestone Dependencies 1 Pre-Project 2 Days PM, M, BA Terms of Reference document 2 Feasibility 7 Days PM, SD, M, Outline 1 SE Project Plan 3 Foundation 7 Days PM, M, SE Refined 2 Project Plan 4 Exploration, Engineering 164 Days PM, SE, SD, 3 and Deployment D, T, BA 4.1 Time Box 1 44 Days PM, SE, SD, Workable D, T, BA features S1, T1, B1 4.2 Time Box 2 44 Days PM, SE, SD, Workable D, T, BA Features B2, B3, B4 4.3 Time Box 3 44 Days PM, SE, SD, Workable D, T, BA Features T2, B5, C1, 4.4 Timebox 4 Project review 30 Days PM, SE, SD, Final and final documentation D, T, BA document 5 Post-project 2 Days TBP, M, PM, Benefits of BA project

 Reasoning choosing the DSDM  1. Tennis Courts Booking System project plan includes 5 phases: like Feasibility, Foundation, Exploration, Engineering & Development. In the Pre-project and post-project will be carried out project plan. DSDM methodology contains all the plan and phases. The Tennis Courts Booking System plan follows DSDM.  2. The all work of project is carried out in small period of time depending on work load and allowed time i.e. Timebox. is key technique used in to carry out development project in DSDM.  3. The milestones of the project include: Project plan in Feasibility, Refined project plan in Foundation and Deployed products in timeboxes. The recognized milestones match that of DSDM phase’s outcomes.  4. The project plan activity contains of task such as prototype of in the Tennis Courts Booking System. The development procedure in iterative as well. Tennis Courts Booking System is completed in two iteration. DSDM include key technique modelling and iterative development. Hence, the project plan follows DSDM.  5. Roles and Responsibilities as allocated to Human capitals from development team and stakeholder. The roles and resources are allocating to task. DSDM requires to allocate role and responsibility. Hence, the project plan is following DSDM.

c) Summaries the key differences in the way that the system would be developed if SSADM were used. What would be different from the users’ point of view? (5 marks)  The Very important – S1, T1, B1 feature may not possible to deliver within 2 months  There is no chance to iteration and timeboxing  The user should wait for use the project until closure of project  There might possible to more possible to daily meeting with the development in time of development  Some project features might be lacking

Section B - Answer 2 questions 1. For many SSADM analysis techniques there is a corresponding UML technique with a similar aim or which shows similar information. a) List four such SSADM techniques – each with its UML approximate equivalent. – i.e. 8 techniques in all. Sketch a simple example of the key product of each technique. Ensure that you use correct UML or SSADM notation as appropriate and that you label the diagrams. (12 marks)  User Involvement  Three Views of SSADM o Functionality/Processing o Data o Events  Top Down Approach  Separation of Logical and Physical Model

b) Compare each pair of techniques – making clear the similarities and differences (in terms of their purpose, how they are used and what they show). (8 marks)

2. a) Describe Scrum and DSDM. Your description should include their general values/concepts, principles, techniques/practices. (12 marks)  Scrum  “Scrum…is a framework within which you can employ various processes and techniques…within which complex products can be developed.  An Empirical Methodology for Maximizing ROI of Software Development Projects  Disciplined Management Methodology  There is a simple, Boolean test for whether a project is practicing SCRUM  SCRUM has specific roles  SCRUM has specific practices  SCRUM has specific artifacts  Everything else is not SCRUM  SCRUM is commitment-oriented: chicken and pigs  SCRUM is results-oriented: projects produce increments of shippable products, activities are time boxed  SCRUM is disciplined: there are practices you must follow in specified time table

SCRUM -Roles •The Product Owner •The Scrum Master •The Team

SCRUM -Practices  The Sprint Planning Meeting  The Sprint  The Sprint Review Meeting  The Sprint Retrospective  The Daily Scrum

SCRUM -Artifacts  The Product Backlog  The Sprint Backlog  The Sprint Burndown Chart  The Product Increment

DSDM  1990’s –RAD was launched No commonly agreed definition of RAD processes 1993  many vendor and tools Customer needed to change the development process  DSDM Consortium –Jan 1994 OBJECTIVE Jointly developing and promoting an independent RAD framework

DSDM Work Group  Technical  Policy and Procedures (Replaced by Training and Accreditation)  Promotional

The projects are incrementally steered by both client and developer together so that by the time the projects final time box has finished the client has what they need and the developer is not out of pocket. b) Compare and critically evaluate the two method (8 marks)  Agile terminology may vary from method to method, but the principle and the practice are similar. In DSDM, development work is termed the ‘engineering activity’, and the output of each iteration is called the ‘emerging solution’. In Scrum the output is termed a ‘potentially releasable increment’.

Under both methods, each item developed, whether an item on a Scrum ‘Product Backlog’ or an entry on a DSDM ‘Prioritized Requirements List’ needs a tight completion definition to ensure that the correct quality is achieved. In Scrum an increment is described as “Done” when it meets a “Definition of Done” for the Scrum Team. And it is a pre-condition before starting each increment that the ‘definition of done’ for the items subject to work for that increment must be agreed before the team can plan for the developed in the time available – the stricter the quality requirements the more time will be needed per product backlog item, and therefore less items should be attempted for that iteration.

But it is unclear (or at least not specified) in the Scrum Guide as to when this ‘definition of done’ is agreed, the implication should be that tight criteria should only be agreed where this adds value and does not delay a solution. In practice one can use the rule of making the decision on the necessary quality at the ‘latest responsible moment’ (more on this in my forthcoming book) when the quality/time trade-offs can be understood in the light of progress to date and actual feedback from implementation. In DSDM as this definition work is carried out during the Foundations phase of the project, there is the danger that over-specification of quality based on unfounded assumptions may take place. The DSDM guidance does advise that any ‘definition of done’ work upfront during the Foundations phase should be reviewed regularly throughout the project lifecycle, but leadership is required to ensure that this does not encourage ‘Big Design Up-Front’ (BDUF), a signature feature of ‘waterfall’ approaches that are the antithesis of agile…

3. a) Describe SSADM and RUP. Your description should include a summary of their stage/phases, activities, techniques. (12 marks)  SSADM –Introduction  set of standards developed in the early 80s  most mature and widely adopted structured methods for government computer projects in the United Kingdom  uses a combination of text and diagrams throughout the whole life cycle of a system design (initial design idea to the actual physical design of the application)  SSADM is a Waterfall approach of Information System Design  Rigorous document-led approach to system design

Structured –Shared Chars.  They structure project into small, well defined activity and specify the sequence and interaction of these activities  They use diagrammatic and other modelling techniques to give a more precise (structured) definition that is understandable by both users and developers.

SSADM –Concepts  User Involvement  Three Views of SSADM o Functionality/Processing o Data o Events  Top Down Approach  Separation of Logical and Physical Models

SSADM -Components  Structural Standards  Procedural Standards  Documentation Standard

RUP Rational  Software Engineering Process  Is a process product  Enhances team productivity  Activities create and maintain models (semantically rich representation of system)  Is a guide for effective use of UML 

b) Compare and critically evaluate the two methods (8 marks)  SSADM (Structured Systems Analysis & Design Method) is a widely-used computer application development method in the UK, where its use is often specified as a requirement for government computing projects. It is increasingly being adopted by the public sector in Europe. SSADM is in the public domain, and is formally specified in British Standard BS7738.

SSADM divides an application development project into modules, stages, steps, and tasks, and provides a framework for describing projects in a fashion suited to managing the project. SSADM's objectives are to:

 Improve project management & control

 Make more effective use of experienced and inexperienced development staff

 Develop better quality systems  Make projects resilient to the loss of staff

 Enable projects to be supported by computer-based tools such as computer-aided software engineering systems

 Establish a framework for good communications between participants in a project

SSADM covers those aspects of the life-cycle of a system from the feasibility study stage to the production of a physical design; it is generally used in conjunction with other methods, such as PRINCE, which is concerned with the broader aspects of project management.

In detail, SSADM sets out a cascade or waterfall view of systems development, in which there are a series of steps, each of which leads to the next step. (This might be contrasted with the rapid application development - RAD - method, which pre-supposes a need to conduct steps in parallel.). SSADM's steps, or stages, are:

 Feasibility

 Investigation of the current environment

 Business systems options

 Definition of requirements

 Technical system options

 Logical design

 Physical design

For each stage, SSADM sets out a series of techniques and procedures, and conventions for recording and communicating information pertaining to these - both in textual and diagramatic form. SSADM is a very comprehensive model, and a characteristic of the method is that projects may use only those elements of SSADM appropriate to the project. SSADM is supported by a number of CASE tool providers.

RUP

(RUP) is an object-oriented and Web-enabled program development methodology. According to Rational (developers of Rational Rose and the Unified ), RUP is like an online mentor that provides guidelines, templates, and examples for all aspects and stages of program development. RUP and similar products -- such as Object-Oriented Software Process (OOSP), and the OPEN Process -- are comprehensive software engineering tools that combine the procedural aspects of development (such as defined stages, techniques, and practices) with other components of development (such as documents, models, manuals, code, and so on) within a unifying framework.

 RUP establishes four phases of development, each of which is organized into a number of separate iterations that must satisfy defined criteria before the next phase is undertaken: in the inception phase, developers define the scope of the project and its business case; in the elaboration phase, developers analyze the project's needs in greater detail and define its architectural foundation; in the construction phase, developers create the application design and source code; and in the transition phase, developers deliver the system to users. RUP provides a prototype at the completion of each iteration. The product also includes process support for Java 2 Enterprise Edition (J2EE) and BEA (WebLogic) development, and supplies an HTML-based description of the unified process that an organization can customize for its own use.