Assignment 2 May 2021 Semester: There Are Two (2) Pages of Questions, Including This Page
Assignment 2 May 2021 Semester: There Are Two (2) Pages of Questions, Including This Page
Assignment 2 May 2021 Semester: There Are Two (2) Pages of Questions, Including This Page
LEVEL : BACHELOR
INSTRUCTIONS TO STUDENTS
2) Plagiarism in all forms is forbidden. Students who submit plagiarised assignment will be
penalised.
Question 1
The increasing complexity of today’s systems has created a set of particular challenges that
makes it hard for software engineers to meet the continuous customer demand for higher
software quality. One of the major challenges while designing software is “Requirement’s
volatility”.
Explain THREE (3) reasons why the software engineer needs to consider the above challenges
while designing software.
[15 Marks]
ANSWER:
Nowadays, the software design phase involved from an ad-hoc, and sometime
overlooked phase, to be a necessary phase of the SDLC (software development life-cycle). The
increasing difficulties or quality of the systems has created a group of specific challenges that
basically makes engineers to satisfy the regular client's demand for the higher quality and
reliable software. There are different challenges that makes software engineers to be additional
closer with the process of design to understand, apply, design principles, quality issues, process,
and best way to overcome the these software design challenges for software engineers.
Some of the challenges for software engineers are as follows:
Fast-changing technology,
Design process,
Requirements volatility,
Distributed software development,
Quality issue like (security, performance, usability etc),
Efficient allocation of the human resource to development tasks,
Limited budgets
Unreasonable expectations and schedules
Incorrect transformation of software production from software requirement
There are three reasons of the software engineer needs to consider the challenges while
designing software.
Requirement’s volatility:
Additions, modifications and deletions of requirements throughout the SDLC (system
development life cycle) is understood as requirements volatility. Requirement’s volatility creates
extra work process during design and coding, and it to blame for cost, time and compromises
quality of the project or system. Sometimes, ignoring requests for amendment in requirements
might responsible for the project failure because of failure to manage requirements volatility and
user rejection. And major reason for software project complexity is the customer's constant
change requirements. When well-designed perfectly then software will be updated, modified or
extend simply however if designed of software is poor, then modifying updating of software
product become overwhelming, complex and result in all form of the problems. This same taint
that creates software, so desirable is what makes it conjointly complex. In this case, engineers
need to be more effort within the requirements phase and to confirm that requirements are
consistent and complete. It's challenging for the software engineering as a result of they're going
to be impact system in future or already going development efforts, emerging new technology
and client requirements are incessantly changing. Therefore, requirements volatility forces
software designer to create designs that has got to be give answer to issues at a given state and
conjointly anticipating changes and accommodating them in minimum effort. For this, software
designer ought to be best design principles and strong understanding regarding the software
design and develop to manage challenges and change requirements in software development.
Question 2
[15 Marks]
ANSWER:
1. Data module:
This data model provides the business logic and data abstraction.
2. Control model:
Control model identifies the system configuration actions and flow of the control.
It provides the user interface visual or audio output and input user interface.
There are two major variety of the interaction-oriented architecture they're Presentation-
Both PAC and MVC have completely different flow control system. PAC (presentation-view-
controller) is agent based mostly hierarchical architecture and MVC does not have hierarchical
structure clear as compare to PAC. MODEL-VIEW-CONTROLLER (MVC): Model view
Controller (MVC) have their interconnected elements and that they facilitate within the
differentiating the internal representations of information from the knowledge accepted for
presented from the user.
Model:
The main central component of the model view controller is model and model manages
and maintain the logic, constraints and data of an application. The model contains data
components, which manage the application logic and data for user interface.
When there has been modification or modify in its state, the model offers notification to
its associated controller to update or change the available set of commands and views to
show the output data.
It’s an independent interface for user and model catch the behavior of application
problems or problem domain.
View:
View is illustration of knowledge and data in computer program in several sort of
graphical kind, cherish char diagrams. View consists of various type presentation
elements which offer the visual representation of data in user interface.
Completely different multiple views of constant data and information are possible, such
as a tabular view for accountants and a bar chart for management.
Views capture the input from the user and send request information from their connected
model with the help of controller and generate the output in user interface using controller
and model data.
Controller:
Controller accept input by the computer and converts it to commands for the view or model.
Controller consists of components of input process and these component manage the input from
the users by modifying the model.
Controller send commands to the model according to the view to change or update the
model’s state and to its associated view to vary the view’s presentation of the model.
Controller work as the interface between the views, models and the input field.
MVC – I
Easy version of MVC architecture is MVC-I. In MVC-I, system was divided into the two
subsystems. They’re:
Model
It copes with all core functionality and data It notifies the Controller-View module
of any data changes within the Model module.
o Controller/View
It handles input and output process and their user interfaces, and it registers with
(attaches to) data module.
ARCHITECTURE: MVC-I
The model send notification to controller-view module of any data modify or changes so
as that any graphics data display are changed accordingly. The controller also take the action
with data changes.
Allow us to think about one simple GUI (Graphical user interface) example designed in
MVC-I. During this, design view has a GUI interface with two text fields. The system shows the
easy form and user enters a brand-new two number with some bottom. And controller capture
the input number from view and send to the model as command. Models have all logic and data
manipulation, and it sums the amount and save it. At the moment, controller send it back to the
read and show the summation of the amount in user interface.