0% found this document useful (0 votes)
67 views6 pages

SW Assignment

The document is the assignment submission for Software Engineering by 6 students at Wollo University in Ethiopia. It includes the students' names and identification numbers and is submitted to their professor, Mr. Abiy, in 2015. The assignment contains questions on topics related to software engineering, and the students' typed responses to each question.

Uploaded by

Hannah Misganaw
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views6 pages

SW Assignment

The document is the assignment submission for Software Engineering by 6 students at Wollo University in Ethiopia. It includes the students' names and identification numbers and is submitted to their professor, Mr. Abiy, in 2015. The assignment contains questions on topics related to software engineering, and the students' typed responses to each question.

Uploaded by

Hannah Misganaw
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 6

WOLLO UNIVERISTY (KIOT)

SCHOOL OF ELECTRICAL AND


COMPUTER ENGINEERING

SOFTWARE ENGINEERING
ASSIGNEMENT 1

BY

WUBALEM GETENE ………………………....2238/11

HANNA MESGANAW ………………………......1547/11

TOYEBA GASHAW …………………………….1995/11

REHIMA ALI ……………………………………..1930/10

HANNAN TESHOME ………………………...1545/11

ZEMZEM MOHAMED........................... 2334/10

EKRAM ABDU.........................................1134/10
SUBMITTED TO MR.ABIY

2015E.C

1. What are the most important differences between generic software product development
and custom software development? What might this mean in practice for users of generic
software products?
The essential difference is that in generic software product development, the specification is owned
by the product developer. For custom product development, the specification is owned and controlled
by the customer. The implications of this are significant — the developer can quickly decide to change
the specification in response to some external change (e.g. a competing product) but, when the
customer owns the specification, changes have to be negotiated between the customer and the
developer and may have contractual implications.

For users of generic products, this means they have no control over the software specification so cannot
control the evolution of the product. The developer may decide to include/exclude features and change
the user interface. This could have implications for the users business processes and add extra training
costs when new versions of the system are installed. It also may limit the customers flexibility to change
their own business processes.

2, What are the four important attributes that all professional software should possess? Suggest four
other attributes that may sometimes be significant?

The four most important characteristics of professional software are Acceptability, Dependability and
Security, Efficiency, and Maintainability.

Other examples of quality attributes are the software's Performance, Scalability, Reuseability,
Testability, Reliability, and Availability.

3) Apart from the challenges of heterogeneity, business and social change and trust and security,
identify other problems and challenges that software engineering is likely to face in the 21st century
(hint: think about the environment).

Cloud implementation: 21th century demands for applications to be running on the cloud on
multiple clouds to take an advantage of factors such as cost and ease of understand and
implementation. This software has to be designed with a newer approach to take advantage of
cloud implementation and cost factors.
Scaling software: software needs that to be developed across a wide range of scales, from small
embedded systems in wearable or portable device through the scale of the internet, and system
based on the clouded that will serve a global community.
Virtualization and container technology: 21thcenturay is moving towards the tread of
containerization and that brings in the change in how software is being developed and deployed
across the infrastructure sometimes deploying in to light infrastructure solutions is more
important than writing good software otherwise good written software can have challenges
running and perform at the pace 21 th century customer may be expecting.

4) Explain, with examples, why different application types require specialized software engineering
techniques to support their design and development

Because they have specific problems to solve for example: a compiler specialist, I know a lot about
certain types of directed graphs and binary arithmetic, but ask me to solve a graph problem outside my
specialist like max-flow or shortest path and I would have to look up the algorithm.

Similarly, dealing with floating point numbers and doing numerical analysis would required at least
grabbing a textbook if not taking several courses just to comprehend the details.

Something is true about database designed a simple database for strong phone usage by test programs
at Google .it was student quality SQL. I didnt normalize it nor worry about rollbacks or aborted
transactions.again, a field I know just enough about to know I know nothing didnt even know how much
I didnt know.

Or take business rules know there are people who deal with them im not one of them. Computer
graphics, writing programs for gaming, and physics, not something I can do.

Almost everything in real life has a programming analog .thus, just as people have different skills .there
are specialized programming skills that correspond those areas of life.

5 Giving reasons for your answer based on the type of system being developed, suggest the most
appropriate generic software process model that might be used as a basis for managing the
development of the following systems:

A system to control anti-lock braking in a car

A virtual reality system to support software maintenance

A university accounting system that replaces an existing system

An interactive travel planning system that helps users plan journeys with the lowest environmental
impact

Answer:-

a) Anti-lock braking system this is a safety-critical system so requires a lot of up-front analysis before
implementation. It certainly needs a plan-driven approach to development with the requirements
carefully analyses. A waterfall model is therefore the most appropriate approach to use, perhaps with
formal transformations between the different development stages.
b) Virtual reality system this is a system where the requirements will change and there will be an
extensive user interface components. Incremental development with, perhaps, some UI prototyping is
the most appropriate model. An agile process may be used.

c) University accounting system this is a system whose requirements are fairly well-known and which
will be used in an environment in conjunction with lots of other systems such as a research grant
management system. Therefore, a reuse-based approach is likely to be appropriate for this.

d) Interactive travel planning system with a complex user interface but which must be stable and
reliable. An incremental development approach is the most appropriate as the system requirements will
change as real user experience with the system is gained.

6) Suggest why it is important to make a distinction between developing the user requirements and
developing system requirements in the requirements engineering process.

Answer:-

There is a fundamental difference between the user and the system requirements that mean they
should be considered separately.

a) The user requirements are intended to describe the systems functions and features from a user
perspective and it is essential that users understand these requirements. They should be expressed in
natural language and may not be expressed in great detail, to allow some implementation flexibility. The
people involved in the process must be able to understand the users environment and application
domain.

b) The system requirements are much more detailed than the user requirements and are intended to
be a precise specification of the system that may be part of a system contract. They may also be used in
situations where development is outsourced and the development team need a complete specification
of what should be developed. The system requirements are developed after user requirements have
been established.

7) It has been suggested that one of the problems of having a user closely involved with a software
development team is that they go native. That is, they adopt the outlook of the development team
and lose sight of the needs of their user colleagues. Suggest three ways how you might avoid this
problem and discuss the advantages and disadvantages of each approach.

The three ways are below.

1. Limit the time spent with the developers (pros: users will not lose the perspective. Cons:
users will miss details of the development)
2. Give the users tasks implying interaction with the system in the development (pros: will
not lose sight of the needs of their user colleagues. Cons: will probably be less able to
influence the process of development)
3. Make the developers pay user's attention to specific features related to users (pros: will
not lose the sight of the users. Cons: the developers may be distracted from the
development).

8) Suggest how an engineer responsible for drawing up a system requirements specification might
keep track of the relationships between functional and non-functional requirements

 One method to track the relationships between functional and non-functional


requirements may include a type of flowchart. This chart could go from one functional
requirement to the next logical functional requirement with the ability to branch off if
there are other similar requirements. The non-functional requirements could then be
written next to which ever functional requirement they are related to. The non-functional
requirements may be repeated if they relate to multiple functional requirements.

Explanation

Functional requirements describe the system what it will do.

Ex: inputs and outputs.

Non-functional requirements describe the expectations but it is not concerned with the system.

Ex: security while drawing up a system requirements specification, an engineer might keep track
of the functional and non-functional requirements by ensuring the following:

The requirements needed to design meets the requirements such as compatibility, portability etc.

Design the system so that it ensures the safety and security.

Implementing the system in an efficient manner.

The cost and time required for the development should not affect the design and implementation
of the system

9) Based on your experience with a bank ATM, draw an activity diagram that models the data
processing involved when a customer withdraws cash from the machine
10 You are a software engineering manager and your team proposes that model-driven engineering
should be used to develop a new system. What factors should you take into account when deciding
whether or not to introduce this new approach to software development?

Answer:-

àThe team's proficiency with Model-Driven Architecture and modeling language.

àThe price range and capabilities of the Model-Driven Architecture support tools.

àThis is required high performance or throughput or high performance computing system.

àThe use of Model-Driven Architecture has long-term benefits, including significant cost savings.

àThe system developers' excitement for their work.

You might also like