Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

1) (a) Designers ask users

 What do you want me to do and why?


 Who are your target audience?
 List any three websites that you like this project to be like and state and why?
 List any 5 competitors doing a similar business as yours.
 When do you need to see the first prototype?

(b) Users should ask designers:


 What exactly do you specialize in?
 How much do your services cost?
 What would you do if I don’t like the like the work you did for me?
 May I see a few of your previous woks?
 When can you complete the project?

(c) Users should ask themselves:


 What do I want to build?
 What functionality should be included>
 Who will maintain what I’m trying to build?
 How much do I pay to get it done?
 How many projects has he done?

(c) Designers should ask themselves:


 What tools are required for the job?
 Can I implement all features the user requires?
 Who will maintain what I’m trying to build?
 Are you going to blog with this project?
 How much will I charge for this project?

2)

3) Software engineering principles may be defined as a set of prescribed standards that


are used to aid software development. These principles are useful for building all types of
software and their relevance is explained below:

(a) Process. Process is ubiquitous to types of software development. A process is


simply a sequential approach to getting a task completed. Process outlines the steps that
ought to be followed to build the software in question. This helps the developer and the
team at large to know exactly which point they are in the development cycle. It helps to
streamline the procedures and also eliminates doubt and confusion (especially when
working in a team)
(b) Dependability. Dependability of software is crucial as it demonstrates the
level of trust a user has in the software. It is an indicator that users will be able to rely on
the software and there won’t be any unexpected failure or glitch during the expected
uptime of the software. Users will not use software that is unreliable or unsafe.

(c) Requirements Management. Requirements management is simply outlining


what is needed for the development and functioning of the software, monitoring and
controlling changes and communication of such changes. It involves requirement analysis;
which focuses on the needs for the software being build, requirement traceability; which is
the ability to follow the lifecycle of a stated requirement, requirement prioritization; which
is all about deciding which requirements should be included in a specific version of software.

(d) Reuse. Reuse is simply taking advantage of existing code to build a new one.
It also includes reusing previous knowledge of software. Software reuse is very important as
it can prevent waste (in terms of time and effort) and reduce cost of creating new software.

4. In software development, depending of the size of the project, the developers are
split into teams and each team is given responsibility over a particular module of a group of
related modules. Each team focuses its effort on the specific aspects of the software that
has been assigned. For example, one team may be handline UI of the software, another
team may handle databases, another team will be responsible for designing the architecture
etc. Even though each team may have its work cut out for them, there is the need for them
to share information seamlessly. Electronic connectivity lends itself to making
communication between teams effortless. Electronic communication completely eliminates
the challenge of distance. Today, there are several specialized mediums with varying
functionalities that development teams can leverage. Some allow live chat rooms; others
allow for easy sharing of code and files. Asana, Trello, Teamwork & GitHub are a few. With
electronic connectivity, developers can communicate vital information within and across
teams. It helps for all those involved in the product to receive important updates. Overall,
electronic connectivity, when used properly, will surely contribute to high quality software.

5. Incremental software development is a way of building software where it is


designed, implemented and tested in a gradational manner. This means that a little more is
added with each iteration. This approach can be useful for clients who are unsure of what
the systems needed for their operations. The nature of incremental development is such
that the barest minimum but functional code is built at any point of time. This suits
situations where the customer does not have a complete idea from the start of the project.
Features and functionality are added with each build as and when they are deemed
relevant. Also, this approach is useful for the customer because on whatever feedback the
customer gives after testing and the software is progresses through several versions.
Another advantage is that the customer can evaluate the software early enough before the
projects get bigger.

You might also like