Skip to document

COM324 2022 Marking Scheme

Marking Scheme
Course

Software Engineering (COM 324)

17 Documents
Students shared 17 documents in this course
Academic year: 2021/2022
Uploaded by:
0followers
3Uploads
0upvotes

Comments

Please sign in or register to post comments.

Preview text

NIGER STATE POLYTECHNIC, ZUNGERU

DEPT OF COMPUTER SCIENCE

SECOND SEMESTER EXAMINATIONS 2020/2021 SESSION

COURSE: COM 324 – INTRODUCTION TO SOFTWARE ENGINEERING

PROGRAMME: HIGHER NATIONAL DIPLOMA IN COMPUTER SCIENCE

EXAMINER: OLADELE CAMPBELL

INSTRUCTION: ANSWER ANY FIVE QUESTIONS. TIME ALLOWED: 3HOURS

MARKING SCHEME

Question 1(a) Define FULLY, software engineering. (2 marks) (b) Think of one way in which software is different from products from other engineering disciplines, and another way in which it is the same. Briefly explain the difference and similarity. (2 marks) (c) Briefly explain the difference and similarity between student’s final-year project’s software and industrial-strength software (4 marks) (d) Explain briefly, one negative outcome that can happen if a project team does not discuss regularly with the customer(s). (4 marks)

Answer 1(a) Software engineering can be defined as the systematic approach to the development, operation, maintenance, and retirement of software. (2 marks) Any definition mentioning the key activities involved i., definition, development and maintenance gets two marks. (b) Differences of software compared with other engineered products like bridges, automobile etc. include:

▪ shorter time to ship products.

▪ ability to change, patch, or extend at later time.

▪ easier to reproduce.

▪ no tangible artefact to accurately gauge progress.

▪ underlying technology tends to change.

Similarities: need planning to execute correctly, need a good foundation to assure high quality.

(1½ mark for a difference, 1½ mark for a similarity)

(c) The answer, of course, is that two different things are being built in the two scenarios. In the first, a student system is being built which is primarily meant for demonstration purposes and is not expected to be used later. Because it is not to be used, nothing of significance depends on the software and the presence of bugs and lack of quality is not a major concern. Neither are the other quality issues like usability, maintainability, portability etc.

On the other hand, an industrial-strength software system is built to solve some problem of a client and is used by the client’s organization for operating some part of business, and a malfunction of such a system can have huge impact in terms of financial or business loss, inconvenience to users, or loss of property and life. Consequently, the software system needs to be of high quality with respect to properties like reliability, usability, portability, etc. (4marks for clearly differentiating between the two)

(d)

The customer might reject the product because it differs wildly from their requirements. Gold plating can occur where the customer sees an irrelevant feature that they paid for but did not want. The product might be unusable because of poor UI (User Interface). Without communicating with the customer, they can feel left out of the process and lose patience or faith in your company. Finally, yet importantly, the customer could change their mind at some point or evolve their requirements, but without having them in the loop, the team would not know.

(4marks for mentioning and briefly explaining such or similar outcomes)

2(a) Differentiate between software architecture and design. (3 marks) (b) i. Explain briefly the three main architecture views of a software system. ( marks) ii. Mention three uses for software architecture descriptions during software development project (3 marks) (c) Identify one potential risk associated with the process of designing software. Explain briefly. (1½ marks)

(d) List one or two ways of lessening or eliminating the specific risk you mentioned in 2(c). Explain briefly. (1½ marks)

Answer (a) Any complex system is composed of subsystems that interact under the control of system design such that the system provides the expected behavior. When designing such a system, therefore, the logical approach is to identify the subsystems that should compose the system, the interfaces of these subsystems, and the rules for interaction between the subsystems. This is what software architecture aims to do. On the other hand, the design activity begins when the requirements document for the software to be developed is available and the architecture has been designed. During design, we further refine the architecture. Generally, design focuses on what we have called the module view in the software architecture (3 marks for clearly differentiating between the two)

(b) i. There are three main architectural views of a system—module, component and connector, and allocation. In a module view, the system is viewed as a structure of programming modules like packages, classes, functions, etc. In a component and connector (C&C) view, the system is a collection of runtime entities called components, which interact with each other through the connectors. An allocation

In the case of agile methods, the focus is 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. (3½ for similarities, 3½ for differences, Total = 7 marks)

  1. Compare and contrast TWO software engineering approaches that aim to satisfy the need to develop software quickly, in an environment of rapidly changing requirements. (12Marks)

Answer Pointers:

(a)The expected answer should include two of the following: Prototyping, Incremental Development, Evolutionary Development, and Agile models such as Extreme Programming (XP).

For example, a model answer where the choices made were Prototyping and Agile would:

  • Provide a brief introduction and definition for each model (2½ for each model, Total - 5 marks)

  • Highlight issues such as: - The use of iterative development and frequent releases to customers (incremental prototyping); - Close collaboration with customers encouraged (throwaway prototyping); however, this may be contrasted with Agile (preferably onsite) and accepting requirements change more so in the latter as a welcome, part of the process; - The emphasis on small self-organizing teams, the idea of continuous design improvement, test-driven development and continuous integration can be compared but contrasted in terms of time frame and organization or managerial structures; - Knowledge management compared and contrasted in terms of level of documentation, and face-to-face communication.. (3½ for stating similarities, 3½ for differences, Total = 7 marks)

5(a) What do you understand by the term software maintenance. (3 marks)

(b) A number of technical and nontechnical factors influence software maintenance costs. Some of the factors are module independence, programming style, documentation, staff stability, hardware stability, and software age. Which of the above factors is a software engineer able to control when developing new software? For each of these ‘controllable’ factors, explain how a software engineer would attempt to minimize future maintenance costs. (6 marks)

(c) After a major release of a software system, there often follows a period of corrective maintenance. Discuss why this can occur, how it could be avoided, and whether it is unavoidable. (6 marks)

Answer Pointers (a) Software maintenance is a process that begins after the delivery or installation of a software. Maintenance activities includes modifying, correcting, enhancing and keeping the software in good working condition throughout the life of the software. (3 marks) (b) Definitely, the first three factors can be fully controlled by software developers while the remaining factors are not controllable. (3 marks for identifying the three controllable factors) For example – if you and your team design a system with highly independent modules (i. with a low coupling) then changes in one module are unlikely to affect other modules i. they are localised. Therefore, the actual modifications in the system are easier to implement and the testing of these modifications is easier (as these modifications are unlikely to affect other modules).

Proper programming style (e. clear layout of the source code, good comments, etc.) makes the corrections and modifications easier. The same applies to good documentation.

Therefore, properly addressing these factors should be your major goal when you develop a system the other hand, you have no influence (as a developer) on software age, hardware stability, and staff stability after the delivery of a system. ( marks in total for brief explanations of how to minimize maintenance cost)

(c) Corrective maintenance is a type of software maintenance that addresses software bugs that are discovered after software is in use. Various causes that can occasion corrective maintenance include:  Missing required functions  Design flaws.  Logical errors  Wrong outputs etc (3 marks for possible causes)  Such future corrective maintenance may not totally be avoidable. (1 mark ) However, it can be minimized but by thorough execution of each stage in the software development life cycle. (2 marks)

6 (a) The international standard on software product quality suggests that software quality comprises six main attributes. Give a brief explanation of each attributes and discuss which of these attributes is easier to quantify and measure. ( 8 marks) (b) As a software project manager, what factors would you take into account when selecting staff to work on a software development project? ( marks)

Answers (a) The six software quality attributes are:

(3 marks for diagram)

Requirements engineering involves tasks that lead to an understanding of what the business impact of the software will be, what the customer wants and how end users will interact with the software. The process includes Feasibility Study, elicitation and analysis, specification, and validation. It is the practice of obtaining the requirements of a system from users, customers and other stakeholders. The practice is also sometimes referred to as Requirement gathering. ( 3 marks)

(b) During elicitation, the system analysts employ methods or tools such as interviews, questionnaires, user observation, and prototyping. Modern approaches use multiple elicitation methods, solicit participation from different point of views, and create usage scenarios or use cases to help users identify key requirements. The challenges analysts encounter has to do with scoping (ill-defined system boundary), comprehension (users having partial understanding of the problem domain), and environmental volatility. (4 marks for tools and methods, 2 marks for challenges, total - 6 marks)

Was this document helpful?

COM324 2022 Marking Scheme

Course: Software Engineering (COM 324)

17 Documents
Students shared 17 documents in this course
Was this document helpful?
NIGER STATE POLYTECHNIC, ZUNGERU
DEPT OF COMPUTER SCIENCE
SECOND SEMESTER EXAMINATIONS 2020/2021 SESSION
COURSE: COM 324 – INTRODUCTION TO SOFTWARE ENGINEERING
PROGRAMME: HIGHER NATIONAL DIPLOMA IN COMPUTER SCIENCE
EXAMINER: OLADELE CAMPBELL
INSTRUCTION: ANSWER ANY FIVE QUESTIONS. TIME ALLOWED: 3HOURS
MARKING SCHEME
Question
1(a) Define FULLY, software engineering. (2 marks)
(b) Think of one way in which software is different from products from other
engineering disciplines, and another way in which it is the same. Briefly explain the
difference and similarity. (2 marks)
(c) Briefly explain the difference and similarity between student’s final-year project’s
software and industrial-strength software (4 marks)
(d) Explain briefly, one negative outcome that can happen if a project team does not
discuss regularly with the customer(s). (4 marks)
Answer
1(a) Software engineering can be defined as the systematic approach to the
development, operation, maintenance, and retirement of software. (2 marks)
Any definition mentioning the key activities involved i.e., definition, development and
maintenance gets two marks.
(b) Differences of software compared with other engineered products like bridges,
automobile etc. include:
shorter time to ship products.
ability to change, patch, or extend at later time.
easier to reproduce.
no tangible artefact to accurately gauge progress.
underlying technology tends to change.
Similarities:
need planning to execute correctly,
need a good foundation to assure high quality.
(1½ mark for a difference, 1½ mark for a similarity)
(c)
The answer, of course, is that two different things are being built in the two scenarios.
In the first, a student system is being built which is primarily meant for demonstration
purposes and is not expected to be used later. Because it is not to be used, nothing of
significance depends on the software and the presence of bugs and lack of quality is
not a major concern. Neither are the other quality issues like usability, maintainability,
portability etc.