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



Similar documents
BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. March 2013 EXAMINERS REPORT. Software Engineering 2

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

CSC408H Lecture Notes

Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management

Basic Trends of Modern Software Development

Software Development Life Cycle (SDLC)

To introduce software process models To describe three generic process models and when they may be used

Chapter 9 Software Evolution

Software Engineering. So(ware Evolu1on

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

Modernized and Maintainable Code. Frank Weil, Ph.D. UniqueSoft, LLC

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Applying CMMI SM In Information Technology Organizations SEPG 2003

APPENDIX III - Role definitions and required skills, by category. Application Development Category

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Software Engineering 1

Introduction to software architecture

Agile extreme Development & Project Management Strategy Mentored/Component-based Workshop Series

A Technology Based Solution to Move Client Server Applications to Java /.NET in Native 3-Tier Web Code Structures

The Role of the Software Architect

Selecting the Right Service Virtualization Tool. E: UK: US:

Engineering Process Software Qualities Software Architectural Design

SOUTH AFRICAN QUALIFICATIONS AUTHORITY ACT 58 OF No September 2003

A Simple Guide to Enterprise Architecture

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24

The Institute of Car Fleet Management. Education & Training Syllabus

Building Reliable, Scalable AR System Solutions. High-Availability. White Paper

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

A Capability Maturity Model (CMM)

BCS-ISEB Business Analysis Training

Software Processes. Topics covered

Inside Track Research Note. In association with. Enterprise Storage Architectures. Is it only about scale up or scale out?

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

International Program for Bachelor of Science (Software Engineering) College of Arts, Media and Technology, Chiang Mai University

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

PARCC TECHNOLOGY ARCHITECTURE ARCHITECTURAL PRINCIPLES AND CONSTRAINTS SUMMARY

Project Management in Marketing Senior Examiner Assessment Report March 2013

Software Engineering Question Bank

Parallels Virtuozzo Containers

Modular Safety Cases

Applying Agile Methods in Rapidly Changing Environments

JOURNAL OF OBJECT TECHNOLOGY

LOUGHBOROUGH UNIVERSITY

BCS Higher Education Qualifications. Professional Graduate Diploma in IT. Programming Paradigms Syllabus

A Design Technique: Data Integration Modeling

Software Engineering. Software Reuse. Based on Software Engineering, 7 th Edition by Ian Sommerville

Selecting a Content Management System

Data virtualization: Delivering on-demand access to information throughout the enterprise

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

Employability Skills Summary

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT SYSTEMS ANALYSIS & DESIGN EXAMINERS REPORT

Elite: A New Component-Based Software Development Model

Satisfying business needs while maintaining the

Pattern Insight Clone Detection

How To Make Money From Your Desktop Virtualisation

Cloud Computing and Government Services August 2013 Serdar Yümlü SAMPAŞ Information & Communication Systems

Swirl. Multiplayer Gaming Simplified. CS4512 Systems Analysis and Design. Assignment Marque Browne Manuel Honegger

CMDB Essential to Service Management Strategy. All rights reserved 2007

Foundations for Systems Development

Increasing Development Knowledge with EPFC

G-Cloud Service Definition. Atos Data Quality Audit SCS

Distributed Objects and Components

CONCORDIA UNIVERSITY DEPARTMENT OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING SOEN390 SOFTWARE ENGINEERING TEAM DEVELOPMENT PROJECT ITERATION 5

Introduction to software architecture

Karunya University Dept. of Information Technology

Top Ten Reasons to Transition Your IT Sandbox Environments to the Cloud

COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4

SOFTWARE REQUIREMENTS

What are the benefits of Cloud Computing for Small Business?

Automating Rich Internet Application Development for Enterprise Web 2.0 and SOA

Strategy for Application Modernization A Summa White Paper

Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief

Total Exploration & Production: Field Monitoring Case Study

CDC UNIFIED PROCESS JOB AID

ehealth Architecture Principles

Document management concerns the whole board. Implementing document management - recommended practices and lessons learned

Software Maintenance. Software Maintenance. (Chapter 14) Relative distribution of software/ hardware costs. Point to ponder #1

Mapping and Geographic Information Systems Professional Services

INFORMATION TECHNOLOGY & MEDIA SERVICES

Business Operations. Module Db. Capita s Combined Offer for Business & Enforcement Operations delivers many overarching benefits for TfL:

Kent State University s Cloud Strategy

white paper Modernizing the User Interface: a Smarter View with Rumba+

SaaS or On-Premise? How to Select the Right Paths for Your Enterprise. David Linthicum

Legacy Application Modernization

Information Systems Analysis and Design CSC340. I. Introduction

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

Syllabus Version

Industry. Head of Research Service Desk Institute

Web Applications: Overview and Architecture

Fourth generation techniques (4GT)

Chapter 1 Introduction to Enterprise Software

Transcription:

BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2 EXAMINERS REPORT Friday 2 nd October 2015 Answer any THREE questions out of FIVE. All questions carry equal marks. The marks given in brackets are indicative of the weight given to each part of the question. General Comments Calculators are NOT allowed in this examination. Section A The pass rate wasmarginally better than the earlier summer examinations. The following issues appear significant in some centres: 1. Coverage of the syllabus. Centres should provide more consideration to the less popular but relatively modern topics such as process improvement models and design patterns; 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. Many candidates attempted to take a common-sense approach to answering questions without evidence of comprehending fundamental concepts. This was particularly the case in topics such as requirements engineering. 3. Examination techniques. Some candidates need better time management to ensure that the majority of questions and their sub-parts are given sufficient time and attention; 4. Answers should be legible, well-structured and formatted. It is important that candidate responses to questions are: comprehensible, exhibit breadth and depth in knowledge; and are appropriate to the questions and rubric of the paper itself.

Question A1 a) Explain what is meant by software re-factoring. Discuss the steps involved in refactoring a large software system and discuss why re-factoring little and often may be a more effective strategy for a software development team to adopt. (10 marks) b) A company wishes to convert a desktop application interacting with a local database to a web-based database application where the database will be on a remote server and users will access the application via a web browser. Discuss the high level architecture of both systems and indicate what steps you would undertake to achieve the necessary conversion. (10 marks) c) During the course of the project, the company decides that it wishes the new webbased application s interface to be made accessible to international users. How can this be achieved and what advantages would the company achieve by having an application that is accessible to international users? (5 marks) Answer Pointers A good answer should cover the following points: a) Re-factoring is the activity whereby a software system or component s internal code structure is changed to simplify and clarify the code without changing its external behaviour, i.e. its meaning. The overall aim of re-factoring is to make the source code more understandable, reusable and maintainable in the future. The first step in re-factoring a large software system is to analyse the source code, removing dead code and eliminating cloned code by reusable components, breaking down large software components into smaller ones. After determining measures of coupling and cohesion, these can be used to guide restructuring of the code to lower coupling and increase cohesion. Re-factoring is usually accompanied by redocumentation in a large system where the documentation has been previously neglected. Re-factoring can also involve re-naming of program elements to clarify their purpose. The re-factoring a large software system can involve considerable effort. The original developers may no longer be available and the rationales they used in developing the code may be lost. A large system is also likely to be complex and hard to understand and have been subject to much change over time by a number of people. If re-factoring is practiced throughout the development process as advocated by the agile approach, then these difficulties can be overcome. The developers know the code; they can deal with poor problematic code as soon as it is identified, by bad smells.

b) Both the desktop application and the web-based application will have functionality that deals with user interaction, the business/process logic and interaction with the database. The key difference between these is likely to be that these functions are not clearly separated in the desktop application whereas in the web-based application, these will need to be clearly separated into at least 3 tiers: the presentation layer (visible through the web browser), the web client; the business layer, the application server; and the data access layer, the database server. So converting the desktop application will require analysis of the source code to isolate functions associated with each tier and defining the interfaces between the tiers and the messages and data that needs to communicated between them. The conversion of the user interface (UI) will involve identifying web functions that replicate the desktop UI s functionality. The business/processing logic will be at the centre of the new application, so its interfaces to both the web-based UI and remote database server need to be developed. Attention needs to be paid to which, if any, processing functions are located in the web client; that is whether a thin or thick client is required. Here performance issues need to be considered. c) Internationalization could involve offering the web interface in more than one natural language. It could also involve making use of more universally understood symbols in the interface, thus lowering the reliance on natural language. One of key advantages of making an application accessible over the web is that it can be used by anyone who has access to web from anywhere in the world. Making the application more accessible to international users will obviously facilitate their usage of the application and allow the company to reach international markets. of software architecture and re-factoring. It was not very popular. Many answers were irrelevant. a) Most candidates explained sufficiently software re-factoring but some discussed reverse engineering and re-engineering instead. Only a few candidates identified the right steps involved in refactoring. b) Many candidates did not discuss the high level software architecture of both systems (what was required), but e.g. provided a general discussion of cloud computing, reverse engineering, re-engineering etc. c) Most answers addressed various technical issues related to hardware and software technologies and only a small number of candidates discussed the issues related to the interface for international users. Business benefits were sufficiently discussed. Question A2 a) Explain why it is necessary to maintain a software system over its lifetime. In your answer, you should outline the various types of maintenance that software systems require and give examples of each type. (12 marks) b) Discuss at least three factors which contribute to difficulties during software maintenance and give examples of each. (9 marks)

c) It has been stated that it is equally important to maintain all the associated documentation of a system as well as its software over time. Discuss the reasons for this statement. (4 marks) Answer Pointers A good answer should cover the following points: a) Once a software system has been developed and deployed in use, it is enviable that various changes to the system will be required. It is the maintenance process that is concerned with effectively making changes to software during its lifetime. Unless software is maintained, it becomes progressively less useful. Four main types of software maintenance have been identified in practice. They are as follows: Corrective maintenance is carried out to correct errors (bugs) found in the software. Owing to incorrect assumptions made by a programmer, an inappropriate looping condition has been used and the program fails to process the last item in a list. Adaptive maintenance is carried out to convert software from one software technology to another, e.g. from one programming language or operating system to another, in order to adapt the software to run in a new environment. The adaptation of old IBM mainframe FORTRAN program to run on Linux systems would be an example. Perfective or evolutionary maintenance is carried out to enhance the system s functionality. After delivery, the customer may require additional functions, e.g. payment by PayPal to be added to an e-commerce website. Preventative maintenance is carried out to improve a system s future maintainability by simplifying and clarifying its source code s structure without changing its meaning. An example here might be re-structuring the system to lower coupling between modules. b) Three factors which contribute to difficulties during software maintenance are as follows: 1) Staff skills. Maintenance is often undertaken by junior staff who may lack expertise in the programming languages in which the system is written. It may also be difficult to hire staff with expertise in older languages and operating systems. For example, many older COBOL programmers were recalled to service to deal with the Year 2000 problem. 2) Program age and structure. Over time, the structure of software is likely to degrade unless positive efforts have been made to re-factor regularly. System documentation is often lost or out-of-date. Rigorous configuration management and version control may be lacking. For example, it may be that patches have been made to the executable versions of some modules without updating the corresponding source code and recompiling, so there is no longer a correspondence between the source code and executable versions. 3) Contractual/Team responsibility. The development team may have no responsibility for the subsequent maintenance of the software and little incentive to write maintainable software. In additional, the maintenance of a system may be the subject to a separate contract with a different company. For example, a system developed by subcontractors may be delivered with contracted functionality, but its underlying source code is difficult to understand and costly to maintain as time to must be allocated to understanding the system before changing it by the new staff.

c) Unless all the associated documentation of a system is maintained over its life time along with changes made to software, then it becomes less useful to both users of the system and maintainers of the system. Users misled by out-of-date documentation cannot make full use of system and may use it incorrectly leading to further problems. If maintainers do not have access to up-to-date system documentation, they will need to invest time and effort into gaining an understanding of the software and recreating the system documentation. This is an error prone situation and could lead to incorrect assumptions and erroneous changes being made to the software. of software maintenance and evolution. It was the most popular question. Many answers were irrelevant. a) Some candidates were unable to identify different types of maintenance. A few candidates provided completely irrelevant answers. b) Only a small number of candidates managed to identify the main significant factors contributing to difficulties during software maintenance. Many candidates discussed less significant factors. c) Most candidates provided adequate answers. Section B Question B1. a) Present an outline of a software improvement framework with which you are familiar (for example CMMI), and discuss how such frameworks handle evaluation and improvement management. (15 Marks) Define the key terms of process, product, measurement and quality; Process attributes, and the improvement stages of Measure, Analyse and Change should be highlighted briefly; A brief history of the emergence of the chosen framework should be given. For example, work started at the Software Engineering Institute in the 1980s, resulting in Capability Maturity Model of the early 1990s, and the revised framework (CMMI) in 2001; Model components covering process areas (Process, Project, Engineering, Support management), Goals, and Practices Assessment (CMM) according to five levels: Initial, Repeatable, Defined, Managed, Optimising; Assessment in CMMI according to 6-point scale, staged or continuous assessment.

b) Discuss the extent to which the software industry of today is moving towards and achieving the very highest level of excellence, using such frameworks. (10 Marks) take the form of a discussion wherein evidence is presented concerning the adoption of such frameworks by companies; Show that the model (CMMI) is more popular outside of Europe, and strongly promoted as a necessity for US defence contractors; there are a wide range of models and products, but very little by way of standards; the industry is moving slowly towards greater professionalism and accountability. Whilst in many areas in the UK there is no compulsion to adopt such frameworks, increasingly consumer expectation of higher quality of service in products as well as support is an important driver. of software improvement models. It was the least popular (28%) on the exam paper, with only the 3 rd highest, but disappointing low pass mark of 45%. In many instances, there was some evidence of knowledge of CMM in particular. However, part b) was poorly attempted, and demonstrated a general lack of awareness of modern aspirations for such frameworks. Question B2. a) For each of the following reuse techniques, provide a clear definition and appropriate examples of usage: i. Application system reuse ii. Component-based development iii. Design patterns (15 Marks) The answer to this section should do the following: i. Define Application system reuse in terms of reusing entire application systems either by configuring a system for an environment (COTS) or by integrating two or more systems to create a new application. In such systems code wrappers play an important part in the integration and successful operation of such systems. ii. Define Component-based development as an approach to software development that relies on reuse, where most components are viewed as stand-alone service providers. Using well-defined and publicized interfaces, such components are common amongst web technologies and services, iii. Define Design patterns as a way of reusing abstract knowledge about a problem and its solution. The pattern should be sufficiently abstract to be reused in different settings. One of the most common examples is the Model-View Controller (MVC) consisting of a number of patterns that used for GUI design;

b) Explain why, despite the real and potential benefits of reuse, some companies still experience major difficulties with it. (10 Marks) Briefly summarise the benefits of reuse, namely increased productivity available and accessible library of components means that both development and validation time should be reduced; and improved quality as components are tried and tested; However, some companies are challenged by issues such as: economies of scale such that the larger the pool of reusable components become, the more difficult it is to maintain and provide easy access and navigational capabilities, especially when their entries are continuously updated with multiple varieties of very similar functions, specific to individual users. Secondly, there is a tendency for many of their developers to rewrite components they believe to be inefficient, difficult to use, or missing a particular function. of software reuse concepts and developments. It was the 2 nd most popular question (82%) on the exam paper, with the 2 nd highest pass mark of 49%. In many instances, candidates demonstrated reasonable knowledge of different forms of reuse. However, knowledge of design patterns was lacking, and for part b) awareness of reuse in practice today was limited. Question B3. a) A company is looking to develop a new proprietary software application that can compete amongst current social media platforms. As Chief Analyst, give an outline of the different stages of requirements engineering, and discuss the tools and techniques that you would adopt to derive a complete and consistent requirements specification from the company. (15 Marks) Briefly explain requirements engineering as a process aimed at identifying the customer requirements and the constraints for its provision. The different stages include: Inception (line of questions aiming to understand the problem, the people and their expectations, the environment and its constraints), Elicitation (through meetings with stakeholders, customers, and developers), Elaboration (developing a refined technical model e.g. Use cases, of software functions, features, and constraints), Negotiation (conflict resolution or normalizing expectation and reality), Specification, Validation, Requirements management. The aim will be to establish a good foundation for the design and construction of the software. Prototyping tools will play a major role in every stage, esp in respect of apps or tools within the social media context, where the business case can change as quickly as the preferences of different community of users in terms of style, functionality, presentation, and usability.

b) Discuss why many systems continue to fall below user expectations, despite the established practice of software requirements engineering. (10 Marks) Highlight the general view that as there are no international standards that govern the way in which requirement are gathered and managed most people will have their own different way of working and achieving the objectives of requirement gathering. In particular, the speed of change may impact potential users, and developers in different ways and to different degrees. Thus, both parties are always likely to be out of sync with one another. However, Whilst, all can agree that the accurate capture and representation of requirements leads to successful projects and satisfied customers, only consistent and committed application of the principles of requirements engineering has the greater likelihood of achieving this. Requirements Engineering offers a professional, structured and logical approach to capturing and representing requirements, and is well supported by tools that, if followed consistently, will more often than not results in successful requirements management. of modern requirements engineering concepts and practice. This was the 3 rd most popular question (64%) on the exam paper, with the lowest pass mark of 26%. In many instances, candidates don t appear to recognise the topic as an engineering discipline and in many instances produced responses more akin to a traditional Certificate qualification in systems analysis.