BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

Similar documents
Chapter 6: Software Evolution and Reengineering

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

A New Divide & Conquer Software Process Model

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

Software Engineering Lecture 5 Agile Software Development

Lectures 2 & 3. Software Processes. Software Engineering, COMP201 Slide 1

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

V Model material adapted from Steve Easterbrook. Waterfall Model material adapted from Steve Easterbrook. Lifecycle of Software Projects

Introduction to Systems Analysis and Design

Introduction to Software Engineering

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

Objectives. Rapid software development. Topics covered. Rapid software development. Requirements. Characteristics of RAD processes

SWE 211 Software Processes

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Digital Industries Apprenticeship: Occupational Brief. Software Tester. March 2016

2 Why is systems development difficult and risky? 3 How do businesses use the systems development life cycle (SDLC) process?

A Guide to the Business Analysis Body of Knowledge (BABOK Guide), Version 2.0 Skillport

Pertemuan 2. Software Engineering: The Process

Sistemi ICT per il Business Networking

Software Life Cycle. Main Topics. Introduction

Information Systems Development

SOFTWARE ENGINEERING SOFTWARE MAINTENANCE

Sample Exam ISTQB Agile Foundation Questions. Exam Prepared By

Component-based Development Process and Component Lifecycle

Software Development Methodologies. CSC 440: Software Engineering Slide #1

MINGGU Ke 1 Analisa dan Perancangan Sistem Informasi

Requirements Analysis and Design Definition. Chapter Study Group Learning Materials

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

SDLC Models- A Survey

Developing Software Quality Plans a Ten Step Process. Phil Robinson Lonsdale Systems. Software Quality Plans. We all agree that you need one

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Chapter 3 Software Process Model

6/29/ Professor Lili Saghafi

Software Development Life Cycle:

Research Article / Paper / Case Study Available online at: Analysis of Strengths and Weakness of SDLC Models Shikha Verma Delhi India

Intermediate Certificate in Software Testing Syllabus. Version 1.4

03. Perspective Process Models

Introduction to Agile/Extreme Programming

Fundamentals of Business Analysis including BCS Requirements Engineering

Agile Development Doesn t Have to Mean Fragile Enterprise Processes

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF INFORMATION TECHNOLOGY QUESTION BANK

CMMI-DEV V1.3 CMMI for Development Version 1.3 Quick Reference Guide

Evolutionary Differences Between CMM for Software and the CMMI

Formal Techniques in Large-Scale Software Engineering

DEVELOP QUALITY CHARACTERISTICS BASED QUALITY EVALUATION PROCESS FOR READY TO USE SOFTWARE PRODUCTS

Copyright Software Engineering Competence Center

AGILE SOLUTIONS. Agile Basics

Enterprise Architecture: an ideal discipline for use in Supply Chain Management

Case Study: How to Eliminate Flaws of Waterfall and Agile Development Processes Using a Hybrid Model

Rekayasa Perangkat Lunak 2 (IN043): Pertemuan 10. * Construction, Installation and Operations * Agile Method Software Development

Number: DI-IPSC-81427B Approval Date:

Introduction to software testing and quality process

Introduction to Software Testing

Chapter 8. Systems Development. Ralph M. Stair George W. Reynolds

Agile Software Development. Agile Software Development Basics. Principles of the Agile Alliance. Agile Manifesto. Agenda. Agile software development

Rapid software development

REQUIREMENTS FOR SAFETY RELATED SOFTWARE IN DEFENCE EQUIPMENT PART 1: REQUIREMENTS

An Evolutionary Lifecycle Model with Agile Practices for Software Development at ABB

Waterfall model is the earliest SDLC approach that was used for software development.

0 Introduction Test strategy A Test Strategy for single high-level test B Combined testing strategy for high-level tests...

Object-Oriented and Classical Software Engineering

Session 11E Adopting Agile Ground Software Development. Supannika Mobasser The Aerospace Corporation

IE 366 Requirements Development

Implementing Data Warehousing Methodology: Guidelines for Success

Translate stakeholder needs into strategy. Governance is about negotiating and deciding amongst different stakeholders value interests.

Selecting Software Development Life Cycles. Adapted from Chapter 4, Futrell

18-642: Software Development Processes

NAME (as it appears on your UF ID): (Please PRINT) CEN Software Engineering

[control] [data] [process] [strategy] [partners] [testing] [validation]

[Name] [ ID] [Contact Number]

THE ADVANTAGES OF AGILE METHODOLOGIES APPLIED IN THE ICT DEVELOPMENT PROJECTS

Object-Oriented and Classical Software Engineering THE SOFTWARE PROCESS 9/17/2017. CHAPTER 3 Slide 3.2. Stephen R. Schach. Overview Slide 3.

Protecting Information Assets - Week 13 - Application Development Security. MIS 5206 Protecting Information Assets

Software Engineering II - Exercise

SE420 Software Quality Assurance

Part 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software?

1) Introduction to Information Systems

CMMI-SVC V1.3 CMMI for Services Version 1.3 Quick Reference Guide

Integration and Testing

CSE320 :: Gurbakash Phonsa: Assistant Professor : CSE. Software Engineering

TECHNICAL REVIEWS AND AUDITS

Agile Quality Management

INF5181: Process Improvement and Agile Methods in Systems Development

ISTQB Sample Question Paper Dump #11

Extreme Programming, an agile software development process

Compliance driven Integrated circuit development based on ISO26262

Reducing Business Risk

System and Software Engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1

What are requirements? Basics of Requirement Engineering. Definition of a Stakeholder. Stated Vs. Real Requirements. Stated Vs.

Software development activities

Criteria for Method Selection and Process Design of a Technical Development Strategy

Joined-up Requirements: Business Goals to System Tests

Chapter 1 Systems Development in an Organization Context

Testing. CxOne Standard

User Involvement in Project Success

Data Collection for Agile Projects Blaze Smallwood ICEAA Conference 2016

Command and Control Software Development Lessons Learned. Lt Col Michael D. Sarchet Deputy Director, Space Systems Command and Control Division

A Primer for the Project Management Process by David W. Larsen 1. Table of Contents

Software Engineering COMP 201

Software Quality. A Definition of Quality. Definition of Software Quality. Definition of Implicit Requirements

Transcription:

BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2 Friday 30 th September 2016 - Morning Answer any THREE questions out of FIVE. All questions carry equal marks. Time: THREE hours Answer any Section A questions you attempt in Answer Book A Answer any Section B questions you attempt in Answer Book B The marks given in brackets are indicative of the weight given to each part of the question. Calculators are NOT allowed in this examination. General Comments The overall pass rate is a little lower than recent sittings. The following maybe significant in explaining this poor performance: 1. Coverage of the syllabus. Of particular concern is the lack of foundational knowledge, resulting in candidates using common sense interpretation as a substitute for depth in basic principles and concepts of software engineering. In terms of breadth of coverage, many candidates appear to have good knowledge of traditional methods, but limited knowledge on modern methods, tools, and techniques as identified in the new syllabus. Furthermore, particular areas of the syllabus such as Software metrics (Q1), and on OCL and UML (Q5) exhibited the poorest set of responses from the candidates, and may highlight an area of weakness over many years in the delivery of that syllabus topic in some centres. 2. Subject awareness. A successful learner should provide more breadth in responses given to all parts of the question by reading more widely publications within the profession as well as recommended text. 3. Examination techniques. There are still instances of candidates answering a question in too much detail resulting in no attempt or very shallow responses to other parts of the question itself, the likely result of which is insufficient to compensate for the marks lost by not completing all components of questions. 4. Presentation. It is important that candidate responses to questions are legible, wellstructured, formatted, with good use of English, and appropriate to the questions and rubric of the paper itself.

SECTION A A1. a) Reliability and Usability are important software quality attributes. Give a brief explanation of both attributes and discuss which of these attributes is easier to quantify and measure. (8 marks) b) Object Points and Function Points are general, high level system size metrics. Which aspects of the software system are taken into account in the Object Point metric, and which in the Function Point metric? (8 marks) c) ISO standards define a set of software quality characteristics and sub-characteristics. They specify which quality characteristics are influenced by which subcharacteristics. i. Discuss briefly quality sub-characteristics affecting software reliability and software usability. (5 marks) ii. Explain why highly reliable systems tend to be less efficient. (4 marks) Answer Pointers A good answer should cover the following points:. a) There are many definitions of software reliability, but most of them define reliability in terms of probability of failure free operation e.g. Software reliability is the probability that a system will operate without failure under given conditions for a given time interval. This implies that reliability can be easily quantified and can be measured directly. Usability can be defined as The capability of the software product to be understood, learned, used and attractive to the user when used under specified conditions or as The ease of understanding, learning, using, etc. All software aspects mentioned above are subjective and can t be measured explicitly. This implies that usability is more difficult to quantify and measure. b) Object points are based on the following elements of the application: number of screens, number of reports, number of 3GL components. Function points are based on the following elements of the application: number of input types, number of output types, number of enquiry types, number of logical internal files, number of interfaces. c) i. According to the ISO standard (e.g. 9126), reliability is influenced by the following sub-characteristics: maturity, fault tolerance, recoverability, reliability compliance. At least two sub-characteristics should be discussed. According to the ISO standard, usability is influenced by the following subcharacteristics: understandability, learnability, operability, attractiveness, usability compliance. At least three sub-characteristics should be discussed.

ii. For highly reliable systems (e.g. safety-critical systems) some extra precautions must be taken and implemented. Basically when a fault occurs, the software must continue to operate. This of course requires an extra code. In general, extra often redundant code to detect exceptional conditions reduces software execution speed and increases memory requirements. Therefore, higher reliability results in lower efficiency. Examiner s Guidance Notes: This question assesses a candidate s knowledge and awareness of software metrics and software quality characteristics/attributes. More than 55% of candidates attempted this question, but only a small number produced reasonable answers. In general the results are poor mainly due to unclear and irrelevant answers. Many candidates did not provide proper explanations/definitions of software reliability and usability in part (a). Many answers were irrelevant. Part (b) was reasonably answered by a small number of candidates only. Many answers were irrelevant e.g. object-oriented metrics were discussed instead of object points. Only a small number of candidates answered part (c)(i) reasonably well. Many answers were irrelevant or/and incorrect. The same comment applies to part c(ii). A2. a) With respect to Lehman's laws of software evolution, state the two most fundamental laws and explain their implication for software lifecycle management. (5 marks) b) When you are assessing a legacy system, you have to look at it from a business perspective and a technical perspective. From a business perspective, you have to decide whether the business really needs the system. From a technical perspective, you have to assess the quality of the system and its related support software and hardware. You then use a combination of the business value and the system quality to take one of the following informed decisions: scrap the system, re-engineer the system, replace the system, continue the system s maintenance. Your task is to assess legacy systems in your organization and decide what would be the most appropriate strategy for maintaining these systems. i. Discuss possible factors you would use when assessing the technical quality of the legacy system. (10 marks)

ii. Assume that you assessed four systems and the results of the assessment are as follows: System A: high quality, low business value System B: high quality, high business value System C: low quality, low business value System D: low quality, high business value What would be your recommendations for each of these systems? Justify your decisions. (10 marks) Answer Pointers A good answer should cover the following points: a) Law of continuing change: A program that is used in a real-world environment necessarily must change or become progressively less useful in that environment. Law of increasing complexity: As an evolving program changes, its structure tends to become more complex. Extra resources must be devoted to preserving and simplifying its structure. The second law states that, as a system is changed its structure is degraded, so its maintenance becomes more difficult. The only way to avoid this is to carry out maintenance in a well organized and systematic way and to invest in preventative maintenance. b) i. Possible factors are: Understandability How difficult is it to understand the source code? Documentation What system documentation is available? Data Is there an explicit data model? To what extent is data duplicated? Is the data up-to-date? Performance Is the performance of the system adequate? Programming language Is the language still used? Are modern compilers for the language available? Configuration management Are all versions of all parts of the system managed by a CM system? Test data Does test data for the system exist? Is there a record of regression testing available? Personnel skills How skilled are people who are involved in maintenance? Are there people available who understand the system? ii. System A: This system doesn t contribute much to the business, but it may not be very expensive to maintain. It is not worth to replace it, so normal maintenance may be continued so long as no expensive changes are required. If expensive changes become necessary, it should be scrapped. System B: It has to be kept in operation (because of its business value). Its quality is high so we do not have to invest in replacement or re-engineering. Normal system maintenance should be continued.

System C: Keeping this system in operation will be expensive and because its business value is low it should be scrapped. System D: This system is making an important business contribution so it cannot be scrapped. However, its low quality affects its maintenance costs. It should be re-engineered to improve its quality to reduce maintenance costs. Another possibility is to replace the system if a suitable off-the-shelf system is available. Examiner s Guidance Notes: This question assesses a candidate s knowledge and awareness of software maintenance and related topics such as legacy systems and software evolution. This question was attempted by 67% of candidates. A significant number of candidates did not answer part (a).this is surprising as the topic of software evolution is one of the main topics in software engineering. Some students provided reasonable answers for part (b)(i), but many answers were irrelevant. Part (b)(ii) was answered reasonably well. Many candidates provided proper recommendations for all four systems, but some answers were irrelevant. B3. a) Compare and contrast the main features and practices of the agile approach and more traditional approaches at each of the key phases of the software development life cycle. (16 marks) b) Discuss how the clearly identifiable good practices in agile methodologies can be effectively incorporated into any software life cycle environment. (9 marks) Answer Pointers A good answer should cover the following points: a) The traditional software development life cycle of analysis, design, implementation, testing, and maintenance still thrives in many areas of the computer industry today. Sometimes referred to as Plan-driven development, the approach to software engineering is based around separate development stages planned in advance, the outputs to be produced at each stage. In contrast, Agile development inter-leaves specification, design, implementation and testing, where outputs are decided through a process of negotiation during the software development process. In the case of agile methods the focus on the code rather than the design, imply a reversal of the development process, even the issue of testing prior to implementation. Agile approaches adopt an iterative approach to software

development. However, some traditional methods have adopted an iterative approach, but limited to such areas as design, implementation, and testing. Agile methods attempt to deliver working software quickly amidst changing requirements. This is difficult for most traditional methods to accomplish. b) There are many practices in agile methodologies. Some of these include: active stakeholder participation, collective ownership, display models publicly, prove concepts with code, and use the simplest of tools. Team composition, expertise, and cohesion play an important part in the success of agile methods. Stakeholders in team membership and collective ownership are important outputs of team building exercise. These could be effected during such stages as requirements gathering and specification. However, its focus on small, tightly-integrated teams may result in problems scaling agile methods to much larger systems. Subsequent project stages often include elements of plan-driven and agile processes. Deciding on the balance depends on the level of detail in the specification or design before moving to implementation; furthermore, the extent to which an incremental delivery strategy to customers for rapid feedback is realistic. In general, practices where models can be displayed publicly for public comments be it a design document, or prototype application and its code can incorporated into any software lifecycle environment. This allows the opportunity for a greater degree of scrutiny in identifying bugs, ambiguity, or missing requirements. Examiner s Guidance Notes: More than 80% of candidates attempted this question, and it had the second highest pass rate. Part (a) was answered reasonably well, demonstrating good knowledge of traditional life cycle methods and some appreciation of the agile philosophy and existing methodologies. In contrast to part a), many candidates had difficulty identifying areas within SDLC where specific agile practices might be employed.

B4. SECTION B a) Compare and contrast the following pairs of software lifecycle models, giving particular attention to the application of tools, techniques, and project life cycle phases as progress is made towards a complete system: i. The V-Model and Evolutionary development ii. Extreme programming and Incremental development (9 marks) (9 marks) b) Discuss the extent to which the choice of lifecycle models impacts, influences, and determines project test planning and testing techniques. (7 marks) Answer Pointers A good answer should cover the following points: a) i. The V model emphasizes the verification and validation of the product. The emphasis is on planning for verification and validation of the product in early stages of its development. The cycle is sequential but with parallel pairing of activities. These include the following pairings: Project and Requirements Planning vs Production, operation and maintenance Product Requirements and Specification Analysis vs System and acceptance testing Architecture or High-Level Design vs Integration and Testing Detailed Design vs Unit testing Coding Verification and validation tools are important throughout, but are significant components within requirements specification, design, and implementation CASE tools. In Evolutionary Development, a prototype is built during the requirements phase. This is subject to end-user evaluation and feedback. Further refinements are made until the end-user is satisfied. It is at this point real coding takes place to meet user performance and design and build engineering standards for the final product. The cycle stages could include: Develop initial story board Discuss with stakeholders to produce partial requirements specification Produce preliminary project plan Designer builds prototype with key functionality Demonstrate and subject the prototype to user evaluation Refine prototype until the user is satisfied Perform Engineering design and build

Prototyping tools are important throughout the cycle, and form significant element within requirements elicitation, and HCI design and implementation CASE tools. ii. In XP some phases of the SDLC appear to be bypassed to speed up the development process. Phases have reduced scope and are usually less formal without boundaries, Coding is the key activity throughout the software project. Using vague or rapidly changing requirements, teams communicate using code, requirements and design behavior of objects are defined early in test cases in the same manner. Therefore, Low-level case tools able to also produce high-level elements (such as designs) through techniques such as reverse engineering and re-engineering are key. In incremental development, requirements are prioritized and then implemented according to priority. Unlike, XP, distinct phases of design, implementation, and testing are clearly defined with verification being an important element across all these stages. Only a partial implementation of the total system is constructed. Thus, each subsequent release of the system adds functionality, until the total system is built. High-level yet integrated case tools for generating and prioritizing requirements, designs, coding units are important in the success of incremental development. b) Lifecycle models generally give emphasis and importance to different aspects of software development. Therefore, models such as XP and V, makes test planning and testing techniques the focus of the development process. In this case, the term test-driven development would aptly describe such methods. In contrast, evolutionary prototyping may be more concerned about getting the requirements right and the right product will follow. Whilst the Waterfall model emphasis is on fixed stages, budget, and delivery deadlines. Examiner s Guidance Notes: This question assesses a candidate s knowledge of and general awareness of a range of process models. It was the second most popular question attempted, with the third highest pass mark (39%). There were some very good answers, but most candidates had good knowledge of one of the four process models and spent much time describing models such as V in great detail.

B5. a) Discuss how the use of Object Constraint Language (OCL) in UML makes designs more logically robust and easy to understand. Illustrate your answers with OCL statements. (10 marks) b) Explain what is meant by the static and dynamic semantics of behavioural diagrams. Give some examples. (5 marks) c) Discuss whether UML models can become the primary means of communication within development teams and the contract between developers and customers. (10 marks) Answer Pointers A good answer would typically be: a) The Object Constraint Language (OCL) is part of UML and is a language that allows the visual UML models to be described or annotated with greater precision. Thus, the language specifies such things as constraints on one or more values/components of an object-oriented model. Thus constraints, makes explicit the parameter, upper and lower limits, and ranges for component behavior. Further, its formal semantics help to reduce or remove any ambiguity in UML models. As an example, a model of a university admissions system could make explicit that applicants must be at least 18 years old. This can be specified in a UML class diagram as an OCL invariant as follows: Applicant age >= 18 where Applicant is the class on which the age attribute in every instance of the class must be at least 18 years old. Pre and post conditions can be used to state explicitly, the assumptions about the pre and post operational state of a class object. For example, the number of applications made can be represented using OCL as follows: ApplicationForm:: completeappform() pre: result = 0 -- comment no previous application made post: result = 1 -- Application form completed b) The static semantics represent relatively stable aspects of a system, often structural in nature includes such things as class and object diagrams for visualizing, specifying, constructing, and documenting systems. The dynamic semantics represent the changing aspects of a system, often timerelated. Such diagrams include sequence and activity diagrams.

The use of tagged values placed near the UML element as text strings enclosed in braces { }, can modify the semantics of the element to which it relates. The use of OCL constraints which extends the semantics of a UML element c) Highlight the increasing adoption of UML in modern developments alongside the growth of the open source and object-oriented movement; Note the wide range of freely available supporting and integrative case tools, developed to support UML diagrams and associated semantics; Note that for UML to accomplish this universality of use and application, present opportunities and benefits of using a common language should be identified. This may include greater productivity through automated processes and developer expertise; and, the increased process and product quality through early identification of defects and ambiguity. The real barriers to the realization of these benefits are: customer education in terms of understanding, using or appreciating concepts (often abstract) of modeling solutions and very formal language supported design of artifacts; the existence and continued maintenance of legacy systems; and the continued drive for specialized tools, and implementations techniques with stringent performance requirements. Examiner s Guidance Notes: This question assesses a candidate s knowledge and general awareness of OCL and UML development. The question was the least popular of all questions, and exhibited the second lowest pass rate (36%). In most of the candidate answers there was a general lack of subject knowledge with no real grasp of key concepts, principles and practices regarding OCL. This may be the result of omission or very little study time allocated to teaching and learning this area of the syllabus.