Chapter 1 Individual Assignments

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 5

Chapter 1 individual assignments

Software Requirement Engineering (East Carolina University)

Scan to open on Studocu

Studocu is not sponsored or endorsed by any college or university


Downloaded by Ajullo Kujack (ajullo3333@gmail.com)
Chapter 1 individual assignments

1. Explain why professional software that is developed for a customer is not


simply the programs that have been developed and delivered.

Software is not just the programs themselves but also all associated
documentation, libraries, support websites, and configuration data that are
needed to make these programs useful. A professionally developed software
system is often more than a single program. A system may consist of several
separate programs and configuration files that are used to set up these
programs. It may include system documentation, which describes the structure
of the system, user documentation, which explains how to use the system, and
websites for users to download recent product information.

2.What is the most important difference between generic software


product development and custom software development? What might this
mean in practice for users of generic software products?
Difference Between generic software product development and customer
software development.
1.Generic products: These are stand-alone systems that are produced by a
development organization and sold on the open market to any customer who is
able to buy them. Examples are apps for mobile devices, software for PCs
such as databases, word processors, drawing packages, and project
management tools. This kind of software also includes “vertical” applications
designed for a specific market such as library information systems, accounting
systems, or systems for maintaining dental records.

2.Customized software: These are systems that are commissioned by


and developed for a particular customer. A software contractor designs
and
implements the software especially for that customer. Examples of this type
of software include control systems for electronic devices, systems written to
support a particular business process, and air traffic control systems.

The critical distinction between these types of software is that, in generic


products, the organization that develops the software controls the software
specification. This means that if they run into development problems, they
can rethink what is to be developed. For custom products, the specification is
developed and controlled by the organization that is buying the software. The
software developers must work to that specification.

Downloaded by Ajullo Kujack (ajullo3333@gmail.com)


3.What are the four important attributes that all professional software
should possess? Suggest four other attributes that may sometimes be
significant.
The four important attributes that all professional software should possess
are:

Acceptability
Dependability and security
Efficiency
Maintainability
Other attributes that
may be significant are:
Low cost, budgeting – Financial constraint to make sure project doesn’t
shoot over budget.
Easy to use – A good UI and simplified one is always a plus for a software
process.
High-quality software – Less problems with software is a better for a brand and
adaptable to customer in general
Future enhancements - Flexible software process that accommodates rapid
change. This saves cost and assures software can be upgraded to latest
trending/supported technologies

4.Apart from the challenges of heterogeneity, business and social change,


and trust and security, suggest other problems and challenges that software
engineering is likely to face in the 21st century. (Hint: Think about the
environment.)
Scaling software: Software has to be developed across a very wide range of
scales, from very small embedded systems in portable or wearable devices
through to Internet-scale, cloud-based systems that serve a global community.

Cloud Implementation: 21st century demands for application to be running on


cloud and sometimes may require to be run on multiple clouds to take
advantage of factors such as cost and ease of understanding, implementation.
Thus software has to be designed in a newer approach to take advantage of
cloud implementation and cost factors.

Virtualization and container technologies: 21st century is moving towards


trend of containerization and that brings in the change on how software is
being developed and deployed across infrastructure. Sometimes deploying into
right infrastructure solutions is more important that writing good software
otherwise

Downloaded by Ajullo Kujack (ajullo3333@gmail.com)


good written software can have challenges running and performing at pace
21st century customer may be expecting.

5.Based on your own knowledge of some of the application types discussed


in Section 1.1.2, explain, with examples, why different application types require
specialized software engineering techniques to support their design and
development.
To elaborate on specialized technique I would take an example of Big data
processing which requires specialized infrastructure dedicated to be execute
queries of enormous amount on data in PB’s (Petabytes). Huge data processing
requires CPU and memory intensive servers and thus would require
developmental process in place that adapts to utilize process and methodologies
focused more towards writing memory optimization and cpu optimizations
programs such as parallel processing, multiple thread execution, memory
allocation, work managers, no memory leaks, CPU overloading.
On the other hand an ecommerce application program deals with process
and methodologies inclined towards a better UI design, ease of use, best
match search, payment gateway transaction security and product
recommendations and ever changing demands to adapt for rapid change in
design solution and technology advancements.

6.Explain why the fundamental software engineering principles of process,


dependability, requirements management, and reuse are relevant to all types
of software system.
The fundamental software engineering principles of process, dependability,
requirements management, and reuse are relevant to all types of software
system. These fundamentals are independent of the program language used
for software development.
Software engineering fundamentals that apply to all types of software
systems due to below mentioned reasons
a) Software to be developed using a managed and understood
development process.
b) The organization developing the software should plan the development
process and have clear ideas of what to produced and schedule to
deliver.
c) Software meets expectation, without failures, and available for use
when needed.
d) Software should be secure and efficient
e) Easy to maintain, meets expectation and to be delivered within budget and
to schedule.
f) Software should be reusable

Downloaded by Ajullo Kujack (ajullo3333@gmail.com)


1.7. Explain how the universal use of the web has changed software
systems and software systems engineering.
Effect on software systems
a) web-based systems that could be developed where, instead of a special-
purpose user interface, these systems could be accessed using a web
browser.

b) Instead of writing software and deploying it on users’ PCs,the software


was deployed on a web server.
c) Change and upgrade the software became cheap as software was
deployed on a web server
d) It also reduced costs, as user interface development is particularly
expensive.
e) Users do not buy software but pay according to how much the software
is used or are given free access in return for
f) watching adverts that are displayed on their screen

Effect on software engineering for web-based systems


g) Software reuse has become the dominant approach for constructing
web- based systems.
h) Web-based systems are always developed and delivered incrementally.
i)Software may be implemented using service-oriented software
engineering, where the software components are stand-alone web services.

1.8. Discuss whether professional engineers should be licensed in the same


way as doctors or lawyers.
Yes certainly professional engineers should be licensed in the same way as
doctors or lawyers. Most of the software deals with intellectual property, country
specific laws for health, finance, education, hospitality and other specialized
institutions. Thus a professional engineers needs to possess required skills, to
better put it through licensing in relevant areas specific to an industry segment
such as HIPPA for healthcare industry, PCI-DSS for payment industry. 21st
century demands for individual to design even the infrastructure to attain a
standard that follows a specific industry requirement. Most of the cloud vendors
have these certifications to ensure clients can trust the code to be run on such
platform. A professional engineer with licensing on specialized industry specific
functions in terms of infra solutions, payments solution, healthcare solution,
legal solution and thus ensures an organizations, country rights are well
protected and follows ethical practices aligned by ACM, IEEE and other pioneer
standards.

Downloaded by Ajullo Kujack (ajullo3333@gmail.com)

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy