Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

ISEN1000 Introduction to Software

Engineering Trimester 1, 2023

Exercise Submission 2

Weight: 40% of the unit

Question 1: Planning, and Agile Software Project Management [Total Marks: 20]

Consider the following (Fig. 1) 13 nodes AON and along with the Table 1 project descriptions.

A.  List the missing dependencies in Table 1. (1 mark)


B.  Estimate the Early Start (ES), Late Start (LS), Early Finish (EF) and Late Finish (LF) for each task in the AON, present your answer in a tabular form. (2 marks)

C.  Find out the task(s) which have slack time, and clearly mention the slack time of each identified task in tabular format. (2 marks)

D.  Show your complete working (make a PERT chart) on estimation of overall optimistic project duration, along with critical path estimation. (2 marks)

E.  You project is in at week 9 and you are using Scrum based project management,    there is a sprint in 2 weeks, where client wants to add three activities (say M, N, O, in WBS) as backlog, what necessary action would you consider in this case, and     describe the responsibilities of each team to deal with the situation (4 marks)

F.  You has completed activity F” by week 20 and all dependencies of F” . However, all other activities are not complete. Estimate actual performance on the Burn-up    Chart and describe the overall project progress in text. (4 marks)

G.  Show a Kanban Board when both

1.  “G” and H” are under review and I” and J” are done/completed with all their dependencies. (3 marks)

2.  When activity K” and F” are under review. (2 marks)

Question 2: Functional and Non-functional requirements [Total Marks: 20] Consider the following applications need to be automated with the help of software:

1.  Vehicle manufacturing and industrial processes.

2.  Human Resources Management.

3.   Online application for selling homemade goods.

Select any two of the above applications and

A.  Identify at least three stakeholders and three actors for each application (human/nonhuman). (3 marks)

B.  Write one user story for each identified actor for (particular application). The user stories should be significantly different from each other. (3 marks)

C.  Pick any two user stories from part B and give a full use case description for the  selected user stories (considering them as functional requirements). The use cases must include at least 2 extensions for each use case. (6 marks)

D.  Identify which one would be the best reliability metric (MTTF, MTBF, ROCOF,   POFOD or Availability) for each identified user story in part B. Justify you answer by providing reason of selection.  (4 marks)

E.  Identify 3 usability requirement for 3 user stories (select any 3, from part B) (4 marks)

Question 3: Unit Testing [Total Marks: 25]

*Following considerations should be made while answering this question

•   Name the file (python file) appropriately e.g., “MyCalculator.py” (for a calculator software)

•   Name the functions appropriately e.g., “MySum” (for sum operation)

•    All code should be executable on college provided VMWare based Linux environment.

•    Use the git repository and version control for this question.

A.  Design a black box test (making table for all test cases) for the Equivalence Partitioning testing and write equivalent Python based test code. (7 marks) [submit the test code as   python files]-Production code provided (see code folder Q3PartA.py).

A function takes two integer inputs (num1, num2), and returns what percentage the first number is ofthe second.

The basic requirement is, if num2 is greater than num1, the result is the percentage of num1 out of num2.

The numbers must also be greater than 0. if the numbers do not meet the basic requirement, - 1 is returned.

B.  Design a test for the following for the Boundary Values Analysis (BVA) testing and  write equivalent Python based test code. (5 marks) [submit test code as python files] - Production code provided (see code folder Q3PartB.py)

A function that takes an integer representing the core temperature of a nuclear reactor and returns a string representing the appropriate warning message.

If the temperature is below 300 degrees, a danger message should be returned, if the    temperature is between 300 and 650, a warning message should be displayed. For        temperatures between 650 and 800, the reactor is operating in the standard range, from 800 to 950. If the reactor temperature is above 950 but below 1100, then a warning      message should be returned and any temperatures above 1100 are considered               dangerous.


C.  Consider the following python code for a guessing game, develop a test

design for white box testing. (7 marks) [Production code is provided with question (see code folder Q3PartC.py), submit both  test code and edited code (if any)]

D.  Implement your test design in parts A, B and C using python (unittest) modules, run      show the screenshots in the report and submit the implemented python codes. (6 marks) [ Hint: Convert the codes in class-based implementation.]

Question 4: Modularity [Total Marks: 20]

•    *Consider the provided code file (Q4.py) with the exercise document and perform the following on the provided code.  Use the git repository and version control for this question.

A. Identify the modularity issues in all functions, list (make a table, see example     below) the function name, identified issue, category of issue, comments on how it is an issue, proposed solution. (5 marks)

Table 2: Example details expected

Sr.

Function name

Identified issue

Category of issue

Comments

Proposed

Solution

1.

Func_ 1

Global variables used

Coupling

issue

The global variables increase the dependency of Func1 and Func3

Remove global variables by     parameters

A.  Demonstrate how the flag(s) used in the code provided are affecting the modularity, what specific issues are introduced using flag(s) in the code. (5 marks)

B.  Refactor the code provided by remove the modularity issues identified in part A.  change all functions and function calls in main function and other functions in the code. (7 marks)

C.  Use version control to put all files initial and refactored file, making sure to meet the basic functions after refactoring (code running after refactoring) (3 marks) [provide  the git repository and online git link (if uploaded to global repository i.e., online),     Name repository as: studentID_Exercise2_ISE]

Question 5: Ethics and Professionalism [Total Marks: 15]

For each of the following sets of software systems:

•    Pick one of the systems listed.

•    Pick one general area of software engineering from among the following: planning, functional requirements, non-functional requirements, project management, and     testing.

(Your choice here should be different for parts A, B and C)

•    Describe a specific way in which a lack of professional conduct in this area, for this system, could lead to a harmful outcome.

Note: marks for this question will depend on the specificity (degree of detail) and          plausibility of your answers. You will not receive marks for rewriting examples already given in the unit material.

A.  Pick one from the following: (5 marks)

a.   A mobile phone GPS maps app

b.  A diary and mood tracking app

c.   An advertising delivery platform

B.  Pick one from the following: (5 marks)

a.   An AI Research project

b.  A Programming Q&A website

c.   A financial accounting system

C.  Pick one form the following: (5 marks)

a.   A video game

b.  An online retail store

c.   A virtual reality-based social network

Submission Guide

Consider following for submission for this assessment

1.  Main word/Pdf document consisting of answers for all questions (i.e., report)

2.   Submit all figures, image, screenshots, graphs, and charts

3.   Submit all production and test cases, also git repository (both local, global (if any, as link of repo))

Use of Git VCS

Make one folder for complete assessment, put everything in that folder and initiate a git       repository in the same folder. Add (stage) all files (specifically codes), make commits when required (specifically for code). Zip/compress the main folder including all files and git       repository and submit the zip/compressed file on Moodle page.

Academic Integrity

Please see the Coding and Academic Integrity Guidelines on unit Moodle page.

In summary, this is an assessable task. If you use someone else’s work or assistance to help complete part of the assignment, where it’s intended that you complete it yourself, you will have compromised the assessment. You will not receive marks for any parts of your           submission that are not your own original work. Further, if you do not reference any           external sources that you use, you are committing plagiarism and/or collusion, and              penalties for academic misconduct may apply.

Curtin college also provides general advice on academic integrity at

https://www.curtincollege.edu.au/content/dam/navitas/upa/curtin/pdfs/academic- integritypolicy.pdf

The unit coordinator may require you to provide an oral justification of, or to answer         questions about, any piece of written work submitted in this unit. Your response(s) may be referred to as evidence in an academic misconduct inquiry.